/* Codearis responsive architecture — adapted from the robust viewport strategy
   of the supplied slideshow without adopting its visual design. */
:root{
  --app-height:100svh;
  --safe-top:env(safe-area-inset-top,0px);
  --safe-right:env(safe-area-inset-right,0px);
  --safe-bottom:env(safe-area-inset-bottom,0px);
  --safe-left:env(safe-area-inset-left,0px);
  --page-gutter:clamp(1.25rem,5vw,6rem);
  --content-width:min(var(--max),calc(100% - (var(--page-gutter) * 2)));
}
html{min-width:320px;text-size-adjust:100%;-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--header) + 1rem)}
body{min-width:320px;min-height:var(--app-height);overscroll-behavior-x:none}
body.menu-open{position:fixed;inset:0;width:100%;overflow:hidden}
main,section,article,header,footer,nav,form,fieldset,.hero-inner,.services-hero,.service-showcase,.services-overview__head,.contact-hero-v2,.contact-form-section,.timeline-section,.timeline-card,.timeline-accordion,.timeline-answer,.mobile-menu nav{min-width:0}
img,svg,video,canvas{max-width:100%}input,textarea,select,button{max-width:100%}
.site-header{height:calc(var(--header) + var(--safe-top));padding-top:var(--safe-top);padding-left:max(var(--page-gutter),var(--safe-left));padding-right:max(var(--page-gutter),var(--safe-right))}
.site-header.is-scrolled{background:rgba(5,5,7,.88);-webkit-backdrop-filter:blur(20px) saturate(130%);backdrop-filter:blur(20px) saturate(130%)}
.desktop-nav a,.header-cta,.menu-button,.button,.submit-button,.cookie-button,.cookie-text-button,.footer-link{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.mobile-menu{height:var(--app-height);min-height:100svh;padding:calc(var(--header) + var(--safe-top) + 1.5rem) max(1.25rem,var(--safe-right)) calc(2rem + var(--safe-bottom)) max(1.25rem,var(--safe-left));overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;place-items:start center}
.mobile-menu nav{width:min(100%,460px);margin:auto 0}
.hero{min-height:max(100svh,var(--app-height))}
.hero-inner,.services,.process,.contact,.timeline-section,.contact-hero-v2,.contact-form-section{width:var(--content-width)}
.hero-inner{min-height:calc(max(100svh,var(--app-height)) - var(--header))}
.hero-copy,.services-hero__copy,.contact-hero-copy,.contact-form-heading,.services-overview__head,.timeline-intro{overflow-wrap:anywhere}
.hero-title,.services-hero__copy h1,.page-hero h1,.contact-hero-copy h1,.contact-form-heading h2,.timeline-intro h2,.timeline-cta h2,.services-overview__head h2{text-wrap:balance}
.hero-lead,.services-hero__copy>p:last-child,.contact-hero-lead,.contact-form-heading>p:last-child,.timeline-intro>p:last-child,.services-overview__head>p:last-child{text-wrap:pretty}
.robot-stage{container-type:size;contain:layout paint}.robot-stage canvas{touch-action:pan-y}
.site-footer{padding-left:max(var(--page-gutter),var(--safe-left));padding-right:max(var(--page-gutter),var(--safe-right));padding-bottom:max(2rem,calc(1.2rem + var(--safe-bottom)))}
.cookie-banner{max-height:calc(var(--app-height) - 1.4rem - var(--safe-bottom));overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.cookie-modal__panel{max-height:calc(var(--app-height) - 2rem - var(--safe-top) - var(--safe-bottom));overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.cookie-settings-fab{right:max(1rem,var(--safe-right));bottom:max(1rem,var(--safe-bottom))}

@media(max-width:1280px){
 :root{--page-gutter:clamp(1.5rem,4vw,3.5rem)}
 .site-header{grid-template-columns:minmax(150px,1fr) auto minmax(180px,1fr)}
 .desktop-nav{gap:clamp(1.25rem,2.5vw,2.5rem)}
 .hero-inner{grid-template-columns:minmax(0,.96fr) minmax(380px,1.04fr);gap:clamp(1rem,2.5vw,2.5rem)}
 .hero-title{font-size:clamp(3.2rem,6vw,6.2rem)}
 .robot-stage{min-height:500px;height:min(74svh,720px)}
 .services-hero{grid-template-columns:minmax(0,.9fr) minmax(380px,1.1fr);padding-inline:var(--page-gutter)}
 .contact-hero-v2{grid-template-columns:minmax(0,1fr) minmax(360px,.85fr)}
}

@media(max-width:1024px){
 :root{--page-gutter:clamp(1.25rem,4vw,2.5rem)}
 .site-header{grid-template-columns:minmax(145px,1fr) auto minmax(165px,1fr)}
 .brand{width:clamp(145px,18vw,180px)}
 .desktop-nav{gap:1.35rem;font-size:.68rem}.header-cta{padding:.88rem 1.05rem;font-size:.66rem}.header-cta span{margin-left:.6rem}
 .hero-inner{grid-template-columns:minmax(0,.95fr) minmax(340px,1.05fr)}
 .hero-title{font-size:clamp(3rem,6.3vw,5.25rem)}.hero-actions{flex-wrap:wrap}.button{min-height:56px}
 .services-hero{min-height:auto;grid-template-columns:1fr;grid-template-rows:auto auto auto;gap:clamp(2.5rem,6vw,4.5rem);padding-top:calc(var(--header) + 3rem);overflow:visible}
 .services-hero__copy{max-width:800px}.services-hero__copy h1{max-width:11ch;font-size:clamp(3.2rem,8vw,5.8rem)}
 .service-showcase{min-height:clamp(430px,62vw,590px);transform:none}.service-range{grid-column:auto}
 .services-overview__head{grid-template-columns:1fr 1.35fr}.services-overview__head>p:last-child{grid-column:2}
 .page-hero,.page-hero--compact{min-height:auto;width:var(--content-width)}
 .timeline-section{overflow:hidden}.codearis-timeline{max-width:820px;padding-left:38px}.timeline-rail{left:16px}
 .timeline-step,.timeline-step--left,.timeline-step--right{width:100%;margin-left:0;padding-left:clamp(2.6rem,6vw,4.5rem);padding-right:0}
 .timeline-step--left .timeline-node,.timeline-step--right .timeline-node{left:-22px;right:auto}
 .timeline-step--left .timeline-card,.timeline-step--right .timeline-card{transform-origin:0 0}
 .contact-hero-v2{min-height:auto;grid-template-columns:1fr;padding-top:calc(var(--header) + 2rem);gap:clamp(3rem,7vw,5rem)}
 .contact-hero-copy{max-width:850px}.contact-signal{width:min(100%,720px);height:clamp(360px,60vw,520px);justify-self:center}
 .contact-form-section{grid-template-columns:1fr}.contact-form-heading{position:static;max-width:760px}.appointment-form--v2{width:100%}
}

@media(max-width:980px){
 :root{--header:76px;--page-gutter:clamp(1rem,4.5vw,2rem)}
 .site-header{grid-template-columns:1fr auto;padding-left:max(var(--page-gutter),var(--safe-left));padding-right:max(var(--page-gutter),var(--safe-right))}
 .desktop-nav,.header-cta{display:none}.menu-button{display:block;justify-self:end;width:48px;height:48px;padding:12px}.brand{width:clamp(138px,31vw,165px)}
 .hero{min-height:auto;overflow:clip}.hero-inner{min-height:auto;grid-template-columns:1fr;align-items:start;gap:0;padding-top:clamp(3rem,8vw,5rem);padding-bottom:clamp(2rem,7vw,4rem)}
 .hero-copy{max-width:760px;padding:0}.hero-title{max-width:10ch;margin:1.4rem 0 1.5rem;font-size:clamp(3.15rem,11vw,5.7rem);line-height:.9}.hero-lead{max-width:680px}
 .robot-stage{align-self:auto;width:min(100%,760px);height:clamp(420px,78vw,650px);min-height:0;margin:-1rem auto 0}.tracking-label{right:1rem;bottom:1rem}
 .home-links{position:relative;inset:auto;width:var(--content-width);margin:0 auto clamp(2rem,7vw,4rem)}
 .services,.process,.contact{padding-block:clamp(4.5rem,12vw,7rem)}
 .services-overview__head{grid-template-columns:1fr;gap:1.4rem}.services-overview__head>p:last-child{grid-column:auto}
 .services-cta{align-items:stretch;flex-direction:column;gap:1.2rem}.services-cta .button{width:100%}
 .site-footer{display:grid;grid-template-columns:1fr;gap:1rem;text-align:left}
}

@media(max-width:640px){
 :root{--header:70px;--page-gutter:clamp(1rem,4.8vw,1.35rem)}
 body{font-size:15px}.scroll-progress,.cursor-aura{display:none}
 .mobile-menu{padding-top:calc(var(--header) + var(--safe-top) + 1rem)}.mobile-menu nav{gap:1rem}.mobile-menu a{font-size:clamp(1.75rem,9vw,2.8rem);padding-bottom:.85rem}
 .hero-inner{padding-top:clamp(2.25rem,8vw,3.5rem)}.eyebrow,.section-label{font-size:.62rem;letter-spacing:.18em}
 .hero-title{font-size:clamp(2.9rem,13vw,4.35rem);max-width:9.5ch;line-height:.91}.hero-lead{font-size:clamp(.96rem,4.4vw,1.08rem);line-height:1.65}
 .hero-actions{display:grid;grid-template-columns:1fr;gap:.75rem}.button{width:100%;min-height:54px;padding-inline:1.2rem}.button.text-button{justify-content:space-between;border:1px solid var(--line)}
 .robot-stage{width:calc(100% + .5rem);height:clamp(340px,96vw,500px);margin-left:-.25rem;margin-top:-.5rem}.tracking-label{font-size:.54rem;letter-spacing:.13em}
 .home-links{display:grid;grid-template-columns:1fr}.home-links a{min-height:54px}
 .services-hero{padding:calc(var(--header) + 2rem) var(--page-gutter) clamp(3.5rem,10vw,5rem);gap:2.4rem}
 .services-hero__copy .back-link,.page-hero .back-link,.contact-hero-copy .back-link{margin-bottom:1.75rem}
 .services-hero__copy h1,.page-hero h1,.page-hero--compact h1,.contact-hero-copy h1{font-size:clamp(2.75rem,13vw,4.15rem);line-height:.94;max-width:10ch}
 .service-showcase{min-height:430px;padding:1.35rem}.service-showcase__label{left:1.35rem;top:1.35rem}.service-showcase__index{right:1rem;top:1rem;font-size:clamp(4rem,24vw,6rem)}
 .service-showcase h2{font-size:clamp(2rem,9vw,3.25rem);max-width:12ch}.service-showcase__content>p:not(.service-showcase__category){font-size:.94rem;line-height:1.65}.service-showcase__mark{display:none}
 .service-range__track{height:54px;padding-inline:22px}.service-range__track:before,.service-range__fill{left:22px}.service-range__track:before,.service-range__labels{right:22px}.service-range__ball{left:22px;width:30px;height:30px}
 .services-overview__head h2,.timeline-intro h2,.contact-form-heading h2{font-size:clamp(2.4rem,11.5vw,3.65rem)}
 .service-line{grid-template-columns:42px minmax(0,1fr) 24px;gap:.75rem;padding-block:1.45rem}.service-line h3{font-size:clamp(1.3rem,6vw,1.8rem)}.service-line p{font-size:.92rem}
 .page-hero,.page-hero--compact{width:var(--content-width);padding-top:calc(var(--header) + 2rem);padding-bottom:3rem}
 .timeline-section{width:var(--content-width);padding-top:3.5rem;overflow:visible}.timeline-intro{margin-bottom:3rem}.codearis-timeline{padding-left:17px}.timeline-rail{left:0}
 .timeline-step,.timeline-step--left,.timeline-step--right{width:calc(100% - 4px);padding-left:25px;padding-bottom:3rem}.timeline-step--left .timeline-node,.timeline-step--right .timeline-node{left:-18px;width:36px;height:36px}
 .timeline-art{height:clamp(150px,47vw,210px)}.timeline-art svg{inset:4% 1%;width:98%;height:92%}
 .timeline-accordion summary{min-height:78px;grid-template-columns:auto minmax(0,1fr) auto;gap:.75rem;padding:.9rem}.timeline-accordion summary>span:nth-child(2){font-size:clamp(1rem,5vw,1.25rem)}
 .timeline-answer{padding:0 .9rem 1rem}.timeline-result{display:grid;gap:.35rem}.timeline-result strong{text-align:left}.timeline-cta{align-items:stretch;flex-direction:column;padding:1.3rem}.timeline-cta .button{width:100%}
 .contact-hero-v2,.contact-form-section{width:var(--content-width)}.contact-hero-v2{padding-top:calc(var(--header) + 2rem);padding-bottom:3.5rem;gap:2.5rem}.contact-hero-lead{font-size:.98rem;line-height:1.65}
 .contact-direct{grid-template-columns:1fr;margin-top:2rem}.contact-direct>a,.contact-direct>div{margin:0!important;padding:1.05rem 0!important;border-right:0!important}.contact-direct strong{white-space:normal;overflow:visible}
 .contact-signal{height:clamp(260px,78vw,350px)}.contact-signal__core{width:70px;height:70px;border-radius:18px}.contact-signal__core span{font-size:2rem}
 .contact-form-section{padding-top:3.5rem;padding-bottom:calc(6rem + var(--safe-bottom));gap:2.25rem}.appointment-form--v2{padding:1rem}.appointment-form .form-grid{grid-template-columns:1fr}.appointment-form .wide{grid-column:auto}
 .appointment-form input,.appointment-form select,.appointment-form textarea{width:100%;min-height:48px;font-size:16px}.appointment-form textarea{min-height:150px}.form-footer{align-items:stretch;flex-direction:column}.submit-button{width:100%;min-height:56px}
 .site-footer p{line-height:1.7}
 .cookie-banner{left:max(.65rem,var(--safe-left));right:max(.65rem,var(--safe-right));bottom:max(.65rem,var(--safe-bottom));padding:1rem;border-radius:14px}.cookie-banner__copy h2{font-size:1.3rem}.cookie-banner__copy p{font-size:.86rem;line-height:1.55}
 .cookie-banner__actions{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}.cookie-banner__actions .cookie-button--primary{grid-column:1/-1}
 .cookie-modal__panel{width:calc(100% - 1rem - var(--safe-left) - var(--safe-right));max-height:calc(var(--app-height) - 1rem - var(--safe-top) - var(--safe-bottom));padding:1rem;border-radius:14px}
 .cookie-option{grid-template-columns:minmax(0,1fr) auto;min-height:0;gap:.8rem;padding-block:1rem}.cookie-option p{font-size:.8rem}.cookie-modal__actions{display:grid;grid-template-columns:1fr}
 .cookie-settings-fab{max-width:calc(100vw - 1.4rem);font-size:.55rem;white-space:nowrap}
}

@media(max-width:390px){
 :root{--page-gutter:1rem}.brand{width:132px}
 .hero-title,.services-hero__copy h1,.page-hero h1,.page-hero--compact h1,.contact-hero-copy h1{font-size:clamp(2.55rem,13vw,3.5rem)}
 .robot-stage{height:clamp(320px,102vw,420px)}.service-showcase{min-height:410px}.service-showcase__tags{gap:.35rem}.service-showcase__tags span{padding:.45rem .55rem;font-size:.59rem}
 .contact-signal{height:260px}.timeline-art{height:142px}.cookie-banner__actions{grid-template-columns:1fr}.cookie-banner__actions .cookie-button--primary{grid-column:auto}
}

@media(min-width:981px) and (max-height:760px){
 :root{--header:82px}.hero-inner{min-height:calc(max(100svh,var(--app-height)) - var(--header))}.hero-copy{padding-block:2.5vh 4vh}
 .hero-title{margin-block:1.1rem 1.2rem;font-size:clamp(3rem,5.6vw,5.1rem)}.hero-lead{line-height:1.55;margin-bottom:1.2rem}.button{min-height:52px}.robot-stage{min-height:430px;height:min(72vh,590px)}.micro-copy{margin-top:.75rem}
}

@media(max-height:540px) and (orientation:landscape){
 :root{--header:60px;--page-gutter:clamp(1rem,3vw,1.5rem)}.site-header{height:calc(var(--header) + var(--safe-top))}.brand{width:132px}
 .mobile-menu{padding-top:calc(var(--header) + var(--safe-top) + .5rem)}.mobile-menu nav{gap:.55rem;margin:0 auto}.mobile-menu a{font-size:clamp(1.3rem,5vw,2rem);padding-bottom:.5rem}
 .hero-inner{grid-template-columns:minmax(0,1.05fr) minmax(280px,.95fr);align-items:center;gap:1rem;padding-top:1rem;padding-bottom:1.5rem}
 .hero-title{font-size:clamp(2.2rem,6.7vw,3.3rem);margin-block:.7rem .8rem}.hero-lead{font-size:.86rem;line-height:1.45;margin-bottom:.8rem}.hero-actions{display:flex;flex-wrap:wrap;gap:.6rem}.hero-actions .button{width:auto;min-height:44px}
 .micro-copy,.tracking-label{display:none}.robot-stage{height:calc(var(--app-height) - var(--header) - 1.5rem);min-height:300px;margin:0}.home-links{display:none}
 .services-hero,.contact-hero-v2,.page-hero,.page-hero--compact{padding-top:calc(var(--header) + 1rem)}
 .services-hero__copy h1,.contact-hero-copy h1,.page-hero h1,.page-hero--compact h1{font-size:clamp(2.3rem,7vw,3.4rem)}
 .cookie-banner,.cookie-modal__panel{max-height:calc(var(--app-height) - .8rem)}
}

@media(hover:none),(pointer:coarse){.service-line:hover,.timeline-card:hover,.service-showcase:hover,.magnetic:hover{transform:none}.cursor-aura{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* Timeline containment fix: align the rail and cards without extending past the viewport. */
@media(max-width:1024px){
  .codearis-timeline{padding-left:0}
  .timeline-rail{left:18px}
  .timeline-step,.timeline-step--left,.timeline-step--right{
    width:calc(100% - 56px)!important;
    margin-left:56px!important;
    padding-left:0!important;
    padding-right:0!important;
  }
  .timeline-step--left .timeline-node,.timeline-step--right .timeline-node{
    left:-58px!important;
    right:auto!important;
  }
}
@media(max-width:640px){
  .timeline-rail{left:14px}
  .timeline-step,.timeline-step--left,.timeline-step--right{
    width:calc(100% - 48px)!important;
    margin-left:48px!important;
  }
  .timeline-step--left .timeline-node,.timeline-step--right .timeline-node{
    left:-52px!important;
  }
}
@media(max-width:1024px){
  .timeline-step--left[data-reveal],.timeline-step--right[data-reveal]{transform:translateY(28px) scale(.985)}
  .timeline-step[data-reveal].is-visible{transform:none}
}

/* Typography and header clearance: never split words in display headings. */
h1,h2,h3{overflow-wrap:normal;word-break:normal;hyphens:none}
@media(max-width:980px){
  .hero{padding-top:var(--header)}
  .hero-inner{padding-top:clamp(2.5rem,7vw,4rem)}
  .services-hero__copy h1{max-width:13ch}
}
@media(max-width:640px){
  .hero-inner{padding-top:2rem}
  .hero-title{font-size:clamp(2.7rem,11.5vw,3.8rem);max-width:11ch}
  .services-hero__copy h1,.page-hero h1,.page-hero--compact h1,.contact-hero-copy h1{max-width:13ch}
}

/* =========================================================
   Mobile robot visibility v2
   Keep the 3D robot inside the first viewport on tablet/phone.
   The phone layout intentionally uses the same left-copy/right-robot
   composition as desktop instead of stacking the robot underneath.
   ========================================================= */
@media (min-width:641px) and (max-width:980px){
  .home-page .hero{
    min-height:max(100svh,var(--app-height));
    overflow:hidden;
  }
  .home-page .hero-inner{
    min-height:calc(max(100svh,var(--app-height)) - var(--header));
    grid-template-columns:minmax(0,1.12fr) minmax(260px,.88fr);
    align-items:center;
    gap:clamp(.5rem,2vw,1.5rem);
    padding-top:clamp(1rem,3vh,2rem);
    padding-bottom:clamp(1.5rem,4vh,2.5rem);
  }
  .home-page .hero-copy{
    max-width:none;
    padding:0;
  }
  .home-page .hero-title{
    font-size:clamp(3rem,7.1vw,4.65rem);
    max-width:8.5ch;
    margin:1.2rem 0 1.35rem;
  }
  .home-page .hero-lead{
    font-size:clamp(.92rem,1.8vw,1.05rem);
    line-height:1.6;
    max-width:620px;
  }
  .home-page .robot-stage{
    width:100%;
    height:clamp(420px,63svh,610px);
    min-height:0;
    margin:0;
    align-self:center;
  }
  .home-page .home-links{
    position:absolute;
    left:var(--page-gutter);
    right:auto;
    bottom:max(1rem,var(--safe-bottom));
    width:min(49vw,520px);
    margin:0;
  }
}

@media (max-width:640px){
  .home-page .hero{
    min-height:max(100svh,var(--app-height));
    overflow:hidden;
    padding-bottom:max(.75rem,var(--safe-bottom));
  }

  .home-page .hero-inner{
    width:calc(100% - 1.5rem);
    min-height:calc(max(100svh,var(--app-height)) - var(--header));
    margin:0 auto;
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(132px,44vw);
    grid-template-rows:auto auto auto auto;
    column-gap:.15rem;
    row-gap:0;
    align-items:start;
    padding-top:clamp(.8rem,3.2vh,1.5rem);
    padding-bottom:1rem;
  }

  /* Let the copy children participate directly in the hero grid. */
  .home-page .hero-copy{display:contents}

  .home-page .eyebrow{
    display:none;
  }

  .home-page .hero-title{
    grid-column:1;
    grid-row:1;
    align-self:center;
    z-index:5;
    max-width:7.2ch;
    margin:clamp(.35rem,2vh,.8rem) 0 0;
    font-size:clamp(2.05rem,9.3vw,2.85rem);
    line-height:.91;
    letter-spacing:-.052em;
  }

  .home-page .robot-stage{
    grid-column:2;
    grid-row:1;
    align-self:start;
    justify-self:stretch;
    width:calc(100% + .5rem);
    height:clamp(265px,67vw,330px);
    min-height:0;
    margin:-.25rem -.5rem 0 0;
    z-index:4;
  }

  .home-page .robot-spotlight{
    inset:12% -5% 2% -12%;
    filter:blur(16px);
  }
  .home-page .robot-rings{
    left:-10%;
    right:-15%;
    top:10%;
    bottom:4%;
    opacity:.72;
  }
  .home-page .tracking-label{
    display:none;
  }

  .home-page .hero-lead{
    grid-column:1 / -1;
    grid-row:2;
    max-width:100%;
    margin:.25rem 0 1rem;
    font-size:clamp(.9rem,3.9vw,1rem);
    line-height:1.58;
  }

  .home-page .hero-actions{
    grid-column:1 / -1;
    grid-row:3;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:.65rem;
    align-items:stretch;
  }
  .home-page .hero-actions .button{
    width:100%;
    min-height:50px;
    padding-inline:.9rem;
    gap:.7rem;
    font-size:.64rem;
  }
  .home-page .hero-actions .button.text-button{
    border:1px solid rgba(255,255,255,.12);
    padding-inline:.9rem;
  }

  .home-page .micro-copy{
    grid-column:1 / -1;
    grid-row:4;
    margin:.75rem 0 0;
    font-size:.66rem;
  }

  .home-page .home-links{
    display:none;
  }
}

@media (max-width:390px){
  .home-page .hero-inner{
    width:calc(100% - 1.1rem);
    grid-template-columns:minmax(0,1fr) minmax(120px,43vw);
  }
  .home-page .hero-title{
    font-size:clamp(1.9rem,9.2vw,2.45rem);
    max-width:7ch;
  }
  .home-page .robot-stage{
    height:clamp(245px,68vw,292px);
  }
  .home-page .hero-lead{
    font-size:.89rem;
    line-height:1.52;
  }
  .home-page .hero-actions{
    grid-template-columns:1fr;
  }
  .home-page .hero-actions .button{
    min-height:46px;
  }
}

@media (max-height:620px) and (max-width:640px) and (orientation:portrait){
  .home-page .hero-inner{
    padding-top:.35rem;
    grid-template-columns:minmax(0,1fr) minmax(112px,39vw);
  }
  .home-page .hero-title{
    font-size:clamp(1.75rem,8.2vw,2.25rem);
    margin-top:0;
  }
  .home-page .robot-stage{
    height:230px;
  }
  .home-page .hero-lead{
    margin-top:-.2rem;
    margin-bottom:.65rem;
    font-size:.82rem;
    line-height:1.42;
  }
  .home-page .hero-actions .button{
    min-height:42px;
    font-size:.6rem;
  }
  .home-page .micro-copy{
    margin-top:.55rem;
  }
}

/* V11 responsive */
@media(max-width:820px){.site-footer--complete{grid-template-columns:1fr 1fr;padding-inline:1.25rem}.site-footer__legal{grid-column:1/-1}.site-footer__copyright{margin-top:.4rem}.legal-main{padding-top:8rem;padding-inline:1.2rem}.legal-hero{margin-bottom:2.4rem}.legal-hero h1{font-size:clamp(2.8rem,12vw,5rem)}.legal-grid{grid-template-columns:1fr}.faq-intro{align-items:flex-start;flex-direction:column}.faq-intro .button{width:100%}}@media(max-width:520px){.site-footer--complete{grid-template-columns:1fr;gap:1.25rem}.site-footer__legal{grid-column:auto;display:grid;grid-template-columns:1fr 1fr;gap:.65rem 1rem}.site-footer__copyright{grid-column:auto}.legal-main{padding-top:7rem}.legal-hero .back-link{margin-bottom:2rem}.legal-content{font-size:.92rem}.faq-list summary{padding:1.3rem .05rem}.faq-list details>p{padding-right:0}.cookie-banner{max-height:min(78dvh,620px);overflow:auto}}


/* ===== V12 mobile corrections from real iPhone screenshots ===== */
@media(max-width:980px){
  .site-header{background:rgba(5,5,8,.94);-webkit-backdrop-filter:blur(18px) saturate(125%);backdrop-filter:blur(18px) saturate(125%);border-bottom:1px solid rgba(255,255,255,.07)}
  .site-header.is-hidden-mobile{transform:translateY(-110%)}
  .contact-project-visual{width:100%;min-height:clamp(360px,58vw,500px);justify-self:center}
}
@media(max-width:640px){
  .appointment-form input:not([type="checkbox"]),.appointment-form select,.appointment-form textarea{width:100%;min-height:48px;font-size:16px}
  .consent{display:grid;grid-template-columns:18px minmax(0,1fr);align-items:start;column-gap:.75rem;margin:1.35rem 0 1.65rem}.consent input[type="checkbox"]{width:18px!important;height:18px!important;min-height:18px!important}.consent>span{min-width:0;overflow-wrap:anywhere}
  .contact-form-section,.appointment-form--v2,.form-grid,.form-grid label,.contact-hero-v2,.contact-hero-copy{max-width:100%;overflow-x:hidden}.appointment-form--v2{padding:1rem .9rem}.form-footer{width:100%}.submit-button{width:100%;padding-inline:1rem;gap:1rem}.submit-button span{min-width:0;text-align:center;line-height:1.35}.submit-button i{flex:0 0 auto}
  .contact-project-visual{min-height:0;height:auto;padding:1rem;background-size:34px 34px,34px 34px,auto,auto}.contact-project-visual__head{font-size:.52rem;letter-spacing:.12em}.contact-project-visual__body{padding:1rem 0}.project-flow{min-height:72px;grid-template-columns:32px minmax(0,1fr) auto;gap:.7rem;padding:0 .6rem}.project-flow__index{font-size:.54rem}.project-flow strong{font-size:.86rem}.project-flow small{font-size:.61rem}.project-flow__mark{width:34px;height:34px;border-radius:10px}.project-flow__line{height:16px;margin-left:16px}.contact-project-visual__foot{font-size:.51rem;letter-spacing:.1em;line-height:1.45}
}


/* ===== V13 permanent mobile navigation =====
   Logo + menu remain visible in a solid header so page content can scroll
   underneath without text showing through the navigation. */
@media(max-width:980px){
  .site-header{
    top:0!important;
    left:0!important;
    right:0!important;
    width:100%!important;
    height:calc(var(--header) + var(--safe-top))!important;
    min-height:calc(var(--header) + var(--safe-top));
    padding-top:var(--safe-top)!important;
    padding-left:max(var(--page-gutter),var(--safe-left))!important;
    padding-right:max(var(--page-gutter),var(--safe-right))!important;
    background:linear-gradient(180deg,rgba(5,5,7,.995),rgba(5,5,8,.975))!important;
    -webkit-backdrop-filter:blur(22px) saturate(135%)!important;
    backdrop-filter:blur(22px) saturate(135%)!important;
    border:0!important;
    border-bottom:1px solid rgba(255,255,255,.085)!important;
    box-shadow:0 12px 34px rgba(0,0,0,.28)!important;
    transform:none!important;
  }
  .site-header.is-hidden-mobile{transform:none!important}
  .site-header .brand,.site-header .menu-button{position:relative;z-index:2}
  .site-header .brand img{display:block;max-height:34px;width:auto}
  .site-header .menu-button{background:rgba(10,10,14,.76);border-color:rgba(255,255,255,.13)}
  .site-header.is-scrolled{background:linear-gradient(180deg,rgba(5,5,7,.998),rgba(5,5,8,.985))!important}

  /* Keep first-page content below the permanent navigation including safe area. */
  .contact-hero-v2,.services-hero,.page-hero,.page-hero--compact,.lumen-services-page{
    padding-top:calc(var(--header) + var(--safe-top) + 2rem)!important;
  }
  .hero{padding-top:calc(var(--header) + var(--safe-top))!important}
  .mobile-menu{padding-top:calc(var(--header) + var(--safe-top) + 1.25rem)!important}
}
@media(max-width:640px){
  .site-header .brand{width:clamp(140px,36vw,160px)}
  .site-header .brand img{max-height:32px}
}

/* ===== V14 permanent navigation on every device + unclipped hero typography =====
   The Codearis logo/navigation is always kept in an opaque fixed header.
   Hero title lines must never crop characters on narrow columns. */
.site-header{
  position:fixed!important;
  top:0!important;
  left:0!important;
  right:0!important;
  width:100%!important;
  height:calc(var(--header) + var(--safe-top))!important;
  min-height:calc(var(--header) + var(--safe-top))!important;
  padding-top:var(--safe-top)!important;
  padding-left:max(var(--page-gutter),var(--safe-left))!important;
  padding-right:max(var(--page-gutter),var(--safe-right))!important;
  background:linear-gradient(180deg,rgba(5,5,7,.998),rgba(5,5,8,.986))!important;
  -webkit-backdrop-filter:blur(22px) saturate(135%)!important;
  backdrop-filter:blur(22px) saturate(135%)!important;
  border:0!important;
  border-bottom:1px solid rgba(255,255,255,.085)!important;
  box-shadow:0 10px 32px rgba(0,0,0,.24)!important;
  transform:none!important;
}
.site-header.is-scrolled{
  background:linear-gradient(180deg,rgba(5,5,7,1),rgba(5,5,8,.992))!important;
}
.site-header.is-hidden-mobile{transform:none!important}
.site-header>*{pointer-events:auto}

/* Reserve the header height on every layout, not only on phones/tablets. */
.hero{padding-top:calc(var(--header) + var(--safe-top))!important}
.services-hero,.contact-hero-v2,.page-hero,.page-hero--compact,.lumen-services-page,.legal-main{
  scroll-margin-top:calc(var(--header) + var(--safe-top) + 1rem);
}

/* The animation wrapper used to crop wide letters at small widths. */
.hero-title{overflow:visible!important}
.hero-title .title-line{
  overflow:visible!important;
  padding:.07em .06em .10em 0!important;
}
.hero-title .title-line>span{
  overflow:visible!important;
  max-width:100%;
}

@media(min-width:981px){
  .site-header{
    grid-template-columns:minmax(170px,1fr) auto minmax(190px,1fr)!important;
  }
  .home-page .hero-title{
    max-width:11.25ch!important;
    line-height:.94!important;
  }
}

@media(min-width:641px) and (max-width:980px){
  .home-page .hero-inner{
    grid-template-columns:minmax(0,1.16fr) minmax(245px,.84fr)!important;
  }
  .home-page .hero-title{
    width:100%!important;
    max-width:9.6ch!important;
    font-size:clamp(2.75rem,6.5vw,4.25rem)!important;
    line-height:.95!important;
    letter-spacing:-.045em!important;
  }
}

@media(max-width:640px){
  .home-page .hero-inner{
    grid-template-columns:minmax(0,1.22fr) minmax(112px,.78fr)!important;
    column-gap:.35rem!important;
  }
  .home-page .hero-title{
    width:100%!important;
    max-width:100%!important;
    font-size:clamp(1.9rem,8.4vw,2.5rem)!important;
    line-height:.97!important;
    letter-spacing:-.043em!important;
    padding-right:.1rem;
  }
  .home-page .hero-title .title-line>span{
    white-space:normal!important;
    overflow-wrap:normal!important;
    word-break:normal!important;
    hyphens:none!important;
  }
  .home-page .robot-stage{
    width:100%!important;
    margin-right:0!important;
  }
}

@media(max-width:390px){
  .home-page .hero-inner{
    grid-template-columns:minmax(0,1.24fr) minmax(106px,.76fr)!important;
  }
  .home-page .hero-title{
    font-size:clamp(1.78rem,8.1vw,2.22rem)!important;
    line-height:.98!important;
  }
}

@media(min-width:981px){
  .contact-hero-v2{
    padding-top:max(calc(var(--header) + var(--safe-top) + 2rem),clamp(3rem,7vh,6rem))!important;
  }
  .services-hero{
    padding-top:max(calc(var(--header) + var(--safe-top) + 2rem),clamp(9rem,14vh,12rem))!important;
  }
  .page-hero,.page-hero--compact{
    padding-top:max(calc(var(--header) + var(--safe-top) + 2rem),clamp(10rem,16vh,13rem))!important;
  }
}
