/* Canonical shared stylesheet. Historical layers are not loaded. */
/* Source section: styles-v2.css */ /* Hallmark · macrostructure: photographic split + resource spread · tone: restrained industrial
 * Existing graphite/ochre brand preserved; single-family Cyrillic typography is deliberate.
 * Audience: developers and general contractors. Action: discuss engineering works.
 * Motion: one hero entrance, directional CTA feedback, dialog transition. No scroll hijack.
 * Pre-emit critique (source review, visual verification pending): P4 H4 E3 S4 R4 V4.
 */ *  {
   box-sizing: border-box;
}
 html  {
   overflow-x: clip;
   scroll-behavior: smooth;
   scroll-padding-top: 32px;
}
 body  {
   margin: 0;
   overflow-x: clip;
   background: var(--paper);
   color: var(--ink);
   font: 400 var(--text-body)/1.6 var(--font-body);
}
 body.modal-open  {
   overflow: hidden;
}
 img  {
   display: block;
   width: 100%;
   height: auto;
}
 button, input, textarea  {
   font: inherit;
}
 button, a, summary  {
   -webkit-tap-highlight-color: transparent;
}
 button, summary  {
   cursor: pointer;
}
 a  {
   color: inherit;
   text-decoration: none;
}
 button  {
   border: 0;
}
 button:disabled, [aria-disabled="true"]  {
   cursor: not-allowed;
}
 button:disabled  {
   opacity: .55;
}
 svg  {
   width: 24px;
   height: 24px;
   flex: 0 0 24px;
   fill: none;
   stroke: currentColor;
   stroke-width: 1.6;
   stroke-linecap: round;
   stroke-linejoin: round;
}
 :focus-visible  {
   outline: 3px solid currentColor;
   outline-offset: 5px;
}
 h1, h2, h3, p, figure  {
   margin: 0;
}
 h1, h2, h3  {
   font-family: var(--font-display);
   font-style: normal;
   font-weight: 500;
   min-width: 0;
   overflow-wrap: anywhere;
}
 h2  {
   font-size: var(--text-heading);
   line-height: 1.15;
   letter-spacing: -.04em;
   text-wrap: balance;
}
 p  {
   max-width: 65ch;
}
 .shell  {
   width: min(1440px, calc(100% - 40px));
   margin-inline: auto;
}
 .skip-link  {
   position: fixed;
   left: 16px;
   top: 12px;
   z-index: var(--z-overlay);
   padding: 12px 20px;
   background: var(--paper);
   color: var(--ink);
   transform: translateY(-160%);
}
 .skip-link:focus  {
   transform: none;
}
 .header  {

   color: var(--white);

   z-index: var(--z-nav);
}
 .header-inner  {

   align-items: center;

   border-bottom: 1px solid var(--line-dark);
}
 .brand  {
   display: block;
   width: 148px;
   flex-shrink: 0;
}
 .brand img  {

}
 .header-location  {
   display: none;
   color: var(--light-muted);
   font-size: var(--text-small);
   line-height: 1.5;
}
 .navigation summary  {
   display: flex;
   align-items: center;
   gap: 18px;
   list-style: none;
   min-height: 48px;
   font-size: var(--text-small);
}
 summary::-webkit-details-marker  {
   display: none;
}
 .menu-lines  {
   position: relative;
   width: 24px;
   height: 12px;
   border-block: 1px solid currentColor;
}
 .navigation[open] .menu-lines  {
   border-bottom: 0;
   height: 1px;
   transform: rotate(45deg);
}
 .navigation[open] .menu-lines::after  {
   content: '';
   position: absolute;
   width: 24px;
   top: -1px;
   border-top: 1px solid currentColor;
   transform: rotate(90deg);
}
 .navigation nav  {
   position: absolute;
   inset: 88px 0 auto;
   display: flex;
   flex-direction: column;
   padding: var(--space-md);
   background: var(--ink);
   color: var(--white);
   border-bottom: 1px solid var(--line-dark);
}
 .navigation nav a  {
   display: block;
   padding: 12px 0;
   white-space: nowrap;
}
 .hero  {
   background: var(--ink);
   color: var(--white);
}
 .hero-layout  {
   display: grid;
   gap: var(--space-xl);
   padding-top: var(--space-xl);
}
 .hero-copy  {
   padding-block: 0 var(--space-xs);
   min-width: 0;
}
 .hero-location  {
   color: var(--light-muted);
   font-size: var(--text-small);
   margin-bottom: var(--space-md);
}
 h1  {
   font-size: var(--text-display);
   letter-spacing: -.045em;
   line-height: 1.07;
   margin-bottom: var(--space-md);
}
 h1 > span  {
   display: block;
}
 .accent-dot  {
   color: var(--accent);
}
 .hero-description  {
   font-size: var(--text-lead);
   line-height: 1.6;
   color: var(--light-muted);
   max-width: 410px;
   margin-bottom: var(--space-lg);
}
 .button  {
   display: inline-flex;
   align-items: center;
   justify-content: space-between;
   gap: var(--space-md);
   min-height: 64px;
   padding: 16px 24px;
   font-size: var(--text-small);
   font-weight: 700;
   white-space: nowrap;
   position: relative;
   isolation: isolate;
   overflow: clip;
}
 .button-primary  {
   background: var(--accent);
   color: var(--accent-ink);
}
 .button-primary:focus-visible  {
   outline-color: var(--white);
}
 .button::before  {
   content: '';
   position: absolute;
   inset: 0;
   background: var(--white);
   color: var(--ink);
   transform: translateX(-102%);
   transition: transform var(--dur-long) var(--ease-out);
   z-index: -1;
}
 .button svg  {
   transition: transform var(--dur-short) var(--ease-out);
}
 .button:active  {
   transform: translateY(1px);
}
 .button:focus-visible::before  {
   transform: none;
}
 .hero-note  {
   font-size: var(--text-small);
   color: var(--light-muted);
   margin-top: var(--space-md);
}
 .hero-photo  {
   position: relative;
   min-width: 0;
   overflow: clip;
   background: var(--ink-soft);
   color: var(--white);
}
 .hero-photo > img  {
   height: 340px;
   object-fit: cover;
   object-position: 58% center;
}
 .hero-photo figcaption  {
   padding: 16px;
   display: flex;
   justify-content: space-between;
   gap: var(--space-md);
   font-size: .75rem;
   background: var(--ink-soft);
   color: var(--light-muted);
}
 .hero-photo figcaption span:last-child  {
   white-space: nowrap;
}
 .hero-baseline  {
   display: flex;
   justify-content: space-between;
   align-items: center;
   gap: var(--space-sm);
   padding-block: var(--space-md);
   font-size: .75rem;
   color: var(--light-muted);
}
 .hero-baseline a  {
   min-height: 44px;
   display: flex;
   align-items: center;
   gap: 16px;
   white-space: nowrap;
}
 .about  {
   padding-block: 80px 64px;
   display: grid;
   gap: var(--space-lg);
}
 .subtle  {
   color: var(--muted);
}
 .about-copy  {
   font-size: var(--text-lead);
}
 .about-copy p + p  {
   color: var(--muted);
   margin-top: var(--space-md);
   font-size: var(--text-body);
}
 .resources  {
   padding-bottom: 80px;
}
 .resource-heading  {
   display: grid;
   gap: var(--space-md);
   margin-bottom: var(--space-lg);
}
 .resource-heading p  {
   color: var(--muted);
}
 .resource-layout  {
   display: grid;
   gap: var(--space-lg);
}
 .fleet  {
   min-width: 0;
   background: var(--ink);
   color: var(--white);
}
 .fleet > img  {
   aspect-ratio: 1.55;
   object-fit: cover;
   object-position: center 44%;
}
 .fleet-caption  {
   padding: 24px;
   display: flex;
   align-items: flex-end;
   gap: var(--space-md);
}
 .fleet-caption strong  {
   font-size: clamp(96px, 13vw, 184px);
   line-height: .82;
   font-weight: 500;
   letter-spacing: -.065em;
   font-variant-numeric: tabular-nums;
}
 .fleet-caption > span  {
   padding-bottom: 4px;
   font-size: var(--text-small);
   line-height: 1.5;
   color: var(--light-muted);
}
 .resource-facts  {
   display: grid;
   gap: var(--space-lg);
   align-content: space-between;
}
 .resource-fact  {
   border-top: 1px solid var(--line);
   padding-top: var(--space-md);
}
 .resource-fact > strong  {
   display: block;
   font-size: clamp(64px, 7vw, 104px);
   line-height: 1;
   letter-spacing: -.05em;
   font-weight: 500;
   font-variant-numeric: tabular-nums;
}
 .resource-fact > strong span  {
   font-size: .5em;
   vertical-align: top;
   line-height: 1.5;
}
 .resource-fact h3  {
   margin-top: 20px;
   font-size: 1.125rem;
   font-weight: 700;
   letter-spacing: -.02em;
}
 .resource-fact p  {
   margin-top: var(--space-xs);
   color: var(--muted);
   font-size: var(--text-small);
   max-width: 31ch;
}
 .resource-since  {
   display: flex;
   align-items: baseline;
   gap: var(--space-sm);
   border-top: 1px solid var(--line);
   padding-top: var(--space-md);
   font-size: var(--text-small);
   color: var(--muted);
}
 .resource-since strong  {
   font-size: 1.5rem;
   color: var(--ink);
   font-weight: 500;
   white-space: nowrap;
}
 .capabilities  {
   background: var(--paper-deep);
   color: var(--ink);
   padding-block: 72px;
}
 .services-layout  {
   display: grid;
   gap: var(--space-xl);
}
 .services-intro p  {
   color: var(--muted);
   margin-block: var(--space-md);
   max-width: 31ch;
}
 .text-link  {
   display: inline-flex;
   gap: var(--space-md);
   align-items: center;
   min-height: 48px;
   border-bottom: 1px solid var(--ink);
   font-size: var(--text-small);
   font-weight: 700;
   white-space: nowrap;
}
 .services-list  {
   border-top: 1px solid var(--line);
}
 .services-list details  {
   border-bottom: 1px solid var(--line);
}
 .services-list summary, .more-projects summary  {
   list-style: none;
   display: flex;
   align-items: center;
   justify-content: space-between;
   gap: var(--space-md);
   padding-block: var(--space-md);
   font-size: clamp(1.125rem, 1.7vw, 1.625rem);
   line-height: 1.4;
   letter-spacing: -.025em;
}
 .services-list summary > span:first-child  {
   min-width: 0;
}
 .services-list summary small  {
   display: block;
   color: var(--muted);
   font-size: .75rem;
   letter-spacing: .04em;
   margin-top: 4px;
}
 .plus  {
   position: relative;
   width: 20px;
   height: 20px;
   flex: 0 0 20px;
}
 .plus::before, .plus::after  {
   content: '';
   position: absolute;
   background: currentColor;
}
 .plus::before  {
   width: 16px;
   height: 1px;
   top: 10px;
   left: 2px;
}
 .plus::after  {
   height: 16px;
   width: 1px;
   top: 2px;
   left: 10px;
}
 details[open] > summary .plus::after  {
   display: none;
}
 .service-description  {
   padding: 0 32px 28px 0;
   color: var(--muted);
}
 .projects  {
   padding-block: 88px;
}
 .projects-heading  {
   display: grid;
   gap: var(--space-md);
   margin-bottom: var(--space-xl);
}
 .projects-heading p  {
   color: var(--muted);
}
 .projects-layout  {
   display: grid;
   gap: var(--space-lg);
   align-items: start;
}
 .project-photo  {
   min-width: 0;
}
 .project-photo img  {
   aspect-ratio: 1;
   object-fit: cover;
   object-position: 54% center;
}
 .project-photo figcaption  {
   font-size: .75rem;
   color: var(--muted);
   margin-top: var(--space-sm);
   max-width: 50ch;
   line-height: 1.6;
}
 .project-register ul  {
   padding: 0;
   margin: 0;
   list-style: none;
}
 .project-register li  {
   display: grid;
   gap: 4px;
   padding-block: 20px;
   border-bottom: 1px solid var(--line);
   font-size: var(--text-body);
   line-height: 1.4;
}
 .project-register > ul  {
   border-top: 1px solid var(--line);
}
 .project-register li small  {
   color: var(--muted);
   font-size: var(--text-small);
}
 .more-projects summary  {
   min-height: 64px;
   font-size: var(--text-small);
   font-weight: 700;
   letter-spacing: 0;
}
 .contact  {
   padding-top: 72px;
   background: var(--ink);
   color: var(--white);
}
 .contact-layout  {
   display: grid;
   gap: var(--space-xl);
   padding-bottom: var(--space-xl);
}
 .contact h2  {
   font-size: clamp(2.5rem, 5.3vw, 5rem);
}
 .subtle-light  {
   color: var(--light-muted);
}
 .contact-copy  {
   align-self: end;
}
 .contact-copy > p:first-child  {
   max-width: 35ch;
   color: var(--light-muted);
   margin-bottom: var(--space-lg);
   font-size: var(--text-lead);
}
 .prototype-note  {
   margin-top: var(--space-md);
   color: var(--light-muted);
   font-size: .75rem;
}
 .contact-placeholder  {
   display: flex;
   flex-wrap: wrap;
   gap: 16px 32px;
   padding-block: 24px;
   border-block: 1px solid var(--line-dark);
   color: var(--light-muted);
   font-size: var(--text-small);
}
 footer  {
   display: flex;
   flex-wrap: wrap;
   align-items: center;
   justify-content: space-between;
   gap: var(--space-md);
   padding-block: var(--space-lg);
   color: var(--light-muted);
   font-size: .75rem;
}
 footer a:not(.brand)  {
   min-height: 44px;
   display: flex;
   align-items: center;
   white-space: nowrap;
}
 footer .brand  {
   width: 120px;
}
 dialog  {
   position: fixed;
   inset: 0;
   margin: auto;
   width: min(960px, calc(100% - 32px));
   height: fit-content;
   max-height: calc(100svh - 32px);
   border: 0;
   padding: 0;
   background: var(--paper);
   color: var(--ink);
   overscroll-behavior: contain;
}
 dialog::backdrop  {
   background: var(--overlay);
}
 .modal-inner  {
   padding: 28px 24px;
   position: relative;
}
 .close-button  {
   position: absolute;
   right: 16px;
   top: 16px;
   display: grid;
   place-items: center;
   width: 48px;
   height: 48px;
   color: var(--ink);
   background: var(--paper-deep);
}
 .modal-inner > h2  {
   font-size: clamp(2rem, 4vw, 3.25rem);
   padding-right: 44px;
   margin-block: 16px 32px;
}
 .modal-grid  {
   display: grid;
   gap: var(--space-lg);
}
 .modal-contacts h3  {
   font-size: 1rem;
   margin-bottom: var(--space-md);
   font-weight: 700;
}
 .contact-value  {
   font-size: 1.125rem;
   margin-bottom: var(--space-xs);
}
 .modal-contacts > p:not(.contact-value)  {
   margin-top: var(--space-md);
   color: var(--muted);
   font-size: var(--text-small);
}
 .socials  {
   display: flex;
   flex-wrap: wrap;
   gap: var(--space-sm);
   margin-top: var(--space-md);
}
 .socials > span  {
   display: inline-flex;
   align-items: center;
   gap: 8px;
   color: var(--muted);
   font-size: var(--text-small);
   min-height: 44px;
}
 .demo-notice  {
   font-size: .75rem;
   color: var(--muted);
   margin-bottom: var(--space-md);
}
 .request label  {
   display: block;
   font-size: var(--text-small);
   font-weight: 600;
   margin-bottom: 8px;
}
 .request label span  {
   font-size: .75rem;
   color: var(--muted);
   font-weight: 400;
}
 .request input, .request textarea  {
   display: block;
   width: 100%;
   padding: 12px;
   min-height: 48px;
   border: 1px solid var(--line);
   border-radius: 0;
   background: var(--paper);
   color: var(--ink);
   margin-bottom: 20px;
}
 .request input::placeholder, .request textarea::placeholder  {
   color: var(--muted);
   opacity: 1;
}
 .request textarea  {
   min-height: 112px;
   resize: vertical;
}
 .request [aria-invalid="true"]  {
   border-color: var(--error);
}
 .legal-note  {
   color: var(--muted);
   font-size: .75rem;
   margin-bottom: var(--space-md);
}
 .legal-note a  {
   text-decoration: underline;
   text-underline-offset: 3px;
}
 .button-dark  {
   background: var(--ink);
   color: var(--white);
   width: 100%;
}
 .button-dark:focus-visible  {
   outline-color: var(--ink);
}
 .button-dark::before  {
   background: var(--ink-soft);
   color: var(--white);
}
 .form-status  {
   min-height: 44px;
   margin-top: var(--space-sm);
   font-size: var(--text-small);
}
 .form-status.is-error  {
   color: var(--error);
}
 @media (hover: hover) and (pointer: fine)  {
     .button:hover::before  {
     transform: none;
  }
   .button:hover svg  {
     transform: translateX(4px);
  }
   .navigation a:hover, footer a:hover  {
     color: var(--accent);
  }
   .services-list summary:hover, .more-projects summary:hover  {
     color: var(--muted);
  }
   .request input:hover, .request textarea:hover  {
     background: var(--paper-deep);
  }
}
 @media (min-width: 40rem)  {
     .shell  {
     width: min(1440px, calc(100% - 80px));
  }
   .hero-copy  {
     max-width: 640px;
  }
   .hero-photo > img  {
     height: 440px;
  }
   .resource-facts  {
     grid-template-columns: repeat(2, minmax(0, 1fr));
  }
   .resource-since  {
     grid-column: 1 / -1;
  }
   .project-register li  {
     grid-template-columns: minmax(0, 1fr) auto;
     align-items: baseline;
     gap: var(--space-md);
  }
   .modal-inner  {
     padding: 48px;
  }
}
 @media (min-width: 60rem)  {
     .header-inner  {
     min-height: 104px;
  }
   .brand  {
     width: 174px;
  }
   .header-location  {
     display: block;
     margin-right: auto;
  }
   .navigation nav  {
     inset-block-start: 104px;
     padding: 32px max(40px, calc((100% - 1440px) / 2));
     flex-direction: row;
     justify-content: flex-end;
     gap: var(--space-lg);
  }
   .hero-layout  {
     grid-template-columns: minmax(0, 1.08fr) minmax(0, 1fr);
     align-items: stretch;
     gap: 32px;
     padding-top: 48px;
  }
   .hero-copy  {
     padding-block: 28px 32px;
  }
   .hero-location  {
     margin-bottom: 32px;
  }
   .hero-description  {
     margin-top: 32px;
  }
   .hero-photo  {
     display: flex;
     flex-direction: column;
  }
   .hero-photo > img  {
     height: 100%;
     min-height: 540px;
     flex: 1;
     object-fit: cover;
  }
   .hero-photo figcaption  {
     position: absolute;
     inset: auto 0 0;
  }
   .hero-baseline  {
     padding-block: 24px;
     font-size: var(--text-small);
  }
   .about  {
     grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr);
     gap: 80px;
     padding-block: 120px 104px;
     align-items: start;
  }
   .about h2  {
     font-size: clamp(2rem, 3vw, 3.25rem);
  }
   .resource-heading, .projects-heading  {
     grid-template-columns: minmax(0, 1fr) minmax(0, .45fr);
     align-items: end;
     gap: 64px;
     margin-bottom: 48px;
  }
   .resource-heading p, .projects-heading p  {
     justify-self: end;
  }
   .resource-layout  {
     grid-template-columns: minmax(0, 1.7fr) minmax(0, .7fr);
     gap: 64px;
  }
   .resource-facts  {
     grid-template-columns: minmax(0, 1fr);
     gap: 28px;
  }
   .fleet > img  {
     aspect-ratio: 1.85;
  }
   .fleet-caption  {
     padding: 36px;
     gap: 40px;
  }
   .fleet-caption > span  {
     font-size: 1rem;
     padding-bottom: 8px;
  }
   .resources  {
     padding-bottom: 128px;
  }
   .capabilities  {
     padding-block: 112px;
  }
   .services-layout  {
     grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
     gap: 80px;
  }
   .services-intro  {
     position: sticky;
     top: 48px;
     align-self: start;
  }
   .services-intro h2  {
     font-size: clamp(2rem, 3vw, 3.25rem);
  }
   .services-intro p  {
     margin-block: 32px;
  }
   .services-list summary  {
     min-height: 96px;
  }
   .projects  {
     padding-block: 120px;
  }
   .projects-layout  {
     grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
     gap: 64px;
  }
   .project-photo  {
     position: sticky;
     top: 32px;
  }
   .project-photo img  {
     aspect-ratio: .95;
  }
   .contact  {
     padding-top: 96px;
  }
   .contact-layout  {
     grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr);
     gap: 64px;
     padding-bottom: 80px;
  }
   .modal-grid  {
     grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
     gap: 48px;
  }
}
 @media (prefers-reduced-motion: no-preference)  {
     .hero-copy  {
     animation: enter var(--dur-long) var(--ease-out) both;
  }
   .hero-photo  {
     animation: enter var(--dur-long) 80ms var(--ease-out) both;
  }
   dialog[open]  {
     animation: dialog-in 300ms var(--ease-out) both;
  }
   dialog[open]::backdrop  {
     animation: fade-in 300ms var(--ease-out) both;
  }
   dialog.is-closing  {
     animation: dialog-out 200ms var(--ease-in) both;
  }
   dialog.is-closing::backdrop  {
     animation: fade-out 200ms var(--ease-in) both;
  }
}
 @keyframes enter  {
   from  {
     opacity: 0;
     transform: translateY(16px);
  }
 to  {
     opacity: 1;
     transform: none;
  }
}
 @keyframes dialog-in  {
   from  {
     opacity: 0;
     transform: translateY(12px) scale(.98);
  }
 to  {
     opacity: 1;
     transform: none;
  }
}
 @keyframes dialog-out  {
   to  {
     opacity: 0;
     transform: translateY(8px) scale(.99);
  }
}
 @keyframes fade-in  {
   from  {
     opacity: 0;
  }
 to  {
     opacity: 1;
  }
}
 @keyframes fade-out  {
   to  {
     opacity: 0;
  }
}
 @media (prefers-reduced-motion: reduce)  {
     html  {
     scroll-behavior: auto;
  }
   *, *::before, *::after  {
     animation: none !important;
     transition: none !important;
  }
}
  /* Source section: refinement-v3.css */ /* Hallmark refinement · user's explicit navigation and content structure take precedence.
 * One photo field, one company/resources section, service pages, horizontal object register.
 * Visual verification pending; no claim of browser QA.
 */ @font-face {
  font-family:Manrope;
  src:url('assets/manrope-400.ttf') format('truetype');
  font-weight:400;
  font-style:normal;
  font-display:swap
}
 @font-face {
  font-family:Manrope;
  src:url('assets/manrope-500.ttf') format('truetype');
  font-weight:500;
  font-style:normal;
  font-display:swap
}
 @font-face {
  font-family:Manrope;
  src:url('assets/manrope-600.ttf') format('truetype');
  font-weight:600;
  font-style:normal;
  font-display:swap
}
 @font-face {
  font-family:Manrope;
  src:url('assets/manrope-700.ttf') format('truetype');
  font-weight:700;
  font-style:normal;
  font-display:swap
}
 .shell {
  width:min(1440px,calc(100% - 40px))
}
 [hidden] {
  display:none!important
}
 .header {
  position:relative;
  background:var(--ink);
  color:var(--white)
}
 .main-site .header {
  position:absolute;
  inset:0 0 auto;
  background:transparent
}
 .header-inner {
  min-height:96px;
  position:relative;
  display:flex;
  justify-content:space-between;
  gap:20px;
  border-color:var(--line-dark)
}
 .brand {
  width:180px
}
 .brand img {
  filter:none;
  width:100%;
  height:auto
}
 .brand-type {
  display:flex;
  flex-direction:column;
  line-height:1;
  gap:9px
}
 .brand-type strong {
  font-size:30px;
  letter-spacing:.08em;
  font-weight:600
}
 .brand-type small {
  font-size:10px;
  letter-spacing:.07em
}
 .desktop-nav {
  position:absolute;
  visibility:hidden;
  pointer-events:none;
  display:flex;
  gap:28px;
  width:max-content;
  white-space:nowrap;
  font-size:14px;
  left:50%;
  transform:translateX(-50%)
}
 .desktop-nav a {
  display:flex;
  align-items:center;
  min-height:48px
}
 .header[data-wide="true"] .desktop-nav {
  visibility:visible;
  pointer-events:auto
}
 .header-actions {
  display:flex;
  align-items:center;
  gap:20px
}
 .header-cta {
  min-height:52px;
  padding:12px 20px;
  gap:16px
}
 .cta-short {
  display:none
}
 .menu-toggle {
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  gap:7px;
  width:44px;
  height:48px;
  background:transparent;
  color:var(--white);
  padding:8px
}
 .menu-toggle span {
  height:1px;
  width:25px;
  background:currentColor
}
 .header[data-wide="true"] .menu-toggle {
  display:none
}
 .site-menu {
  width:100%;
  max-width:none;
  height:100dvh;
  max-height:none;
  inset:0;
  margin:0;
  background:var(--ink);
  color:var(--white);
  padding:32px max(20px,calc((100% - 1440px)/2));
  border:0
}
 .site-menu[open] {
  display:flex;
  flex-direction:column
}
 .menu-top {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px
}
 .menu-top .close-button {
  position:static;
  background:transparent;
  color:var(--white);
  font-size:36px
}
 .site-menu .menu-directory nav {
  display:flex;
  flex-direction:column;
  align-items:start;
  gap:8px;
  flex:1;
  justify-content:center;
  padding-block:40px
}
 .site-menu .menu-directory nav a {
  font-size:clamp(30px,6vw,72px);
  line-height:1.2;
  letter-spacing:-.04em;
  min-height:48px
}
 .menu-bottom {
  display:flex;
  justify-content:space-between;
  gap:24px;
  align-items:center;
  border-top:1px solid var(--line-dark);
  padding-top:24px
}
 .menu-bottom>span {
  color:var(--light-muted);
  font-size:14px
}
 .hero-panorama {
  position:relative;
  isolation:isolate;

  padding-block:160px 88px;
  display:flex;
  align-items:center;
  overflow:clip
}
 .panorama-image {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:65% 55%;
  z-index:-2
}
 .panorama-shade {
  position:absolute;
  inset:0;
  z-index:-1;
  background:linear-gradient(90deg,var(--ink),transparent);
  opacity:.85
}
 .hero-panorama::after {
  content:'';
  position:absolute;
  inset:0;
  z-index:-1;
  background:linear-gradient(180deg,var(--ink),transparent);
  opacity:.48;
  pointer-events:none
}
 .hero-panorama .hero-layout {
  display:block;
  padding:0
}
 .hero-panorama .hero-copy {
  padding:0;
  max-width:870px
}
 .hero-panorama h1 {

  letter-spacing:-.045em;
  margin-bottom:28px
}
 .hero-panorama .hero-location {
  margin:0 0 24px;
  color:var(--white)
}
 .hero-panorama .hero-description {
  color:var(--white);
  max-width:460px;
  margin:0 0 32px;

  line-height:1.6
}
 .hero-panorama .button {
  min-width:244px
}
 .company-section {
  background:var(--paper-deep);
  color:var(--ink);
  padding-block:88px 64px
}
 .company-heading {

  align-items:start
}
 .company-heading p {
  font-size:var(--text-lead);
  max-width:45ch;
  color:var(--muted)
}
 .metrics {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:32px 20px;
  padding:0;
  margin:48px 0 0;
  border-top:1px solid var(--line)
}
 .metrics>div {
  padding-top:28px
}
 .metrics dt {
  font-size:clamp(42px,6vw,88px);
  line-height:1.1;
  letter-spacing:-.05em;
  font-weight:500;
  font-variant-numeric:tabular-nums
}
 .metrics dd {
  margin:16px 0 0;
  font-size:14px;
  line-height:1.5;
  color:var(--muted);
  max-width:22ch
}
 .service-section {
  padding-block:88px 112px
}
 .section-heading {
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:32px;
  margin-bottom:40px
}
 .section-heading p {
  color:var(--muted);
  font-size:14px
}
 .service-links {
  border-top:1px solid var(--line)
}
 .service-links>a {
  display:grid;
  grid-template-columns:40px minmax(0,1fr) 24px;
  align-items:center;
  gap:16px;
  min-height:104px;
  border-bottom:1px solid var(--line)
}
 .service-index {
  color:var(--muted);
  font-size:12px
}
 .service-links h3 {
  font-size:clamp(22px,3vw,40px);
  letter-spacing:-.04em;
  line-height:1.25
}
 .service-links svg {
  transition:transform var(--dur-short) var(--ease-out)
}
 .project-section {
  background:var(--paper-deep);
  color:var(--ink);
  padding-block:80px
}
 .project-section .section-heading {
  margin-bottom:20px
}
 .project-intro {
  color:var(--muted);
  margin-bottom:36px;
  max-width:60ch
}
 .rail-controls {
  display:flex;
  gap:8px
}
 .rail-controls button {
  width:48px;
  height:48px;
  border:1px solid var(--line);
  display:grid;
  place-items:center;
  background:var(--paper);
  color:var(--ink)
}
 .rail-controls button:first-child svg {
  transform:rotate(180deg)
}
 .rail-controls button:disabled {
  opacity:.4
}
 .project-track {
  display:flex;
  gap:24px;
  overflow-x:auto;
  overscroll-behavior-x:contain;
  scroll-snap-type:x mandatory;
  scroll-padding:0;

  padding:4px 4px 24px;
  margin-inline:-4px
}
 .object-card {
  flex:0 0 min(80%,380px);
  min-height:320px;
  padding:28px;
  background:var(--paper);
  color:var(--ink);
  display:flex;
  flex-direction:column;
  scroll-snap-align:start;
  border-top:2px solid var(--ink)
}
 .object-top {
  display:flex;
  justify-content:space-between;
  gap:20px;
  color:var(--muted);
  font-size:12px;
  margin-bottom:64px
}
 .object-card h3 {
  font-size:clamp(24px,2.2vw,34px);
  letter-spacing:-.04em;
  line-height:1.25;
  max-width:18ch
}
 .object-card p {
  font-size:14px;
  color:var(--muted);
  margin-top:16px
}
 .object-bottom {
  border-top:1px solid var(--line);
  padding-top:20px;
  margin-top:auto;
  font-size:12px;
  color:var(--muted)
}
 .object-card p+.object-bottom {
  margin-top:32px
}
 .rail-bottom {
  display:flex;
  justify-content:space-between;
  gap:24px;
  margin-top:20px;
  color:var(--muted);
  font-size:12px
}
 .closing-section {
  padding-block:88px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:32px
}
 .closing-section .button {
  width:auto;
  flex-shrink:0;
  min-width:244px
}
 footer.site-footer {
  display:block;
  background:var(--ink);
  color:var(--white);
  margin:0;
  padding:64px 0 24px;
  font-size:14px
}
 .footer-main {
  display:grid;
  gap:40px;
  padding-bottom:56px
}
 .footer-main .brand {
  width:180px
}
 .footer-brand p {
  margin-top:24px;
  color:var(--light-muted);
  font-size:14px
}
 .footer-nav {
  display:grid;
  gap:4px;
  align-content:start;
  justify-items:start
}
 footer.site-footer a:not(.brand) {
  display:inline-flex;
  align-items:center;
  min-height:44px;
  font-size:14px
}
 .footer-contact {
  display:flex;
  flex-direction:column;
  align-items:start;
  gap:12px
}
 .footer-contact>p {
  font-size:20px;
  color:var(--white)
}
 .footer-contact .text-link {
  border-color:var(--line-dark);
  padding-bottom:8px
}
 .footer-contact small {
  color:var(--light-muted);
  font-size:12px
}
 .footer-bottom {
  border-top:1px solid var(--line-dark);
  padding-top:24px;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  color:var(--light-muted);
  font-size:12px
}
 .footer-bottom>div {
  display:flex;
  flex-wrap:wrap;
  gap:8px 24px
}
 footer.site-footer .footer-bottom a {
  font-size:12px
}
 .contact-dialog {
  max-width:560px
}
 .contact-dialog .modal-inner {
  padding:40px
}
 .contact-dialog .modal-inner>h2 {
  margin:0 0 16px
}
 .modal-lead {
  color:var(--muted);
  margin-bottom:28px;
  font-size:14px
}
 .contact-dialog .close-button {
  font-size:28px
}
 .request .field {
  margin-bottom:20px
}
 .request label.consent-check {
  display:grid;
  grid-template-columns:20px minmax(0,1fr);
  align-items:start;
  gap:12px;
  margin-block:24px 16px;
  font-size:12px;
  font-weight:400;
  line-height:1.6
}
 .request label.consent-check span {
  font-size:12px;
  color:var(--ink)
}
 .request .consent-check input {
  appearance:auto;
  width:18px;
  height:18px;
  min-height:0;
  margin:2px 0 0;
  accent-color:var(--ink)
}
 .consent-check a,.policy-reference a {
  display:inline;
  text-decoration:underline;
  text-underline-offset:3px
}
 .policy-reference {
  font-size:12px;
  color:var(--muted);
  margin-bottom:24px
}
 .request .demo-notice {
  margin:16px 0 0;
  font-size:12px
}
 .request .form-status {
  font-size:12px;
  margin-bottom:0;
  min-height:0
}
 .request .form-status:not(:empty) {
  min-height:36px
}
 .service-hero {
  padding-block:56px 80px
}
 .back-link {
  display:inline-flex;
  min-height:44px;
  align-items:center;
  color:var(--muted);
  font-size:14px;
  margin-bottom:40px
}
 .service-hero h1 {
  max-width:1000px;
  font-size:clamp(36px,5vw,76px);
  line-height:1.12;
  margin-bottom:28px
}
 .page-lead {
  font-size:var(--text-lead);
  color:var(--muted);
  max-width:55ch;
  margin-bottom:32px
}
 .service-hero .button {
  width:auto
}
 .service-body {
  display:grid;
  gap:40px;
  border-top:1px solid var(--line);
  padding-block:64px 88px
}
 .service-body h2 {
  font-size:clamp(28px,3vw,42px);
  margin-bottom:28px
}
 .service-body p {
  color:var(--muted);
  margin-top:20px;
  max-width:55ch
}
 .service-body aside {
  padding:32px;
  background:var(--paper-deep);
  color:var(--ink)
}
 .service-body ul {
  padding-left:20px;
  margin:0
}
 .service-body li {
  margin-bottom:16px
}
 .service-body aside p {
  font-size:14px
}
 .other-services {
  padding-bottom:88px
}
 .other-services h2 {
  font-size:28px;
  margin-bottom:28px
}
 .other-services>div {
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:16px 32px
}
 .other-services a {
  display:flex;
  justify-content:space-between;
  gap:20px;
  align-items:center;
  padding-block:20px;
  border-bottom:1px solid var(--line)
}
 .legal-page {
  width:min(860px,calc(100% - 40px));
  margin:auto;
  padding-block:48px 88px
}
 .legal-page h1 {
  font-size:clamp(32px,4vw,56px);
  line-height:1.15;
  margin-bottom:28px
}
 .legal-page h2 {
  font-size:24px;
  letter-spacing:-.02em;
  margin-bottom:16px
}
 .legal-page section {
  margin-top:36px
}
 .legal-page p,.legal-page li {
  margin-bottom:16px;
  font-size:16px;
  line-height:1.7
}
 .legal-page a:not(.button) {
  text-decoration:underline;
  text-underline-offset:3px
}
 .legal-notice {
  padding:24px;
  background:var(--paper-deep);
  color:var(--ink);
  margin-bottom:40px
}
 .legal-notice strong {
  display:block;
  margin-bottom:8px
}
 .legal-placeholder {
  font-weight:600
}
 .legal-page .source-note {
  font-size:13px;
  color:var(--muted)
}
 .legal-page .button {
  width:auto;
  margin-top:16px
}
 .withdrawal-template {
  white-space:pre-wrap;
  font:400 14px/1.7 var(--font-body);
  background:var(--paper-deep);
  color:var(--ink);
  padding:24px
}
 .withdrawal-form {
  max-width:480px;
  margin-top:28px
}
 .withdrawal-form .button {
  width:100%
}
 @media(hover:hover) and (pointer:fine) {
  .desktop-nav a:hover {
    color:var(--accent)
  }
.service-links>a:hover svg {
    transform:translateX(6px)
  }
.service-links>a:hover h3 {
    color:var(--muted)
  }
.rail-controls button:not(:disabled):hover {
    background:var(--ink);
    color:var(--white)
  }
}
 @media(min-width:60rem) {
  .shell {
    width:min(1440px,calc(100% - 96px))
  }
.hero-panorama {
    min-height:780px;
    padding-block:184px 100px
  }
.company-heading {
    grid-template-columns:minmax(0,1fr) minmax(0,.8fr);
    gap:96px
  }
.company-section {
    padding-block:104px 80px
  }
.metrics {
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:32px;
    margin-top:72px
  }
.metrics>div {
    padding-top:36px
  }
.metrics dd {
    font-size:16px
  }
.footer-main {
    grid-template-columns:minmax(0,1.3fr) minmax(0,.6fr) minmax(0,1fr);
    gap:64px
  }
.footer-contact {
    justify-self:end
  }
.service-body {
    grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);
    gap:80px
  }
.other-services>div {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
.object-card {
    min-height:380px
  }
}
 @media(max-width:59.99rem) {
  .section-heading {
    align-items:start
  }
.section-heading>p {
    display:none
  }
.closing-section {
    align-items:start;
    flex-direction:column
  }
.hero-panorama h1 {
    max-width:760px
  }
.header-inner {
    min-height:88px
  }
.hero-panorama {
    padding-top:152px
  }
.panorama-shade {
    background:linear-gradient(90deg,var(--ink),var(--overlay));
    opacity:.65
  }
}
 @media(max-width:39.99rem) {
  .shell {
    width:calc(100% - 32px)
  }
.brand {
    width:110px
  }
.brand-type strong {
    font-size:21px;
    letter-spacing:.04em
  }
.brand-type small {
    font-size:7px;
    letter-spacing:.02em
  }
.brand-type {
    gap:7px
  }
.header-inner {
    min-height:80px;
    gap:8px
  }
.header-actions {
    gap:8px
  }
.header-cta {
    font-size:12px;
    padding:12px;
    min-height:44px;
    gap:0
  }
.header-cta svg {
    display:none
  }
.cta-full {
    display:none
  }
.cta-short {
    display:inline
  }
.menu-toggle {
    width:40px
  }
.hero-panorama {

    padding-block:136px 72px;
    align-items:flex-start
  }
.hero-panorama h1 {
    font-size:clamp(32px,8vw,48px);
    line-height:1.13
  }
.hero-panorama .hero-description {
    font-size:15px
  }
.hero-panorama .hero-location {
    font-size:12px
  }
.panorama-image {
    object-position:68% center
  }
.hero-panorama .button {
    min-width:224px
  }
.metrics dt {
    font-size:44px
  }
.metrics dd {
    font-size:13px
  }
.company-section {
    padding-block:64px 48px
  }
.company-heading p {
    font-size:16px
  }
.service-section {
    padding-block:64px
  }
.section-heading {
    gap:16px
  }
.section-heading h2 {
    font-size:30px
  }
.service-links>a {
    grid-template-columns:28px minmax(0,1fr) 24px;
    gap:12px;
    min-height:88px
  }
.service-links h3 {
    font-size:23px
  }
.project-section {
    padding-block:64px
  }
.rail-controls {
    gap:4px
  }
.rail-controls button {
    width:44px;
    height:44px
  }
.project-track {
    gap:16px
  }
.object-card {
    padding:24px;
    flex-basis:88%;
    min-height:320px
  }
.object-top {
    margin-bottom:48px
  }
.rail-bottom {
    font-size:11px
  }
.closing-section {
    padding-block:64px
  }
.closing-section h2 {
    font-size:32px
  }
.menu-bottom {
    align-items:start;
    flex-direction:column
  }
.menu-bottom>span {
    font-size:12px
  }
.site-menu {
    padding:24px 20px
  }
.site-menu .menu-directory nav {
    padding-block:24px
  }
.site-menu .menu-directory nav a {
    font-size:36px
  }
.contact-dialog .modal-inner {
    padding:32px 24px
  }
.contact-dialog .modal-inner>h2 {
    font-size:36px
  }
.service-body aside {
    padding:24px
  }
.footer-main {
    gap:32px
  }
.footer-bottom>div {
    flex-direction:column;
    gap:0
  }
.legal-page {
    width:calc(100% - 40px)
  }
.legal-page h1 {
    font-size:32px
  }
}
 @media(prefers-reduced-motion:reduce) {
  .project-track {
    scroll-behavior:auto
  }
.site-menu {
    animation:none!important
  }
}
  /* Source section: interactions-v4.css */ /* Focused interaction revision. Existing brand and page ownership preserved. */ html {
  scrollbar-gutter:stable;
  scroll-padding-top:112px
}
 .header,.main-site .header {
  position:fixed;
  inset:0 0 auto;
  z-index:30;
  background:var(--ink);
  color:var(--white);
  transition:transform 240ms var(--ease-out)
}
 .main-site .header:not(.is-scrolled):not(.menu-is-open) {
  background:transparent
}
 .header.is-hidden:not(:focus-within):not(.menu-is-open) {
  transform:translateY(-101%);
  pointer-events:none
}
 .header-inner {
  border-bottom:0
}
 .inner-page>main {
  padding-top:144px
}
 .inner-page>main:not(.legal-page) {
  padding-top:96px
}
 .header .menu-toggle,.header[data-wide="true"] .menu-toggle {
  display:flex;
  flex-direction:row;

  gap:16px;
  padding:8px 0 8px 12px;
  height:48px
}
 .menu-toggle .menu-caption {
  height:auto;

  background:none;
  font-size:14px
}
 .menu-toggle .menu-symbol {
  display:block;
  position:relative;

  background:none
}
 .menu-symbol i {
  position:absolute;
  left:0;
  top:8px;
  width:24px;
  height:1px;
  background:currentColor;
  transition:transform 220ms var(--ease-out)
}
 .menu-symbol i:last-child {
  top:15px
}
 .menu-toggle[aria-expanded="true"] .menu-symbol i:first-child {
  transform:translateY(3.5px) rotate(45deg)
}
 .menu-toggle[aria-expanded="true"] .menu-symbol i:last-child {
  transform:translateY(-3.5px) rotate(-45deg)
}
 .header.menu-is-open .desktop-nav {
  visibility:hidden;
  pointer-events:none
}
 .site-menu,.site-menu[open] {
  padding:0;
  display:none;

  color:var(--white);
  overflow-y:auto
}
 .site-menu[open] {
  display:block
}
 .site-menu[open],.site-menu.is-closing {
  animation:none;
  transform:none
}
 .site-menu::backdrop {
  background:var(--ink)
}
 .menu-content {
  display:grid;

  padding-block:144px 56px;
  align-items:start
}
 .site-menu .menu-directory nav {
  padding:0;

  display:flex;
  flex-direction:column
}
 .site-menu .menu-directory nav a {

  line-height:1.2
}
 .menu-company-contacts {
  margin-top:56px;

  color:var(--light-muted)
}
 .menu-company-contacts h2 {

  color:var(--white);
  letter-spacing:0;
  margin-bottom:16px
}
 .menu-company-contacts p {
  font-size:14px
}
 .menu-company-contacts dl {
  display:grid;

  gap:24px;
  margin:24px 0 0;
  font-size:14px
}
 .menu-company-contacts dt {
  font-size:12px;
  margin-bottom:8px
}
 .menu-company-contacts dd {
  margin:0;
  color:var(--white)
}
 .menu-form-slot {
  background:var(--paper);
  color:var(--ink);
  min-width:0
}
 .menu-form-slot .modal-inner {
  padding:36px
}
 .menu-form-slot .modal-inner>h2 {

  padding:0;
  margin:0 0 16px
}
 .menu-form-slot .close-button {
  display:none
}
 .menu-form-slot .modal-lead {
  margin-bottom:24px
}
 .request-result {
  padding:16px 0 32px;
  outline:none
}
 .request-result h3 {
  font-size:32px;
  line-height:1.15;
  letter-spacing:-.03em;
  margin:24px 0 16px
}
 .request-result p {
  font-size:15px;
  color:var(--muted);
  margin-bottom:24px
}
 .result-symbol {
  display:grid;
  place-items:center;
  border:1px solid var(--line);
  width:56px;
  height:56px;
  border-radius:50%;
  font-size:24px
}
 .request-result .text-link {
  background:none;
  color:var(--ink);
  padding:0
}
 .form-messengers {
  display:flex;
  flex-wrap:wrap;
  gap:16px 24px;
  border-top:1px solid var(--line);
  padding-top:20px;
  margin-top:24px;
  font-size:14px
}
 .form-messengers small {
  flex-basis:100%;
  font-size:12px;
  color:var(--muted)
}
 .form-messengers [aria-disabled="true"] {
  color:var(--muted);
  cursor:not-allowed;
  min-height:24px
}
 .company-heading {
  display:flex;
  flex-direction:column;
  gap:24px;
  align-items:flex-start
}
 .company-heading p,.section-heading>p,.project-intro {
  font-size:18px;
  line-height:1.65;
  max-width:60ch
}
 .section-heading:has(>p) {
  flex-direction:column;
  align-items:flex-start;
  gap:24px
}
 .section-heading>p {
  display:block!important
}
 .company-heading p {
  max-width:62ch
}
 .project-track {
  scrollbar-width:thin;
  scrollbar-color:transparent transparent;
  scroll-snap-type:x proximity
}
 .project-track:hover,.project-track:focus-within {
  scrollbar-color:var(--muted) transparent
}
 .project-track::-webkit-scrollbar {
  height:6px
}
 .project-track::-webkit-scrollbar-track {
  background:transparent
}
 .project-track::-webkit-scrollbar-thumb {
  background:transparent;
  border-radius:4px
}
 .project-track:hover::-webkit-scrollbar-thumb,.project-track:focus-within::-webkit-scrollbar-thumb {
  background:var(--muted)
}
 .project-track.is-wheeling {
  scroll-snap-type:none
}
 @media(max-width:59.99rem) {
  .menu-content {
    grid-template-columns:minmax(0,1fr);
    gap:40px;
    padding-top:120px
  }
.menu-directory {
    display:grid;

    gap:32px
  }
.menu-company-contacts {
    margin:0
  }
.menu-company-contacts dl {
    grid-template-columns:minmax(0,1fr)
  }
.menu-form-slot {
    max-width:620px;
    width:100%
  }
.inner-page>main:not(.legal-page) {
    padding-top:88px
  }
}
 @media(max-width:39.99rem) {
  html {
    scroll-padding-top:96px
  }
.header .brand {
    width:144px
  }
.header .menu-toggle {
    min-width:88px;
    gap:12px
  }
.menu-content {
    padding-top:112px
  }
.menu-directory {
    grid-template-columns:minmax(0,1fr)
  }
.menu-company-contacts {
    margin-top:8px
  }
.menu-company-contacts dl {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
.menu-form-slot .modal-inner {
    padding:28px 20px
  }
.menu-form-slot .modal-inner>h2 {
    font-size:32px
  }
.company-heading p,.section-heading>p,.project-intro {
    font-size:16px
  }
.inner-page>main:not(.legal-page) {
    padding-top:80px
  }
.inner-page>main.legal-page {
    padding-top:112px
  }
}
 @media(prefers-reduced-motion:reduce) {
  .header,.menu-symbol i {
    transition:none
  }
}
 /* Menu refinement: stable toggle geometry, vertical reading order, restrained feedback. */ .header .menu-toggle,.header[data-wide="true"] .menu-toggle {
  width:120px;
  min-width:120px;
  flex:0 0 120px;
  justify-content:flex-end;
  gap:12px
}
 .menu-toggle .menu-caption {
  width:68px;
  flex:0 0 68px;
  text-align:right
}
 .menu-toggle .menu-symbol {
  width:24px;
  height:24px;
  flex:0 0 24px
}
 .menu-symbol i,.menu-symbol i:last-child {
  top:50%;
  transform-origin:center
}
 .menu-symbol i:first-child {
  transform:translateY(-4px)
}
 .menu-symbol i:last-child {
  transform:translateY(3px)
}
 .menu-toggle[aria-expanded="true"] .menu-symbol i:first-child {
  transform:translateY(-.5px) rotate(45deg)
}
 .menu-toggle[aria-expanded="true"] .menu-symbol i:last-child {
  transform:translateY(-.5px) rotate(-45deg)
}
 .menu-content {
  grid-template-columns:minmax(0,1fr);
  gap:40px
}
 .menu-directory {

  flex-direction:column;
  gap:0
}
 .menu-company-contacts {
  margin-top:40px
}
 .menu-form-slot {
  max-width:none;
  width:100%
}
 .site-menu .menu-directory nav a {
  transition:transform 220ms var(--ease-out);
  max-width:100%;
  overflow-wrap:anywhere
}
 .site-menu .menu-directory nav a:focus-visible {

  outline:2px solid var(--accent);
  outline-offset:4px
}
 @media(hover:hover) {
  .site-menu .menu-directory nav a:hover {

    transform:translateX(8px)
  }
}
 .site-menu .menu-directory nav a:active {
  transform:translateX(4px)
}
 .metrics>div {
  text-align:center
}
 .metrics dd {
  margin-inline:auto
}
 .project-track {
  scroll-snap-type:none
}
 @media(min-width:48rem) {
  .menu-form-slot .request-fields {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    column-gap:24px
  }
.menu-form-slot .request-fields> * {
    grid-column:1/-1
  }
.menu-form-slot .request-fields>.field {
    grid-column:auto
  }
.menu-form-slot .request-fields>.consent-check {
    margin-top:4px
  }
}
 @media(prefers-reduced-motion:reduce) {
  .site-menu .menu-directory nav a {
    transition:none;
    transform:none!important
  }
}
 /* Hallmark · scoped reference-led mega-menu; existing brand palette retained.
 * Source review: P4 H4 E3 S4 R4 V4. Browser visual verification remains pending. */ @font-face {
  font-family:'Bebas Neue';
  src:url('assets/bebas-neue-cyrillic.woff2') format('woff2');
  font-style:normal;
  font-weight:400;
  font-display:swap
}
 h1,h2,h3,h4 {
  font-family:var(--font-display);
  font-weight:400!important;
  letter-spacing:.015em!important;
  font-synthesis:none
}
 .site-menu,.site-menu[open] {
  background:var(--paper);
  color:var(--ink)
}
 .site-menu::backdrop {
  background:var(--paper)
}
 .site-menu .header {
  background:var(--ink)
}
 .menu-content {
  gap:48px;
  padding-top:144px;
  padding-bottom:40px
}
 .menu-directory {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,.8fr) minmax(0,1.25fr);
  gap:64px
}
 .menu-column {
  min-width:0
}
 .menu-column>section+section {
  margin-top:32px
}
 .menu-column h2 {
  font-size:36px;
  line-height:1.1;
  margin-bottom:20px
}
 .site-menu .menu-directory nav {
  gap:4px;
  align-items:flex-start
}
 .site-menu .menu-directory nav a {
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.45;
  letter-spacing:0;
  min-height:36px;
  display:flex;
  align-items:center;
  color:var(--muted);
  padding-block:6px
}
 .site-menu .menu-directory nav a:focus-visible {
  color:var(--ink);
  outline-color:var(--ink)
}
 @media(hover:hover) {
  .site-menu .menu-directory nav a:hover {
    color:var(--ink);
    transform:translateX(6px);
    text-decoration:underline;
    text-underline-offset:5px
  }
}
 .menu-form-slot {
  border-top:1px solid var(--line);
  padding-top:36px
}
 .menu-form-slot .modal-inner {
  padding:0
}
 .menu-form-slot .modal-inner>h2 {
  font-size:48px;
  line-height:1.1;
  margin-bottom:8px
}
 .menu-form-slot .modal-inner>h2 br {
  display:none
}
 .menu-form-slot .modal-lead {
  margin-bottom:24px
}
 .menu-company-contacts {
  margin:0;
  padding-top:24px;
  border-top:1px solid var(--line);
  color:var(--muted)
}
 .menu-company-contacts h2 {
  font-size:30px;
  color:var(--ink)
}
 .menu-company-contacts dl {
  grid-template-columns:repeat(3,minmax(0,1fr));
  margin-top:20px
}
 .menu-company-contacts dd {
  color:var(--ink)
}
 .menu-form-slot .form-messengers {
  display:none
}
 .publication-empty {
  border-block:1px solid var(--line);
  padding-block:32px;
  margin-top:40px
}
 @media(min-width:60rem) {
  .menu-form-slot .request-fields {
    grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(220px,.8fr);
    gap:0 24px
  }
.menu-form-slot .request-fields>.field {
    grid-row:1;
    margin:0
  }
.menu-form-slot .request-fields>.field:first-child {
    grid-column:1
  }
.menu-form-slot .request-fields>.field:nth-child(2) {
    grid-column:2
  }
.menu-form-slot .request-fields>#check-request {
    grid-column:3;
    grid-row:1;
    align-self:end;
    margin:0;
    min-height:56px;
    width:100%
  }
.menu-form-slot .request-fields>.consent-check {
    margin-top:20px
  }
}
 @media(max-width:59.99rem) {
  .menu-content {
    padding-top:120px;
    gap:36px
  }
.menu-directory {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:32px
  }
.menu-directory>.menu-column:last-child {
    grid-column:1/-1
  }
.menu-form-slot .request-fields>#check-request {
    width:100%
  }
}
 @media(max-width:39.99rem) {
  .menu-content {
    padding-top:112px;
    gap:32px
  }
.menu-directory {
    grid-template-columns:minmax(0,1fr);
    gap:28px
  }
.menu-column h2 {
    font-size:30px;
    margin-bottom:12px
  }
.menu-column>section+section {
    margin-top:28px
  }
.menu-form-slot .modal-inner>h2 {
    font-size:40px
  }
.menu-company-contacts dl {
    grid-template-columns:minmax(0,1fr);
    gap:20px
  }
.menu-form-slot {
    padding-top:28px
  }
}
 /* Brand palette and lower-page refinement from the supplied identity reference. */ .hero-panorama {
  min-height:max(880px,100svh);
  padding-block:192px 112px
}
 .hero-panorama .hero-copy {
  max-width:1100px
}
 .hero-panorama h1 {
  font-size:clamp(64px,8vw,120px);
  line-height:1.02;
  margin-bottom:32px
}
 .hero-panorama .hero-description {
  font-size:19px;
  max-width:500px
}
 .metrics dd {
  max-width:none;
  white-space:nowrap;
  font-size:clamp(12px,1.1vw,16px)
}
 .object-card .object-bottom {
  margin-top:auto;
  padding-top:20px
}
 .object-card h3 {
  margin-bottom:32px
}
 .service-links>a:focus-visible h3,.service-links>a:focus-visible svg {
  color:var(--accent-text)
}
 @media(hover:hover) {
  .service-links>a:hover h3,.service-links>a:hover svg {
    color:var(--accent-text)
  }
}
 .inline-request-section {
  display:block;
  padding-block:88px
}
 .inline-form-slot {
  width:100%;
  min-height:380px
}
 .inline-form-slot .modal-inner {
  padding:0
}
 .inline-form-slot .close-button {
  display:none
}
 .inline-form-slot .modal-inner>h2 {
  font-size:clamp(40px,4.5vw,64px);
  line-height:1.1;
  margin-bottom:12px
}
 .inline-form-slot .modal-inner>h2 br {
  display:none
}
 .inline-form-slot .modal-lead {
  margin-bottom:32px;
  font-size:16px
}
 .inline-form-slot .form-messengers {
  display:none
}
 .inline-form-slot .button-dark,.menu-form-slot .button-dark {
  background:var(--accent);
  color:var(--accent-ink);
  border-color:var(--accent)
}
 footer.site-footer {
  position:relative;
  isolation:isolate;
  padding-top:64px;
  overflow:clip
}
 footer.site-footer::before {
  content:'';
  position:absolute;
  inset:0;
  z-index:-1;
  pointer-events:none;
  background:url('assets/brand-pattern.png') center/1280px auto repeat;
  opacity:.055
}
 .footer-identity {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:32px;
  padding-bottom:40px;
  border-bottom:1px solid var(--line-dark);
  margin-bottom:40px
}
 .footer-contact-details {
  display:flex;
  gap:32px;
  color:var(--light-muted);
  font-size:14px
}
 .footer-directory {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,.8fr) minmax(0,1.25fr);
  gap:64px;
  padding-bottom:48px
}
 .footer-directory .menu-column h2 {
  font-size:32px;
  color:var(--white);
  margin-bottom:16px
}
 .footer-directory nav {
  display:flex;
  flex-direction:column;
  align-items:flex-start
}
 footer.site-footer .footer-directory a {
  color:var(--light-muted);
  line-height:1.5;
  padding-block:8px;
  min-height:40px
}
 footer.site-footer .footer-directory a:focus-visible {
  color:var(--accent)
}
 @media(hover:hover) {
  footer.site-footer .footer-directory a:hover {
    color:var(--accent)
  }
}
 @media(min-width:60rem) {
  .inline-form-slot .request-fields {
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(220px,.8fr);
    gap:0 24px
  }
.inline-form-slot .request-fields>* {
    grid-column:1/-1
  }
.inline-form-slot .request-fields>.field {
    grid-row:1;
    margin:0
  }
.inline-form-slot .request-fields>.field:first-child {
    grid-column:1
  }
.inline-form-slot .request-fields>.field:nth-child(2) {
    grid-column:2
  }
.inline-form-slot .request-fields>#check-request {
    grid-column:3;
    grid-row:1;
    align-self:end;
    width:100%;
    min-width:0;
    min-height:56px;
    margin:0
  }
.inline-form-slot .request-fields>.consent-check {
    margin-top:20px
  }
}
 @media(max-width:59.99rem) {
  .hero-panorama {
    min-height:max(800px,95svh);
    padding-block:160px 96px
  }
.hero-panorama h1 {
    font-size:clamp(60px,9vw,92px)
  }
.footer-directory {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:36px
  }
.footer-directory>.menu-column:last-child {
    grid-column:1/-1
  }
.inline-form-slot .button {
    width:100%
  }
.metrics dd {
    font-size:14px
  }
}
 @media(max-width:39.99rem) {
  .hero-panorama {
    min-height:max(740px,100svh);
    padding-block:144px 80px
  }
.hero-panorama h1 {
    font-size:clamp(48px,11vw,68px)
  }
.hero-panorama .hero-description {
    font-size:16px
  }
.metrics {
    grid-template-columns:minmax(0,1fr);
    gap:24px
  }
.metrics dd {
    font-size:14px
  }
.metrics>div {
    padding-top:24px
  }
.inline-request-section {
    padding-block:64px
  }
.footer-directory {
    grid-template-columns:minmax(0,1fr);
    gap:32px
  }
.footer-identity {
    flex-direction:column;
    align-items:flex-start
  }
.footer-contact-details {
    flex-direction:column;
    gap:12px
  }
}
 /* Motion pass: one entrance sequence, fixed header, short reversible state feedback. */ @keyframes legran-arrive {
  from {
    opacity:0;
    transform:translateY(14px)
  }
to {
    opacity:1;
    transform:none
  }
}
 @keyframes legran-leave {
  from {
    opacity:1
  }
to {
    opacity:0
  }
}
 .service-links>a {
  position:relative
}
 .service-links>a::after {
  content:'';
  position:absolute;
  inset:auto 0 -1px;
  height:2px;
  background:var(--accent);
  transform:scaleX(0);
  transform-origin:left;
  pointer-events:none
}
 .service-links>a:focus-visible::after {
  transform:scaleX(1)
}
 @media(hover:hover) {
  .service-links>a:hover::after {
    transform:scaleX(1)
  }
}
 @media(prefers-reduced-motion:no-preference) {
     .hero-panorama .hero-copy {
    animation:none
  }
   .hero-panorama .hero-location {
    animation:legran-arrive 420ms var(--ease-out) both
  }
   .hero-panorama h1 {
    animation:legran-arrive 480ms 40ms var(--ease-out) both
  }
   .hero-panorama .hero-description {
    animation:legran-arrive 420ms 100ms var(--ease-out) both
  }
   .hero-panorama .hero-copy>.button {
    animation:legran-arrive 360ms 160ms var(--ease-out) backwards
  }
   .site-menu[open]:not(.is-closing) .menu-column {
    animation:legran-arrive 360ms 40ms var(--ease-out) both
  }
   .site-menu[open]:not(.is-closing) .menu-column:nth-child(2) {
    animation-delay:80ms
  }
   .site-menu[open]:not(.is-closing) .menu-column:nth-child(3) {
    animation-delay:120ms
  }
   .site-menu[open]:not(.is-closing) .menu-form-slot {
    animation:legran-arrive 320ms 160ms var(--ease-out) both
  }
   .site-menu[open]:not(.is-closing) .menu-company-contacts {
    animation:legran-arrive 280ms 200ms var(--ease-out) both
  }
   .site-menu.is-closing .menu-content {
    animation:legran-leave 180ms var(--ease-in) both;
    pointer-events:none
  }
   .site-menu[open]::backdrop {
    animation:fade-in 220ms var(--ease-out) both
  }
   .site-menu.is-closing::backdrop {
    animation:fade-out 180ms var(--ease-in) both
  }
   .service-links>a::after {
    transition:transform 300ms var(--ease-out)
  }
   .button svg {
    transition:transform 220ms var(--ease-out)
  }
   .button:active {
    transform:translateY(1px)
  }
   .request-result:not([hidden]) {
    animation:legran-arrive 280ms var(--ease-out) both
  }
   .form-status.is-error:not(:empty) {
    animation:fade-in 150ms var(--ease-out) both
  }
   .rail-controls button {
    transition:transform 120ms var(--ease-out)
  }
   .rail-controls button:not(:disabled):active {
    transform:scale(.96)
  }
}
 @media(hover:hover) and (prefers-reduced-motion:no-preference) {
  .button:hover svg {
    transform:translateX(4px)
  }
}
