@font-face{font-family:Manrope;src:url(assets/manrope-variable.ttf) format('truetype');font-weight:200 800;font-display:swap}
@font-face{font-family:Instrument;src:url(assets/instrument-sans-400.ttf) format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:Instrument;src:url(assets/instrument-sans-500.ttf) format('truetype');font-weight:500;font-display:swap}
@font-face{font-family:Instrument;src:url(assets/instrument-sans-600.ttf) format('truetype');font-weight:600;font-display:swap}

/* Orange marks the next action; burgundy anchors the brand; amber connects steps. */
:root{
  --paper:#f8f8f6;--soft:#efefeb;--card:#ffffff;--ink:#202126;--muted:#66696e;
  --line:#dddeda;--strong-line:#b9bcb8;--orange:#f58037;--amber:#ffc078;
  --wine:#632a38;--accent:#ab451f;--shadow:0 18px 55px #17202008;
  --display:Manrope,'Avenir Next',sans-serif;--body:Instrument,Arial,sans-serif;
  --max:1240px;--gutter:48px;--radius:20px;
  --sl-font-sans:Instrument,Arial,sans-serif;--sl-color-primary-600:#ab451f;
  --sl-color-primary-500:#bc542b;color-scheme:light;
}
html[data-theme=dark]{
  --paper:#141519;--soft:#1c1e23;--card:#23262c;--ink:#f7f8f5;--muted:#b6bcc4;
  --line:#3b4049;--strong-line:#646b77;--accent:#ffaf74;
  --shadow:0 20px 60px #00000020;--sl-color-primary-600:#ffaf74;
  --sl-color-primary-500:#ffc99e;color-scheme:dark;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:110px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:1rem;line-height:1.6;-webkit-font-smoothing:antialiased}
main{overflow:clip}
a{color:inherit;text-decoration:none}
button,input,textarea,select{font:inherit}
button{color:inherit;cursor:pointer}
img{max-width:100%;display:block}
h1,h2,h3,p,figure{margin:0}
h1,h2,h3{font-family:var(--display);font-weight:650;letter-spacing:-.052em;line-height:1.13;text-wrap:balance}
h2{font-size:clamp(2.25rem,3.65vw,3.25rem)}
h2>span{color:var(--muted)}
p{text-wrap:pretty}
a,button,summary{-webkit-tap-highlight-color:transparent}
sl-icon{vertical-align:middle;flex-shrink:0}
::selection{background:#ef8c51;color:#261b18}
:focus-visible{outline:3px solid var(--orange);outline-offset:5px}
.container{width:calc(100% - var(--gutter)*2);max-width:var(--max);margin-inline:auto}
.section{padding-block:100px}
.skip{position:fixed;top:-100px;left:20px;z-index:200;background:white;color:#222;padding:16px}
.skip:focus{top:15px}
.header{position:fixed;inset:0 0 auto;z-index:50;color:#fff;border-bottom:1px solid #ffffff1f;transition:background .25s,border-color .25s}
.header.scrolled{background:#141519f5;border-color:#ffffff15;backdrop-filter:blur(18px)}
.nav{min-height:84px;display:flex;align-items:center;justify-content:space-between;gap:30px}
.brand{display:inline-flex;align-items:center;gap:10px;line-height:1;font-family:var(--display);font-weight:800;font-size:1.22rem;letter-spacing:.015em}
.brand img{object-fit:contain}
.brand small{display:block;font-family:var(--body);font-size:.75rem;font-weight:400;letter-spacing:.055em;margin-top:7px;color:#c5c5ca}
.nav nav{display:flex;align-items:center;gap:34px}
.nav nav>a{font-size:.875rem;color:#d4d5da;padding:29px 0;position:relative}
.nav nav>a::after{content:'';position:absolute;bottom:16px;left:0;right:0;height:2px;background:var(--orange);transform:scaleX(0);transform-origin:left;transition:transform .25s}
.nav nav>a:hover,.nav nav>a[aria-current]{color:#fff}
.nav nav>a:hover::after,.nav nav>a[aria-current]::after{transform:scaleX(1)}
.nav-actions{display:flex;align-items:center;gap:13px}
.theme-toggle,.menu-toggle{width:42px;height:42px;display:grid;place-items:center;border:1px solid #ffffff30;border-radius:50%;background:transparent;color:#fff;font-size:1rem;transition:background .2s}
.theme-toggle:hover,.menu-toggle:hover{background:#ffffff15}
.nav-cta{display:inline-flex;align-items:center;gap:23px;border:1px solid #ffb37b77;padding:10px 17px;border-radius:7px;font-size:.875rem;transition:background .2s}
.nav-cta>span{font-size:1.3rem;color:var(--amber)}
.nav-cta:hover{background:#ffb37b15}
.menu-toggle{display:none}
.reading-progress{position:absolute;bottom:-1px;left:0;width:100%;height:2px;background:var(--orange);transform:scaleX(0);transform-origin:left}
.hero{position:relative;min-height:790px;isolation:isolate;overflow:hidden;background:#090a0c;color:#fff}
.hero-earth{position:absolute;z-index:-3;width:max(1200px,112vw);height:auto;max-width:none;top:-90px;left:50%;transform:translateX(-50%);opacity:.83;pointer-events:none}
.hero-shade{position:absolute;inset:0;z-index:-2;background:linear-gradient(180deg,#07090b12 0%,#0a0b0d65 22%,#0a0b0db8 60%,#0e1013 99%)}
.hero-content{position:relative;padding-top:175px;padding-bottom:44px;text-align:center}
.hero-location{display:inline-flex;align-items:center;gap:10px;color:#f2d9c5;font-size:.875rem;letter-spacing:.02em}
.signal-dot{display:inline-block;flex-shrink:0;width:6px;height:6px;border-radius:50%;background:var(--orange);box-shadow:0 0 0 4px #f5803718}
.hero h1{font-size:clamp(3rem,5.25vw,4.75rem);font-weight:650;letter-spacing:-.065em;line-height:1.1;margin:24px auto;max-width:1150px;text-shadow:0 5px 35px #0007}
.hero h1>span{color:#ffc08c}
.hero-lead{font-size:1.125rem;line-height:1.7;color:#e0dcd9;max-width:670px;margin-inline:auto}
.hero-actions{display:flex;align-items:center;justify-content:center;gap:32px;margin-top:32px}
.button{display:inline-flex;align-items:center;justify-content:space-between;gap:25px;padding:9px 9px 9px 22px;min-height:56px;font-size:.9375rem;font-weight:600;border-radius:8px;transition:background .25s,transform .25s,box-shadow .25s}
.button-warm{background:#ffb16e;color:#2c1e16;box-shadow:0 8px 28px #d5572718}
.button-warm:hover{background:#ffc18a;transform:translateY(-2px);box-shadow:0 12px 30px #d5572735}
.button-arrow{display:grid;place-items:center;width:37px;height:37px;font-size:1.375rem;border-radius:5px;background:#32201610;transition:transform .25s}
.button:hover .button-arrow{transform:rotate(7deg)}
.hero-secondary{font-size:.9375rem;display:flex;align-items:center;gap:25px;padding-block:10px;border-bottom:1px solid #ffffff50}
.hero-secondary>span{color:#ffb16e}
.hero-bottom{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:36px;align-items:center;text-align:left;margin-top:68px;padding-top:27px;border-top:1px solid #ffffff28}
.hero-bottom>div{border-right:1px solid #ffffff20;padding-right:25px}
.hero-bottom strong{display:flex;align-items:center;gap:32px;font-family:var(--display);font-size:1.65rem;font-weight:550;letter-spacing:-.04em}
.hero-bottom strong>span{font-size:1.1rem;color:#f3a56b;font-family:var(--body)}
.hero-bottom>div>span{display:block;color:#b7b8bd;font-size:.875rem;margin-top:5px}
.scroll-cue{display:grid;place-items:center;width:46px;height:46px;border:1px solid #ffffff44;border-radius:50%;color:#ffb37b;font-size:1.15rem;transition:transform .25s}
.scroll-cue:hover{transform:translateY(3px)}
.trust-band{background:var(--card);border-bottom:1px solid var(--line)}
.trust-inner{display:flex;align-items:center;justify-content:space-between;gap:40px;padding-block:27px}
.trust-inner>p{font-size:.9375rem;font-weight:500;line-height:1.4}
.trust-inner>p>span{display:block;color:var(--muted);font-size:.75rem;margin-top:6px;font-weight:400}
.proof-logos{display:flex;justify-content:space-around;align-items:center;gap:35px;flex:1}
.proof-logos img{width:100px;height:56px;object-fit:contain;background:white;padding:7px;border-radius:5px;mix-blend-mode:multiply}
html[data-theme=dark] .proof-logos img{mix-blend-mode:normal}
.circle-link{width:42px;height:42px;display:grid;place-items:center;flex-shrink:0;border:1px solid var(--line);border-radius:50%;font-size:1.35rem;color:var(--accent);transition:border-color .2s}
.circle-link:hover{border-color:var(--accent)}
.section-head{display:grid;grid-template-columns:1.4fr 1fr;gap:75px;align-items:end;margin-bottom:40px}
.section-head h2::before{content:'';display:block;width:29px;height:4px;background:var(--orange);margin-bottom:24px;border-radius:0 3px 0 0}
.section-head>p{color:var(--muted);max-width:405px;font-size:1rem;line-height:1.7}
.need-nav{display:grid;grid-template-columns:repeat(4,1fr);margin-bottom:34px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.need-nav a{display:flex;align-items:center;gap:12px;padding:22px 17px;font-size:.875rem;font-weight:500;position:relative;transition:background .2s,color .2s}
.need-nav a:first-child{padding-left:0}
.need-nav a:last-child{padding-right:0}
.need-nav sl-icon{color:var(--accent);font-size:1.15rem}
.need-nav a>span:last-child{margin-left:auto;color:var(--accent)}
.need-nav a:not(:last-child)::after{content:'';position:absolute;right:0;top:25px;bottom:25px;width:1px;background:var(--line)}
.need-nav a:hover{color:var(--accent);background:var(--soft)}
.product{border:1px solid var(--line);border-radius:var(--radius);background:var(--card);overflow:hidden;box-shadow:var(--shadow);transition:border-color .35s}
.product:hover{border-color:var(--strong-line)}
.product-feature{display:grid;grid-template-columns:1fr 1.06fr;min-height:565px}
.product-copy{padding:42px}
.product-brand{min-height:42px;display:flex;align-items:center;gap:17px;margin-bottom:29px;font-size:.875rem;color:var(--muted)}
.product-brand>sl-icon{font-size:1.75rem;color:var(--accent)}
.odoo-mark{font-size:2.35rem;font-weight:600;letter-spacing:-.065em;color:#875477;line-height:1}
.fleeti-mark{color:var(--ink);font-size:1.95rem;font-family:var(--display);letter-spacing:-.07em;line-height:1}
.fleeti-mark>span{color:var(--accent);margin-left:4px;font-family:var(--body);font-size:1.4rem}
.product h3{font-size:clamp(1.75rem,2.6vw,2.125rem);line-height:1.18;letter-spacing:-.048em}
.product h3>span{color:var(--muted)}
.product-copy>p{font-size:1rem;color:var(--muted);margin:21px 0 25px;line-height:1.7}
.feature-list{list-style:none;margin:0 0 29px;padding:0;font-size:.875rem;color:var(--muted)}
.feature-list li{position:relative;padding-left:20px;margin:11px 0}
.feature-list li:before{content:'';position:absolute;width:6px;height:6px;border-left:1.5px solid var(--accent);border-bottom:1.5px solid var(--accent);transform:rotate(-45deg);left:0;top:7px}
.text-link{display:inline-flex;align-items:center;justify-content:space-between;gap:20px;font-size:.9375rem;font-weight:500;color:var(--accent);padding-bottom:7px;border-bottom:1px solid color-mix(in srgb,currentColor 40%,transparent)}
.text-link>span{font-size:1.2rem;transition:transform .25s}
.text-link:hover{border-color:currentColor}
.text-link:hover>span{transform:translate(2px,-2px)}
.product-stage{display:flex;flex-direction:column;justify-content:center;overflow:hidden;position:relative;padding:50px 0 40px 36px}
.odoo-stage{background:#ede6ed;border-left:1px solid #dfd4dd}
.stage-path{display:flex;align-items:center;gap:0;color:#80516d;width:170px;margin:0 0 30px 15px}
.stage-path>i{width:7px;height:7px;border:1px solid currentColor;border-radius:50%}
.stage-path>span{height:1px;background:currentColor;flex:1;opacity:.35}
.screen-frame{display:block;width:114%;border:6px solid #2a2630;border-radius:13px;box-shadow:0 25px 55px #40214029;overflow:hidden;transform:perspective(1200px) rotateY(-7deg) rotateZ(-2deg);transition:transform .55s}
.screen-frame:hover{transform:perspective(1200px) rotateY(-3deg) rotateZ(0deg)}
.window-bar{display:flex;align-items:center;gap:6px;padding:5px 8px 10px;background:#2a2630;color:#d6c9d4;font-size:.75rem}
.window-bar i{width:5px;height:5px;border-radius:50%;background:#817080}
.window-bar>span{margin-left:14px;flex:1}
.window-bar>sl-icon{margin-right:75px}
.screen-frame img{width:100%;height:auto;aspect-ratio:1.7;object-fit:cover;object-position:top left}
.flow-chips{display:flex;align-items:center;justify-content:center;gap:12px;color:#67475e;margin:40px 36px 0 0;font-size:.8125rem}
.flow-chips>span{background:#ffffffa0;border:1px solid #fff;border-radius:6px;padding:9px 16px}
.flow-chips>b{font-weight:400;opacity:.65}
.product-grid,.compact-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:24px}
.product-half{display:flex;flex-direction:column}
.product-half .product-copy{padding:34px 36px 31px;flex:1;display:flex;flex-direction:column;align-items:flex-start}
.product-half .product-brand{margin-bottom:23px}
.product-half h3{font-size:1.875rem}
.product-half .product-copy>p{margin-bottom:26px}
.product-half .text-link{margin-top:auto}
.half-stage{display:block;position:relative;margin:0 12px 12px;border-radius:11px;overflow:hidden;aspect-ratio:1.57}
.half-stage img{width:100%;height:100%;object-fit:cover;transition:transform .7s}
.half-stage:hover img{transform:scale(1.035)}
.geo-stage{background:#ef8806}
.geo-stage img{object-fit:contain}
.fleeti-stage{background:#e4e9ee}
.zoom-control{position:absolute;bottom:15px;right:15px;display:grid;place-items:center;width:38px;height:38px;border:1px solid #ffffff99;border-radius:50%;color:#29221c;background:#ffffffe6}
.image-caption{position:absolute;inset:auto 0 0;display:flex;justify-content:space-between;align-items:center;padding:15px 20px;background:#171a1ded;color:#fff;font-size:.875rem}
.image-caption>span{color:#ffb984;font-size:1.15rem}
.compact-card{border:1px solid var(--line);border-radius:var(--radius);padding:34px 36px;background:var(--soft);display:flex;flex-direction:column;align-items:flex-start;overflow:hidden;position:relative}
.compact-top{display:flex;align-items:center;gap:12px;margin-bottom:26px;color:var(--muted);font-size:.875rem}
.compact-top>sl-icon{color:var(--accent);font-size:1.55rem}
.compact-card h3{font-size:1.7rem;line-height:1.25;letter-spacing:-.047em}
.compact-card h3>span{color:var(--muted)}
.compact-card>p{font-size:1rem;color:var(--muted);margin:20px 0}
.data-path{width:100%;display:flex;align-items:center;gap:12px;min-height:102px;margin:7px 0 27px}
.data-path>span{display:flex;flex-direction:column;align-items:center;gap:12px;flex-shrink:0;font-size:.75rem;color:var(--muted)}
.data-path sl-icon{font-size:1.7rem;color:var(--accent)}
.data-path>i{height:1px;background:var(--strong-line);flex:1;position:relative;top:-12px}
.data-path>i::after{content:'';position:absolute;width:4px;height:4px;background:var(--accent);right:0;top:-1.5px;border-radius:50%}
.bespoke-flow{display:flex;align-items:center;justify-content:space-between;position:relative;gap:16px;min-height:102px;width:100%;margin:7px 0 27px;color:var(--muted);font-size:.75rem}
.bespoke-flow::before{content:'';position:absolute;left:0;right:0;top:50%;height:1px;background:var(--strong-line)}
.bespoke-flow>span{position:relative;background:var(--soft);padding:7px}
.bespoke-flow>.flow-center{display:flex;flex-direction:column;align-items:center;gap:9px;border:1px solid var(--strong-line);border-radius:9px;padding:16px 20px;background:var(--card);color:var(--accent)}
.flow-center>sl-icon{font-size:1.5rem}
.compact-card>.text-link{margin-top:auto}
.projects-section{background:var(--soft);border-block:1px solid var(--line)}
.case-card{display:grid;grid-template-columns:1.05fr 1fr;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--card)}
.case-visual{position:relative;min-height:470px;background:#234453;overflow:hidden}
.case-visual>img{width:100%;height:100%;object-fit:cover;object-position:52% center;transition:transform .8s}
.case-visual::after{content:'';position:absolute;inset:45% 0 0;background:linear-gradient(transparent,#0b1e2acc)}
.case-photo-label{position:absolute;z-index:1;left:30px;right:30px;bottom:26px;display:flex;align-items:end;justify-content:space-between;color:#fff}
.case-photo-label>span:first-child{font-size:2.1rem;font-family:var(--display);font-weight:650;letter-spacing:-.04em}
.case-photo-label>span:last-child{font-size:.875rem}
.case-card:hover .case-visual>img{transform:scale(1.025)}
.case-copy{padding:38px 40px}
.case-client{display:inline-flex;font-size:.8125rem;font-weight:500;color:var(--accent);border-left:3px solid var(--orange);padding-left:11px;margin-bottom:23px}
.case-copy h3{font-size:1.95rem;line-height:1.2}
.case-copy>p{color:var(--muted);font-size:1rem;margin-top:22px}
.case-stats{display:grid;grid-template-columns:1fr 1.3fr;gap:25px;border-top:1px solid var(--line);margin-top:26px;padding-top:22px}
.case-stats strong{display:block;font-family:var(--display);font-size:3rem;line-height:1.1;font-weight:600;letter-spacing:-.065em;color:var(--ink)}
.case-stats span{display:block;color:var(--muted);font-size:.8125rem;margin-top:7px}
.case-copy .source-note{font-size:.75rem;line-height:1.6;margin:17px 0 22px;max-width:340px}
.reference-row{display:grid;grid-template-columns:1.1fr 1.1fr 1fr;align-items:center;gap:25px;padding-top:30px}
.reference-row>div{display:flex;align-items:center;gap:17px}
.reference-row img{width:70px;height:48px;object-fit:contain;background:white;padding:5px;border-radius:5px}
.reference-row strong{display:block;font-size:.9375rem;font-weight:500}
.reference-row p>span{display:block;font-size:.75rem;color:var(--muted);margin-top:3px}
.reference-row>a{display:flex;align-items:center;justify-content:space-between;font-size:.875rem;gap:15px;color:var(--accent)}
.reference-row>a>span{font-size:1.4rem}
.method{padding:90px 0;background:#232128;color:#faf4f0;border-top:3px solid #ce6b3d}
.method-title{display:grid;grid-template-columns:1.4fr 1fr;align-items:end;gap:75px}
.method-title h2>span{color:#ffb982}
.method-title p{color:#c5bec5;max-width:400px}
.method-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:55px;margin-top:52px;position:relative}
.method-track{position:absolute;left:0;right:0;top:24px;height:1px;background:#5e4c4e}
.method-track>span{display:block;width:100%;height:100%;background:#e69c68;transform-origin:left}
.method-steps>article{position:relative}
.step-number{display:grid;place-items:center;font-family:var(--display);font-size:.8125rem;width:48px;height:48px;border:1px solid #bf8664;border-radius:50%;color:#ffc493;background:#232128;margin-bottom:28px}
.method-steps h3{font-size:1.75rem}
.method-steps p{font-size:1rem;color:#c5bec5;margin-top:18px}
.step-outcome{display:inline-block;color:#eebc98;border-top:1px solid #675057;font-size:.8125rem;padding-top:13px;margin-top:24px}
.team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.team-card{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--card)}
.portrait{position:relative;aspect-ratio:1;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:24px;background:#662b3b;color:#ffd2aa;overflow:hidden}
.portrait:after{content:'';position:absolute;right:0;top:0;border-top:25px solid var(--card);border-left:25px solid transparent}
.portrait-index{position:absolute;top:21px;left:23px;font-size:.75rem;opacity:.8}
.portrait>sl-icon{font-size:3rem;transition:transform .45s}
.portrait-verb{font-family:var(--display);font-size:1.7rem;font-weight:600;letter-spacing:-.05em}
.portrait-verb>span{color:#ff9e5d}
.team-card:nth-child(2) .portrait{background:#353338;color:#e5d9d7}
.team-card:nth-child(3) .portrait{background:#b9542e;color:#fff1df}
.team-card:nth-child(4) .portrait{background:#e6a36b;color:#45251f}
.team-card:nth-child(4) .portrait-verb>span{color:#73332f}
.team-card:hover .portrait>sl-icon{transform:translateY(-5px)}
.portrait img{position:absolute;width:100%;height:100%;object-fit:cover;inset:0}
.team-caption{padding:22px 20px}
.team-caption h3{font-size:1.0625rem;letter-spacing:-.025em}
.team-caption p{font-size:.875rem;color:var(--muted);margin-top:8px;line-height:1.5}
.team-bottom{display:flex;align-items:center;justify-content:space-between;gap:25px;border-bottom:1px solid var(--line);padding:30px 0;font-size:.875rem}
.team-bottom>span{color:var(--muted);display:flex;align-items:center;gap:11px}
.team-bottom .text-link{font-size:.875rem}
.faq{display:grid;grid-template-columns:1fr 1.35fr;gap:85px;padding-bottom:100px}
.faq h2{font-size:2.25rem}
.faq details{border-bottom:1px solid var(--line)}
.faq details:first-child{border-top:1px solid var(--line)}
.faq summary{display:flex;align-items:center;justify-content:space-between;gap:25px;list-style:none;padding:22px 0;font-size:1rem;cursor:pointer;font-weight:500}
.faq summary::-webkit-details-marker{display:none}
.faq summary>span{display:grid;place-items:center;width:28px;height:28px;flex-shrink:0;border:1px solid var(--line);border-radius:50%;color:var(--accent);font-size:1.25rem;transition:transform .25s}
.faq details[open] summary>span{transform:rotate(45deg)}
.faq details p{color:var(--muted);font-size:1rem;padding:0 45px 24px 0}
.contact-section{background:#562732;color:#fff3e8;position:relative;overflow:hidden}
.contact-panel{display:grid;grid-template-columns:1.5fr 1fr;gap:70px;align-items:center;padding-block:80px}
.contact-copy h2{font-size:clamp(2.5rem,4.2vw,3.75rem);line-height:1.13}
.contact-copy h2>span{color:#ffb77c}
.contact-copy>p{font-size:1.0625rem;color:#e7cbd0;line-height:1.75;margin-top:26px}
.contact-actions{display:flex;align-items:center;gap:28px;margin-top:32px}
.contact-phone{font-size:1rem;white-space:nowrap;border-bottom:1px solid #b08680;padding-block:9px}
.contact-phone>span{margin-left:13px;color:#ffb77c}
.contact-signature{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:28px;position:relative;border-left:1px solid #ca969443;min-height:310px}
.contact-signature img{width:180px;height:180px;object-fit:contain;filter:drop-shadow(0 18px 35px #260b2040)}
.contact-signature>span{font-size:.9375rem;letter-spacing:.03em;color:#e8c6bf}
.signature-line{display:flex;align-items:center;gap:0;width:125px;color:#ffb77c}
.signature-line>i{width:5px;height:5px;border-radius:50%;background:currentColor}
.signature-line>span{height:1px;flex:1;background:currentColor;opacity:.45}
.footer{background:#151518;color:#f3f2f0;padding:46px 0 24px}
.footer-main{display:flex;justify-content:space-between;align-items:center;gap:35px}
.footer-main>p{font-size:.875rem;color:#aaaab1;line-height:1.7}
.footer-main>a:last-child{font-size:.9375rem}
.footer-main>a:last-child>span{color:#ffb77c;margin-left:16px}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;gap:25px;border-top:1px solid #ffffff20;padding-top:22px;margin-top:35px;color:#aaaab1;font-size:.75rem}
.footer-bottom nav{display:flex;gap:22px}
.footer a:hover{color:#ffb77c}
sl-dialog{--width:min(1150px,95vw)}
sl-dialog::part(panel){background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:16px}
sl-dialog::part(body){padding:12px}
sl-dialog img{width:100%;height:auto;max-height:75vh;object-fit:contain}
sl-dialog:not(:defined){display:none}
html[data-theme=dark] .odoo-mark{color:#e1acd2}
html[data-theme=dark] .odoo-stage{background:#413240;border-color:#635164}
html[data-theme=dark] .stage-path{color:#d9b1cd}
html[data-theme=dark] .flow-chips{color:#eed8e5}
html[data-theme=dark] .flow-chips>span{background:#ffffff0d;border-color:#a6819d66}
html[data-theme=dark] .product,html[data-theme=dark] .compact-card{box-shadow:inset 0 1px #ffffff0a,var(--shadow)}
html[data-theme=dark] .projects-section{background:#191b20}
html[data-theme=dark] .compact-card{background:#202329}
html[data-theme=dark] .bespoke-flow>span{background:#202329}
html[data-theme=dark] .bespoke-flow>.flow-center{background:#31343c}

/* Compact layouts retain the order of information and comfortable reading sizes. */
@media(min-width:1650px){.hero-earth{top:-170px}.hero-content{padding-top:190px}.hero{min-height:820px}}
@media(max-width:1100px){
  :root{--gutter:32px}.nav{gap:22px}.nav nav{gap:23px}.nav-cta{gap:15px}
  .hero{min-height:760px}.hero-earth{top:-15px}.hero-content{padding-top:172px}
  .hero h1{font-size:5.5vw}.hero-bottom{gap:25px}.hero-bottom strong{font-size:1.4rem;gap:20px}
  .section-head,.method-title{gap:45px}.section{padding-block:80px}
  .trust-inner{gap:27px}.proof-logos{gap:23px}
  .need-nav a{font-size:.8125rem;gap:9px;padding:20px 12px}
  .product-copy{padding:32px}.product-feature{grid-template-columns:1.1fr 1fr}
  .product-brand{gap:13px}.product-half .product-copy{padding:29px}
  .product-half h3{font-size:1.65rem}.compact-card{padding:29px}.compact-card h3{font-size:1.55rem}
  .case-copy{padding:31px}.case-copy h3{font-size:1.7rem}
  .method-steps{gap:35px}.team-grid{gap:16px}.team-caption{padding:20px 16px}
  .team-caption h3{font-size:1rem}.portrait-verb{font-size:1.5rem}
  .faq{gap:55px;padding-bottom:80px}.contact-panel{gap:45px}.contact-actions{gap:20px}
}
@media(max-width:900px){
  .nav-cta{display:none}.nav nav{gap:30px}.hero-bottom{gap:20px}
  .hero-bottom>div>span{font-size:.8125rem}.proof-logos{gap:15px}.proof-logos img{width:85px}
  .need-nav{grid-template-columns:1fr 1fr}.need-nav a{font-size:.875rem;padding:18px!important}
  .need-nav a:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .need-nav a:nth-child(2)::after{display:none}
  .product-feature{grid-template-columns:1fr}.product-stage{border-left:0;padding:35px 0 35px 60px}
  .stage-path{margin-bottom:25px}.screen-frame{width:105%}.screen-frame img{aspect-ratio:2.2}
  .product-feature .product-copy{padding:38px}.product-feature h3{font-size:2.125rem}
  .product-feature .product-copy>p{max-width:590px}.flow-chips{margin-top:30px}
  .product-half .product-brand{flex-wrap:wrap;gap:12px}.product-half .product-brand>span{font-size:.8125rem}
  .half-stage{aspect-ratio:1.35}.image-caption{font-size:.75rem;padding:12px}
  .data-path{gap:9px}.data-path>span{font-size:.75rem}.bespoke-flow{gap:8px}
  .bespoke-flow>.flow-center{padding:12px}.reference-row{grid-template-columns:1fr 1fr}
  .reference-row>a{grid-column:1/-1;max-width:320px;margin-top:10px}
  .team-grid{grid-template-columns:repeat(2,1fr);gap:24px}.portrait{aspect-ratio:1.25}
  .portrait>sl-icon{font-size:3.5rem}.portrait-verb{font-size:2rem}.team-caption{padding:23px}
  .team-caption h3{font-size:1.125rem}.contact-panel{grid-template-columns:1.6fr 1fr;gap:25px}
  .contact-actions{flex-direction:column;align-items:flex-start;gap:20px}.contact-signature img{width:135px;height:135px}
}
@media(max-width:700px){
  :root{--gutter:24px;--radius:16px}html{scroll-padding-top:93px}
  .nav{min-height:74px}.brand{font-size:1.125rem}.brand img{width:33px;height:33px}.brand small{font-size:.75rem}
  .nav nav{display:none}.menu-toggle{display:grid}.nav-actions{gap:9px}
  .nav nav.open{display:flex;position:absolute;top:82px;left:20px;right:20px;flex-direction:column;align-items:stretch;gap:0;padding:15px 25px;border:1px solid #ffffff30;background:#1a1c21fa;backdrop-filter:blur(18px);border-radius:12px;box-shadow:0 20px 50px #0004}
  .nav nav.open>a{padding:16px 0;font-size:1rem}.nav nav.open>a::after{bottom:7px}
  .hero{min-height:750px}.hero-content{padding-top:147px;padding-bottom:34px}
  .hero-earth{width:1200px;top:28px;left:58%;opacity:.78}
  .hero h1{font-size:clamp(2.625rem,7.4vw,3.25rem);line-height:1.12;max-width:580px;margin-block:24px}
  .hero-location{font-size:.8125rem}.hero-lead{font-size:1rem;max-width:500px}
  .hero-actions{gap:25px}.hero-bottom{grid-template-columns:1fr 1fr 1fr;gap:22px;margin-top:49px}
  .hero-bottom>div{padding-right:10px}.hero-bottom>div:nth-child(3){border-right:none}
  .hero-bottom strong{font-size:1.2rem;gap:12px}.hero-bottom strong>span{display:none}
  .hero-bottom>div>span{font-size:.75rem}.scroll-cue{display:none}
  .trust-inner{padding-block:25px;flex-wrap:wrap;gap:22px}
  .trust-inner>p{width:100%;display:flex;align-items:center;justify-content:space-between;gap:15px}
  .trust-inner>p>span{margin:0}.proof-logos{justify-content:space-between}.proof-logos img{width:87px;height:50px}
  .circle-link{width:35px;height:35px}.section{padding-block:65px}
  .section-head{grid-template-columns:1fr;gap:23px;margin-bottom:30px}
  .section-head h2{font-size:2.5rem}.section-head h2::before{margin-bottom:21px}
  .section-head>p{max-width:570px}.need-nav{margin-bottom:26px}
  .product-grid,.compact-grid{grid-template-columns:1fr;gap:22px;margin-top:22px}
  .product-feature .product-copy,.product-half .product-copy{padding:30px}
  .product-feature h3,.product-half h3{font-size:1.875rem}
  .product-stage{padding:27px 0 30px 30px}.screen-frame img{aspect-ratio:1.7}
  .product-half .product-brand{flex-wrap:nowrap}.half-stage{aspect-ratio:1.57}
  .product-half .product-brand>span{font-size:.875rem}.compact-card{padding:30px}
  .compact-card h3{font-size:1.8rem}.compact-card>p{max-width:560px}
  .data-path{max-width:430px;margin-block:13px 25px}.bespoke-flow{max-width:430px;margin-block:13px 25px}
  .case-card{grid-template-columns:1fr}.case-visual{min-height:0;aspect-ratio:1.5}
  .case-copy{padding:30px}.case-copy h3{font-size:1.95rem}.case-stats{max-width:390px}
  .reference-row{gap:22px}.reference-row>div{gap:12px}.reference-row img{width:55px}
  .method{padding:65px 0}.method-title{grid-template-columns:1fr;gap:24px}
  .method-title h2{font-size:2.5rem}.method-title p{max-width:570px}
  .method-steps{grid-template-columns:1fr;gap:35px;margin-top:40px}
  .method-steps>article{padding-left:72px}.step-number{position:absolute;top:0;left:0}
  .method-track{top:0;bottom:0;left:24px;right:auto;width:1px;height:auto}
  .method-track>span{transform-origin:top}.method-steps p{margin-top:13px;max-width:520px}
  .step-outcome{margin-top:17px;padding-top:11px}.team-grid{gap:18px}
  .team-bottom{align-items:flex-start}.faq{grid-template-columns:1fr;gap:28px;padding-bottom:65px}
  .faq h2{font-size:2.25rem}.faq summary{font-size:1rem}
  .contact-panel{padding-block:60px;grid-template-columns:1fr}.contact-signature{display:none}
  .contact-copy h2{font-size:2.75rem}.contact-copy>p{font-size:1rem}
  .contact-actions{flex-direction:row;align-items:center;flex-wrap:wrap;gap:23px}
  .footer-main{flex-wrap:wrap;gap:27px}.footer-main>.brand{width:100%}
  .footer-bottom{flex-wrap:wrap;gap:20px}.footer-bottom>span{width:100%}
}
@media(max-width:430px){
  :root{--gutter:19px}.theme-toggle,.menu-toggle{width:38px;height:38px}
  .nav{gap:15px}.nav-actions{gap:7px}.hero{min-height:810px}
  .hero-content{padding-top:135px}.hero h1{font-size:2.6rem;max-width:355px;letter-spacing:-.06em}
  .hero-lead br{display:none}.hero-actions{flex-direction:column;gap:15px;margin-top:27px}
  .hero-actions .button{min-width:252px}.hero-secondary{font-size:.875rem}
  .hero-bottom{margin-top:37px;gap:16px;padding-top:23px}
  .hero-bottom strong{font-size:1.05rem}.hero-bottom>div{padding-right:8px}.hero-bottom>div>span{font-size:.75rem;line-height:1.5}
  .trust-inner>p{display:block}.trust-inner>p>span{margin-top:5px}
  .proof-logos{gap:9px}.proof-logos img{width:65px;height:43px;padding:5px}
  .trust-inner{gap:20px}.circle-link{width:31px;height:31px;font-size:1.125rem}
  .section-head h2,.method-title h2{font-size:2.15rem}.need-nav a{font-size:.8125rem;padding:16px 10px!important;gap:8px}
  .need-nav sl-icon{font-size:1rem}.product-feature .product-copy,.product-half .product-copy,.compact-card{padding:25px}
  .product-feature h3,.product-half h3{font-size:1.7rem}.product-brand{font-size:.8125rem}
  .product-copy>p{font-size:1rem}.feature-list{font-size:.875rem}.text-link{font-size:.875rem;gap:15px}
  .window-bar{font-size:.75rem}.flow-chips{gap:10px;margin-right:25px;font-size:.75rem}
  .flow-chips>span{padding:8px 11px}.half-stage{margin:0 9px 9px;border-radius:9px}
  .compact-card h3{font-size:1.6rem}.case-copy{padding:26px}.case-copy h3{font-size:1.75rem}
  .case-stats{gap:20px}.case-stats strong{font-size:2.65rem}
  .reference-row{grid-template-columns:1fr}.reference-row>a{grid-column:auto;margin-top:0}
  .reference-row p>span{font-size:.8125rem}.case-photo-label{left:23px;right:23px;bottom:20px}
  .method-steps>article{padding-left:65px}.method-steps h3{font-size:1.65rem}
  .portrait{aspect-ratio:.9;gap:20px}.portrait>sl-icon{font-size:2.5rem}
  .portrait-index{top:15px;left:17px}.portrait-verb{font-size:1.5rem}
  .team-caption{padding:18px 15px}.team-caption h3{font-size:1rem;line-height:1.3}.team-caption p{font-size:.8125rem}
  .team-bottom{flex-direction:column;gap:20px;padding-block:25px}
  .faq h2{font-size:2rem}.faq details p{padding-right:0}
  .contact-copy h2{font-size:2.4rem}.contact-actions{align-items:flex-start;flex-direction:column}
  .footer-bottom nav{gap:20px}
}
.hub-heading{text-align:center;margin-bottom:35px}
.hub-kicker{font-size:.75rem;text-transform:uppercase;letter-spacing:.13em;color:var(--accent);font-weight:600;margin-bottom:19px}
.hub-heading>p:last-child{color:var(--muted);font-size:1rem;margin-top:23px}
.solutions-tabs{--indicator-color:var(--orange);--track-color:var(--line);--track-width:1px}
.solutions-tabs::part(nav){justify-content:center;gap:8px}
.solutions-tabs::part(body){padding-top:24px}
.solutions-tabs sl-tab::part(base){font-family:var(--body);font-size:.9375rem;color:var(--muted);padding:18px 25px}
.solutions-tabs sl-tab[active]::part(base){color:var(--ink);background:var(--soft);border-radius:8px 8px 0 0}
.solutions-tabs sl-tab-panel::part(base){padding:0}
.solutions-tabs .product-half{display:grid;grid-template-columns:1fr 1.06fr;min-height:565px}
.solutions-tabs .product-half .product-copy{justify-content:center;padding:42px}
.solutions-tabs .product-half .text-link{margin-top:0}
.solutions-tabs .half-stage{align-self:center;margin:20px;aspect-ratio:1.3}
.solutions-tabs .compact-card{display:grid;grid-template-columns:1fr 1.06fr;padding:0;min-height:565px;align-items:stretch;background:var(--card)}
.tab-compact-copy{padding:42px;align-self:center}
.tab-compact-copy>p{color:var(--muted);margin:22px 0 30px;font-size:1rem}
.solutions-tabs .editorial-visual{margin:0;width:100%;height:100%;aspect-ratio:auto;min-height:380px}
.solutions-tabs .editorial-visual img{object-fit:cover;object-position:center}
.hub-foot{display:flex;align-items:center;justify-content:space-between;gap:25px;margin-top:25px;font-size:.875rem;color:var(--muted)}
sl-tab-group:not(:defined)>sl-tab{display:none}
sl-tab-panel:not(:defined){display:block;margin-top:24px}
@media(max-width:900px){.solutions-tabs .product-half,.solutions-tabs .compact-card{grid-template-columns:1fr;min-height:0}.solutions-tabs .half-stage{aspect-ratio:1.7}.solutions-tabs .editorial-visual{height:300px;min-height:0}}
@media(max-width:700px){.solutions-tabs::part(nav){justify-content:flex-start;gap:0}.solutions-tabs sl-tab::part(base){font-size:.875rem;padding:16px 20px}.solutions-tabs .product-half .product-copy,.tab-compact-copy{padding:28px}.hub-heading h2{font-size:2.25rem}.hub-foot{flex-direction:column;align-items:flex-start;gap:13px}.solutions-tabs .half-stage{margin:12px}.solutions-tabs .editorial-visual{height:250px}}
.hero-art-caption{position:absolute;bottom:13px;right:var(--gutter);color:#bebdb9;font-size:.75rem;z-index:2}
html[data-hero=terre] .hero-art-caption{display:none}
html[data-hero=terrain] .hero-earth{width:100%;height:110%;object-fit:cover;object-position:center;left:0;top:-5%;transform:none;opacity:1}
html[data-hero=terrain] .hero-shade{background:radial-gradient(ellipse at 50% 36%,#0b101399,transparent 78%),linear-gradient(0deg,#0e1013 0%,#0e101370 35%,#0e101345 100%)}
html[data-hero=terrain] .hero-content{text-align:center;padding-top:168px;padding-bottom:49px}
html[data-hero=terrain] .hero h1{max-width:1100px;font-size:clamp(3rem,4.7vw,4.4rem);margin-inline:auto;text-wrap:balance}
html[data-hero=terrain] .hero h1>span{display:inline-block;max-width:1000px}
html[data-hero=terrain] .hero-lead{max-width:660px;margin-inline:auto;font-size:1.0625rem}
html[data-hero=terrain] .hero-lead br{display:none}
html[data-hero=terrain] .hero-actions{justify-content:center}
html[data-hero=terrain] .hero-bottom{margin-top:66px}
.editorial-visual{width:calc(100% + 72px);margin:8px -36px 27px;aspect-ratio:1.85;overflow:hidden;background:#d6c1a1}
.editorial-visual img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.compact-card:hover .editorial-visual img{transform:scale(1.025)}
.portrait-disclosure{font-size:.75rem;color:var(--muted);margin-top:17px}
@media(max-width:1100px){.editorial-visual{width:calc(100% + 58px);margin-inline:-29px}html[data-hero=terrain] .hero h1{max-width:610px}html[data-hero=terrain] .hero-lead{max-width:500px}}
@media(max-width:700px){
  html[data-hero=terrain] .hero-earth{object-position:68% center}
  html[data-hero=terrain] .hero-shade{background:linear-gradient(90deg,#0b1013e3,#0b10134a),linear-gradient(0deg,#0e1013,transparent 65%)}
  html[data-hero=terrain] .hero-content{padding-top:140px;padding-bottom:52px}
  html[data-hero=terrain] .hero h1{font-size:2.8rem;max-width:540px}
  html[data-hero=terrain] .hero h1>span{max-width:480px}
  html[data-hero=terrain] .hero-actions{align-items:center}
  html[data-hero=terrain] .hero-bottom{margin-top:42px}
  .editorial-visual{width:calc(100% + 60px);margin-inline:-30px;aspect-ratio:1.7}
}
@media(max-width:430px){html[data-hero=terrain] .hero h1{font-size:2.45rem}html[data-hero=terrain] .hero-lead{font-size:1rem}.editorial-visual{width:calc(100% + 50px);margin-inline:-25px}.hero-art-caption{font-size:.75rem;left:var(--gutter);right:auto}}
.logos-viewport{min-width:0;flex:1;overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}
.logos-track{display:flex;width:max-content}
.logos-group{display:flex;align-items:center;justify-content:space-around;min-width:1000px;gap:38px;padding-right:38px}
.logos-group img{flex-shrink:0;width:130px;height:60px;object-fit:contain;background:#fff;padding:8px;border-radius:5px}
.logos-group[aria-hidden=true]{display:none}
.logos-viewport:not(.has-motion) .logos-track{width:100%}
.logos-viewport:not(.has-motion) .logos-group{min-width:0;flex-wrap:wrap;padding-right:0;gap:18px;justify-content:space-evenly}
.has-motion .logos-group[aria-hidden=true]{display:flex}
.has-motion .logos-track{animation:client-flow 36s linear infinite}
.logos-viewport.is-paused .logos-track,.logos-viewport:hover .logos-track{animation-play-state:paused}
.logos-toggle{display:none;place-items:center;width:40px;height:40px;flex-shrink:0;border:1px solid var(--line);background:var(--card);color:var(--accent);border-radius:50%;font-size:1rem}
.logos-viewport.has-motion+.logos-toggle{display:grid}
.logos-toggle[hidden]{display:none}
@keyframes client-flow{to{transform:translateX(-50%)}}
@media(max-width:700px){.trust-inner{gap:19px}.logos-group{min-width:850px;gap:32px;padding-right:32px}.logos-group img{width:118px;height:54px}.logos-toggle{width:36px;height:36px}}
@media(prefers-reduced-motion:reduce){
  .logos-viewport{mask-image:none;overflow:visible}
  .logos-group{min-width:0;flex-wrap:wrap;gap:18px;padding:0;justify-content:flex-start}
  .logos-track{width:auto}.trust-inner{flex-wrap:wrap}.logos-viewport{flex-basis:100%}
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
}
