:root{--control-shape:polygon(0 8px,32px 0,100% 0,100% calc(100% - 8px),calc(100% - 32px) 100%,0 100%);--brand-ease:cubic-bezier(.22,.61,.36,1);--band-top:polygon(7.3% 22.3%,99.7% 0,99.7% 21.6%,7.3% 44.7%);--band-mid:polygon(7.3% 52.2%,47.2% 37.8%,100% 50.3%,100% 72.6%);--band-low:polygon(0 81.3%,57.5% 66.3%,100% 77.7%,24.8% 99.4%,0 99.4%)}
.hero{background:#0c0f0e;min-height:680px;height:calc(100svh - 104px);max-height:900px;overflow:hidden}
.hero:after{display:none}
.hero-content{position:relative;z-index:2;width:55%;max-width:820px;padding:64px var(--gutter) 120px}
.hero h1{font-size:clamp(46px,4.8vw,76px);line-height:1.32}
html[lang=en] .hero h1{font-size:clamp(60px,5.8vw,90px);line-height:1.04}
.hero p{font-size:15px;max-width:39ch;color:#cbd0c3}.hero .eyebrow{color:#bac2ac}
.hero .actions{gap:24px}.hero .text-link{font-size:12px}
.hero-image{inset:auto;inset-inline-end:5.5%;top:50%;width:39%;aspect-ratio:100/120;max-height:600px;transform:translateY(-55%);z-index:0;overflow:visible}
.image-band{position:absolute;inset:0;transition:transform 1s var(--brand-ease);background:#626957;overflow:hidden}
.image-band:first-child{clip-path:var(--band-top)}.image-band:nth-child(2){clip-path:var(--band-mid)}.image-band:last-child{clip-path:var(--band-low)}
.hero-image .image-band img{width:100%;height:100%;object-fit:cover;object-position:52% center;filter:saturate(.55) brightness(1.08)}
.image-band:nth-child(2):after{content:'';position:absolute;inset:0;background:#626957;opacity:.56;mix-blend-mode:color}
.hero-image:after{content:'';position:absolute;inset:-14px;border-block:1px solid #bac2ac26;pointer-events:none}
.hero-bottom{border-top-color:#bac2ac38}
.button{--action-bg:var(--ink);--action-fg:var(--paper);position:relative;isolation:isolate;background:transparent!important;color:var(--action-fg);min-height:62px;border:0;transition:color .3s;overflow:visible}
.button:has(>.button-label){padding:0;gap:8px;overflow:visible;justify-content:space-between}
.button>.button-label{position:relative;z-index:2;padding:18px 28px;flex:1;text-align:start}
.button:before{content:'';position:absolute;inset:0;z-index:-1;background:var(--action-bg);clip-path:var(--control-shape);pointer-events:none}
.hero .button,.specialist-head .button{--action-bg:var(--paper);--action-fg:var(--ink);color:var(--action-fg)}
.button.outline{--action-bg:#e0e3d8;--action-fg:var(--ink);border:0}
.action-layers{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden;direction:ltr;clip-path:var(--control-shape)}
.action-layers i{position:absolute;inset:0;background:#515e43;transform:translateX(-101%);transition:transform .75s var(--brand-ease)}
.action-layers i:first-child{clip-path:polygon(0 0,100% 0,100% 46%,0 26%);transition-delay:0s}
.action-layers i:nth-child(2){clip-path:polygon(0 24%,100% 44%,100% 79%,0 59%);transform:translateX(101%);transition-delay:.035s;background:#58664a}
.action-layers i:last-child{clip-path:polygon(0 57%,100% 77%,100% 100%,0 100%);transition-delay:.07s}
.button:focus-visible{outline:2px solid var(--olive);outline-offset:5px;box-shadow:none}
.button:not(:has(.action-layers)):focus-visible:before{background:var(--olive)}
.button:active{transform:translateY(1px)}
.button>.arrow,.button>.ui-icon{position:relative;z-index:2;align-self:center;background:none!important;border:0;width:54px;height:54px;padding:16px;color:inherit!important}
.header-quote.button{min-height:48px}.header-quote.button>.button-label{padding:13px 22px}
.arrow{position:relative;width:28px;height:34px;display:inline-flex;align-items:center;justify-content:center;color:inherit}
.arrow>svg{width:22px;height:22px;opacity:1;transition:transform .6s var(--brand-ease)}
.text-link,.text-button{position:relative;border-bottom:1px solid var(--line);padding-bottom:10px;transition:color .25s}
.text-link:after,.text-button:after{content:'';position:absolute;bottom:-1px;inset-inline:0;height:2px;background:var(--olive);transform:scaleX(0);transform-origin:left;transition:transform .45s var(--brand-ease)}
html[dir=rtl] :is(.text-link,.text-button):after{transform-origin:right}.hero .text-link{border-bottom-color:#bac2ac65;color:var(--paper)}
.header nav>a{position:relative;border-bottom:0!important;padding-inline:0}
.header nav>a:after{content:'';position:absolute;bottom:0;inset-inline:0;height:3px;background:var(--olive);clip-path:polygon(0 60%,100% 0,100% 40%,0 100%);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--brand-ease)}
html[dir=rtl] .header nav>a:after{transform-origin:right}
.header nav>a[aria-current]:after,.header nav>a:focus-visible:after{transform:scaleX(1)}
.language{border:0;padding:10px 3px;min-width:36px}.header{gap:32px;flex-direction:row-reverse}.header nav{gap:22px}
.specialist-grid article{position:relative;border-top:1px solid var(--line);padding-top:28px}
.specialist-grid article:before{content:'';position:absolute;top:-1px;inset-inline-start:0;width:64px;height:5px;background:var(--olive);clip-path:polygon(0 0,40% 0,100% 65%,100% 100%,0 35%);transition:width .5s var(--brand-ease)}
.specialist-grid h3 a,.sector h3 a{transition:color .25s}
.sector-image:after{content:'';position:absolute;inset-inline:0;bottom:-1px;height:24px;background:var(--paper);clip-path:polygon(0 75%,55% 0,100% 75%,100% 100%,0 100%);transition:height .5s var(--brand-ease)}
.sector-0 .sector-image:after{background:#e1e3d8}.sector-image img{transition:transform .7s var(--brand-ease)}
.image-index{border:0;background:#101211d9}.scope-list li>span,.step-number,.sector-nav a>span{color:var(--olive)}.workflow .step-number{color:var(--sage)}
.faq summary span{color:var(--olive)}.faq details[open]{border-bottom-color:var(--olive)}
.footer{background:#0c0f0e}.closing{background:#dde0d3;position:relative;border-top:0}
.closing:before{content:'';position:absolute;top:0;inset-inline:var(--gutter);height:7px;background:var(--olive);clip-path:polygon(0 0,32% 0,35% 100%,0 100%,0 0,38% 0,64% 0,67% 100%,38% 100%,38% 0,70% 0,100% 0,100% 100%,73% 100%,70% 0)}
.specialist-head:before{content:none}
.contact-grid{grid-template-columns:1.2fr .8fr}
@media(max-width:900px){.contact-grid{grid-template-columns:1fr}}
.contact-grid form{border-top:3px solid var(--olive)}.brief-steps li[aria-current]:after{height:3px;background:var(--olive)}
.contact-grid :is(input,select,textarea):focus-visible{outline:2px solid var(--olive);outline-offset:3px;border-color:var(--olive);background:#fffef8}
.review-brand{border-bottom:1px solid #a9b29c}.site-notice:before{display:none}
.loader-track{position:relative;display:block;width:40px;height:48px;margin:30px auto 24px;background:none;overflow:visible}
.loader-track span{position:absolute;inset:0;display:block;width:100%;height:100%;background:var(--paper);animation:layer-assemble 1.9s var(--brand-ease) infinite}
.loader-track span:first-child{clip-path:var(--band-top);--entry:-13px}.loader-track span:nth-child(2){clip-path:var(--band-mid);background:#879469;--entry:13px;animation-delay:.12s}.loader-track span:last-child{clip-path:var(--band-low);--entry:-13px;animation-delay:.24s}
.loader-skip{border:1px solid #68735a;padding:10px 18px}
@keyframes layer-assemble{0%,15%{transform:translateX(var(--entry));opacity:.2}45%,85%{transform:translateX(0);opacity:1}100%{transform:translateX(var(--entry));opacity:.2}}
@keyframes mark-pending{50%{opacity:.35}}
.button:focus-visible{color:var(--paper)}
.button:focus-visible .action-layers i{transform:translateX(0)}
.button:focus-visible .action-layers i:nth-child(2){transform:translateX(0)}
a:focus-visible>.arrow>svg{opacity:1;transform:translate(3px,-3px)}
.text-link:focus-visible:after,.text-button:focus-visible:after{transform:scaleX(1)}
.sector:focus-within .sector-image:after{height:40px}.specialist-grid article:focus-within:before{width:100%}
.hero:has(.button:focus-visible) .image-band:first-child{transform:translate(6px,-3px)}.hero:has(.button:focus-visible) .image-band:last-child{transform:translate(-6px,3px)}
@media(hover:hover) and (pointer:fine){
.button:not(:has(.action-layers)):hover:before{background:var(--olive)}
.header nav>a:hover:after{transform:scaleX(1)}
.button.solid:hover,.button.outline:hover,.hero .button:hover,.specialist-head .button:hover{color:var(--paper)}
.button:hover .action-layers i{transform:translateX(0)}.button:hover .action-layers i:nth-child(2){transform:translateX(0)}
:is(.text-link,.related a):hover>.arrow>svg{opacity:1;transform:translate(3px,-3px)}
.text-link:hover:after,.text-button:hover:after{transform:scaleX(1)}
.sector:hover .sector-image:after{height:40px}.sector:hover .sector-image img{transform:scale(1.035)}.sector:hover h3 a,.specialist-grid article:hover h3 a{color:var(--olive)}
.sector:hover .text-link>.arrow>svg,.specialist-grid article:hover .text-link>.arrow>svg{opacity:1;transform:translate(3px,-3px)}
.specialist-grid article:hover:before{width:100%}.footer a:hover{color:var(--sage)}
.hero:has(.button:hover) .image-band:first-child{transform:translate(6px,-3px)}.hero:has(.button:hover) .image-band:last-child{transform:translate(-6px,3px)}
}
@media(min-width:761px) and (max-width:1050px){.header{gap:20px}.header nav{gap:12px}.header nav>a{font-size:12px}.header-tools{gap:12px}.header-quote.button>.button-label{padding-inline:12px}.hero-content{width:58%}.hero h1{font-size:48px}.hero-image{width:36%;inset-inline-end:4%}.hero .actions{gap:18px}.hero .text-link{gap:16px}}
@media(max-width:760px){
:root{--gutter:20px}html{scroll-padding-top:92px;scroll-padding-bottom:90px}
.header{height:72px;padding-block:8px;gap:12px}.header .logo{width:116px}.header-tools{gap:10px}.language{min-width:38px;min-height:44px;display:grid;place-items:center;padding:0;font-size:12px}
.header nav{top:72px;height:calc(100dvh - 72px);max-height:calc(100dvh - 72px);padding:12px var(--gutter) calc(24px + env(safe-area-inset-bottom))}
.header nav>a{font-size:25px;min-height:66px;padding:13px 0;border-bottom:1px solid var(--line)!important}
.header nav>a>span:last-child{position:static}html[lang=en] .header nav>a>span:last-child{font-size:33px}.header nav .menu-contact{padding-top:24px;gap:14px}.header nav .menu-contact .phone{font-size:22px}
.menu-toggle{position:relative;width:82px;height:44px;padding:0;display:block;border:0;background:transparent;direction:ltr;isolation:isolate}
.menu-toggle:before{content:'';position:absolute;inset:0;z-index:-1;background:#dfe2d7;clip-path:polygon(0 5px,20px 0,100% 0,100% 39px,62px 44px,0 44px);transition:background .5s var(--brand-ease)}
.menu-toggle b{position:absolute;inset:0 auto 0 10px;display:flex;align-items:center;font:11px/1 Plex,Manrope,sans-serif;color:var(--ink)}
.menu-toggle span{position:absolute;inset:16px 11px auto auto;width:18px;height:1.5px;background:var(--ink);transform:skewY(-14deg);transition:transform .5s var(--brand-ease),top .5s var(--brand-ease)}
.menu-toggle span:nth-child(2){display:none}.menu-toggle span:last-of-type{top:25px}
.menu-toggle[aria-expanded=true] span:first-child{top:21px;transform:rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-of-type{top:21px;transform:rotate(-45deg)}
.menu-toggle:focus-visible{outline:2px solid var(--olive);outline-offset:4px}
.hero{display:grid;grid-template-columns:minmax(0,1fr) clamp(92px,29vw,146px);column-gap:20px;align-items:center;height:auto;min-height:0;max-height:none;padding:32px var(--gutter) 20px}
.hero-content{display:contents}.hero .eyebrow{grid-column:1/-1;grid-row:1;font-size:10px;margin:0 0 18px;line-height:1.7;text-align:start}
.hero h1{grid-column:var(--copy-col,1);grid-row:2;font-size:clamp(28px,7.2vw,42px);line-height:1.4;margin:0 0 18px;letter-spacing:-.02em;text-align:start}
html[lang=en] .hero{--copy-col:2;--image-col:1;grid-template-columns:clamp(92px,29vw,146px) minmax(0,1fr)}html[lang=en] .hero h1{font-size:clamp(30px,7.7vw,48px);line-height:1.08;margin-bottom:18px}
.hero p{grid-column:var(--copy-col,1);grid-row:3;max-width:none;margin:0;text-align:start;font-size:13px;line-height:1.9;color:#cbd0c3}
.hero-image{grid-column:var(--image-col,2);grid-row:2/4;justify-self:center;position:relative;order:0;inset:auto;transform:none;width:100%;max-width:none;max-height:none;aspect-ratio:100/120;margin:0;align-self:center}
.hero-image:after{display:none}.hero-image .image-band img{object-position:50% center}
.hero .actions{grid-column:1/-1;grid-row:4;display:grid;grid-template-columns:1fr;gap:4px;margin-top:28px;width:100%}
.hero .button{width:100%;min-width:0}.hero .text-link{justify-self:center;min-height:44px;font-size:12px;border:0;padding:10px 4px}
.hero-bottom{grid-column:1/-1;grid-row:5;position:static;inset:auto;margin-top:18px;padding-top:14px;font-size:9px;align-items:center}.hero-bottom span:first-child{font-size:7px;letter-spacing:.06em;max-width:none}

.button{min-height:56px;font-size:14px}.button>.button-label{padding:16px 20px}
.section{padding-block:52px}.section-heading{margin-bottom:28px}.section-heading>p{margin-top:18px}.section h2,.closing h2{font-size:31px;line-height:1.4}html[lang=en] .section h2,html[lang=en] .closing h2{font-size:41px;line-height:1.08}
.sector-nav a{font-size:14px;min-height:60px;padding-block:15px}.sector-nav{padding-block:0}.sector-nav span{min-width:24px}
.sectors{gap:36px}.sector-0 .sector-copy{padding:24px 20px}.sector-0 .sector-image,.sector-image{aspect-ratio:1.5;min-height:0}.sector-copy h3,.sector-0 h3{font-size:26px}html[lang=en] .sector-copy h3{font-size:33px}.sector-copy .text-link{width:100%}
.specialist-services{margin-top:48px;padding-top:40px}.specialist-grid{gap:32px}.specialist-grid article{padding-top:22px}.specialist-grid h3{font-size:25px}html[lang=en] .specialist-grid h3{font-size:32px}.specialist-grid .text-link{width:100%}.specialist-grid p{margin-bottom:18px}
.page-head{padding-block:32px 36px}.page-head h1{font-size:35px;line-height:1.35}html[lang=en] .page-head h1{font-size:45px;line-height:1.08}.page-head .lead{font-size:15px;margin-top:20px}.crumb{margin-bottom:20px;min-height:32px}.services-index,.related,.contact-grid,.policy{padding-top:0}
.service-hero-copy{padding-block:32px}.service-hero h1{font-size:34px}html[lang=en] .service-hero h1{font-size:44px}.service-hero-copy>.button,.specialist-head .button{width:100%}.service-hero>figure{height:280px}.prep figure{height:260px}.about-split figure img{height:300px}
.page-nav{gap:8px 22px;justify-content:space-between;padding-block:8px}.page-nav a{min-height:44px;display:flex;align-items:center}.faq summary{min-height:44px;gap:16px}.faq details{padding-block:17px}
.closing{padding:48px var(--gutter);gap:28px}.closing:before{height:4px}.closing-actions{justify-self:stretch;width:100%;gap:16px}.closing-actions>.button{width:100%}.closing-actions .phone{font-size:24px}
.contact-grid{gap:32px}.contact-grid form{margin-top:0;padding:24px 18px;scroll-margin-top:90px}.contact-grid form .button{width:100%}.contact-grid :is(input,select,textarea){font-size:16px;scroll-margin-block:110px}.contact-grid #message-preview{font-size:16px}.brief-steps{gap:16px}.review-brand>span{font-size:22px}.review-brand>img{width:34px;height:34px}.review-tools{flex-wrap:wrap;gap:8px 20px}.contact-number{font-size:26px;margin-block:16px}.contact-note{margin-top:24px;padding-top:22px}
.footer{padding-top:40px}.footer-top{grid-template-columns:1fr;gap:28px}.footer-top>.logo{width:136px}.footer-services{display:grid;grid-template-columns:1fr 1fr;gap:14px 22px;align-items:start}.footer .phone{font-size:22px}.footer-wa{font-size:14px;min-height:44px;padding-top:6px}.footer-bottom a{min-height:44px;display:flex;align-items:center}
.mobile-contact{display:block;inset-inline: auto 16px;bottom:calc(14px + env(safe-area-inset-bottom));width:max-content;max-width:calc(100vw - 32px);border:1px solid #68715b;background:var(--ink);box-shadow:0 6px 24px #0003;transition:opacity .2s,transform .2s,visibility .2s}
.mobile-contact a:last-child{position:relative;display:flex;align-items:center;justify-content:flex-start;gap:12px;min-height:62px;padding:12px 22px;background:var(--ink);color:var(--paper);border:0;transition:background .5s var(--brand-ease)}
.mobile-contact a:after{content:'';position:absolute;bottom:0;inset-inline:20px;height:3px;background:var(--olive);clip-path:polygon(0 60%,100% 0,100% 40%,0 100%)}
.mobile-contact a .ui-icon{display:block;width:28px;height:28px;flex:none;color:var(--paper)}.dock-copy{display:grid;gap:2px;font-size:13px;text-align:start;line-height:1.4}.dock-copy small{font-size:10px;color:#bac2ac}
.mobile-contact a:focus-visible{outline:2px solid var(--paper);outline-offset:3px;background:#30392b}@media(hover:hover) and (pointer:fine){.mobile-contact a:hover{background:#30392b}}
.js .mobile-contact{opacity:0;visibility:hidden;pointer-events:none;transform:translateY(12px)}.js .mobile-contact.is-visible{opacity:1;visibility:visible;pointer-events:auto;transform:none}.menu-open .mobile-contact.is-visible{visibility:hidden}
}
@media(prefers-reduced-motion:reduce){.action-layers i,.arrow>svg,.image-band,.sector-image:after,.sector-image img,.specialist-grid article:before,.menu-toggle span,.menu-toggle:before,.header nav>a:after{transition:none!important;animation:none!important}.loader-track span{animation:none!important;opacity:1;transform:none}.hero:has(.button:is(:hover,:focus-visible)) .image-band{transform:none!important}}
@media print{.action-layers{display:none}.hero-image{display:none}.hero{height:auto;min-height:0;background:white;color:black;padding-bottom:0}.hero-content{width:100%;padding:30px}.hero p{color:black}}

/* Draw utility arrows as vectors: iOS must never substitute emoji glyphs. */
.inline-arrow{display:inline-block;width:1em;height:1em;vertical-align:-.125em;flex-shrink:0}
.sector-nav b{display:inline-flex;align-items:center;justify-content:center}
