:root{--navy: #01071f;--purple: #580dbf;--muted: #4e5360;--line: #b4b8c0;--stage: #c9ced6;--paper: #d9dce1;--panel: #eef0f3}*{box-sizing:border-box}html,body{margin:0;background:var(--paper);color:var(--navy)}body{font-family:Outfit,Avenir Next,Segoe UI,sans-serif;font-weight:400}.hero{height:100dvh;max-height:100dvh;display:grid;grid-template-columns:minmax(280px,460px) minmax(0,50vw) minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);grid-template-areas:"brand brand brand" "copy stage .";column-gap:28px;padding:28px 28px 28px 40px;overflow:hidden}.brand{grid-area:brand;display:flex;align-items:center;flex-wrap:wrap;gap:14px;margin:0}.brand img{width:72px;height:72px;display:block;mix-blend-mode:multiply}.brand-home{display:flex;align-items:center;gap:14px;min-width:0;color:inherit;text-decoration:none}.nav-contact{margin-left:auto;color:var(--navy);font-size:.95rem;font-weight:700;letter-spacing:-.02em;text-decoration:none}.nav-contact:hover,.nav-contact.is-current{color:var(--purple)}.lang{display:flex;gap:4px;margin-left:16px}.lang button{border:1px solid var(--line);background:transparent;color:var(--navy);font:inherit;font-size:.75rem;font-weight:700;letter-spacing:.04em;padding:6px 8px;cursor:pointer}.lang button[aria-pressed=true]{background:var(--navy);border-color:var(--navy);color:#f4f5f7}.wordmark{margin:0;font-family:Outfit,Avenir Next,sans-serif;font-weight:700;font-size:1.45rem;letter-spacing:-.045em;line-height:1;color:var(--navy);white-space:nowrap}.wordmark .smart{color:var(--purple)}.copy{grid-area:copy;align-self:center;min-height:0;padding:clamp(6px,1.4dvh,18px) 8px clamp(6px,1.6dvh,28px) 0;max-width:440px}.hero .eyebrow{margin-bottom:clamp(8px,1.4dvh,18px)}.eyebrow{margin:0 0 18px;color:var(--purple);font-size:1.02rem;font-weight:600;letter-spacing:-.02em}h1{margin:0;max-width:100%;font-family:Unbounded,Outfit,sans-serif;font-weight:700;font-size:clamp(2.7rem,4.5vw,4.35rem);line-height:.98;letter-spacing:-.045em}.hero h1{font-size:clamp(1.85rem,min(4.2vw,6.2dvh),4.35rem)}.promise{margin:clamp(10px,2dvh,28px) 0 0;max-width:38ch;font-size:1.05rem;font-weight:500;line-height:1.45;letter-spacing:-.02em;color:var(--navy)}.promise strong{color:var(--purple);font-weight:700}.award{display:flex;align-items:center;gap:14px;margin:clamp(10px,1.8dvh,26px) 0 0;padding:14px;max-width:440px;background:#fff;border-left:4px solid var(--purple)}.award-body{min-width:0}.award-photo{position:relative;flex:none;width:72px;height:96px;padding:0;border:0;background:var(--navy);cursor:zoom-in}.award-photo img{width:100%;height:100%;object-fit:cover;display:block}.trophy{position:absolute;top:6px;left:6px;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--purple);color:#fff}.trophy svg{width:16px;height:16px}.award-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:grid;place-items:center;padding:28px}.award-lightbox-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;border:0;background:#01071fdb;cursor:zoom-out}.award-lightbox figure{position:relative;z-index:1;margin:0}.award-lightbox img{display:block;max-width:min(440px,86vw);max-height:82vh;object-fit:contain;background:#000}.award-lightbox-close{position:absolute;top:10px;right:10px;border:0;background:#fff;color:var(--navy);font:inherit;font-size:.78rem;font-weight:700;letter-spacing:.04em;padding:8px 10px;cursor:pointer}.award-kicker{margin:0;color:var(--purple);font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.award-title{margin:6px 0 0;font-family:Unbounded,Outfit,sans-serif;font-size:1.2rem;font-weight:700;letter-spacing:-.03em;line-height:1.15}.award-line{margin:8px 0 0;font-size:.95rem;font-weight:600;line-height:1.35}.award-detail{margin:4px 0 0;color:var(--muted);font-size:.86rem;line-height:1.4}.stage{grid-area:stage;justify-self:stretch;width:100%;max-width:50vw;min-height:0;display:grid;grid-template-rows:minmax(0,1fr) auto;position:relative;background:var(--stage);border:1px solid var(--line)}.progress{position:absolute;top:0;left:0;right:0;height:3px;background:#b7bcc4;z-index:2}.progress span{display:block;height:100%;width:0%;background:var(--purple)}.viewport{min-height:0;position:relative}.viewport canvas{width:100%;height:100%;display:block}.stage-foot{display:flex;flex-direction:column;gap:12px;padding:14px 18px 16px;background:var(--panel);border-top:1px solid var(--line)}.beat-title{margin:0;color:var(--purple);font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.beat-text{margin:4px 0 0;min-height:2.7em;font-size:1.02rem;font-weight:500;line-height:1.35;letter-spacing:-.02em}.steps{display:flex;flex-wrap:wrap;gap:8px 18px;list-style:none;margin:0;padding:0}.steps li{display:flex;align-items:center;gap:7px;color:#8d87a3;font-size:.78rem;font-weight:500;letter-spacing:-.01em}.steps li:before{content:"";width:7px;height:7px;background:#d9d3e8}.steps li.is-on{color:var(--navy);font-weight:700}.steps li.is-on:before{background:var(--purple)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:980px){.hero{height:auto;max-height:none;overflow:visible;grid-template-columns:1fr;grid-template-rows:auto auto auto;grid-template-areas:"brand" "copy" "stage";padding:22px 18px 18px;row-gap:8px}.copy{align-self:start;padding:8px 0 0;max-width:none}.hero h1{font-size:clamp(1.7rem,7.4vw,2.55rem)}.stage{width:100%;max-width:none;height:auto;min-height:0;justify-self:stretch;grid-template-rows:auto auto}.viewport{min-height:0;aspect-ratio:4 / 5}}.why{padding:72px 0 64px;background:#000;color:#fff}.why-inner{width:min(1080px,calc(100% - 48px));margin:0 auto}.why h2{margin:0;font-family:Unbounded,Outfit,sans-serif;font-size:clamp(2rem,4vw,3.2rem);letter-spacing:-.045em;line-height:1}.stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;list-style:none;margin:32px 0 0;padding:0}.stats li{margin:0;padding:22px 18px 20px;background:#fff;border:1px solid #fff;color:#000}.stat-value{margin:0;color:#000;font-family:Unbounded,Outfit,sans-serif;font-size:clamp(1.8rem,3vw,2.6rem);font-weight:700;letter-spacing:-.04em;line-height:1}.stat-value.is-long{font-size:clamp(1.15rem,1.7vw,1.55rem);letter-spacing:-.03em}.stat-label{margin:10px 0 0;font-size:.98rem;font-weight:500;line-height:1.35}.warranty{position:relative;overflow:hidden;display:inline-flex;align-items:center;gap:10px;margin:18px 0 0;padding:10px 18px 10px 12px;background:linear-gradient(105deg,#7a5b16,#e8c96a 16%,#fff6c8 28%,#d4af37,#8a6820,#7a5b16,#fff6c8 84%,#d4af37);color:#2a1804;box-shadow:inset 0 0 0 1px #fff1b8,0 8px 22px #d4af3759;font-family:Unbounded,Outfit,sans-serif;font-size:.95rem;font-weight:700;letter-spacing:-.03em;line-height:1}.warranty>span{position:relative;z-index:1}.warranty:after{content:"";position:absolute;top:-40%;bottom:-40%;left:0;width:38%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.82),transparent);z-index:2;transform:translate(-220%);animation:warranty-shine 2.6s ease-in-out infinite;pointer-events:none}@keyframes warranty-shine{0%,40%{transform:translate(-220%)}to{transform:translate(380%)}}.warranty-icon{display:grid;place-items:center;width:28px;height:28px}.warranty-icon svg{width:28px;height:28px;display:block}.group-label{margin:36px 0 0;font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.logo-rail{margin-top:14px;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)}.logo-track{display:flex;align-items:center;gap:18px;width:max-content;margin:0;padding:8px 0 16px;list-style:none;animation:logo-marquee 48s linear infinite}.logo-rail:hover .logo-track{animation-play-state:paused}.logo-track li{display:grid;place-items:center;width:168px;height:92px;margin:0;padding:12px 16px;background:#fff;border:1px solid #fff}.logo-track img{max-width:100%;max-height:64px;object-fit:contain;filter:grayscale(1) contrast(1.4)}.logo-track img.is-light{filter:brightness(0)}.partners{padding-bottom:8px}.partner-logos{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;list-style:none;margin:14px 0 0;padding:0}.partner-logos li{display:grid;place-items:center;height:92px;margin:0;padding:12px 16px;background:#fff}.partner-logos img{max-width:100%;max-height:64px;object-fit:contain;filter:grayscale(1) contrast(1.4)}@keyframes logo-marquee{0%{transform:translate(0)}to{transform:translate(calc(-50% - 9px))}}@media(max-width:800px){.stats{grid-template-columns:1fr 1fr}.stats li:last-child{grid-column:1 / -1}.partner-logos{grid-template-columns:1fr 1fr}}.work{--work-chrome: 0px;padding:72px 0 80px;background:var(--paper);color:var(--navy)}body:has(.cookie-banner) .work{--work-chrome: 100px}.work-inner{width:min(1080px,calc(100% - 48px));margin:0 auto}.work h2,.products h2{margin:0;font-family:Unbounded,Outfit,sans-serif;font-size:clamp(2rem,4vw,3.2rem);letter-spacing:-.045em;line-height:1}.products{padding:0 0 80px;background:var(--paper);color:var(--navy)}.products-head{width:min(1080px,calc(100% - 48px));margin:0 auto 28px}.product-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;width:calc(100% - 32px);margin:0 auto;padding:0;list-style:none}.product{display:flex;flex-direction:column;min-height:460px;height:100%;padding:0 28px 28px;background:#fff;color:inherit;text-decoration:none}.product img{display:block;width:calc(100% + 56px);height:240px;margin:0 -28px 22px;object-fit:contain;padding:28px}.product h3{margin:0;font-family:Unbounded,Outfit,sans-serif;font-size:clamp(1.6rem,2vw,2rem);letter-spacing:-.04em}.product p{margin:12px 0 0;color:var(--muted);font-size:1.02rem;line-height:1.45}.product span{margin-top:auto;padding-top:22px;color:var(--purple);font-weight:700}.product:hover,.product:focus-visible{outline:2px solid var(--purple);outline-offset:-2px}@media(max-width:800px){.product-grid{grid-template-columns:1fr}.product{min-height:0}}.offers{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px;list-style:none;margin:32px 0 0;padding:0}.offer{grid-column:span 2;display:flex;flex-direction:column;min-height:280px;margin:0;padding:22px 18px 18px;background:#fff;color:var(--navy)}.offer:nth-child(4){grid-column:2 / span 2}.offer:nth-child(5){grid-column:4 / span 2}.offer h3{margin:0;font-family:Unbounded,Outfit,sans-serif;font-size:1.15rem;letter-spacing:-.03em;line-height:1.2}.offer ul{list-style:none;display:flex;flex-direction:column;gap:10px;margin:16px 0 18px;padding:0}.offer li{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:0;font-size:.95rem;line-height:1.35}.offer li>span{min-width:0}.offer li:before{content:"";width:6px;height:6px;background:var(--purple);flex:none}.offer-marks{display:inline-flex;align-items:center;gap:6px}.offer-mark{display:inline-flex;align-items:center;gap:4px;font-size:.72rem;font-weight:700;letter-spacing:.01em}.offer-mark svg{width:22px;height:22px;display:block}.offer-more{margin-top:auto;align-self:flex-end;flex:none;display:grid;place-items:center;width:40px;height:40px;padding:0;border:0;border-radius:50%;background:var(--navy);color:#fff;cursor:pointer}.offer-more svg{width:18px;height:18px}a.offer-more{color:#fff;text-decoration:none}.offer-more:hover,.offer-more:focus-visible{background:var(--purple)}.builders{padding:8px 0 88px;background:var(--paper);color:var(--navy)}.builders-inner{width:min(1080px,calc(100% - 48px));margin:0 auto}.builders h2{margin:0;font-family:Unbounded,Outfit,sans-serif;font-size:clamp(2rem,4vw,3.2rem);letter-spacing:-.045em;line-height:1}.builder-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px 18px;list-style:none;margin:40px 0 0;padding:0}.builder{margin:0;text-align:center}.builder img{width:min(148px,100%);aspect-ratio:1;height:auto;border-radius:50%;object-fit:cover;display:block;margin:0 auto 16px}.builder h3{margin:0;font-family:Unbounded,Outfit,sans-serif;font-size:.98rem;letter-spacing:-.03em;line-height:1.25}.builder-role{margin:8px 0 0;color:var(--purple);font-size:.92rem;font-weight:700;line-height:1.3}.builder ul{list-style:none;margin:6px 0 0;padding:0}.builder li{margin-top:4px;color:var(--muted);font-size:.88rem;line-height:1.35}@media(max-width:980px){.builder-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.builder-grid{grid-template-columns:1fr}}@media(min-width:901px){.work{box-sizing:border-box;height:100dvh;max-height:100dvh;overflow:hidden;display:flex;flex-direction:column;padding:clamp(16px,3.4dvh,48px) 0 calc(clamp(12px,2dvh,24px) + var(--work-chrome))}.work-inner{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.work h2{flex:none;font-size:clamp(1.45rem,min(4vw,4.8dvh),3.2rem)}.offers{flex:1 1 auto;min-height:0;grid-template-rows:repeat(2,minmax(0,1fr));gap:clamp(8px,1.6dvh,16px);margin-top:clamp(10px,2.2dvh,28px)}.offer{min-height:0;padding:clamp(12px,1.8dvh,22px) clamp(12px,1.2vw,18px) clamp(10px,1.3dvh,16px)}.offer h3,.offer ul{flex-shrink:0}.offer h3{font-size:clamp(.95rem,1.9dvh,1.15rem);line-height:1.15}.offer ul{gap:clamp(3px,.8dvh,10px);margin:clamp(6px,1.2dvh,14px) 0 clamp(6px,1dvh,12px)}.offer li{font-size:clamp(.8rem,1.45dvh,.95rem);line-height:1.28}.offer-more{width:clamp(32px,4.2dvh,40px);height:clamp(32px,4.2dvh,40px)}}@media(max-width:900px)and (min-height:800px){.work{box-sizing:border-box;height:100dvh;max-height:100dvh;overflow:hidden;display:flex;flex-direction:column;padding:clamp(12px,2.2dvh,28px) 0 calc(clamp(8px,1.2dvh,14px) + var(--work-chrome))}.work-inner{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.work h2{flex:none;font-size:clamp(1.3rem,3.4dvh,2.15rem)}.offers{flex:1 1 auto;min-height:0;grid-template-rows:repeat(3,minmax(0,1fr));gap:clamp(6px,1dvh,12px);margin-top:clamp(8px,1.4dvh,16px)}.offer{min-height:0;padding:clamp(8px,1.1dvh,14px) 12px clamp(6px,.9dvh,12px)}.offer h3,.offer ul{flex-shrink:0}.offer h3{font-size:clamp(.88rem,1.65dvh,1.02rem);line-height:1.15}.offer ul{gap:clamp(2px,.4dvh,6px);margin:clamp(4px,.7dvh,8px) 0}.offer li{font-size:clamp(.78rem,1.3dvh,.88rem);line-height:1.22}.offer-mark svg{width:18px;height:18px}.offer-more{width:clamp(28px,3.4dvh,34px);height:clamp(28px,3.4dvh,34px)}}@media(max-width:900px){.offers{grid-template-columns:1fr 1fr}.offer,.offer:nth-child(4),.offer:nth-child(5){grid-column:auto}}@media(max-width:980px){.work{--work-chrome: 76px}body:has(.cookie-banner) .work{--work-chrome: 156px}}@media(max-width:640px){.work{height:auto;max-height:none;overflow:visible;display:block;padding:56px 0 64px}.work-inner{display:block;height:auto}.work h2{font-size:clamp(1.7rem,8vw,2.15rem)}.offers{display:grid;grid-template-columns:1fr;grid-template-rows:none;gap:14px;margin:24px 0 0;height:auto}.offer{min-height:0;height:auto;padding:18px 16px 16px}.offer h3{font-size:1.05rem;line-height:1.2}.offer ul{gap:8px;margin:12px 0 14px}.offer li{font-size:.95rem;line-height:1.35}.offer-mark svg{width:22px;height:22px}.offer-more{width:40px;height:40px}}@media(prefers-reduced-motion:reduce){.progress span{width:100%}.logo-track{animation:none}.logo-rail{overflow-x:auto;-webkit-mask-image:none;mask-image:none}.warranty:after{animation:none;opacity:0}}.contact-page{min-height:100dvh;padding:28px 28px 72px 40px}.contact-section{padding:8px 0 88px;background:var(--paper);scroll-margin-top:24px}.contact-page .contact,.contact-section .contact{width:min(640px,calc(100% - 48px));margin:28px 0 0}.contact-page .contact{width:100%;margin:36px 0 0}.contact-section .contact{width:min(1080px,calc(100% - 48px));margin:0 auto}.contact-section .contact-form,.contact-section .contact-success{max-width:640px}.contact h1,.contact h2{margin:0;font-family:Unbounded,Outfit,sans-serif;font-size:clamp(2rem,4vw,3.2rem);letter-spacing:-.045em;line-height:1}.contact-lead{max-width:42ch;margin:16px 0 0;color:var(--muted);font-size:1.05rem;line-height:1.45}.contact-form,.contact-success{display:grid;gap:16px;margin-top:28px;padding:28px;background:#fff;border-radius:18px}.contact-page .contact-form{grid-template-columns:1fr 1fr}.contact-page .contact-form label:nth-of-type(3),.contact-page .contact-form .captcha,.contact-page .contact-form .contact-error,.contact-page .contact-form .contact-submit{grid-column:1 / -1}.contact-form label,.captcha{display:grid;gap:8px;font-size:.92rem;font-weight:700}.contact-form input,.contact-form textarea{width:100%;border:1px solid var(--line);background:var(--panel);color:var(--navy);font:inherit;font-weight:500;padding:12px 14px}.contact-form textarea{min-height:150px;resize:vertical}.contact-form input:focus-visible,.contact-form textarea:focus-visible,.contact-submit:focus-visible,.captcha-refresh:focus-visible{outline:2px solid var(--purple);outline-offset:2px}.captcha-row{display:flex;align-items:center;gap:12px}.captcha-row img,.captcha-pending{width:176px;height:58px;background:var(--panel);border-radius:8px}.captcha-refresh,.contact-submit,.contact-success button{border:0;background:var(--navy);color:#f4f5f7;font:inherit;font-weight:700;cursor:pointer}.captcha-refresh{background:transparent;color:var(--purple);padding:0}.contact-submit,.contact-success button{justify-self:start;padding:14px 22px}.contact-submit:disabled{cursor:wait;opacity:.65}.contact-error{margin:0;color:#8d1d3b;font-weight:600}.contact-success h2{margin:0;font-family:Unbounded,Outfit,sans-serif;font-size:1.6rem;letter-spacing:-.04em}.contact-success p{margin:0;color:var(--muted);line-height:1.45}.hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.app-page{min-height:100dvh;padding:28px 28px 72px 40px}.app-page main{width:100%;margin:36px 0 0}.app-page h1{max-width:100%;font-size:clamp(2rem,4vw,3.2rem)}.app-lead{max-width:42ch;margin:16px 0 0;color:var(--muted);font-size:1.05rem;line-height:1.45}.app-topics{list-style:none;margin:32px 0 0;padding:0;display:grid;gap:12px}.app-topics li{display:grid;grid-template-columns:minmax(160px,240px) minmax(0,1fr);gap:12px 28px;align-items:start;margin:0;padding:18px 20px;background:#fff}.app-topics h2{margin:0;font-family:Unbounded,Outfit,sans-serif;font-size:1rem;letter-spacing:-.03em;line-height:1.3;text-wrap:balance}.app-topics p{margin:0;color:var(--muted);font-size:.98rem;line-height:1.45}.app-portfolio{margin-top:56px}.app-portfolio-head{display:flex;align-items:end;justify-content:space-between;gap:16px}.app-portfolio h2{margin:0;font-family:Unbounded,Outfit,sans-serif;font-size:clamp(1.6rem,3vw,2.2rem);letter-spacing:-.04em;line-height:1.1}.app-portfolio-nav{display:flex;gap:8px;flex:none}.app-portfolio-nav button{border:1px solid var(--line);background:#fff;color:var(--navy);font:inherit;font-size:.85rem;font-weight:700;padding:8px 12px;cursor:pointer}.app-portfolio-nav button:hover,.app-portfolio-nav button:focus-visible{border-color:var(--purple);color:var(--purple)}.app-portfolio-nav button:disabled{cursor:default;opacity:.4}.app-rail{display:flex;gap:16px;width:100%;min-width:0;margin:20px 0 0;padding:0 0 8px;list-style:none;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin}.app-rail li{flex:0 0 min(320px,78vw);scroll-snap-align:start}.app-card{display:flex;flex-direction:column;min-height:220px;height:100%;padding:0 18px 18px;background:#fff;color:inherit;text-decoration:none}.app-card-logo{display:block;width:calc(100% + 36px);height:168px;margin:0 -18px 16px;object-fit:contain;background:#0b0b0b}.app-card:hover,.app-card:focus-visible{outline:2px solid var(--purple);outline-offset:-2px}.app-card-platform{margin:0;color:var(--purple);font-size:.78rem;font-weight:700;letter-spacing:.02em}.app-card h3{margin:10px 0 0;font-family:Unbounded,Outfit,sans-serif;font-size:1.25rem;letter-spacing:-.03em}.app-card p:last-of-type{margin:10px 0 18px;color:var(--muted);line-height:1.4}.app-card span{margin-top:auto;color:var(--navy);font-weight:700}.app-areas{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 0;padding:0;list-style:none}.app-areas li{margin:0;padding:6px 10px;background:#fff;color:var(--navy);font-size:.82rem;font-weight:700}.app-offer{margin:14px 0 0;color:var(--purple);font-weight:700}.odoo-catalog,.odoo-method{margin-top:56px}.odoo-catalog h2,.odoo-method h2{margin:0;font-family:Unbounded,Outfit,sans-serif;font-size:clamp(1.6rem,3vw,2.2rem);letter-spacing:-.04em;line-height:1.1}.odoo-module{margin-top:16px;padding:20px;background:#fff;scroll-margin-top:24px}.odoo-module header{display:flex;align-items:center;gap:14px}.odoo-module header img{width:56px;height:56px;object-fit:contain}.odoo-module h3,.odoo-method h3{margin:0;font-family:Unbounded,Outfit,sans-serif;font-size:1.15rem;letter-spacing:-.03em}.odoo-groups{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px 28px;margin-top:18px}.odoo-groups h4{margin:0;color:var(--purple);font-size:.82rem;letter-spacing:.01em}.odoo-groups ul,.odoo-method ol ol{margin:8px 0 0;padding:0 0 0 16px}.odoo-groups li,.odoo-method ol ol li{margin-top:4px;color:var(--muted);font-size:.92rem;line-height:1.35}.odoo-method>p{max-width:46ch;margin:12px 0 0;color:var(--muted);line-height:1.45}.odoo-method>ol{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:20px 0 0;padding:0;list-style:none}.odoo-method>ol>li{margin:0;padding:18px;background:#fff}.odoo-method>ol>li>p{margin:0 0 8px;color:var(--purple);font-family:Unbounded,Outfit,sans-serif;font-weight:700}@media(max-width:720px){.app-page,.contact-page{overflow-x:clip}.app-page .brand img,.contact-page .brand img{width:52px;height:52px}.app-page .wordmark,.contact-page .wordmark{font-size:1.45rem}.app-page{padding:22px 18px 56px}.app-topics li,.app-portfolio-head{grid-template-columns:1fr;display:grid}.app-portfolio-nav{justify-content:start}.contact-page .contact-form{grid-template-columns:1fr}.odoo-groups,.odoo-method>ol{grid-template-columns:1fr}}@media(max-width:640px){.contact-page{padding:22px 18px 56px}.contact-form,.contact-success{padding:20px}}.odoo-page{min-height:100dvh;padding:28px 28px 72px 40px}.odoo-page main{width:100%;margin:36px 0 0}.odoo-page h1{max-width:16ch;font-size:clamp(2.15rem,4vw,3.35rem)}.odoo-hero{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);gap:28px;align-items:start}.odoo-lead{max-width:42ch;margin:16px 0 0;color:var(--muted);font-size:1.05rem;line-height:1.45}.odoo-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}.odoo-cta{display:inline-flex;align-items:center;justify-content:center;padding:12px 16px;background:var(--navy);color:#f4f5f7;font-weight:700;letter-spacing:-.02em;text-decoration:none}.odoo-cta:hover,.odoo-cta:focus-visible{background:var(--purple)}.odoo-cta-quiet{background:#fff;color:var(--navy);border:1px solid var(--line)}.odoo-cta-quiet:hover,.odoo-cta-quiet:focus-visible{background:#fff;border-color:var(--purple);color:var(--purple)}.odoo-flow{padding:22px;background:#fff}.odoo-flow img{display:block;width:132px;height:auto}.odoo-flow h2{margin:14px 0 0;font-family:Unbounded,Outfit,sans-serif;font-size:clamp(1.35rem,2.4vw,1.8rem);letter-spacing:-.04em;line-height:1.15}.odoo-flow ol{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:12px}.odoo-flow li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:start;margin:0}.odoo-flow li>span{display:grid;place-items:center;width:28px;height:28px;background:var(--navy);color:#f4f5f7;font-family:Unbounded,Outfit,sans-serif;font-size:.85rem;font-weight:700}.odoo-flow h3,.odoo-outcomes h3,.odoo-fit h3,.odoo-detail h3{margin:0;font-family:Unbounded,Outfit,sans-serif;font-size:1rem;letter-spacing:-.03em}.odoo-flow p,.odoo-outcomes p,.odoo-fit p,.odoo-detail header p,.odoo-section-lead,.odoo-coverage,.odoo-need,.odoo-close p{margin:4px 0 0;color:var(--muted);line-height:1.45}.odoo-proof,.odoo-outcomes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:28px 0 0;padding:0;list-style:none}.odoo-proof li,.odoo-outcomes li,.odoo-fit article,.odoo-need,.odoo-detail{margin:0;padding:18px;background:#fff}.odoo-proof strong{display:block;font-family:Unbounded,Outfit,sans-serif;font-size:1.35rem;letter-spacing:-.04em}.odoo-proof span{display:block;margin-top:6px;color:var(--muted);line-height:1.4}.odoo-block{margin-top:56px}.odoo-block>h2,.odoo-page .odoo-method>h2{margin:0;font-family:Unbounded,Outfit,sans-serif;font-size:clamp(1.6rem,3vw,2.2rem);letter-spacing:-.04em;line-height:1.1}.odoo-section-lead{max-width:46ch;margin-top:12px;color:var(--navy);font-weight:700}.odoo-coverage{max-width:62ch}.odoo-fit{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}.odoo-fit article:first-child{box-shadow:inset 3px 0 0 var(--purple)}.odoo-picker{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:18px 0 0;padding:0;list-style:none}.odoo-picker button{display:flex;align-items:center;gap:10px;width:100%;min-height:64px;padding:10px 12px;border:1px solid transparent;background:#fff;color:var(--navy);font:inherit;font-weight:700;text-align:left;cursor:pointer}.odoo-picker button:hover,.odoo-picker button:focus-visible,.odoo-picker button[aria-pressed=true]{outline:2px solid var(--purple);outline-offset:-2px}.odoo-picker img,.odoo-detail header img{width:40px;height:40px;object-fit:contain;flex:none}.odoo-detail{margin-top:12px;scroll-margin-top:24px}.odoo-detail header{display:flex;align-items:center;gap:14px}.odoo-need{margin-top:16px}.odoo-page .odoo-method{margin-top:56px}.odoo-close{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:56px;padding:28px;background:var(--navy);color:#f4f5f7}.odoo-close h2{margin:0;max-width:16ch;font-family:Unbounded,Outfit,sans-serif;font-size:clamp(1.6rem,3vw,2.2rem);letter-spacing:-.04em;line-height:1.1}.odoo-close p{max-width:46ch;color:#d5d8e0}.odoo-close .odoo-cta{flex:none;background:#fff;color:var(--navy)}.odoo-close .odoo-cta:hover,.odoo-close .odoo-cta:focus-visible{background:#f4f5f7;color:var(--purple)}#modulos,#caso,#casos{scroll-margin-top:24px}.apps-cases{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:16px 0 0;padding:0;list-style:none}.apps-cases a{display:flex;flex-direction:column;height:100%;background:#fff;color:inherit;text-decoration:none}.apps-cases a:hover,.apps-cases a:focus-visible{outline:2px solid var(--purple);outline-offset:-2px}.apps-cases img{display:block;width:100%;height:148px;object-fit:contain}.apps-cases div{display:flex;flex-direction:column;flex:1;padding:14px 16px 16px}.apps-cases p:first-child{margin:0;color:var(--purple);font-size:.78rem;font-weight:700}.apps-cases h3{margin:8px 0 0;font-family:Unbounded,Outfit,sans-serif;font-size:1.15rem;letter-spacing:-.03em}.apps-cases div p:last-of-type{margin:8px 0 0;color:var(--muted);line-height:1.4}.apps-cases span{margin-top:auto;padding-top:14px;font-weight:700}.web-format-lead{max-width:62ch;margin:10px 0 0;color:var(--muted);font-weight:500;line-height:1.45}.web-formats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:16px}.web-formats .web-when strong{color:var(--navy)}.web-formats article{display:flex;flex-direction:column;margin:0;padding:18px 20px;background:#fff}.web-formats article.is-here{box-shadow:inset 3px 0 0 var(--purple)}.web-formats h3{margin:0;font-family:Unbounded,Outfit,sans-serif;font-size:1.05rem;letter-spacing:-.03em}.web-formats p{margin:10px 0 0;color:var(--muted);line-height:1.45}.web-formats a,.web-formats span{margin-top:auto;padding-top:16px;color:var(--navy);font-weight:700;text-decoration:none}.web-formats a:hover,.web-formats a:focus-visible{color:var(--purple)}@media(max-width:800px){.web-formats{grid-template-columns:1fr}}.pwa-case{display:grid;grid-template-columns:minmax(260px,420px) minmax(0,1fr);margin-top:16px;background:#fff}.pwa-case img{width:100%;height:100%;min-height:220px;object-fit:contain;background:#000}.pwa-case div{padding:28px}.pwa-case h3{margin:0;font-family:Unbounded,Outfit,sans-serif;font-size:1.35rem;letter-spacing:-.03em}.pwa-case p,.pwa-case li{color:var(--muted);line-height:1.45}.pwa-case ul{margin:14px 0 0;padding:0 0 0 18px}.pwa-case li+li{margin-top:6px}.pwa-case a{display:inline-block;margin-top:18px;color:var(--navy);font-weight:700;text-decoration:none}.pwa-case a:hover,.pwa-case a:focus-visible{color:var(--purple)}.case-mark{display:grid;place-items:center;min-height:280px;margin:0}.case-mark img{width:100%;height:220px;object-fit:contain}.case-shots{display:flex;flex-wrap:wrap;align-items:flex-start;gap:12px;margin-top:16px}.case-shots img{max-width:100%;max-height:520px;width:auto;height:auto;background:#fff}.case-chapters{display:grid;gap:12px;margin:0;padding:0;list-style:none}.case-chapters li{display:grid;grid-template-columns:minmax(140px,200px) minmax(0,1fr);gap:28px;margin:0;padding:28px 32px;background:#fff}.case-chapters li>p{margin:0;color:var(--purple);font-weight:700}.case-chapters h2{display:flex;gap:12px;align-items:baseline;margin:0;font-family:Unbounded,Outfit,sans-serif;font-size:clamp(1.35rem,2vw,1.8rem);letter-spacing:-.04em;line-height:1.15}.case-chapters h2 span{color:var(--purple);font-size:.85em}.case-chapters li p{max-width:68ch}@media(max-width:800px){.pwa-case,.case-chapters li{grid-template-columns:1fr}}@media(max-width:800px){.odoo-hero,.odoo-proof,.odoo-outcomes,.odoo-fit,.odoo-picker,.odoo-groups,.odoo-page .odoo-method>ol{grid-template-columns:1fr}.odoo-close{align-items:flex-start;flex-direction:column}}@media(max-width:720px){.odoo-page{overflow-x:clip;padding:22px 18px 56px}.odoo-page .brand img{width:52px;height:52px}.odoo-page .wordmark{font-size:1.45rem}.odoo-page h1,.odoo-close h2{max-width:none}}.hero-cta{margin-top:clamp(12px,1.8dvh,22px)}.field-error{color:#8d1d3b;font-size:.85rem;font-weight:600}.contact-form .is-invalid{border-color:#8d1d3b}.captcha-pending{display:flex;align-items:center;justify-content:center;padding:6px;color:var(--muted);font-size:.75rem;font-weight:600;line-height:1.2;text-align:center}.office-address{margin-top:18px;font-style:normal}.office-address p{margin:0 0 4px}.office-label{font-weight:700}.office-address a{display:inline-block;margin:8px 14px 0 0;color:var(--purple);font-weight:700}.plain-page{max-width:720px;padding-top:36px}.plain-page h1,.plain-page h2{font-family:Unbounded,Outfit,sans-serif;letter-spacing:-.04em}.plain-page h1{margin:0;font-size:clamp(2rem,4vw,3.2rem);line-height:1}.plain-page h2{margin:0 0 8px;font-size:1.25rem}.plain-page section{margin-top:28px}.plain-page section p,.plain-page .odoo-lead{max-width:62ch}.plain-page .odoo-cta{margin-top:22px}.site-footer{display:flex;justify-content:space-between;gap:28px;padding:32px 40px 40px;background:var(--navy);color:#f4f5f7}.site-footer .office-address a,.site-footer nav a{color:#f4f5f7}.site-footer nav{display:flex;gap:18px;align-items:flex-start;font-weight:700}.cookie-banner{position:fixed;z-index:40;left:16px;right:16px;bottom:16px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 16px;max-width:calc(100vw - 32px);padding:14px 16px;background:#fff;border-left:4px solid var(--purple)}.cookie-banner p{margin:0;flex:1 1 180px;min-width:0}.cookie-banner a{color:var(--purple);font-weight:700}.cookie-banner div{display:flex;gap:8px}.cookie-banner button{border:1px solid var(--line);background:#fff;color:var(--navy);font:inherit;font-weight:700;padding:10px 14px;cursor:pointer}.cookie-accept{background:var(--navy);color:#f4f5f7;border-color:var(--navy)}.sticky-cta{display:none}body:has(.cookie-banner){padding-bottom:96px}@media(max-width:980px){.sticky-cta{position:fixed;z-index:35;left:12px;right:12px;bottom:12px;display:flex;justify-content:center;padding:14px 16px;background:var(--navy);color:#f4f5f7;font-weight:700;text-decoration:none}.cookie-banner{bottom:72px}body:has(.sticky-cta){padding-bottom:84px}body:has(.cookie-banner){padding-bottom:176px}.site-footer{flex-direction:column;padding:28px 18px 96px}}@media(max-width:720px){.hero .brand,.hero .copy{min-width:0;max-width:100%}.hero .brand img{width:48px;height:48px}.hero .wordmark{font-size:1.35rem}.hero .lang{margin-left:0}}@media(max-width:480px){.cookie-banner{flex-direction:column;align-items:stretch}.hero-cta{max-width:100%}.office-address a{display:block;margin-right:0}}
