/* ==========================================================================
   Header dropdowns + mega menu, mobile accordion menu, footer columns.
   Source file (not compiled): public/css/nav.css
   ========================================================================== */
.header__wrap{position:relative}
.nav-menu{align-items:center}
.nav-menu>li{align-items:center;display:flex;gap:.25rem}
.nav-menu>li.mega{position:static}
.nav-toggle{align-items:center;background:none;border:0;color:inherit;cursor:pointer;display:inline-flex;height:1.5rem;justify-content:center;margin-right:-.375rem;opacity:.7;padding:0;transition:transform .35s cubic-bezier(.22,1,.36,1),opacity .25s;width:1.25rem}
.header__menu .nav-toggle{color:var(--color-text-white-primary)}
.header-alternate.header-bg .header__menu .nav-toggle,.header.header-alternate.header-white .header__menu .nav-toggle{color:var(--color-text-primary)}
.nav-menu>li.is-open>.nav-toggle{opacity:1;transform:rotate(180deg)}

/* Panel */
.nav-panel{left:50%;opacity:0;padding-top:1.125rem;pointer-events:none;position:absolute;top:100%;transform:translate3d(-50%,.5rem,0);transition:opacity .22s ease .08s,transform .32s cubic-bezier(.22,1,.36,1) .08s,visibility 0s linear .4s;visibility:hidden;z-index:50}
.nav-menu>li.is-open>.nav-panel{opacity:1;pointer-events:auto;transform:translate3d(-50%,0,0);transition-delay:0s;visibility:visible}
@media (hover:hover) and (pointer:fine){
  .nav-menu>li:hover>.nav-panel{opacity:1;pointer-events:auto;transform:translate3d(-50%,0,0);transition-delay:.06s,.06s,0s;visibility:visible}
  .nav-menu>li:hover>.nav-toggle{opacity:1;transform:rotate(180deg)}
}
.nav-panel__inner{background:var(--color-bg-primary);border:1px solid var(--color-border-primary);border-radius:1.25rem;box-shadow:0 1.5rem 3.5rem rgba(8,8,20,.16);padding:.75rem}
.nav-panel__list{display:grid;gap:.125rem;min-width:15rem}
.cols-2>.nav-panel .nav-panel__list{grid-template-columns:repeat(2,minmax(13rem,1fr))}
.nav-sublink{border-radius:.75rem;color:var(--color-text-primary)!important;display:flex;flex-direction:column;font-size:.9375rem!important;gap:.125rem;padding:.625rem .875rem;transition:background .2s,color .2s!important;white-space:nowrap}
.nav-sublink:hover,.nav-sublink:focus-visible{background:var(--color-bg-secondary);color:var(--color-accent)!important}
.nav-sublink[aria-current=page]{color:var(--color-accent)!important}
.nav-sublink__desc{color:var(--color-text-secondary);font-size:.8125rem;font-weight:400;line-height:1.125rem;white-space:normal}

/* Mega */
.nav-panel--mega{width:min(62rem,calc(100vw - 5rem))}
/* Mega panel is positioned from the header row, not from the menu item: bridge the gap so hover is not lost */
.nav-panel--mega:before{content:"";height:.875rem;left:0;position:absolute;right:0;top:-.75rem}
.nav-panel--mega .nav-panel__inner{padding:1.5rem}
.nav-panel--mega .nav-panel__list{gap:1.5rem;grid-template-columns:repeat(3,minmax(0,1fr))}
.nav-col{display:flex;flex-direction:column}
.nav-col__title{color:var(--color-text-secondary)!important;font-size:.75rem!important;font-weight:600!important;letter-spacing:.06em;padding:0 .875rem .5rem;text-transform:uppercase}
a.nav-col__title:hover{color:var(--color-accent)!important}
.nav-col__list{display:flex;flex-direction:column;gap:.125rem}
.nav-panel--mega .nav-sublink{white-space:normal}

/* Mobile accordion */
.m-nav{display:flex;flex-direction:column;gap:0!important}
.m-nav__item--d0{border-bottom:1px solid var(--color-border-primary)}
.m-nav__item--d0>.m-nav__link,.m-nav__summary{align-items:center;color:var(--color-text-primary);cursor:pointer;display:flex!important;font-size:1.25rem!important;font-weight:600;justify-content:space-between;letter-spacing:-.025rem;list-style:none;padding:.875rem 0}
.m-nav__summary::-webkit-details-marker{display:none}
.m-nav__chevron{border-bottom:2px solid currentColor;border-right:2px solid currentColor;height:.5rem;margin-right:.25rem;transform:rotate(45deg) translateY(-.125rem);transition:transform .3s cubic-bezier(.22,1,.36,1);width:.5rem}
.m-nav__group[open] .m-nav__chevron{transform:rotate(-135deg) translateY(-.125rem)}
.m-nav__group[open] .m-nav__summary{color:var(--color-accent)}
.m-nav__panel{padding:0 0 1rem}
.m-nav__sub{display:flex!important;flex-direction:column;gap:.125rem!important}
.m-nav__sub .m-nav__link{color:var(--color-text-secondary)!important;font-size:1rem!important;font-weight:500!important;padding:.375rem 0}
.m-nav__sub .m-nav__item.is-current>.m-nav__link{color:var(--color-accent)!important}
.m-nav__col-title{color:var(--color-text-primary);display:block;font-size:.75rem;font-weight:600;letter-spacing:.06em;margin:.75rem 0 .25rem;text-transform:uppercase}
.m-nav__sub--col{padding-left:.75rem}

/* Footer: five columns */
.footer__main-menu-title{color:var(--color-text-white-tertiary);font-size:.875rem;font-weight:400;line-height:142.857%}
@media (min-width:1280px){.footer__main-menu{display:grid;gap:2rem 1.5rem;grid-template-columns:repeat(5,minmax(0,1fr));max-width:none}.footer__main-menu>li{width:auto}}

@media (prefers-reduced-motion:reduce){.nav-panel,.nav-toggle{transition:none}}
.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;width:1px;word-wrap:normal!important}
.footer__legal{color:var(--color-text-white-tertiary);font-size:.8125rem;margin-top:.25rem}
.s-clientsLogo__title{color:var(--color-text-secondary);font-size:.875rem;font-weight:500;letter-spacing:.04em;margin:0 0 1.5rem;text-align:center;text-transform:uppercase}
a.blogArticle__author-name{color:inherit;display:block;text-decoration:none}
a.blogArticle__author-name:hover{color:var(--color-accent)}
.blogComments{border-top:1px solid var(--color-border-default);margin-top:3rem;padding-top:2.5rem}
.blogComments__title{font-size:1.5rem;font-weight:600;letter-spacing:-.03rem;margin-bottom:1.5rem}
.blogComments__list{list-style:none;margin:0 0 2rem;padding:0}
.blogComments__list li:before{display:none}
.blogComments__list .comment-body{background:var(--color-bg-secondary);border-radius:1rem;margin-bottom:.75rem;padding:1.25rem}
.blogComments__list .children{list-style:none;margin:0 0 0 2rem;padding:0}
.blogComments__list .comment-meta{align-items:center;display:flex;flex-wrap:wrap;font-size:.875rem;gap:.5rem;margin-bottom:.5rem}
.blogComments__list .comment-meta img{border-radius:50%}
.blogComments__list .comment-metadata a{color:var(--color-text-secondary)}
.blogComments__list .reply a{color:var(--color-accent);font-size:.875rem;font-weight:600}
.blogComments__reply{font-size:1.125rem;font-weight:600;margin-bottom:.5rem}
.blogComments__note{color:var(--color-text-gray-1);font-size:.875rem;margin:0 0 1rem}
.blogComments .comment-form{display:grid;gap:1rem;grid-template-columns:1fr 1fr}
.blogComments .comment-form>p{margin:0}
.blogComments .comment-form-comment,.blogComments .blogComments__note,.blogComments .form-submit,.blogComments .comment-form-cookies-consent,.blogComments .logged-in-as{grid-column:1/-1}
.blogComments label{display:block;font-size:.875rem;font-weight:500;margin-bottom:.375rem}
.blogComments input[type=text],.blogComments input[type=email],.blogComments textarea{background:#fff;border:1px solid var(--color-border-default);border-radius:.75rem;font:inherit;padding:.75rem 1rem;width:100%}
.blogComments textarea{min-height:8rem;resize:vertical}
.blogComments input:focus,.blogComments textarea:focus{border-color:var(--color-accent);outline:none}
.blogComments .comment-form-cookies-consent{align-items:center;display:flex;font-size:.875rem;gap:.5rem}
.blogComments .comment-form-cookies-consent label{margin:0}
@media (max-width:639.98px){.blogComments .comment-form{grid-template-columns:1fr}}
/* LCP: hero headline is visible from the first paint, the slide-in stays (transform only). */
.s-heroServices .s-heroServices__title,.s-heroServices .s-heroServices__text,.s-heroServices .s-heroServices__actions{opacity:1}
/* Contact form selects look like the text fields. */
.feedback-form select.form-field{-webkit-appearance:none;appearance:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 4.5 6 8l3.5-3.5' fill='none' stroke='%2359616f' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 1.25rem center/12px;border-radius:6.25rem;color:var(--color-text-gray-1);cursor:pointer;font:inherit;font-size:.875rem;padding-right:2.75rem}
.feedback-form select.form-field:focus{border-color:var(--color-accent);outline:none}
.s-heroServices .s-heroServices__wrap:before,.s-heroServices.s-heroServices:after{opacity:1;transition:none}
/* Mobile polish from the buyer test */
@media (max-width:1023.98px){.s-trust__item--clutch{grid-column:1/-1}.s-trust__item--clutch+.s-trust__item{border-left:0}.s-trust__item:nth-child(2n){border-left:0}.s-trust__item:nth-child(2n+1):not(:first-child){border-left:1px solid var(--color-border-default)}.s-trust__item:nth-child(n+2){border-top:1px solid var(--color-border-default)}}
.s-heroServices .breadcrumbs{position:relative;z-index:3}
@media (max-width:767.98px){.breadcrumbs__list{flex-wrap:wrap;overflow:visible;row-gap:.25rem}.breadcrumbs__list li{white-space:normal}}
/* Mega panels size to their column count: 5 for Services, 2 for Solutions. */
.nav-panel--mega .nav-panel__list{grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;grid-template-columns:none}
.nav-panel--mega:has(.nav-col:nth-child(4)){width:min(76rem,calc(100vw - 4rem))}
.nav-panel--mega:not(:has(.nav-col:nth-child(3))){width:min(38rem,calc(100vw - 4rem))}
.s-services__list-link{color:inherit;text-decoration:none;transition:color .3s}
.s-services__list-link:after{content:" \2192";opacity:0;transition:opacity .3s,margin .3s}
.s-services__list-link:hover{color:var(--color-accent)}
.s-services__list-link:hover:after{opacity:1}
.s-services__list-item{position:relative}
.s-services__list-link:before{content:"";inset:0;position:absolute}

/* A11y contrast (Lighthouse/axe): muted text on light grey cards and light breadcrumbs. */
.s-services__list-descript{color:var(--color-text-gray-1)}
.default-page .breadcrumbs li a{color:var(--color-text-gray-1)}
.nav-link[aria-current=page] .nav-link__text{color:#5a92ff}
.blogArticle__info li.date,.blogArticle__info li.time{color:var(--color-text-gray-1)}
.wp-block-paragraph a,.feedback-text a{text-decoration:underline;text-underline-offset:.15em}
/* Modal close is a real <button> now (keyboard and screen readers). */
button.modal__close{background:none;border:0;padding:0;font:inherit;color:inherit}
button.modal__close:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}
/* Blog CTA title is a styled paragraph, not a heading (keeps the article outline clean). */
.blogArticle__content p.cta-banner__title,p.cta-banner__title{color:var(--color-text-white-primary);font-size:2rem;font-weight:600;letter-spacing:-.06rem;line-height:125%;margin:0}
@media (max-width:1023.98px){.blogArticle__content p.cta-banner__title,p.cta-banner__title{font-size:1.5rem;letter-spacing:-.045rem;line-height:133.333%}}
.blogArticle__more-link,.blogArticle__quote-position,.blogArticle__review-position{color:var(--color-text-gray-1)}

/* Blog tables and code (new buyer-intent articles). */
.blogArticle__content .wp-block-table{margin:1.5rem 0;overflow-x:auto;-webkit-overflow-scrolling:touch}
.blogArticle__content .wp-block-table table{width:100%;min-width:560px;border-collapse:separate;border-spacing:0;border:1px solid var(--color-text-gray);border-radius:.75rem;overflow:hidden;font-size:.9375rem;line-height:1.45}
.blogArticle__content .wp-block-table th{background:var(--color-bg-secondary,#f4f5f7);text-align:left;font-weight:600;color:var(--color-text-primary)}
.blogArticle__content .wp-block-table th,.blogArticle__content .wp-block-table td{padding:.75rem 1rem;vertical-align:top;border-bottom:1px solid var(--color-text-gray)}
.blogArticle__content .wp-block-table tr:last-child td{border-bottom:0}
.blogArticle__content .wp-block-table td+td,.blogArticle__content .wp-block-table th+th{border-left:1px solid var(--color-text-gray)}
.blogArticle__content pre.wp-block-code{background:#0f1222;color:#e6e9f2;border-radius:.75rem;padding:1rem 1.25rem;overflow-x:auto;font-size:.875rem;line-height:1.5;margin:1.25rem 0}
.blogArticle__content :not(pre)>code{background:#eef1f6;border-radius:.25rem;padding:.1em .35em;font-size:.9em}
.blogArticle__content td a,.blogArticle__content li a{text-decoration:underline;text-underline-offset:.15em}

/* Mobile menu: collapsible service columns. */
.m-nav__colgroup{border-top:1px solid var(--color-border-primary)}
.m-nav__item--d1:first-child .m-nav__colgroup{border-top:0}
summary.m-nav__col-title{align-items:center;cursor:pointer;display:flex;justify-content:space-between;list-style:none;margin:0;padding:.875rem 0;font-size:.8125rem}
summary.m-nav__col-title::-webkit-details-marker{display:none}
.m-nav__chevron--sm{height:.4rem;width:.4rem;border-width:1.5px}
.m-nav__colgroup[open]>summary .m-nav__chevron{transform:rotate(-135deg) translateY(-.125rem)}
.m-nav__colgroup[open]>summary{color:var(--color-accent)}
.m-nav__colgroup>.m-nav__sub--col{padding-bottom:.75rem}
.m-nav__colgroup:not([open])>summary .m-nav__chevron{transform:rotate(45deg) translateY(-.125rem)}
.nav-panel--mega:has(.nav-col:nth-child(5)){width:min(86rem,calc(100vw - 3rem))}
.page-noFound__links{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;justify-content:center;list-style:none;margin:1.5rem 0 0;padding:0}
.page-noFound__links a{color:var(--color-text-gray-1);text-decoration:underline;text-underline-offset:.15em}
.page-noFound__links a:hover{color:var(--color-accent)}
.cmp-note{display:block;font-size:.8125rem;line-height:1.35;color:var(--color-text-gray-1);margin-top:.25rem}
.page-noFound h1.title-section{margin:0}
/* Hero illustrations carry their own UI; the decorative logo card would hide it. */
.s-heroServices .image-layers .layer-logo{display:none!important}
.card-portfolio__result{display:inline-flex;align-items:baseline;gap:.4rem;margin-top:.875rem;padding:.4rem .8rem;border-radius:2rem;background:#ffffff1f;color:var(--color-text-white-primary,#fff);font-size:.875rem;line-height:1.3;backdrop-filter:blur(6px)}
.card-portfolio__result b{font-size:1.125rem;font-weight:600}
/* Contacts: what happens next, contact facts, urgent route. */
.contact-facts{display:flex;flex-direction:column;gap:1.5rem;margin-top:2rem}
.contact-steps{counter-reset:s;list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1rem}
.contact-steps li{counter-increment:s;display:grid;grid-template-columns:2rem 1fr;column-gap:.75rem;color:var(--color-text-white-secondary,#b9c3da);font-size:.9375rem;line-height:1.45}
.contact-steps li:before{content:counter(s);grid-row:span 2;width:2rem;height:2rem;border-radius:50%;border:1px solid #ffffff33;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;font-size:.875rem}
.contact-steps b{color:#fff;font-weight:600}
.contact-meta{margin:0;display:grid;gap:.625rem;padding:1.25rem 0;border-top:1px solid #ffffff1f;border-bottom:1px solid #ffffff1f}
.contact-meta div{display:grid;grid-template-columns:4.5rem 1fr;gap:.75rem;font-size:.9375rem;line-height:1.45}
.contact-meta dt{color:#8a93a6}.contact-meta dd{margin:0;color:#fff}.contact-meta a{color:#fff;text-decoration:underline;text-underline-offset:.15em}
.contact-urgent{display:flex;flex-direction:column;gap:.25rem;padding:1rem 1.25rem;border-radius:1rem;background:#e5484d1f;border:1px solid #e5484d55;color:#fff;text-decoration:none;font-size:.9375rem;line-height:1.45;transition:background .3s}
.contact-urgent:hover{background:#e5484d33}.contact-urgent span{color:#e6c9ca}
/* Mobile "Show all" for long card grids. */
.s-cardGrid__more-btn{display:block;margin:1.25rem auto 0;padding:.75rem 1.5rem;border-radius:2rem;border:1px solid currentColor;background:none;color:inherit;font:inherit;font-weight:600;cursor:pointer;opacity:.85}
.s-cardGrid__item[hidden]{display:none!important}
/* "Why Artilab": text cards instead of stock photos, two columns. */
.s-fullService .s-fullService__list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem;max-width:72rem}
.s-fullService .card-fullService{display:block;height:100%;padding:1.75rem 1.75rem 1.5rem;border-radius:1.25rem;background:var(--color-bg-secondary,#f4f5f7)}
.s-fullService .card-fullService__img{display:none}
.s-fullService .card-fullService__info{width:100%}
.s-fullService .card-fullService__title{font-size:1.25rem;line-height:1.35}
.s-fullService .card-fullService__title:before{content:"";display:block;width:2rem;height:.1875rem;border-radius:.25rem;background:var(--color-accent);margin-bottom:1rem}
@media (max-width:767.98px){.s-fullService .s-fullService__list{grid-template-columns:1fr;gap:.75rem}.s-fullService .card-fullService{padding:1.25rem}}
.s-cardGrid--dark .s-cardGrid__more-btn{color:#fff}
/* Mobile: price plans swipe sideways instead of stacking (saves ~1,500px per page). */
@media (max-width:767.98px){
.s-pricing__list,.s-pricing .pricing__list,.s-pricing__plans{display:flex!important;flex-wrap:nowrap!important;overflow-x:auto;scroll-snap-type:x mandatory;gap:.75rem;margin-inline:-1rem;padding:0 1rem 1rem;-webkit-overflow-scrolling:touch}
.s-pricing__list>*,.s-pricing .pricing__list>*,.s-pricing__plans>*{flex:0 0 86%;scroll-snap-align:center}
}
.s-compare__table tr[hidden]{display:none!important}

/* Home hero: real work on the first screen. */
.s-hero__showcase{position:relative;z-index:5;margin:2.5rem 0 1rem}
.hero-showcase{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem;list-style:none;margin:0 auto;padding:0;max-width:68rem;perspective:1200px}
.hero-showcase__item{opacity:0;transform:translateY(1.5rem);animation:hero-show .8s cubic-bezier(.22,1,.36,1) forwards;animation-delay:calc(.35s + var(--i)*.12s)}
.hero-showcase__item:nth-child(2){margin-top:-1.5rem}
@keyframes hero-show{to{opacity:1;transform:none}}
.hero-showcase__card{display:block;border-radius:1.25rem;overflow:hidden;background:#10152a;border:1px solid #ffffff1f;color:#fff;text-decoration:none;transition:transform .4s cubic-bezier(.22,1,.36,1),border-color .3s,box-shadow .4s;box-shadow:0 30px 60px -30px #000}
.hero-showcase__card:hover,.hero-showcase__card:focus-visible{transform:translateY(-.4rem);border-color:#5a92ff88;box-shadow:0 40px 70px -30px #1a66ff66}
.hero-showcase__img{display:block;aspect-ratio:16/10;overflow:hidden;background:#0f1428}
.hero-showcase__img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.22,1,.36,1)}
.hero-showcase__card:hover .hero-showcase__img img{transform:scale(1.04)}
.hero-showcase__text{display:flex;flex-direction:column;gap:.25rem;padding:1rem 1.125rem 1.125rem;text-align:left}
.hero-showcase__text b{font-size:1.0625rem;font-weight:600}
.hero-showcase__text span{font-size:.875rem;line-height:1.4;color:#b9c3da}
@media (max-width:767.98px){.hero-showcase{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:.75rem;margin-inline:-1rem;padding:0 1rem 1rem}.hero-showcase__item{flex:0 0 78%;scroll-snap-align:center}.hero-showcase__item:nth-child(2){margin-top:0}}
@media (prefers-reduced-motion:reduce){.hero-showcase__item{animation:none;opacity:1;transform:none}}
/* Home "Why Artilab" (successful-launch): text cards instead of stock photos. */
.s-successful .s-successful__top-img{display:none}
.s-successful .s-successful__top-item{padding:1.75rem;border-radius:1.25rem;background:var(--color-bg-secondary,#f4f5f7)}
.s-successful .s-successful__top-item h3:before{content:"";display:block;width:2rem;height:.1875rem;border-radius:.25rem;background:var(--color-accent);margin-bottom:1rem}

/* Contact form polish (1.25.0) */
.feedback-form .w-100{width:100%}
.feedback-form label{display:block}
.feedback-form .form-field{border-color:#d9dde4;font-size:.9375rem;transition:border-color .2s,box-shadow .2s}
.feedback-form input.form-field,.feedback-form select.form-field{height:3.25rem;padding-top:0;padding-bottom:0;padding-left:1.25rem}
.feedback-form input.form-field{padding-right:1.25rem}
.feedback-form .form-field::placeholder{color:#70798c}
.feedback-form select.form-field{color:#14161a}
.feedback-form select.form-field:has(option[value=""]:checked){color:#70798c}
.feedback-form .form-field:hover{border-color:#b3bac6}
.feedback-form .form-field:focus,.feedback-form select.form-field:focus{border-color:var(--color-accent);box-shadow:0 0 0 4px rgba(26,102,255,.14);outline:none}
.feedback-form textarea.form-field{border-radius:1.5rem;min-height:8rem;padding:1rem 1.25rem;resize:vertical}
.feedback-form .form-field[aria-invalid=true]{box-shadow:0 0 0 4px rgba(229,72,77,.12)}
.feedback-form__sep{width:100%;display:flex;align-items:center;gap:.75rem;margin:.75rem 0 .125rem;font-size:.8125rem;line-height:1.4;color:#59616f}
.feedback-form__sep::after{content:"";flex:1;height:1px;background:#e6e8ec}
.feedback-form .feedback-text{font-size:.8125rem;line-height:1.55;color:#59616f;margin-top:.5rem}
.feedback-form button[type=submit].button{background:var(--color-accent);color:#fff;min-height:3.5rem;font-size:1rem;margin-top:.25rem;transition:background-color .25s,box-shadow .25s,transform .25s}
.feedback-form button[type=submit].button:hover{background:#0f55e0;box-shadow:0 10px 28px rgba(26,102,255,.32);transform:translateY(-1px)}
.feedback-form button[type=submit].button:focus-visible{outline:3px solid rgba(26,102,255,.4);outline-offset:3px}
@media (max-width:767.98px){.feedback-form .form-field{font-size:16px}}
.feedback-form select.form-field{font-size:.9375rem}
.feedback-form textarea.form-field{min-height:7rem}
@media (max-width:767.98px){.feedback-form select.form-field{font-size:16px}}

/* How we work: inline timeline instead of cards with modals (1.26.0) */
.s-howWork__head{margin-bottom:3.5rem}
.hw-steps{--gap:1.25rem;--dot:3rem;list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));gap:var(--gap);position:relative}
.hw-steps::before,.hw-steps::after{content:"";position:absolute;top:calc(var(--dot)/2);left:calc(var(--dot)/2);right:calc((100% - (var(--n) - 1)*var(--gap))/var(--n) - var(--dot)/2);height:2px;margin-top:-1px;background:#dfe3ea;border-radius:2px}
.hw-steps::after{background:var(--color-accent);transform:scaleX(var(--p,0));transform-origin:left center;transition:transform .15s linear}
.hw-step{position:relative;z-index:1;display:flex;flex-direction:column;gap:1.25rem;margin:0}
.hw-step__num{width:var(--dot);height:var(--dot);border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#fff;border:1px solid #dfe3ea;color:var(--color-accent);font-size:.9375rem;font-weight:600;flex:none;transition:background .35s,color .35s,border-color .35s,box-shadow .35s}
.hw-step.is-on .hw-step__num{background:var(--color-accent);border-color:var(--color-accent);color:#fff;box-shadow:0 0 0 6px rgba(26,102,255,.12)}
.hw-step__body{flex:1;background:#fff;border:1px solid #e9ecf1;border-radius:1.25rem;padding:1.5rem 1.375rem;transition:border-color .35s,box-shadow .35s,transform .35s}
.hw-step.is-on .hw-step__body{border-color:#d6e2ff}
.hw-step__body:hover{box-shadow:0 18px 40px -24px rgba(16,24,40,.25);transform:translateY(-2px)}
.hw-step__title{font-size:1.25rem;font-weight:600;letter-spacing:-.02em;line-height:1.3;margin:0 0 .625rem}
.hw-step__text,.hw-step__text p{font-size:.9375rem;line-height:1.55;color:#59616f;margin:0}
.hw-cta{display:flex;align-items:center;justify-content:center;gap:1rem 1.5rem;flex-wrap:wrap;margin-top:3rem;text-align:center}
.hw-cta__text{font-size:1.0625rem;font-weight:500;color:#14161a}
.hw-cta .button{margin-top:0;width:auto;padding-inline:1.75rem}
@media (max-width:1023.98px){
.hw-steps{grid-template-columns:1fr;gap:1rem}
.hw-steps::before,.hw-steps::after{top:calc(var(--dot)/2);bottom:calc(var(--dot)/2);left:calc(var(--dot)/2);right:auto;width:2px;height:auto;margin:0 0 0 -1px}
.hw-steps::after{transform:scaleY(var(--p,0));transform-origin:center top}
.hw-step{flex-direction:row;align-items:flex-start;gap:1rem}
.hw-step__body{padding:1.125rem 1.25rem}
.hw-step__title{font-size:1.125rem;margin-bottom:.375rem}
.hw-cta{margin-top:2rem}
.hw-cta .button{width:100%}
}
@media (max-width:1023.98px){.hw-steps .hw-step:last-child .hw-step__body{margin-bottom:0}}
@media (prefers-reduced-motion:reduce){.hw-steps::after{transition:none}.hw-step__body{transition:none}}

/* Header email icon (desktop) and back-to-top button (1.28.0) */
.header__mail{display:none}
@media (min-width:1024px){.header__mail{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border-radius:50%;border:1px solid color-mix(in srgb,currentColor 25%,transparent);color:inherit;margin-right:.625rem;flex:none;transition:border-color .2s,color .2s,background-color .2s}.header__mail:hover,.header__mail:focus-visible{border-color:var(--color-accent);color:var(--color-accent)}}
.to-top{position:fixed;right:1.25rem;bottom:1.25rem;z-index:90;width:3rem;height:3rem;border-radius:50%;border:1px solid #ffffff26;background:#0f1222;color:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 10px 30px -10px rgba(0,0,0,.45);opacity:0;transform:translateY(.75rem);transition:opacity .25s,transform .25s,background-color .2s;pointer-events:none}
.to-top.is-visible{opacity:1;transform:none;pointer-events:auto}
.to-top:hover{background:var(--color-accent)}
.to-top:focus-visible{outline:3px solid rgba(26,102,255,.5);outline-offset:3px}
.to-top[hidden]{display:none}
@media (max-width:767.98px){.to-top{right:1rem;bottom:1rem;width:2.75rem;height:2.75rem}}
@media (prefers-reduced-motion:reduce){.to-top{transition:none}}
@media (min-width:1024px){.header__wrap>nav{margin-left:auto}.header__mail{margin-left:auto;margin-right:-.375rem;color:#fff}.header.header-alternate.header-bg .header__mail,.header.header-alternate.header-white .header__mail{color:var(--color-text-primary)}}

/* Page byline under service heroes (1.29.0) */
.page-byline{padding:1rem 0 0}
.page-byline__inner{display:flex;align-items:center;gap:.75rem}
.page-byline__photo{width:2.25rem;height:2.25rem;border-radius:50%;object-fit:cover;flex:none}
.page-byline__text{margin:0;font-size:.875rem;line-height:1.45;color:var(--color-text-gray-1,#59616f)}
.page-byline__text a{color:var(--color-text-primary,#14161a);font-weight:600;text-decoration:underline;text-decoration-color:#c9ced8;text-underline-offset:3px}
.page-byline__text a:hover{color:var(--color-accent);text-decoration-color:currentColor}
.page-byline__sep{margin:0 .5rem;color:#b3bac6}
@media (max-width:767.98px){.page-byline__text{font-size:.8125rem}}
.copy-toast{position:fixed;left:50%;bottom:1.5rem;z-index:200;transform:translate(-50%,1rem);opacity:0;pointer-events:none;background:#0f1222;color:#fff;padding:.75rem 1.125rem;border-radius:.75rem;font-size:.9375rem;box-shadow:0 12px 30px -10px rgba(0,0,0,.5);transition:opacity .2s,transform .2s}
.copy-toast.is-on{opacity:1;transform:translate(-50%,0)}

/* Footer CTA title sits above the spotlight mask, so it is always readable (the mask hid "Let's talk about your" on desktop). */
.footer__head .footer__title,.footer__head .label-section{position:relative;z-index:3}

/* Partners page form */
.partner-form{margin-top:1.5rem;padding:2rem;border-radius:1.5rem;background:#fff;border:1px solid #e6e8ec;box-shadow:0 20px 40px -30px rgba(16,24,40,.3)}
@media (max-width:639.98px){.partner-form{padding:1.25rem}}
.default-page .s-clientsLogo{width:100vw;margin-left:calc(50% - 50vw);margin-block:2.5rem}
.feedback-form button[type=submit].button{width:100%}
.clutch-rating .rating-count{color:var(--color-text-white-secondary);font-size:.875rem;margin-left:.375rem;white-space:nowrap}.clutch-rating .rating-count:before{content:"\00b7";margin-right:.375rem}
