/* Desktop review refinements — 2026-09-19. Keep approved content unchanged. */
/* Actual equal borders, not a background gap between independently rasterized
   rounded layers. Keep the wipe and icon inside the same padding box. */
.service-button:not([data-service-details]){border:3px solid #1a1a1a;box-shadow:none}
.service-button:not([data-service-details])::before{left:0;top:0;bottom:0;border-radius:10px}
.service-button:not([data-service-details]):is(:hover,:focus-visible)::before{width:100%}
.service-button:not([data-service-details]) .button-icon{left:0;top:0;bottom:0;height:auto;transform:none}
.service-button:not([data-service-details]):is(:hover,:focus-visible) .button-icon{left:calc(100% - var(--icon-width))}
.service-button:not([data-service-details]) .button-label{left:53px;right:5px}
@media(min-width:1000px){
  /* The header CTA is a glass pill: the opaque white frame the old solid
     design needed is gone. Its geometry lives in hero.css. */
  .site-header .button.nav-action{border:0}
  .hero-description .button.button-dark{border:3px solid #1a1a1a;padding:0 21px 0 81px;box-shadow:none}
  .hero-description .button.button-dark::before{left:0;top:0;bottom:0;border-radius:calc(var(--icon-radius) - 1px)}
  .hero-description .button.button-dark:is(:hover,:focus-visible)::before{width:100%}
  .hero-description .button.button-dark .button-icon{left:0;top:0;bottom:0;height:auto;transform:none}
  .hero-description .button.button-dark:is(:hover,:focus-visible) .button-icon{left:calc(100% - var(--icon-width))}
}
/* Compact contact dialog. Overflow remains a safety net for zoom/keyboards,
   not a fixed-height form that forces scrolling at ordinary viewport sizes. */
#contact-dialog{width:min(580px,calc(100% - 32px));max-height:calc(100dvh - 32px);padding:28px;border-radius:25px;overflow:auto;overscroll-behavior:contain}
#contact-dialog .dialog-close{top:12px;right:14px;width:40px;height:40px;display:grid;place-items:center;line-height:1}
#contact-dialog .eyebrow{padding-right:36px;font-size:12px;line-height:18px}
#contact-dialog h2{font-size:clamp(28px,3vw,36px);line-height:1.12;letter-spacing:-.045em;margin:12px 0 10px;padding-right:10px}
#contact-dialog .form-intro{font-size:16px;line-height:1.45;margin:0 0 20px}
#contact-form{display:grid;gap:14px}
#contact-form .contact-fields{display:grid;grid-template-columns:1fr;gap:14px;min-width:0}
#contact-form label{min-width:0;margin:0;font-size:14px;line-height:20px}
#contact-form input,#contact-form textarea{margin-top:6px;padding:11px 13px;font-size:16px;line-height:22px;border-radius:10px}
#contact-form input{height:46px}
#contact-form textarea{height:72px;min-height:60px;resize:none}
#contact-form :is(input,textarea)::placeholder{color:#858581;opacity:1}
#contact-form :is(input,textarea):focus{outline:none;border-color:#1800ad;box-shadow:0 0 0 1px #1800ad}
#contact-dialog .form-submit{width:100%;height:50px;min-height:50px;padding:0;border-radius:13px}
#contact-dialog .form-submit .pixel-arrow{width:30px;height:15px}
#contact-dialog :is(.form-submit,.dialog-close):focus-visible{outline:2px solid #1800ad;outline-offset:3px}
#contact-form .form-state{margin:0;font-size:14px;line-height:1.4}
@media(max-width:420px){
 #contact-dialog{padding:24px 20px}
 #contact-form .contact-fields{grid-template-columns:1fr;gap:14px}
}
@media(max-height:650px){
 #contact-dialog{padding:20px;max-height:calc(100dvh - 20px)}
 #contact-dialog h2{font-size:28px;margin:8px 0}
 #contact-dialog .form-intro{margin-bottom:14px}
 #contact-form,#contact-form .contact-fields{gap:10px}
 #contact-form textarea{height:60px}
}
html{scroll-padding-top:110px}
/* The ending keeps its normal-flow space while resting behind the opaque page.
   No fixed-position spacer, scroll animation, or negative stacking layer. */
.page-curtain{position:relative;z-index:1;background:var(--paper);display:flow-root}
.site-ending{position:relative;z-index:0;background:var(--paper);display:flow-root}
.footer-anchor{height:0;scroll-margin-top:110px;pointer-events:none}
.site-ending.is-reveal{position:sticky;bottom:0}
@media(prefers-reduced-motion:reduce){.site-ending.is-reveal{position:relative}}
section{scroll-margin-top:0}
/* Native anchors align the visible content, not the padded section box.
   Keep normal section spacing and browser reload/history restoration intact. */
.page-curtain>.section{scroll-margin-top:-110px}
.page-curtain>.start{scroll-margin-top:-45px}
.page-curtain>.clients{scroll-margin-top:-64px}
@media(max-width:720px){.page-curtain>.section:not(.clients){scroll-margin-top:-70px}}
@media(max-width:600px){.page-curtain>.clients{scroll-margin-top:-48px}}
.form-state:empty{display:none}
/* Answers before the final dark section; keep its footer-curtain relationship. */
.faq.section{padding-top:60px;padding-bottom:90px;border-top:1px solid var(--line)}
.page-curtain>.section.faq{scroll-margin-top:-60px}
.faq-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(40px,6vw,100px);align-items:start}
.faq h2{margin:0;font-size:clamp(38px,4vw,64px);line-height:1.08;letter-spacing:-.045em;font-weight:400}
.faq-list{min-width:0;border-top:1px solid #d6d6d1}
.faq-item{border-bottom:1px solid #d6d6d1;overflow:hidden}
.faq-question{display:flex;align-items:center;gap:20px;width:100%;min-height:78px;padding:22px 0;border:0;background:transparent;text-align:left;list-style:none;cursor:pointer;color:#343434;font-family:inherit;font-size:clamp(18px,1.5vw,23px);font-weight:400;line-height:1.3;letter-spacing:-.025em}
.faq-item h3{margin:0;font-weight:400}
.faq-question::-webkit-details-marker{display:none}
.faq-question::marker{content:""}
.faq-question>span:first-child{flex:1;min-width:0}
.faq-question:is(:hover,:focus-visible){color:var(--ink)}
.faq-question:focus-visible{outline:2px solid #1800ad;outline-offset:-3px;border-radius:8px}
.faq-toggle{display:block;width:18px;height:18px;flex:0 0 18px;margin-right:3px;color:#81817b;transform:rotate(0);transform-origin:center;transition:transform .32s cubic-bezier(.22,.68,.25,1)}
.faq-toggle svg{display:block;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:butt}
.faq-item[open] .faq-toggle,.faq-item.is-active .faq-toggle{transform:rotate(45deg)}
.faq-item[open] .faq-question,.faq-item.is-active .faq-question{color:var(--ink)}
.faq-answer{padding:0 42px 24px 0;font-size:16px;line-height:1.6;color:#6c6c68}
.faq-answer p{margin:0;max-width:66ch}
.faq-answer.is-animated{box-sizing:border-box;padding:0!important;overflow:hidden;height:0;opacity:0;transition:height .32s cubic-bezier(.22,.68,.25,1),opacity .22s ease}
.faq-answer.is-animated.is-initializing{transition:none}
.faq-answer.is-animated>.faq-content{padding:0 42px 24px 0}
.faq-item.is-active .faq-answer.is-animated{opacity:1}
@media(max-width:720px){
 .faq.section{padding-top:56px;padding-bottom:64px}
 .page-curtain>.section.faq{scroll-margin-top:-56px}
 .faq-layout{grid-template-columns:1fr;gap:32px}
 .faq-question{font-size:18px;min-height:72px;padding:20px 0;gap:16px}
 .faq-answer{padding-right:24px}
 .faq-answer.is-animated>.faq-content{padding-right:24px}
}
@media(prefers-reduced-motion:reduce){.faq-answer.is-animated,.faq-toggle{transition:none}}
/* Quiet navigation control, outside the curtain's stacking context. */
.back-to-top{position:fixed;z-index:18;right:max(24px,env(safe-area-inset-right));bottom:max(24px,env(safe-area-inset-bottom));display:grid;place-items:center;width:48px;height:48px;border:1px solid #d6d6d2;border-radius:15px;background:linear-gradient(145deg,#fffffff5,#f2f2f0f5);color:#242424;box-shadow:inset 0 1px 0 #fff,0 5px 18px #19191912;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(8px);transition:opacity .25s ease,transform .25s ease,visibility .25s,color .2s,box-shadow .2s}
.back-to-top.is-visible{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}
.back-to-top svg{display:block;width:30px;height:15px;fill:currentColor;stroke:none;transform:rotate(-90deg)}
.back-to-top:is(:hover,:focus-visible){color:#1800ad;transform:translateY(-3px);box-shadow:inset 0 1px 0 #fff,0 7px 20px #1919191a}
.back-to-top:focus-visible{outline:2px solid #1800ad;outline-offset:3px}
.modal-open .back-to-top{opacity:0;visibility:hidden;pointer-events:none}
.hero:focus{outline:none}
@media(prefers-reduced-motion:reduce){.back-to-top:is(:hover,:focus-visible){transform:none}}
@media(max-width:720px){.back-to-top{width:44px;height:44px;border-radius:14px;right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom))}}
.hero-landscape{background-position:right bottom}
.footer .brand img{mix-blend-mode:multiply}
/* One quiet final screen: open form, restrained contacts, and a single footer rail. */
.site-ending .contact{display:grid;grid-template-columns:.95fr 1fr;gap:clamp(48px,7vw,128px);align-items:start;align-content:center;width:100%;padding-top:clamp(92px,11svh,120px);padding-bottom:44px;overflow:visible}
.contact-copy{min-width:0}
.site-ending .contact .eyebrow{font-size:12px;line-height:1.5;letter-spacing:.09em;color:#727272}
.site-ending .contact h2{font-size:clamp(44px,4.15vw,72px);line-height:1.07;letter-spacing:-.045em;margin:22px 0 24px}
.site-ending .contact h2>span{color:#888}
.contact-intro{max-width:390px;font-size:17px;line-height:1.55;color:#686868;letter-spacing:-.015em}
.contact-socials{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.contact-socials a{display:grid;place-items:center;width:48px;height:48px;flex:0 0 48px;border-radius:50%;color:#666;background:linear-gradient(150deg,#fff,#e9e9e7);border:1px solid #ffffffc9;box-shadow:inset 0 1px 1px #fff,0 3px 9px #19191908;transition:color .25s ease,transform .25s ease,box-shadow .25s ease}
.contact-socials svg{display:block;width:21px;height:21px;fill:currentColor}
.contact-socials a:is(:hover,:focus-visible){color:#191919;transform:translateY(-2px);box-shadow:inset 0 1px 1px #fff,0 5px 13px #19191910}
/* #1800ad is the solid blue sampled from the supplied Algorythm logo. */
.contact-inline-form{--form-accent:#1800ad;display:grid;gap:18px;min-width:0;width:100%;max-width:620px;justify-self:end;padding-top:40px}
.contact-inline-form label{display:block;margin:0;font-size:14px;line-height:1.5;color:#343434}
.contact-inline-form label>span{display:inline-block;margin-left:8px;font-size:12px;color:#747474}
.contact-inline-form input,.contact-inline-form textarea{display:block;width:100%;margin:6px 0 0;padding:10px 0 12px;border:0;border-bottom:1px solid #bcbcb7;border-radius:0;background:transparent;color:var(--ink);font:400 16px/1.5 var(--font);box-shadow:none;transition:border-color .2s ease,box-shadow .2s ease}
.contact-inline-form textarea{min-height:74px;resize:vertical}
.contact-inline-form input::placeholder,.contact-inline-form textarea::placeholder{color:#81817d;opacity:1}
.contact-inline-form input:focus,.contact-inline-form textarea:focus{outline:0;border-color:var(--form-accent);box-shadow:0 1px 0 var(--form-accent);caret-color:var(--form-accent)}
.contact-inline-form label:focus-within{color:var(--form-accent)}
.contact-inline-form input:user-invalid,.contact-inline-form textarea:user-invalid{border-color:#98321d}
.contact-inline-form .phone-field{display:flex;align-items:baseline;gap:12px;margin:6px 0 0;font:400 16px/1.5 var(--font);border-bottom:1px solid #bcbcb7;transition:border-color .2s ease,box-shadow .2s ease}
.contact-inline-form .phone-country{display:flex;align-items:center;flex:0 0 auto;min-width:80px;align-self:stretch;color:#81817d}
.contact-inline-form .country-trigger{display:flex;align-items:center;gap:9px;height:36px;margin:0;padding:0 8px;border:0;border-radius:8px;background:transparent;color:inherit;font:inherit;cursor:pointer;transition:color .2s,background .2s}
.contact-inline-form .country-trigger::after{content:"";width:6px;height:6px;margin-top:-3px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);transition:transform .2s}
.contact-inline-form .country-trigger[aria-expanded="true"]::after{transform:translateY(3px) rotate(225deg)}
.contact-inline-form .country-trigger:is(:hover,:focus-visible,[aria-expanded="true"]){color:var(--form-accent);background:#1800ad0a;outline:0}
.contact-inline-form .country-trigger:focus-visible{box-shadow:inset 0 0 0 1px #1800ad40}
.contact-inline-form .phone-code{font:inherit;font-variant-numeric:tabular-nums;user-select:none}
.contact-inline-form .phone-country select{display:none}
.contact-inline-form .phone-field input{min-width:0;margin:0;border:0;box-shadow:none;font-variant-numeric:tabular-nums}
.contact-inline-form .phone-field:focus-within,.contact-inline-form .phone-field:has(.country-trigger[aria-expanded="true"]){border-color:var(--form-accent);box-shadow:0 1px 0 var(--form-accent)}
.contact-inline-form .phone-field:has(input:user-invalid){border-color:#98321d}
.contact-inline-form .phone-hint{position:absolute;width:1px;height:1px;margin:0;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
/* A site-styled picker in the top layer, clear of the footer curtain and fields. */
.country-picker{position:fixed;inset:auto;z-index:100;margin:0;padding:8px;box-sizing:border-box;width:360px;max-width:calc(100vw - 24px);max-height:360px;display:flex;flex-direction:column;overflow:hidden;border:1px solid #dededb;border-radius:18px;background:#fbfbfa;color:#191919;box-shadow:0 16px 44px #19191920,0 2px 6px #19191908;font:400 14px/1.45 var(--font);animation:country-picker-in .16s ease-out}
.country-picker[hidden]{display:none!important}
.country-picker::backdrop{background:transparent}
.country-picker .country-search{flex:0 0 auto;box-sizing:border-box;width:100%;margin:0 0 7px;padding:11px 12px;min-height:44px;border:1px solid transparent;border-radius:11px;background:#efefed;color:#191919;font:400 16px/1.4 var(--font);box-shadow:none;outline:0}
.country-picker .country-search::placeholder{color:#858581}
.country-picker .country-search:focus{border-color:#1800ad33;box-shadow:none}
.country-options{position:relative;overflow-y:auto;overscroll-behavior:contain;min-height:0;scrollbar-width:thin;scrollbar-color:#c6c6c1 transparent}
.country-option{display:flex;align-items:center;gap:12px;min-height:44px;padding:10px 12px;box-sizing:border-box;border-radius:10px;cursor:pointer;line-height:1.45}
.country-option-name{flex:1;min-width:0}
.country-option-code{flex:0 0 auto;color:#7d7d78;font-size:13px;font-variant-numeric:tabular-nums}
.country-option::after{content:"✓";flex:0 0 15px;color:#1800ad;opacity:0}
.country-option[aria-selected="true"]{background:#1800ad08}
.country-option[aria-selected="true"]::after{opacity:1}
.country-option:is(:hover,[data-active="true"]){background:#e9e9e6}
.country-empty{margin:0;padding:16px 12px;color:#777770;font-size:14px}
.country-empty[hidden]{display:none}
@keyframes country-picker-in{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.country-picker{animation:none}}
@media(hover:hover){.contact-inline-form input:hover,.contact-inline-form textarea:hover,.contact-inline-form .phone-field:hover{border-color:var(--form-accent)}}
.contact-form-actions{display:flex;align-items:center;gap:24px;margin-top:8px}
/* Ordinary opaque submit button; shared CTA styling lives in contact-actions.css. */
#footer-contact-form .footer-submit{appearance:none;display:inline-flex;align-items:center;position:relative;flex:0 0 auto;box-sizing:border-box;width:218px;height:50px;min-height:50px;margin:0;border-radius:13px;overflow:hidden;font:400 15px/1 var(--font);filter:none;mix-blend-mode:normal}
.contact-inline-form .contact-submit:focus-visible{outline-color:var(--form-accent)}
.contact-submit:disabled{cursor:default;opacity:.55}
.contact-inline-form .form-state{flex:1;min-width:0;margin:0;font-size:12px;line-height:1.5;color:#73736f}
.contact-inline-form .form-state.error{color:#98321d}
.contact-inline-form .form-state.success{color:#1c5b38}
.contact-noscript{font-size:14px;color:#73736f}
.site-ending .footer{width:100%;max-width:1920px;margin:0 auto;padding-bottom:24px}
.site-ending .footer-top{padding:24px 0 18px;border-top:1px solid #d4d4cf;gap:32px;flex-wrap:wrap}
.site-ending .footer-top nav{gap:clamp(20px,2.6vw,44px);margin-left:auto;flex-wrap:wrap;color:#666}
.site-ending .footer-top nav a{position:relative;line-height:1.5;padding-block:8px;transition:color .2s ease}
.site-ending .footer-top nav a::after{content:"";position:absolute;bottom:4px;left:0;right:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .25s ease}
.site-ending .footer-top nav a:is(:hover,:focus-visible){color:#191919}
.site-ending .footer-top nav a:is(:hover,:focus-visible)::after{transform:scaleX(1)}
.site-ending .footer-bottom{border:0;padding:0;font-size:12px;line-height:1.5;color:#777770}
@media(min-width:721px){.site-ending{display:flex;flex-direction:column;min-height:100svh}.site-ending .contact{flex:1}}
@media(min-width:721px) and (max-width:1100px){.site-ending .contact{gap:44px;grid-template-columns:.9fr 1fr}.contact-form-actions{align-items:flex-start;flex-direction:column;gap:12px}.contact-inline-form .form-state{min-height:36px}}
@media(max-width:720px){
 .site-ending .contact{grid-template-columns:1fr;gap:38px;padding:72px 24px 44px}
 .site-ending .contact h2{font-size:clamp(40px,8.2vw,58px);margin:18px 0 22px}
 .contact-intro{font-size:16px;max-width:370px}
 .contact-socials{margin-top:24px}
 .contact-inline-form{padding-top:0;max-width:none;gap:20px}
 .contact-form-actions{flex-wrap:wrap;gap:16px}
 .contact-inline-form .form-state{flex-basis:160px}
 .site-ending .footer{padding:0 24px 24px}
 .site-ending .footer-top{gap:14px;padding:24px 0 18px}
 .site-ending .footer-top nav{width:100%;margin:0;gap:12px 24px}
 .site-ending .footer-bottom{gap:6px 20px}
}
@media(prefers-reduced-motion:reduce){.contact-socials a:is(:hover,:focus-visible){transform:none}}
.outcome-panels{display:grid}
.outcome-panel{grid-area:1/1;animation:none}
.outcome-panel.is-entering:not([hidden]){animation:appear .4s ease}
.outcome-panel[hidden]{display:block;visibility:hidden;pointer-events:none;animation:none}
.outcome-panel:not([hidden]){visibility:visible}
/* Keep the approved section geometry; diagrams replace only the photo surface. */
.outcomes .outcome-panel img{display:block;width:100%;height:clamp(220px,calc(100svh - 400px),360px);aspect-ratio:auto;object-fit:contain;object-position:center}
.outcomes .outcome-infographic{background:#1a1a1a;border:1px solid #343434;padding:12px;border-radius:26px}
/* Quiet closing row: reference-style statement and overlapping social circles. */
.outcome-footer{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(50px,7vw,140px);align-items:center;margin-top:35px}
.outcomes .outcome-footer .outcome-note{border:0;margin:0;padding:0;max-width:600px;color:#ccc;font:400 .875rem/1.8 var(--font);letter-spacing:0;text-transform:uppercase}
.outcome-footer .outcome-note span{display:block}
.outcome-socials{display:flex;align-items:center;justify-self:start;padding-left:clamp(24px,7vw,110px);isolation:isolate}
.outcome-social{position:relative;display:grid;place-items:center;flex:0 0 56px;width:56px;height:56px;border-radius:50%;background:#fafaf8;color:#202020;text-decoration:none;box-shadow:-5px 0 10px #00000012;transition:transform .25s ease,background .25s ease,box-shadow .25s ease}
.outcome-social+.outcome-social{margin-left:-14px}
.outcome-social svg{display:block;width:24px;height:24px;fill:currentColor}
.outcome-social:hover,.outcome-social:focus-visible{z-index:2;transform:translateY(-5px);background:#fff;box-shadow:0 6px 16px #0003}
.outcome-social:focus-visible{outline:2px solid #bcb0e3;outline-offset:4px}
@media(max-width:1100px){.outcome-footer{gap:40px}.outcome-socials{padding-left:24px}}
@media(max-width:720px){.outcome-footer{grid-template-columns:1fr;gap:26px;margin-top:44px}.outcomes .outcome-footer .outcome-note{font-size:.875rem;line-height:1.75;max-width:34rem}.outcome-footer .outcome-note span{display:inline}.outcome-socials{padding-left:0}.outcome-social{width:52px;height:52px;flex-basis:52px}.outcome-social+.outcome-social{margin-left:-12px}}
@media(prefers-reduced-motion:reduce){.outcome-social{transition:none}.outcome-social:hover,.outcome-social:focus-visible{transform:none}}
@media(min-width:721px){
 /* Follow the heading's vertical midpoint, including responsive wraps. */
 .outcomes .outcome-panel{padding-top:var(--outcome-content-offset,calc(64.5px + clamp(41.04px,3.834vw,70.2px)))}
 /* Reserve the former square photo plus its 26px gap and 145px caption. */
 .outcome-panels::before{content:"";grid-area:1/1;align-self:start;width:100%;aspect-ratio:1;margin-bottom:171px;pointer-events:none}
}
@media(max-width:720px){
 .outcomes .outcome-panel img{height:clamp(200px,32svh,300px)}
}
.hero h1{font-size:clamp(2.25rem,4.05vw,4.875rem)}
.principle-trigger,.outcome-tab{touch-action:manipulation}
@media(max-width:720px){.hero h1{font-size:2.5rem}.outcome-panel[hidden]{display:none}}
@media(prefers-reduced-motion:reduce){.reveal-word{color:var(--ink)!important}}
/* Reference-led desktop composition: generous upper space, copy left,
   a proportional illustration alongside it, and a quiet bottom ticker. */
@media(min-width:1000px) and (min-height:560px){
  .hero{height:calc(100svh - 28px);min-height:0;max-height:none}
  .hero-landscape{background-position:right center}
  .hero:after{background:linear-gradient(180deg,rgba(242,242,240,.98),rgba(242,242,240,.94) 35%,rgba(242,242,240,.78) 57%,transparent 79%,rgba(10,20,17,.82) 100%)}
  .hero-content{display:grid;grid-template-columns:minmax(0,1fr) clamp(280px,21.2vw,400px);column-gap:clamp(32px,3.3vw,64px);align-content:start;padding-top:clamp(142px,25svh,285px);padding-bottom:0}
  .hero-content>.eyebrow{grid-column:1;grid-row:1;font-size:12px;letter-spacing:.1em}
  .hero h1{grid-column:1;grid-row:2;font-size:clamp(2.25rem,min(3.9vw,8.4svh),4.75rem);margin-top:16px;line-height:1.1}
  .hero-lower{display:contents}
  .hero-description{grid-column:1;grid-row:3;max-width:none;margin-top:clamp(22px,3.2svh,32px)}
  .hero-description p{max-width:none;font-size:clamp(1.125rem,1.35vw,1.3125rem);line-height:1.5;margin-bottom:clamp(22px,3.2svh,32px)}
  .hero-copy-line{display:block;white-space:nowrap}
  .hero .network-card{grid-column:2;grid-row:1/4;align-self:start;width:100%;margin-top:32px}
  .hero-marquee{padding:clamp(22px,4svh,42px) 0}
  .marquee-set{font-size:clamp(22px,1.7vw,28px)}
}
@media(min-width:1000px) and (min-height:560px) and (max-height:650px){
  .hero-content{padding-top:clamp(125px,22svh,143px)}
  .hero h1{margin-top:12px;font-size:clamp(2.25rem,min(3.9vw,8svh),4.75rem)}
  .hero-description{margin-top:20px}
  .hero-description p{font-size:18px;margin-bottom:20px}
  .hero-marquee{padding:20px 0}
}

/* Spartan controls, measured in CSS pixels at the same browser scale.
   Width is content-driven for our longer Russian label and full wordmark.
   Inter Display could not be downloaded; Arial is the current fallback.
   Bundle the licensed Inter Display regular Latin/Cyrillic files before
   claiming an exact typeface match. No remote font dependency is added.
   Keep these rules scoped: other sections retain their approved controls. */
.pixel-arrow{display:block;flex-shrink:0;width:30px;height:15px}
/* One blur surface confined above the desktop header, with a 0.1 cm clear gap.
   Its 30 px anchor matches the fixed desktop header's top offset below. */
.header-frost{position:fixed;z-index:19;inset:0 0 auto;height:max(0px,calc(30px - .1cm));pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.34),rgba(255,255,255,0));-webkit-backdrop-filter:blur(14px) saturate(160%);backdrop-filter:blur(14px) saturate(160%);-webkit-mask-image:linear-gradient(#000 0%,#000 25%,transparent 100%);mask-image:linear-gradient(#000 0%,#000 25%,transparent 100%)}
.site-header{position:fixed;pointer-events:none}
.site-header>*{pointer-events:auto}
.site-header .brand-header{display:flex;align-items:center;width:154px;height:34px;overflow:visible}
.site-header .brand-symbol,.site-header .brand-wordmark{display:block;position:relative;overflow:hidden;height:34px;flex-shrink:0}
.site-header .brand-symbol{width:34px;transform:scale(.8);transform-origin:center}
.site-header .brand-wordmark{width:120px}
.site-header .brand-header img{width:273px;height:273px;top:-120.319px;left:-58.2px}
/* Independently center the visible wordmark within its padded raster source. */
.site-header .brand-wordmark img{left:-92.2px;top:-122.503px}
@media(min-width:1000px){
  .site-header{top:30px;left:30px;right:30px;align-items:flex-start}
  /* Liquid glass: translucent body, light specular rim, deep soft shadow. */
  .site-header .nav-pill{position:relative;isolation:isolate;height:44px;min-height:44px;padding:5px 26px 5px 5px;gap:24px;align-items:center;border:0;border-radius:100px;background:linear-gradient(150deg,rgba(255,255,255,.93) 0%,rgba(255,255,255,.85) 46%,rgba(255,255,255,.89) 100%);box-shadow:0 1px 2px rgba(18,22,36,.05),0 8px 22px rgba(18,22,36,.08);-webkit-backdrop-filter:blur(14px) saturate(150%);backdrop-filter:blur(14px) saturate(150%)}
  .site-header .brand{width:154px;height:34px;margin-left:7px}
  .site-header .nav-links{gap:0;font-family:"Inter Display",Arial,sans-serif;font-size:14px;font-weight:400;line-height:1.4;letter-spacing:.02em;color:#141414}
  .site-header .nav-links a{padding:7px 16px;opacity:.8;white-space:nowrap;transition:opacity .2s}
  .site-header .nav-links a:hover,.site-header .nav-links a:focus-visible{color:#000;opacity:1}
  .site-header .button.nav-action,.hero-description .button-dark{font-family:"Inter Display",Arial,sans-serif;font-weight:400;white-space:nowrap;flex-shrink:0;justify-content:flex-start;box-shadow:inset 0 0 0 1px rgba(26,26,26,.1);transition:background .2s}
  .site-header .button.nav-action{position:relative;height:42px;min-height:42px;padding:3px 10px 3px 3px;gap:6px;border-radius:14px;background:linear-gradient(150deg,rgba(255,255,255,.95) 0%,rgba(255,255,255,.87) 48%,rgba(255,255,255,.91) 100%);color:#141414;font-size:14px;line-height:1.4;letter-spacing:.02em;box-shadow:0 1px 2px rgba(18,22,36,.05),0 8px 22px rgba(18,22,36,.08);-webkit-backdrop-filter:blur(14px) saturate(150%);backdrop-filter:blur(14px) saturate(150%)}
  .site-header .button.nav-action .button-icon{width:40px;height:36px;border-radius:10px;background:#1a1a1a;color:#fff}
  .site-header .button.nav-action .button-label{display:grid;place-items:center;min-height:29px;padding:0 8px}
  .hero-description .button-dark{height:65px;min-height:65px;padding:3px 24px 3px 3px;gap:16px;border-radius:16px;background:#1a1a1a;color:#fff;font-size:16px;line-height:1.5;letter-spacing:normal}
  .hero-description .button-dark .button-icon{width:65px;height:59px;border-radius:14px;background:#fff;color:#1f1f1f}
  .hero-description .button-label{display:grid;place-items:center;min-height:59px;padding:0 10px}
}

/* Frosted glass with softly raised icon tiles; the drawing stays sharp. */
.hero .network-card{padding:6px;border:1px solid #ffffffe0;border-radius:26px;background:linear-gradient(145deg,rgba(255,255,255,.68),rgba(245,246,252,.42) 52%,rgba(245,246,252,.66));box-shadow:inset 0 2px 2px #ffffffed,inset 0 -1px 2px #ffffff80,0 14px 45px #18203918;-webkit-backdrop-filter:blur(22px) saturate(135%);backdrop-filter:blur(22px) saturate(135%)}
.hero .network{height:auto;aspect-ratio:400/310;container-type:inline-size;border-radius:20px;background:radial-gradient(ellipse at 50% 50%,#dcdff538,transparent 72%);overflow:visible}
.hero .network-lines{overflow:visible}
.hero .wire path{stroke:#c9c9d8;stroke-width:1.5}
.hero .pulse path{stroke-width:2.6;stroke-linecap:round;stroke-dasharray:14 464}
.hero .network-node{width:17.5cqw;height:17cqw;gap:1.15cqw;font-family:Arial,sans-serif;font-weight:400;border-radius:4.7cqw;border:1px solid #ffffffd9;background:linear-gradient(145deg,#ffffffed 5%,#ffffffba 44%,#e5e8f3c9 100%);box-shadow:inset 0 1.5px 2px #fff,inset 0 -2px 3px #b5bbd233,0 5px 12px #25213f12;transform:translate(-50%,-50%)}
/* Shared icon frame, baseline and label style; no per-service type exceptions. */
.hero .network-node .network-label{display:block;margin:0;font-family:Arial,sans-serif;font-size:clamp(9px,3.5cqw,13px);font-weight:400;line-height:1.15;letter-spacing:-.02em;color:#707078;white-space:nowrap;text-align:center}
.hero .network-icon{display:block;flex-shrink:0;width:7cqw;height:7cqw;overflow:visible;color:#202024;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.hero .node-meta .network-icon{color:var(--accent)}
.hero .network-icon text{fill:currentColor;stroke:none;font-family:Arial,sans-serif;font-size:24px;font-weight:600;letter-spacing:0}
.hero .node-google{left:15%;top:32.258%;bottom:auto}
.hero .node-meta{left:85%;right:auto;top:32.258%;bottom:auto}
.hero .node-web{left:15%;top:62.903%;bottom:auto}
.hero .node-data{left:85%;right:auto;top:62.903%;bottom:auto}
.hero .node-crm{left:50%;top:82.258%;bottom:auto}
.hero .network-center{width:18cqw;height:18cqw;left:50%;top:46.452%;transform:translate(-50%,-50%);border-radius:4.8cqw;border-color:#fffffff0;background:linear-gradient(145deg,#fff,#f5f6fbea);box-shadow:inset 0 1.5px 2px #fff,inset 0 -2px 3px #b5bbd233,0 7px 20px #25213f1c}
.hero .network-center .brand-mark{width:12.75cqw;height:12.75cqw;transform:scale(.8);transform-origin:center}
.hero .network-center .brand-mark img{width:50cqw;height:50cqw;left:-18.5cqw;top:-14.25cqw}
.hero .network-caption{padding:5px 15px 14px;font-size:14px;line-height:1.5}
.hero .network-caption .corner-arrow{font-size:29px;line-height:1}
.hero .network-caption .corner-arrow .pixel-arrow{display:none}
@media(min-width:1000px){
 .hero .network-caption .corner-arrow{font-size:0}
 .hero .network-caption .corner-arrow .pixel-arrow{display:block}
}

/* Two identical long groups make the loop seamless. Spacing is fixed,
   including the join between groups; no width-distribution gaps. */
.marquee-window{--edge-fade:clamp(70px,6vw,115px);overflow:hidden;-webkit-mask-image:linear-gradient(to right,transparent,#000 var(--edge-fade),#000 calc(100% - var(--edge-fade)),transparent);mask-image:linear-gradient(to right,transparent,#000 var(--edge-fade),#000 calc(100% - var(--edge-fade)),transparent)}
.hero-marquee{--hero-marquee-duration:80s}
.hero .marquee-track{animation-duration:var(--hero-marquee-duration)}
.hero .marquee-set{gap:64px;padding-right:64px;min-width:0;flex-shrink:0;justify-content:flex-start}
.hero .marquee-set span{display:inline-flex;align-items:center}
/* Eight slim, flat-ended rays follow the selected reference on desktop and phones.
   Share the strip's timing; counterclockwise rotation follows its leftward travel. */
.hero .marquee-set span:before{content:"";display:block;flex-shrink:0;width:1em;height:1em;margin-right:12px;background:url('assets/marquee-star.svg?v=slim-eight') center/contain no-repeat;transform-origin:50% 50%;animation:marquee-star-roll calc(var(--hero-marquee-duration) / 32) linear infinite}
@keyframes marquee-star-roll{to{transform:rotate(-360deg)}}
.hero.motion-paused .marquee-set span:before{animation-play-state:paused}

/* One continuous fill shares the icon's right edge throughout the motion.
   Reversing midway cannot expose a gap between independently moving layers.
   Difference-blended white text stays readable on both sides of the wipe. */
@media(min-width:1000px){
  .site-header .button.nav-action,.hero-description .button-dark{position:relative;isolation:isolate;overflow:hidden;gap:0;transition:none}
  .site-header .button.nav-action{--control-fill:#1a1a1a;--control-ink:#fff;--icon-width:40px;--icon-radius:10px;--label-shift:-39px;padding-left:49px;border:0}
  .hero-description .button-dark{--control-fill:#fff;--control-ink:#1a1a1a;--icon-width:65px;--icon-radius:14px;--label-shift:-70px;padding-left:84px}
  .site-header .button.nav-action::before,.hero-description .button-dark::before{content:"";position:absolute;left:3px;top:3px;bottom:3px;width:var(--icon-width);background:var(--control-fill);border-radius:var(--icon-radius);transition:width .55s cubic-bezier(.22,.68,0,1);z-index:0;pointer-events:none}
  .site-header .button.nav-action .button-icon,.hero-description .button-dark .button-icon{position:absolute;left:3px;top:50%;transform:translateY(-50%);background:transparent;color:var(--control-ink);z-index:2;transition:left .55s cubic-bezier(.22,.68,0,1)}
  .site-header .button.nav-action .button-label,.hero-description .button-dark .button-label{position:relative;z-index:1;color:#fff;mix-blend-mode:difference;transition:transform .55s cubic-bezier(.22,.68,0,1)}
  /* Difference blending cannot be trusted over translucent glass: it drifts
     with whatever sits behind the pill. Use explicit ink instead, flipping to
     white only once the dark wipe has covered the label. */
  .site-header .button.nav-action .button-label{color:#141414;mix-blend-mode:normal;transition:transform .55s cubic-bezier(.22,.68,0,1),color .26s ease .16s}
  .site-header .button.nav-action:is(:hover,:focus-visible) .button-label{color:#fff;transition-delay:0s,0s}
  .site-header .button.nav-action:hover{background:linear-gradient(150deg,rgba(255,255,255,.99) 0%,rgba(255,255,255,.94) 48%,rgba(255,255,255,.96) 100%);transform:none}
  .hero-description .button-dark:hover{background:#1a1a1a;transform:none}
  .site-header .button.nav-action:is(:hover,:focus-visible)::before,.hero-description .button-dark:is(:hover,:focus-visible)::before{width:calc(100% - 6px)}
  .site-header .button.nav-action:is(:hover,:focus-visible) .button-icon,.hero-description .button-dark:is(:hover,:focus-visible) .button-icon{left:calc(100% - var(--icon-width) - 3px)}
  .site-header .button.nav-action:is(:hover,:focus-visible) .button-label,.hero-description .button-dark:is(:hover,:focus-visible) .button-label{transform:translateX(var(--label-shift))}
}
@media(prefers-reduced-motion:reduce){.hero .pulse{display:none}}
/* Travelling specular sheen, the way light slides across real glass.
   It sits under the labels, above the material, and never intercepts clicks. */
@media(min-width:1000px){
  .site-header .nav-pill>*{position:relative;z-index:1}
  .site-header .nav-pill::after{content:"";position:absolute;inset:0;z-index:0;border-radius:inherit;pointer-events:none;background:linear-gradient(112deg,transparent 26%,rgba(255,255,255,.5) 44%,rgba(255,255,255,.04) 55%,transparent 68%);opacity:0;transition:opacity .45s ease}
  .site-header .nav-pill:is(:hover,:focus-within)::after{opacity:1}
}
/* Without real backdrop blur the tint alone would wash the backdrop out,
   so fall back to an opaque surface that keeps the same rim and shadow. */
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  @media(min-width:1000px){
    .site-header .nav-pill{background:#fff}
    .site-header .button.nav-action{background:#fff}
    .site-header .button.nav-action:hover{background:#f2f2f0}
  }
}
/* Block 02: matte bento surfaces, precision diagrams and restrained motion.
   All selectors are scoped to directions; the approved hero is unchanged. */
.directions .reveal-heading{max-width:none;font-size:clamp(26.6px,2.87vw,53.2px);line-height:1.16;letter-spacing:-.046em;margin-bottom:52px}
.directions .heading-line{display:block}
.letter-reveal{--letter-muted:#aaa;--letter-active:var(--ink)}
.dark-section .letter-reveal{--letter-muted:#858585;--letter-active:#fff}
.letter-reveal .reveal-token{display:inline-block;white-space:nowrap}
.letter-reveal .reveal-letter{color:var(--letter-muted);transition:none;animation:none}
.letter-reveal .reveal-letter.is-read{color:var(--letter-active)}
@media(prefers-reduced-motion:reduce){.letter-reveal .reveal-letter{color:var(--letter-active)}}
.directions .bento{gap:12px;grid-template-columns:1.12fr 1fr 1.05fr 1.05fr;align-items:stretch}
.directions .direction-card{min-width:0;min-height:466px;padding:clamp(22px,1.8vw,34px);border-radius:32px;gap:28px}
.directions .bento-stack{gap:12px;grid-template-rows:1.08fr .92fr;min-width:0}
.directions .bento-stack .direction-card{min-height:0;gap:20px;padding:clamp(20px,1.6vw,30px)}
.directions .direction-copy h3{font-size:clamp(22px,1.75vw,29px);font-weight:400;line-height:1.12;letter-spacing:-.035em}
.directions .direction-copy p{font-size:16px;line-height:1.45;margin-top:12px;letter-spacing:-.015em}
.directions .bento-stack h3{font-size:clamp(21px,1.45vw,25px)}
.directions .bento-stack p{font-size:15px;line-height:1.4;margin-top:9px}
.directions .management-card{background:#1a1a1a;color:#f7f7f7}
.directions .management-card p{color:#b4b4b4}
.directions .meta-card{background:transparent;border:1px dashed #969695}
.directions .google-card,.directions .website-card{background:#e6e6e6}
.directions .systems-card{background:#fff}
.directions .direction-art{position:relative;flex-shrink:0;min-width:0}
.directions .direction-icon{display:block;width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.directions .icon-fill{fill:currentColor;stroke:none}

/* Management: one objective, a calibrated ring and three connected stages. */
.directions .goal-art{display:flex;flex-direction:column;align-items:center;gap:22px;padding-top:2px}
.directions .goal-dial{width:196px;height:196px;position:relative}
.directions .goal-ticks{width:100%;height:100%;overflow:visible}
.directions .goal-tick{fill:none;stroke:#b8b8b8;stroke-width:2;stroke-linecap:butt;transition:none}
.directions .goal-core{position:absolute;inset:41px;border:1px solid #ffffff14;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:linear-gradient(150deg,#2b2b2b,#202020);box-shadow:inset 0 1px 0 #ffffff0d,0 9px 18px #0000001a}
.directions .goal-core .direction-icon{width:32px;height:32px;color:#f0f0f0}
.directions .goal-core>span{font-size:12px;line-height:1.2;color:#c9c9c9;letter-spacing:-.01em}
.directions .goal-stages{display:flex;justify-content:center;width:100%;gap:5px;position:relative}
.directions .goal-stages::before{content:"";position:absolute;left:12%;right:12%;top:14px;height:1px;background:#515151}
.directions .goal-stages>span{z-index:1;flex:1;display:flex;flex-direction:column;align-items:center;gap:9px;color:#bbb;font-size:12px;letter-spacing:-.01em}
.directions .goal-stages i{font-style:normal;font-size:10px;display:grid;place-items:center;width:28px;height:28px;border:1px solid #4b4b4b;border-radius:50%;background:#202020;color:#ccc}
.directions .goal-stages>span:first-child i{background:#f0f0f0;border-color:#f0f0f0;color:#1a1a1a}

/* Meta: overlapping platform tiles instead of a lone text glyph. */
.directions .social-art{display:flex;align-items:center;justify-content:center;height:80px;margin-top:2px}
.directions .social-tile{width:63px;height:63px;display:grid;place-items:center;border:1px solid #fff;border-radius:20px;background:linear-gradient(145deg,#fff,#ececec);box-shadow:inset 0 1px 1px #fff,0 6px 14px #1717170a;color:#545454}
.directions .social-tile .direction-icon{width:28px;height:28px;stroke-width:1.6}
.directions .social-instagram{transform:rotate(-10deg) translateX(7px)}
.directions .social-meta{position:relative;z-index:1;width:78px;height:78px;border-radius:24px;background:#fff;color:var(--accent);box-shadow:0 6px 18px #29214912}
.directions .social-meta .direction-icon{width:39px;height:39px;stroke-width:1.8}
.directions .social-facebook{transform:rotate(10deg) translateX(-7px)}
.directions .social-facebook .direction-icon{width:27px;height:27px}

/* Google: precise search surface; the query is revealed on entry. */
.directions .search-art{padding-top:2px}
.directions .search-field{height:47px;display:flex;gap:12px;align-items:center;background:#fafafa;border:1px solid #ffffffb3;border-radius:28px;padding:0 14px;box-shadow:0 5px 12px #16161606,inset 0 1px 0 #fff}
.directions .search-brand{font-size:22px;font-weight:600;line-height:1;color:#353535}
.directions .search-query{font-size:13px;color:#666;white-space:nowrap;line-height:1.3;position:relative;clip-path:inset(0)}
.directions .search-caret{position:absolute;right:0;top:0;width:1px;height:100%;background:#969696;opacity:0}
.directions .search-field>.direction-icon{width:19px;height:19px;margin-left:auto;color:#777}

/* Websites: a miniature, coherent page layout, not decorative rectangles. */
.directions .site-art{height:258px;display:flex;align-items:center;perspective:none}
.directions .site-window{position:relative;width:100%;background:#fbfbfb;border:1px solid #fff;border-radius:15px;box-shadow:0 18px 28px -17px #16161642,0 1px 2px #1414140d;transform:none}
.directions .site-toolbar{height:32px;border-bottom:1px solid #ececec;display:flex;align-items:center;justify-content:space-between;padding:0 12px;color:#858585;font-size:10px}
.directions .window-dots{display:flex;gap:3px}
.directions .window-dots i{width:4px;height:4px;border-radius:50%;background:#c6c6c6}
.directions .site-toolbar>.direction-icon{width:11px;height:11px}
.directions .site-layout{padding:15px}
.directions .site-nav{display:flex;align-items:center;gap:7px;margin-bottom:18px}
.directions .site-nav i{width:18px;height:9px;background:#282828;border-radius:3px;margin-right:auto}
.directions .site-nav>span{height:3px;width:21px;background:#d5d5d5;border-radius:2px}
.directions .site-hero-ui{display:grid;grid-template-columns:1.3fr 1fr;gap:13px;align-items:center}
.directions .site-text-ui>b,.directions .site-text-ui>i{display:block;border-radius:2px}
.directions .site-text-ui>b{height:6px;margin-bottom:5px;background:#3a3a3a;width:97%}
.directions .site-text-ui>b:nth-child(2){width:72%;margin-bottom:12px}
.directions .site-text-ui>i{height:3px;background:#c6c6c6;margin-top:4px;width:92%}
.directions .site-text-ui>i:nth-of-type(2){width:65%}
.directions .site-action{display:flex;align-items:center;justify-content:space-between;gap:4px;margin-top:15px;padding:6px 7px;border-radius:5px;background:#282828;color:#fff;font-size:8px;white-space:nowrap}
.directions .site-action .direction-icon{width:11px;height:11px}
.directions .site-media-ui{height:101px;background:linear-gradient(140deg,#dcdbe3,#cdcadf);border:1px solid #ffffff80;border-radius:8px;display:grid;place-items:center;color:#8e879f}
.directions .site-media-ui>.direction-icon{width:33px;height:33px;stroke-width:1}
.directions .site-modules{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:18px}
.directions .site-modules>span{height:44px;background:#eee;border:1px solid #e8e8e8;border-radius:6px;padding:7px}
.directions .site-modules i{display:block;width:9px;height:9px;border-radius:3px;background:#cdcadc;margin-bottom:5px}
.directions .site-modules b{display:block;width:90%;height:2px;background:#d2d2d2;margin-top:3px}
.directions .site-modules b:last-child{width:65%}
.directions .site-pointer{position:absolute;left:44%;top:66%;width:25px;height:29px;fill:#282828;stroke:#fff;stroke-width:2;stroke-linejoin:round;filter:drop-shadow(0 3px 2px #00000016)}

/* Automation: equal-width rows and a quiet request → CRM → task sequence. */
.directions .workflow-art{width:100%;max-width:270px;margin:16px auto 0;padding:0 4px}
.directions .workflow-row{display:flex;align-items:center;gap:12px;position:relative;min-height:57px;padding:10px 12px;border:1px solid #eaeaea;border-radius:14px;background:linear-gradient(130deg,#fcfcfc,#f6f6f6);box-shadow:0 4px 10px #19191904;color:#565656;font-size:13px;line-height:1.2}
.directions .workflow-icon{width:32px;height:32px;display:grid;place-items:center;border-radius:9px;background:#fff;border:1px solid #ececec;color:#666;flex-shrink:0}
.directions .workflow-icon .direction-icon{width:21px;height:21px}
.directions .workflow-crm{border-color:#dad6ed;background:linear-gradient(130deg,#faf9ff,#f1effa);box-shadow:0 7px 16px #29214908}
.directions .workflow-crm .workflow-icon{color:var(--accent);border-color:#e6e2f4}
.directions .workflow-detail{display:block;font-size:10px;color:#92909a;margin-top:4px}
.directions .workflow-check{margin-left:auto;flex-shrink:0;display:grid;place-items:center;width:19px;height:19px;border-radius:50%;background:#e9e7ee;color:#655c84}
.directions .workflow-check .direction-icon{width:12px;height:12px;stroke-width:1.6}
.directions .workflow-link{position:relative;width:1px;height:25px;background:#dedbe8;margin:0 auto;overflow:hidden}
.directions .workflow-link>span{display:block;position:absolute;left:0;top:0;height:100%;width:1px;background:#8c7ccb;transform:scaleY(1);transform-origin:top}

/* Run once when each illustration enters view. Text and surfaces stay still.
   Without JS every diagram is already in its complete, readable state. */
@media(prefers-reduced-motion:no-preference){
  .directions .motion-ready .goal-tick{stroke:#3e3e3e}
  .directions .motion-ready .goal-tick.is-lit,.directions .goal-complete .goal-tick{stroke:#b8b8b8}
  .directions .motion-ready:not(.is-illustrated) .goal-stages>span{opacity:.35;transform:translateY(5px)}
  .directions .motion-ready:not(.is-illustrated) .social-tile{opacity:0;transform:translateY(8px) scale(.9)}
  .directions .motion-ready:not(.is-illustrated) .search-query{clip-path:inset(0 100% 0 0)}
  .directions .motion-ready:not(.is-illustrated) .site-window{transform:translateY(14px);opacity:.45}
  .directions .motion-ready:not(.is-illustrated) .site-modules>span{opacity:0;transform:translateY(7px)}
  .directions .motion-ready:not(.is-illustrated) .workflow-row{opacity:.35;transform:translateY(5px)}
  .directions .motion-ready:not(.is-illustrated) .workflow-check{opacity:0;transform:scale(.6)}
  .directions .motion-ready:not(.is-illustrated) .workflow-link>span{transform:scaleY(0)}
  .directions .is-illustrated .goal-stages>span{animation:direction-rise .6s ease both}
  .directions .is-illustrated .goal-stages>span:nth-child(2){animation-delay:.25s}
  .directions .is-illustrated .goal-stages>span:nth-child(3){animation-delay:.5s}
  .directions .is-illustrated .social-tile{animation:direction-tile .8s cubic-bezier(.2,.7,.2,1) both}
  .directions .social-instagram{--tile-pose:rotate(-10deg) translateX(7px)}
  .directions .social-meta{--tile-pose:rotate(0deg);animation-delay:.12s!important}
  .directions .social-facebook{--tile-pose:rotate(10deg) translateX(-7px);animation-delay:.24s!important}
  .directions .is-illustrated .search-query{animation:direction-wipe 1.3s .2s ease both}
  .directions .is-illustrated .search-caret{animation:direction-caret 1.5s both}
  .directions .is-illustrated .site-window{animation:direction-window 1s cubic-bezier(.2,.7,.2,1) backwards}
  .directions .is-illustrated .site-modules>span{animation:direction-rise .65s .35s ease both}
  .directions .is-illustrated .site-modules>span:nth-child(2){animation-delay:.5s}
  .directions .is-illustrated .site-modules>span:nth-child(3){animation-delay:.65s}
  .directions .is-illustrated .site-pointer{animation:direction-pointer 1.7s ease both}
  .directions .is-illustrated .site-action{animation:direction-action 1.7s ease both}
  .directions .workflow-in{--sequence-delay:0s}
  .directions .workflow-crm{--sequence-delay:.5s}
  .directions .workflow-task{--sequence-delay:1s}
  .directions .is-illustrated .workflow-row{animation:direction-rise .7s var(--sequence-delay) ease both}
  .directions .is-illustrated .workflow-check{animation:direction-check .45s calc(var(--sequence-delay) + .35s) ease both}
  .directions .is-illustrated .workflow-link>span{animation:direction-connect .7s .25s ease both}
  .directions .is-illustrated .workflow-link:nth-of-type(4)>span{animation-delay:.75s}
}
@keyframes direction-wipe{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}
@keyframes direction-rise{from{opacity:.35;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}
@keyframes direction-tile{from{opacity:0;transform:translateY(10px) scale(.9)}to{opacity:1;transform:var(--tile-pose)}}
@keyframes direction-window{from{opacity:.45;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes direction-pointer{0%,20%{transform:translate(28px,20px);opacity:0}55%{opacity:1}75%,100%{transform:translate(0,0);opacity:1}}
@keyframes direction-action{0%,65%{background:#282828}85%,100%{background:#493e79}}
@keyframes direction-connect{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@keyframes direction-check{from{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}
@keyframes direction-caret{0%,90%{opacity:1}100%{opacity:0}}
@media(min-width:1000px){.directions .heading-line{white-space:nowrap}}
@media(min-width:1000px) and (max-width:1250px){
  .directions .bento{gap:10px;grid-template-columns:1.08fr 1fr 1fr 1fr}
  .directions .direction-card{padding:20px;min-height:458px}
  .directions .bento-stack .direction-card{padding:18px;gap:17px}
  .directions .goal-dial{width:172px;height:172px}
  .directions .goal-core{inset:35px}
  .directions .site-layout{padding:12px}
  .directions .site-hero-ui{gap:8px}
  .directions .site-action{font-size:7px;padding:6px 4px}
  .directions .workflow-row{gap:8px;padding:9px;font-size:12px}
  .directions .workflow-icon{width:28px;height:28px}
}
@media(max-width:999px){
  .directions .bento{grid-template-columns:1fr 1fr}
  .directions .reveal-heading{font-size:clamp(26.6px,3.8vw,38px)}
  .directions .direction-card{min-height:460px}
}
@media(max-width:600px){
  .directions .bento{grid-template-columns:1fr}
  .directions .direction-card{min-height:390px;padding:26px}
  .directions .bento-stack .direction-card{min-height:215px;padding:26px}
  .directions .reveal-heading{font-size:30px;line-height:1.18;margin-bottom:32px}
  .directions .heading-line{display:inline}
  .directions .direction-art{max-width:300px;width:100%;margin-left:auto;margin-right:auto}
}
@media(prefers-reduced-motion:reduce){.directions .direction-art *{animation:none!important;transition:none!important}}

/* Desktop uses the same approved Meta mark as the mobile illustration. */
@media(min-width:1000px){
  .directions .social-meta .direction-icon{display:none}
  .directions .social-meta::before{content:'';display:block;width:39px;height:39px;background:url('assets/meta-mark-mobile.svg') center/contain no-repeat}
}

/* Approach: a fixed four-tool composition, with one slow levitation cycle. */
.approach-tools{padding:0;background:#1a1a1a;display:flex;align-items:center;justify-content:center}
.approach-tools .tools-scene{display:block;position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.approach-tools .tools-circuit{stroke:rgba(255,255,255,.05);stroke-width:2}
/* Continuous extruded silhouette, not a second offset rounded rectangle.
   The dark front face occludes the hidden edges of this single solid body. */
.approach-tools .tool-depth{fill:#1e1e1e;stroke:#707070;stroke-width:.7;stroke-linejoin:round}
.approach-tools .tool-face{fill:#1a1a1a;stroke:#858585;stroke-width:.75}
.approach-tools .tool-glyph{fill:none;stroke:#c6c6c6;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.approach-tools .tool-brand{fill:#c6c6c6;stroke:none}
.approach-tools .tool-crm-glyph{stroke-width:3}
.approach-tools .tool-spark{fill:none;stroke:#828282;stroke-width:.8;stroke-linejoin:round}
.approach-tools .spark-depth{fill:#1e1e1e;stroke:#707070}
.approach-tools .spark-face{fill:#1a1a1a}
.approach-tools .tools-float{animation:tools-levitate 6s ease-in-out infinite;will-change:transform}
@keyframes tools-levitate{0%,100%{transform:translateY(5px)}50%{transform:translateY(-7px)}}
/* JS measures real content height, including wrapped copy, so both directions
   animate without arbitrary max-height delays or clipping after a resize. */
.principle-body.is-animated{box-sizing:border-box;padding:0!important;overflow:hidden;height:0;opacity:0;transition:height .32s cubic-bezier(.22,.68,.25,1),opacity .22s ease}
.principle-body.is-animated.is-initializing{transition:none}
.principle-body.is-animated[hidden]{display:block}
.principle-body.is-animated>.principle-content{padding:0 65px 30px 67px}
.principle.is-active .principle-body.is-animated{opacity:1}
@media(max-width:1100px){.principle-body.is-animated>.principle-content{padding:0 25px 25px 50px}}
@media(max-width:720px){.approach-tools{display:none}}
@media(prefers-reduced-motion:reduce){.approach-tools .tools-float{animation:none;transform:none}.principle-body.is-animated{transition:none}}

/* Compact service summaries; all approved detail lives in the native dialog. */
.products .product-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.products .product-card{padding:26px;border-radius:24px;min-width:0}
.products .product-heading h3{font-size:clamp(24px,1.9vw,30px);line-height:1.12;max-width:none}
.products .product-promise{font-size:16px;line-height:1.5;letter-spacing:-.015em;color:#717171;margin-top:14px;max-width:360px}
.products .product-main{padding-bottom:24px}
.products .product-bottom{border:0;padding:0;margin-top:auto;justify-content:flex-start}
/* Same continuous wipe and travelling arrow as the approved hero control. */
.service-button{--icon-width:44px;position:relative;isolation:isolate;overflow:hidden;display:inline-flex;align-items:center;justify-content:flex-start;flex-shrink:0;min-height:50px;padding:3px 22px 3px 64px;border:0;border-radius:13px;background:#1a1a1a;color:#fff;font:400 15px/1.5 var(--font);white-space:nowrap;box-shadow:inset 0 0 0 1px #1a1a1a1a}
.service-button::before{content:"";position:absolute;left:3px;top:3px;bottom:3px;width:var(--icon-width);border-radius:11px;background:#fff;transition:width .55s cubic-bezier(.22,.68,0,1);z-index:0;pointer-events:none}
.service-button .button-icon{position:absolute;left:3px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:var(--icon-width);height:44px;color:#191919;background:transparent;font-size:25px;z-index:2;transition:left .55s cubic-bezier(.22,.68,0,1)}
.service-button .button-label{position:relative;z-index:1;color:#fff;mix-blend-mode:difference;transition:transform .55s cubic-bezier(.22,.68,0,1)}
.service-button:is(:hover,:focus-visible)::before{width:calc(100% - 6px)}
.service-button:is(:hover,:focus-visible) .button-icon{left:calc(100% - var(--icon-width) - 3px)}
.service-button:is(:hover,:focus-visible) .button-label{transform:translateX(-48px)}
.service-dialog{width:min(760px,calc(100% - 32px));padding:0;max-height:85svh;overflow:hidden;background:var(--paper);border-radius:26px}
.service-dialog[open]{display:grid;grid-template-rows:minmax(0,1fr) auto;animation:service-dialog-in .22s ease-out}
.service-detail-scroll{min-height:0;min-width:0;overflow-y:auto;overscroll-behavior:contain;padding:42px 42px 28px;scroll-padding-block:54px 24px}
.service-detail-scroll:focus-visible{outline:2px solid #1800ad;outline-offset:-4px}
.service-dialog-close{position:absolute;z-index:3;top:15px;right:17px;width:40px;height:40px;display:grid;place-items:center;border:0;border-radius:50%;background:#fff;color:#191919;font-size:28px;line-height:1}
.service-detail-kind{display:block;font-size:13px;color:#777;padding-right:40px}
.service-dialog h2{font-size:clamp(28px,3vw,42px);line-height:1.12;margin:20px 0 16px;max-width:620px}
.service-dialog h2:focus{outline:none}
.service-detail-lead{font-size:20px;line-height:1.4;letter-spacing:-.025em;color:#737373}
.service-detail-section{margin-top:28px}
.service-detail-section h3{font-size:17px;letter-spacing:-.015em;margin-bottom:9px}
.service-detail-section p{font-size:16px;line-height:1.65;color:#626262}
.service-detail-footer{position:relative;z-index:2;display:flex;gap:24px;align-items:center;justify-content:space-between;border-top:1px solid #dbdbd7;margin:0;padding:24px 42px 32px;background:var(--paper)}
.service-detail-note{font-size:13px;color:#777;max-width:290px}
@keyframes service-dialog-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:1100px){.products .product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.products .product-grid{grid-template-columns:1fr}.products .product-card{padding:24px}.service-detail-footer{flex-direction:column;align-items:flex-start}.service-detail-lead{font-size:18px}}
@media(prefers-reduced-motion:reduce){.service-button::before,.service-button .button-icon,.service-button .button-label{transition:none}.service-dialog[open]{animation:none}}

/* Six equal service cards; softly raised, consistent interface icons. */
.products-reveal .heading-line{display:block}
.products .product-title-row{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:68px}
.products .product-title-row h3{flex:1;min-width:0;font-size:clamp(23px,1.8vw,29px);line-height:1.13}
.products .product-promise{max-width:none;min-height:72px;margin-top:17px}
.products .product-main{padding-bottom:24px}
.products .product-bottom{display:flex;align-items:center;flex-wrap:nowrap;margin-top:auto}
/* Identical fixed button geometry avoids content/baseline-dependent offsets. */
.service-button{width:218px;height:50px;min-height:50px;box-sizing:border-box;padding:0}
.products .service-button{width:174px}
.service-button .button-icon{width:44px;height:44px;line-height:1}
.service-button .button-icon svg{display:block;width:22px;height:22px}
.service-detail-footer .button-icon .pixel-arrow{width:30px;height:15px}
.service-button .button-label{position:absolute;left:56px;right:8px;top:0;bottom:0;display:grid;place-items:center;padding:0;line-height:1;transform:translateX(0)}
.service-button:is(:hover,:focus-visible) .button-label{transform:translateX(-48px)}
@media(max-width:720px){.products .product-title-row h3{font-size:25px}.products .product-promise{min-height:0}}

/* Service catalogue: compact editorial surfaces, with small interface diagrams. */
.products .product-card{position:relative;isolation:isolate;border-color:transparent;--diagram-top:#fff;--diagram-bottom:#f6f6f6;--diagram-edge:#dedee2;--diagram-ink:#55555e;--diagram-muted:#bcbcc2;--diagram-soft:#e9e7f1;--diagram-accent:#443396}
.products .product-google,.products .product-website{background:#e7e7e5}
.products .product-management{background:#1a1a1a;color:#f5f5f4;--diagram-top:#323232;--diagram-bottom:#232323;--diagram-edge:#505050;--diagram-ink:#dedede;--diagram-muted:#747474;--diagram-soft:#393743;--diagram-accent:#b3a4ef}
.products .product-management .product-promise{color:#b8b8b8}
.products .product-management .service-button{box-shadow:0 0 0 1px #525252}
/* Quiet secondary actions on the catalogue only; modal/hero CTAs retain their wipe. */
.products .product-card .service-button{width:auto;height:50px;min-height:50px;gap:10px;padding:0 6px 0 0;border:0;border-radius:4px;background:transparent;box-shadow:none;color:#414141;font-size:15px;overflow:visible;isolation:auto}
.products .product-card .service-button::before{content:none}
.products .product-card .service-button .button-label{position:relative;inset:auto;order:0;display:block;line-height:1.4;color:inherit;mix-blend-mode:normal;transform:none;transition:none}
.products .product-card .service-button .button-label::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .3s ease}
.products .product-card .service-button .button-icon{position:static;order:1;width:18px;height:18px;color:inherit;transform:none;transition:transform .3s ease}
.products .product-card .service-button .button-icon svg{width:18px;height:18px}
.products .product-card .service-button:is(:hover,:focus-visible){color:#191919}
.products .product-card .service-button:is(:hover,:focus-visible) .button-label::after{transform:scaleX(1)}
.products .product-card .service-button:is(:hover,:focus-visible) .button-icon{transform:translate(2px,-2px)}
.products .product-management .service-button{color:#c8c8c8}
.products .product-management .service-button:is(:hover,:focus-visible){color:#fff}
.products .product-card .service-button:focus-visible{outline:2px solid currentColor;outline-offset:5px}
@media(prefers-reduced-motion:reduce){.products .product-card .service-button .button-label::after,.products .product-card .service-button .button-icon{transition:none}}
.products .product-audit{background:transparent;border:1px dashed #a9a9a5}
.products .product-title-row{padding-right:0}
.products .product-title-row h3{max-width:380px}
.products .product-promise{position:relative;z-index:1}
.products .product-bottom{position:relative;top:8px;z-index:2}
/* Temporary price layout: preserve the existing overall card height. */
.products .product-title-row{min-height:50px}
.products .product-main{padding-bottom:16px}
.products .product-bottom{flex-direction:column;align-items:flex-start;gap:0;min-height:76px;padding-inline-start:clamp(8px,1.3vw,20px)}
.products .product-card .service-button{height:44px;min-height:44px}
.products .service-price{display:flex;align-items:baseline;gap:7px;margin:0;min-height:32px;line-height:32px;white-space:nowrap;color:#222}
.service-price span{line-height:1}
.service-price .price-from,.service-price .price-period{font-size:14px;font-weight:400;letter-spacing:-.01em;color:#767676}
.service-price .price-amount{font-size:28px;font-weight:500;letter-spacing:-.045em;font-variant-numeric:tabular-nums}
.service-price .price-currency{font-size:21px;font-weight:400}
.products .product-management .service-price{color:#f2f2f2}
.product-management .service-price .price-from,.product-management .service-price .price-period{color:#aaa}
.products .service-diagram{position:absolute;right:16px;bottom:20px;width:min(154px,calc(100% - 230px));height:88px;pointer-events:none}
.service-diagram svg{display:block;width:100%;height:100%;overflow:visible;stroke-linecap:round;stroke-linejoin:round}
.service-diagram .diagram-sheet{fill:var(--diagram-material);stroke:var(--diagram-edge);stroke-width:1;filter:var(--diagram-shadow)}
.service-diagram .diagram-stroke{stroke:var(--diagram-ink);stroke-width:1.7}
.service-diagram .diagram-line{stroke:var(--diagram-muted);stroke-width:2;fill:none}
.service-diagram .diagram-divider{stroke:var(--diagram-edge);stroke-width:1}
.service-diagram .diagram-muted{fill:var(--diagram-muted)}
.service-diagram .diagram-soft{fill:var(--diagram-soft)}
.service-diagram .diagram-accent{fill:var(--diagram-accent)}
.service-diagram .diagram-connector{stroke:var(--diagram-edge);stroke-width:1.5;fill:none}
.service-diagram .diagram-glass{fill:#f7f6fcda;stroke:var(--diagram-accent);stroke-width:1.5;filter:var(--diagram-shadow)}
.service-diagram .diagram-core .diagram-sheet{stroke:#b4a9d7}
.service-diagram .diagram-core .diagram-stroke{stroke:var(--diagram-accent)}
.service-diagram .diagram-signal{stroke:var(--diagram-accent);stroke-width:2;stroke-dasharray:9 100;stroke-dashoffset:9;opacity:0}
.service-diagram :is(.diagram-front,.diagram-back,.diagram-result,.diagram-step,.diagram-lens,.diagram-core){transform-box:fill-box;transform-origin:center;transition:translate .65s cubic-bezier(.22,.68,0,1),opacity .4s ease}
.product-card:is(:hover,:focus-within) .diagram-front{translate:-3px -4px}
.product-card:is(:hover,:focus-within) .diagram-back{translate:3px -1px}
.product-card:is(:hover,:focus-within) .diagram-result{translate:0 -3px}
.product-card:is(:hover,:focus-within) .diagram-core{translate:0 -3px}
.product-card:is(:hover,:focus-within) .diagram-lens{translate:-4px -3px}
.product-card:is(:hover,:focus-within) .diagram-step{translate:0 -4px}
.product-card:is(:hover,:focus-within) .step-two{transition-delay:.08s}
.product-card:is(:hover,:focus-within) .step-three{transition-delay:.16s}
.product-card:is(:hover,:focus-within) .diagram-signal{animation:service-signal 1.7s ease-in-out infinite}
@keyframes service-signal{0%{stroke-dashoffset:9;opacity:0}15%{opacity:1}85%{opacity:1}100%{stroke-dashoffset:-90;opacity:0}}
/* Aligned, service-specific diagrams: animate internal states, not connected tiles. */
.service-diagram .diagram-google-mark{fill:#36363c;font:600 20px Arial,sans-serif}
.service-diagram .diagram-search-field{fill:#f0f0f1;stroke:#e2e2e5;stroke-width:.8}
.service-diagram .diagram-ad-surface{fill:#f0edf8;stroke:#d7d0e9;stroke-width:.8;transition:fill .4s ease,stroke .4s ease}
.service-diagram .diagram-ad-label{fill:white;font:600 11px Arial,sans-serif;text-anchor:middle}
.product-google:is(:hover,:focus-within) .diagram-ad-surface{fill:#e5def6;stroke:#a69ac7}
.service-diagram .diagram-plan-track{fill:#343434}
.service-diagram .diagram-plan-bar{fill:#9a9a9f;transform-box:fill-box;transform-origin:left center;transition:scale .6s ease,fill .6s ease}
.service-diagram .plan-one{fill:#b3a4ef}
.service-diagram .diagram-plan-badge{fill:#3b364b;stroke:#716587;stroke-width:1}
.service-diagram .diagram-plan-check{stroke:#e0d7ff;stroke-width:2;fill:none}
.product-management:is(:hover,:focus-within) .plan-one{scale:1.2 1}
.product-management:is(:hover,:focus-within) .plan-two{scale:1.15 1;fill:#b3a4ef;transition-delay:.1s}
.product-management:is(:hover,:focus-within) .plan-three{fill:#b3a4ef;transition-delay:.2s}
.service-diagram .diagram-flow-rail{stroke:#c0b8d6;stroke-width:1.6}
.service-diagram .diagram-crm-sheet{stroke:#b7acd5;stroke-width:1.2}
.service-diagram .diagram-crm-label{fill:#443396;font:600 13px Arial,sans-serif;text-anchor:middle;letter-spacing:.7px}
.service-diagram .diagram-flow-signal{stroke:#443396;stroke-width:2.2;stroke-dasharray:24 100;stroke-dashoffset:24;opacity:0}
.service-diagram .diagram-task-check{stroke:#443396;stroke-width:1.8;fill:none;transition:stroke .3s ease}
.product-automation:is(:hover,:focus-within) .diagram-flow-signal{animation:service-flow 2.4s linear infinite}
.product-automation:is(:hover,:focus-within) .flow-out{animation-delay:1.2s}
@keyframes service-flow{0%{stroke-dashoffset:24;opacity:0}5%{opacity:1}45%{opacity:1}50%,100%{stroke-dashoffset:-100;opacity:0}}
@media(min-width:1101px) and (max-width:1320px){.products .service-diagram{width:min(117px,calc(100% - 226px));height:72px;right:12px;bottom:28px}}
@media(max-width:720px){.products .service-diagram{bottom:18px}}
@media(max-width:420px){.products .service-diagram{width:min(99px,calc(100% - 218px));height:66px;right:10px;bottom:29px}}
@media(prefers-reduced-motion:reduce){.service-diagram *{animation:none!important;transition:none!important;translate:none!important}}
/* Three copies cover the viewport throughout each shorter, independent row's loop. */
.clients.clients-marquee{padding-top:64px;padding-bottom:80px}
.clients.clients-marquee h2{margin-bottom:42px}
.client-marquee{--client-gap:clamp(48px,5vw,80px);display:grid;gap:30px;max-width:1440px;margin:0 auto;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
.client-marquee-row{min-width:0;overflow:hidden}
.client-marquee-track{display:flex;width:max-content;animation:clients-drift 40s linear infinite;will-change:transform}
.client-marquee-track:has(.client-marquee-group>li:hover){animation-play-state:paused}
.client-marquee-right .client-marquee-track{animation-direction:reverse}
.client-marquee-group{display:flex;flex:0 0 auto;align-items:center;gap:var(--client-gap);list-style:none;padding:0 var(--client-gap) 0 0;margin:0}
.client-marquee-group>li{flex:0 0 auto;font-family:var(--font);font-size:clamp(22px,1.8vw,28px);font-weight:500;line-height:1.4;letter-spacing:-.035em;white-space:nowrap;color:#777977;transition:color .3s ease}
.client-marquee-group>li:hover{color:#191919}
@keyframes clients-drift{from{transform:translateX(0)}to{transform:translateX(calc(-100% / 3))}}
@media(max-width:600px){.clients.clients-marquee{padding-top:48px;padding-bottom:56px}.clients.clients-marquee h2{margin-bottom:32px}.client-marquee{--client-gap:42px;gap:24px}.client-marquee-group>li{font-size:22px}}
@media(prefers-reduced-motion:reduce){.client-marquee{mask-image:none;-webkit-mask-image:none}.client-marquee-track{animation:none;transform:none;width:100%;will-change:auto}.client-marquee-group[aria-hidden="true"]{display:none}.client-marquee-group{flex:1;flex-wrap:wrap;justify-content:center;gap:22px 36px;padding:0}.client-marquee-group>li{white-space:normal;text-align:center;transition:none}}
/* Pause/resume retains animation progress and the existing client hover pause. */
.hero.is-motion-paused .pulse path,
.hero.is-motion-paused .marquee-track,
.hero.is-motion-paused .marquee-set span:before,
.approach-tools.is-motion-paused .tools-float,
.client-marquee-row.is-motion-paused .client-marquee-track{animation-play-state:paused!important}
/* Touch-first CTA design is mobile-only. Desktop keeps the approved wipe. */
@media(max-width:999px){
:is(:is(.site-header,.hero-description,#service-dialog,#mobile-menu) [data-contact]:not(.network-contact),#contact-dialog .form-submit,#footer-contact-form .footer-submit){background:#1a1a1a;color:#fff;border:0;box-shadow:none;padding:0 22px;gap:12px;justify-content:center;transition:background-color .2s ease;transform:none}
:is(:is(.site-header,.hero-description,#service-dialog,#mobile-menu) [data-contact]:not(.network-contact),#contact-dialog .form-submit,#footer-contact-form .footer-submit)::before{content:none}
:is(:is(.site-header,.hero-description,#service-dialog,#mobile-menu) [data-contact]:not(.network-contact),#contact-dialog .form-submit,#footer-contact-form .footer-submit) .button-icon{position:static;inset:auto;order:2;display:grid;place-items:center;flex:0 0 30px;width:30px;height:30px;background:transparent;color:#fff;border:0;border-radius:0;transform:none;transition:none}
:is(:is(.site-header,.hero-description,#service-dialog,#mobile-menu) [data-contact]:not(.network-contact),#contact-dialog .form-submit,#footer-contact-form .footer-submit) .button-label{position:static;inset:auto;order:1;display:block;min-height:0;padding:0;color:#fff;mix-blend-mode:normal;transform:none;transition:none}
@media(hover:hover){:is(:is(.site-header,.hero-description,#service-dialog,#mobile-menu) [data-contact]:not(.network-contact),#contact-dialog .form-submit,#footer-contact-form .footer-submit):hover{background:#343434}}
:is(:is(.site-header,.hero-description,#service-dialog,#mobile-menu) [data-contact]:not(.network-contact),#contact-dialog .form-submit,#footer-contact-form .footer-submit):active{background:#414141}
}
/* The original footer artwork shares one viewport to avoid border/curtain seams. */
#footer-contact-form .submit-surface{display:none}
@media(min-width:1000px){
#footer-contact-form .footer-submit{appearance:none;display:block;position:relative;flex:0 0 auto;box-sizing:border-box;width:218px;height:50px;min-height:50px;margin:0;padding:0;border:0;border-radius:13px;overflow:hidden;background:#1a1a1a;color:#fff;font:400 15px/1 var(--font);box-shadow:none;transform:none;filter:none;mix-blend-mode:normal;transition:none}
#footer-contact-form .footer-submit::before,#footer-contact-form .footer-submit::after{content:none}
#footer-contact-form .submit-surface{display:block;width:218px;height:50px;pointer-events:none;overflow:hidden;font:inherit;mix-blend-mode:normal}
#footer-contact-form .submit-wipe{width:44px;transition:width .55s cubic-bezier(.22,.68,0,1)}
#footer-contact-form .submit-icon,#footer-contact-form .submit-label{transition:transform .55s cubic-bezier(.22,.68,0,1);mix-blend-mode:normal}
#footer-contact-form .submit-label{font:inherit;text-anchor:middle}
#footer-contact-form .submit-icon{font:400 25px/1 var(--font);text-anchor:middle}
#footer-contact-form .footer-submit:is(:hover,:focus-visible) .submit-wipe{width:212px}
#footer-contact-form .footer-submit:is(:hover,:focus-visible) .submit-icon{transform:translateX(168px)}
#footer-contact-form .footer-submit:is(:hover,:focus-visible) .submit-label{transform:translateX(-48px)}
@media(prefers-reduced-motion:reduce){#footer-contact-form .submit-wipe,#footer-contact-form .submit-icon,#footer-contact-form .submit-label{transition:none}}
#footer-contact-form .footer-submit>.button-icon,#footer-contact-form .footer-submit>.button-label{display:none}
}
/* Start on the title, not the close button; keyboard focus remains visible. */
#contact-title:focus,#mobile-menu-title:focus{outline:none}
#contact-dialog .dialog-close,#mobile-menu .mobile-menu-close,#service-dialog .service-dialog-close{-webkit-tap-highlight-color:transparent}
#contact-dialog .dialog-close:focus-visible,#mobile-menu .mobile-menu-close:focus-visible,#service-dialog .service-dialog-close:focus-visible{outline:2px solid #747470;outline-offset:3px}
/* Safari can carry focus-visible from a dialog to a touch-opened card. */
.products [data-service-details].is-pointer-return:focus{outline:none}
#home .network-contact.is-pointer-return:focus{outline:none}
/* Touch browsers can retain :hover after the overlay closes. Do not leave a
   false selected state on Details; Tab removes this class in the controller. */
.products .product-card .service-button.is-pointer-return .button-label::after{transform:scaleX(0);transition:none}
.products .product-card .service-button.is-pointer-return .button-icon{transform:none}
#mobile-menu-trigger.is-pointer-return:focus{outline:none}
.cookie-consent{position:fixed;left:14px;right:auto;bottom:14px;z-index:60;width:min(430px,calc(100% - 28px));background:var(--white);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius);padding:26px 28px;box-shadow:0 24px 70px #12121b26;transform:translateY(18px);opacity:0;visibility:hidden;transition:transform .35s ease,opacity .35s ease,visibility 0s linear .35s}
.cookie-consent.is-visible{transform:translateY(0);opacity:1;visibility:visible;transition:transform .4s ease,opacity .4s ease}
.cookie-consent h2{font-size:22px;letter-spacing:-.03em;margin-bottom:10px}
.cookie-consent p{font-size:14px;color:var(--muted);line-height:1.5}
.cookie-consent a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}
.cookie-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
.cookie-button{flex:1 1 auto;min-height:48px;padding:12px 18px;border:0;border-radius:12px;font-size:15px;font-weight:500;transition:background .2s,transform .2s,color .2s}
.cookie-button:hover{transform:translateY(-2px)}
.cookie-accept{background:var(--ink);color:var(--white)}
.cookie-accept:hover{background:var(--accent)}
.cookie-decline{background:var(--paper);color:var(--ink);border:1px solid var(--line)}
.cookie-decline:hover{background:#e7e7e4}
.cookie-settings-link{flex:0 0 100%;order:3;background:transparent;border:0;color:var(--muted);min-height:auto;padding:4px 0;font-size:13px;text-align:left;text-decoration:underline;text-underline-offset:3px}
.cookie-settings-link:hover{color:var(--accent);transform:none}
.cookie-settings-link:focus{outline:0}
.cookie-settings-link:focus-visible{outline:0;color:var(--accent);text-decoration-thickness:2px}
.cookie-options{display:none;margin-top:18px;border-top:1px solid var(--line);padding-top:18px;flex-direction:column;gap:14px}
.cookie-options.is-open{display:flex}
.cookie-option{display:flex;align-items:flex-start;gap:12px}
.cookie-option input{width:18px;height:18px;flex:0 0 auto;margin-top:2px;padding:0;accent-color:var(--accent)}
.cookie-option input:disabled{opacity:.5}
.cookie-option-text{font-size:13px}
.cookie-option-text strong{display:block;font-size:14px;font-weight:500;color:var(--ink);margin-bottom:2px}
.cookie-option-text span{color:var(--muted);line-height:1.45}
