:root { --chrome-surface:#efeff1; --chrome-ink:#1b1b1b; --chrome-disc:#2d2d2d; --chrome-blue:#0575ff; }
html { font-synthesis:none; }

.site-header { position:absolute; z-index:100; top:27.5px; left:50%; width:1820px; height:56px; background:var(--chrome-surface); text-rendering:geometricPrecision; transform:translateX(-50%); }
.site-header__inner { position:relative; width:1820px; height:56px; }
.site-logo { position:absolute; top:0; left:7px; display:grid; width:146px; height:56px; place-items:center; }.site-logo img { width:146px; height:56px; }
.main-navigation { position:absolute; top:15.5px; left:168px; width:1231px; height:28px; }.main-navigation__list { display:flex; align-items:center; justify-content:center; width:100%; height:28px; gap:81px; margin:0; padding:0; list-style:none; transform:translateX(-1px); }.main-navigation a { display:block; transition:opacity 180ms ease; }
.social-links { position:absolute; top:11.5px; left:1399px; display:flex; width:76px; height:34px; gap:8px; }.social-links a,.social-links img { display:block; width:34px; height:34px; }
.project-link { position:absolute; top:.5px; left:1495px; display:flex; align-items:center; justify-content:space-between; width:230px; height:55px; padding:1.7px 1.7px 1.7px 20px; border-radius:40px; background:var(--chrome-ink); color:#fff; text-transform:uppercase; }.project-link__arrow { display:grid; width:56.6px; height:56.6px; place-items:center; }.project-link__arrow-disc { display:grid; width:40px; height:40px; padding:10px; border-radius:50%; place-items:center; background:var(--chrome-disc); transform:rotate(-45deg); }.project-link__arrow-disc img { width:20px; height:20px; }
.site-header .menu-toggle { position:absolute; top:.5px; left:1765px; display:block; width:55px; height:55px; margin:0; padding:0; border:0; border-radius:50%; background:transparent; cursor:pointer; }.site-header .menu-toggle img { width:55px; height:55px; }
.page-content { padding-top:100px; }

.site-footer { position:relative; width:min(1828px,calc(100% - 80px)); height:640px; margin:80px auto 0; overflow:hidden; border-radius:40px; background:var(--chrome-ink); color:#fff; }.site-footer__title { position:absolute; top:60px; left:36px; width:580px; margin:0; font-size:60px; font-weight:600; line-height:54px; letter-spacing:-3.6px; white-space:nowrap; }.site-footer__request { position:absolute; top:134px; left:36px; display:flex; align-items:center; width:245px; height:46px; padding-left:30px; border-radius:40px; background:var(--chrome-blue); color:#fff; font-size:16px; font-weight:700; line-height:20px; text-transform:uppercase; }.site-footer__request-arrow { position:absolute; top:50%; left:188px; display:grid; width:56.6px; height:56.6px; place-items:center; transform:translateY(-50%); }.site-footer__request-arrow::before { width:40px; height:40px; border-radius:50%; background:var(--chrome-ink); content:""; transform:rotate(-45deg); }.site-footer__request-arrow img { position:absolute; width:20px; height:20px; transform:rotate(-45deg); }.site-footer__to-top { position:absolute; top:60px; right:40px; display:grid; width:60px; height:60px; place-items:center; border-radius:50%; background:var(--chrome-disc); }.site-footer__to-top img { width:21px; height:21px; transform:rotate(-90deg); }
.site-footer__contacts { position:absolute; top:218px; left:36px; width:804px; height:122px; }.site-footer__contact { position:absolute; left:0; display:block; color:rgb(239 239 241 / 70%); font-size:20px; font-weight:500; font-style:normal; line-height:28px; letter-spacing:-.6px; }.site-footer__contact--telegram { top:0; height:34px; padding:3px 0 3px 44px; }.site-footer__contact--max { top:44px; height:34px; padding:3px 0 3px 46px; text-decoration:underline; text-underline-offset:2px; }.site-footer__contact--address { top:88px; width:423px; min-height:34px; padding-left:44px; }.site-footer__contact--address > span:last-child { display:block; width:342px; }.site-footer__contact-icon,.site-footer__max-icon { position:absolute; top:0; left:0; display:grid; width:34px; height:34px; place-items:center; }.site-footer__contact-icon { border-radius:50%; background:var(--chrome-disc); }.site-footer__telegram-icon,.site-footer__map-icon { display:grid; width:20px; height:20px; place-items:center; opacity:.7; -webkit-mask-position:center; -webkit-mask-repeat:no-repeat; -webkit-mask-size:20px; mask-position:center; mask-repeat:no-repeat; mask-size:20px; }.site-footer__telegram-icon { -webkit-mask-image:url("assets/footer/telegram-mask.svg"); mask-image:url("assets/footer/telegram-mask.svg"); }.site-footer__map-icon { -webkit-mask-image:url("assets/footer/map-mask.svg"); mask-image:url("assets/footer/map-mask.svg"); }.site-footer__telegram-icon img { width:13.3px; height:12.2px; }.site-footer__map-icon img { width:15px; height:20px; }
.site-footer__services { position:absolute; inset:0; }.site-footer__services h3 { position:absolute; top:60px; left:712px; margin:0; font-size:36px; font-weight:700; line-height:50.4px; letter-spacing:-1.08px; }.site-footer__service-column { position:absolute; top:130px; width:382px; height:450px; margin:0; padding:0; color:rgb(255 255 255 / 70%); font-size:20px; font-weight:500; line-height:28px; letter-spacing:-.6px; list-style:none; }.site-footer__service-column--left { left:712px; }.site-footer__service-column--right { left:1094px; }.site-footer__service-column li { position:absolute; left:11px; white-space:nowrap; }.site-footer__service-column li:nth-child(1) { top:0; }.site-footer__service-column li:nth-child(2) { top:47.6px; }.site-footer__service-column li:nth-child(3) { top:83.6px; }.site-footer__service-column li:nth-child(4) { top:119.6px; }.site-footer__service-column li:nth-child(5) { top:155.6px; }.site-footer__service-column--left li:nth-child(6),.site-footer__service-column--right li:nth-child(3) { top:203.6px; }.site-footer__service-column--left li:nth-child(7),.site-footer__service-column--right li:nth-child(4) { top:251.6px; }.site-footer__service-column--left li:nth-child(8),.site-footer__service-column--right li:nth-child(5) { top:287.6px; }.site-footer__service-column--left li:nth-child(9),.site-footer__service-column--right li:nth-child(6) { top:323.2px; }.site-footer__service-column--left li:nth-child(10) { top:359.2px; }.site-footer__service-title { left:0 !important; color:var(--chrome-surface); font-weight:700; }.site-footer__bottom { position:absolute; right:40px; bottom:33px; left:43px; display:flex; align-items:center; height:27px; color:rgb(239 239 241 / 80%); font-size:16px; font-weight:400; line-height:28px; letter-spacing:-.6px; }.site-footer__copyright { margin-right:auto; }.site-footer__details { margin-right:60px; }.site-footer__details,.site-footer__privacy { white-space:nowrap; }
.main-navigation a:hover,.social-links a:hover,.project-link:hover,.site-footer a:hover { opacity:.74; }.main-navigation a:focus-visible,.social-links a:focus-visible,.project-link:focus-visible,.site-footer a:focus-visible,.site-header .menu-toggle:focus-visible { outline:2px solid var(--chrome-ink); outline-offset:3px; }

@media (max-width:1819px) { .site-header { position:relative; top:auto; left:auto; width:100%; height:72px; background:transparent; transform:none; }.site-header__inner { position:relative; top:8px; left:16px; width:calc(100% - 32px); min-width:0; height:56px; background:var(--chrome-surface); }.site-logo { left:7px; }.social-links,.project-link { display:none; }.site-header .menu-toggle { top:.5px; right:0; left:auto; }.main-navigation { top:56px; left:0; z-index:1; display:none; width:100%; height:auto; padding:16px; background:var(--chrome-surface); }.site-header.is-menu-open .main-navigation { display:block; }.main-navigation__list { align-items:stretch; flex-direction:column; height:auto; gap:0; transform:none; }.main-navigation a { padding:10px 0; }.page-content { padding-top:0; }.site-footer { display:grid; width:calc(100% - 32px); height:auto; min-height:640px; margin-top:48px; padding:40px 36px 32px; grid-template-columns:minmax(0,.43fr) minmax(0,.57fr); grid-template-rows:auto auto auto auto; column-gap:48px; row-gap:20px; border-radius:28px; }.site-footer__title,.site-footer__request,.site-footer__contacts,.site-footer__services,.site-footer__bottom { position:relative; inset:auto; }.site-footer__title { width:auto; grid-column:1; grid-row:1; font-size:clamp(42px,4.1vw,60px); line-height:.9; letter-spacing:-.06em; white-space:normal; }.site-footer__request { grid-column:1; grid-row:2; }.site-footer__to-top { top:40px; right:36px; }.site-footer__contacts { width:100%; height:122px; grid-column:1; grid-row:3; margin-top:18px; }.site-footer__services { display:grid; height:auto; grid-column:2; grid-row:1 / span 3; grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:auto 1fr; gap:24px 40px; }.site-footer__services h3 { position:relative; inset:auto; grid-column:1 / -1; }.site-footer__service-column { position:relative; inset:auto; width:auto; height:388px; }.site-footer__bottom { grid-column:1 / -1; grid-row:4; margin-top:12px; gap:32px; } }
@media (min-width:1201px) and (max-width:1819px) { .site-header { height:80px; }.site-header__inner { position:relative; top:8px; left:16px; width:calc(100% - 32px); transform:none; }.site-logo { left:7px; }.social-links,.project-link { display:flex; }.social-links { top:11.5px; right:250px; left:auto; }.project-link { top:.5px; right:0; left:auto; }.main-navigation { top:15.5px; right:330px; left:168px; display:block; width:auto; height:28px; padding:0; background:transparent; }.main-navigation__list { align-items:center; flex-direction:row; justify-content:center; width:100%; height:28px; gap:clamp(24px,3.4vw,56px); transform:translateX(-1px); }.main-navigation a { padding:0; }.site-header .menu-toggle { display:none; } }
@media (max-width:1100px) { .site-footer { min-height:0; grid-template-columns:minmax(0,1fr); grid-template-rows:auto auto auto auto auto; }.site-footer__title { grid-column:1; grid-row:1; }.site-footer__request { grid-column:1; grid-row:2; }.site-footer__contacts { grid-column:1; grid-row:3; }.site-footer__services { grid-column:1; grid-row:4; margin-top:24px; }.site-footer__bottom { grid-column:1; grid-row:5; margin-top:24px; } }
@media (max-width:760px) { .site-header { height:72px; }.site-header__inner { left:12px; width:calc(100% - 24px); }.site-logo { left:0; width:128px; height:56px; }.site-logo img { width:128px; height:auto; }.site-header .menu-toggle { right:0; }.main-navigation { padding:16px 20px 20px; }.site-footer { padding:32px 24px 24px; }.site-footer__services { grid-template-columns:1fr; }.site-footer__service-column { height:388px; }.site-footer__service-column--right { margin-top:-140px; }.site-footer__bottom { align-items:flex-start; flex-direction:column; gap:10px; }.site-footer__details { margin-right:0; }.site-footer__contact--address > span:last-child { width:min(100%,300px); } }

/* Mobile header follows contacts.html exactly: it sits on the page surface, not on a separate card. */
@media (max-width:760px) {
  .site-header { height:56px; }
  .site-header__inner { top:auto; left:auto; width:100%; min-width:320px; background:transparent; }
  .site-logo { left:16px; width:146px; height:56px; }
  .site-logo img { width:146px; height:56px; }
  .site-header .menu-toggle { right:16px; }
  .main-navigation { top:56px; padding:16px; }
}

/* Full-site navigation, opened from the round menu control in the header. */
.site-menu { position:fixed; z-index:1000; inset:0; display:grid; opacity:0; pointer-events:none; transition:opacity 180ms ease; }.site-menu[hidden] { display:none; }.site-menu.is-open { opacity:1; pointer-events:auto; }.site-menu__backdrop { position:absolute; inset:0; background:rgb(27 27 27 / 32%); opacity:0; transition:opacity 260ms ease; }.site-menu.is-open .site-menu__backdrop { opacity:1; }.site-menu__panel { position:relative; display:grid; width:min(100%,1920px); min-height:100%; margin:auto; padding:28px max(40px,calc((100vw - 1828px) / 2)); grid-template-rows:auto 1fr auto; background:var(--chrome-surface); clip-path:inset(0 0 100% 0); color:var(--chrome-ink); transform:translateY(-24px); transition:clip-path 620ms cubic-bezier(.16,1,.3,1),transform 520ms cubic-bezier(.16,1,.3,1); }.site-menu.is-open .site-menu__panel { clip-path:inset(0 0 0 0); transform:translateY(0); }.site-menu__topbar { display:grid; min-height:56px; align-items:center; grid-template-columns:1fr auto auto; gap:18px; }.site-menu__logo,.site-menu__logo img { display:block; width:146px; height:56px; }.site-menu__project { display:inline-flex; min-height:48px; padding:0 10px 0 22px; align-items:center; gap:15px; border-radius:999px; background:var(--chrome-ink); color:#fff; font-size:15px; font-weight:700; letter-spacing:-.03em; text-transform:uppercase; }.site-menu__project span { display:grid; width:32px; height:32px; place-items:center; border-radius:50%; background:var(--chrome-blue); font-size:19px; line-height:1; }.site-menu__close { position:relative; display:grid; width:55px; height:55px; padding:0; place-items:center; border:0; border-radius:50%; background:var(--chrome-blue); cursor:pointer; }.site-menu__close span { position:absolute; width:28px; height:2px; border-radius:2px; background:#fff; }.site-menu__close span:first-child { transform:rotate(45deg); }.site-menu__close span:last-child { transform:rotate(-45deg); }.site-menu__content { display:grid; width:100%; max-width:1680px; margin:clamp(44px,8vh,112px) auto 44px; align-self:center; grid-template-columns:minmax(0,1.15fr) minmax(350px,.85fr); gap:clamp(52px,8vw,160px); }.site-menu__eyebrow,.site-menu__group h2 { margin:0 0 18px; color:rgb(27 27 27 / 54%); font-size:14px; font-weight:600; letter-spacing:-.02em; }.site-menu__navigation ul,.site-menu__group ul { margin:0; padding:0; list-style:none; }.site-menu__navigation li + li { margin-top:4px; }.site-menu__navigation a { display:inline-flex; min-width:min(100%,620px); padding:4px 0; align-items:baseline; justify-content:space-between; gap:22px; border-bottom:1px solid rgb(27 27 27 / 14%); color:var(--chrome-ink); font-size:clamp(36px,4vw,68px); font-weight:600; line-height:1.08; letter-spacing:-.06em; transition:color 180ms ease,padding 240ms cubic-bezier(.16,1,.3,1); }.site-menu__navigation a span,.site-menu__socials span { color:var(--chrome-blue); font-size:.52em; transition:transform 180ms ease; }.site-menu__navigation a:hover,.site-menu__navigation a:focus-visible { padding-left:16px; color:var(--chrome-blue); opacity:1; }.site-menu__navigation a:hover span,.site-menu__navigation a:focus-visible span,.site-menu__socials a:hover span,.site-menu__socials a:focus-visible span { transform:translate(3px,-3px); }.site-menu__aside { display:grid; align-content:center; gap:clamp(32px,5vw,76px); padding:24px 0 24px clamp(26px,4vw,72px); border-left:1px solid rgb(27 27 27 / 16%); }.site-menu__group ul { display:grid; gap:12px; }.site-menu__group a,.site-menu__socials a { color:var(--chrome-ink); font-size:clamp(18px,1.55vw,24px); font-weight:600; line-height:1.25; letter-spacing:-.04em; transition:color 180ms ease; }.site-menu__group a:hover,.site-menu__group a:focus-visible,.site-menu__socials a:hover,.site-menu__socials a:focus-visible { color:var(--chrome-blue); opacity:1; }.site-menu__socials { display:flex; flex-wrap:wrap; gap:16px 28px; }.site-menu__socials a { display:inline-flex; align-items:center; gap:7px; }.site-menu__footer { display:flex; padding-top:20px; align-items:center; justify-content:space-between; border-top:1px solid rgb(27 27 27 / 14%); color:rgb(27 27 27 / 58%); font-size:14px; font-weight:500; letter-spacing:-.02em; }.site-menu__footer a { color:inherit; text-decoration:underline; text-underline-offset:3px; } html.is-site-menu-open,body.is-site-menu-open { overflow:hidden; } @media (prefers-reduced-motion:reduce) { .site-menu,.site-menu__backdrop,.site-menu__panel,.site-menu__navigation a,.site-menu__navigation a span,.site-menu__socials span { transition-duration:1ms; } } @media (max-width:760px) { .site-menu__panel { min-height:100dvh; padding:14px 16px 20px; overflow-y:auto; }.site-menu__topbar { grid-template-columns:1fr auto; }.site-menu__logo,.site-menu__logo img { width:128px; height:auto; }.site-menu__project { display:none; }.site-menu__close { width:52px; height:52px; }.site-menu__content { margin:44px 0 34px; align-self:start; grid-template-columns:1fr; gap:44px; }.site-menu__navigation a { min-width:100%; padding-block:7px; font-size:clamp(36px,11vw,52px); }.site-menu__aside { gap:34px; padding:34px 0 0; border-top:1px solid rgb(27 27 27 / 16%); border-left:0; }.site-menu__group a,.site-menu__socials a { font-size:18px; }.site-menu__footer { align-items:flex-start; flex-direction:column; gap:10px; font-size:12px; } }

/* The header stays available while scrolling without changing the document rhythm. */
@media (min-width:1820px) { .site-header { position:sticky; z-index:120; top:20px; margin-bottom:-56px; overflow:hidden; border:1px solid rgb(27 27 27 / 7%); border-radius:30px; background:rgb(246 246 247 / 96%); box-shadow:0 12px 28px rgb(27 27 27 / 9%); } }
@media (max-width:1819px) { .site-header { position:sticky; z-index:120; top:8px; }.site-header__inner { border:1px solid rgb(27 27 27 / 7%); border-radius:28px; background:rgb(246 246 247 / 96%); box-shadow:0 12px 28px rgb(27 27 27 / 9%); } }
@media (max-width:760px) { .site-header__inner { border-radius:28px; } }

/* Menu controls reuse the existing header arrow and align the close button with the burger. */
.site-menu__topbar { grid-template-columns:1fr auto; }
.site-menu__project { position:fixed; z-index:3; top:var(--site-menu-close-top); left:calc(var(--site-menu-close-left) - 250px); right:auto; display:flex; width:230px; height:var(--site-menu-close-height,55px); min-height:0; margin:0; padding:1.7px 1.7px 1.7px 20px; align-items:center; justify-content:space-between; gap:0; border-radius:40px; background:var(--chrome-ink); color:#fff; text-transform:uppercase; }
.site-menu__project > span:first-child { display:block; width:auto; height:auto; padding:0; border-radius:0; background:transparent; font-size:16px; font-weight:700; line-height:20px; white-space:nowrap; }
.site-menu__project .project-link__arrow { display:grid; width:56.6px; height:56.6px; padding:0; flex:0 1 auto; place-items:center; border-radius:0; background:transparent; }
.site-menu__project .project-link__arrow-disc,.site-menu__navigation-arrow .project-link__arrow-disc { display:grid; width:40px; height:40px; padding:10px; place-items:center; border-radius:50%; background:var(--chrome-disc); transform:rotate(-45deg); }
.site-menu__navigation-arrow { display:grid; width:56.569px; height:56.569px; flex:0 0 auto; place-items:center; transition:transform 180ms ease; }
.site-menu__navigation a > span:first-child { display:block; width:auto; height:auto; border-radius:0; background:transparent; color:var(--chrome-ink); font-size:inherit; line-height:inherit; transition:none; }
.site-menu__navigation a:hover .site-menu__navigation-arrow,.site-menu__navigation a:focus-visible .site-menu__navigation-arrow { transform:translate(3px,-3px); }
.site-menu__close { position:fixed; z-index:2; top:var(--site-menu-close-top,28px); left:var(--site-menu-close-left,auto); width:var(--site-menu-close-width,55px); height:var(--site-menu-close-height,55px); }

/* Full-bleed site header: the surface reaches the viewport edges, not a narrow floating card. */
.site-header { position:sticky; z-index:120; top:0; left:0; width:100%; height:64px; margin:0; overflow:visible; border:1px solid rgb(27 27 27 / 7%); border-top:0; border-radius:0 0 30px 30px; background:rgb(246 246 247 / 96%); box-shadow:0 12px 28px rgb(27 27 27 / 9%); transform:none; }
.site-header__inner { position:relative; top:0; left:0; width:100%; min-width:0; height:56px; border:0; border-radius:0; background:transparent; box-shadow:none; transform:none; }
@media (min-width:1201px) { .site-header__inner .main-navigation { right:425px; left:168px; width:auto; }.site-header__inner .social-links { right:330px; left:auto; }.site-header__inner .project-link { right:75px; left:auto; }.site-header__inner .menu-toggle { right:0; left:auto; display:block; } }
@media (max-width:760px) { .site-header { height:64px; border-radius:0 0 24px 24px; } }

/* Header shell follows the local getflowly.ru reference; content remains this site's own. */
.site-header { position:sticky; z-index:120; top:0; left:auto; width:min(100%,1908px); height:76px; margin:0 auto 12px; overflow:visible; border:1px solid rgb(255 255 255 / 46%); border-radius:30px; background:linear-gradient(180deg,rgb(255 255 255 / 50%) 0%,rgb(255 255 255 / 24%) 100%); box-shadow:0 18px 42px rgb(27 27 27 / 8%),inset 0 1px 0 rgb(255 255 255 / 72%),inset 0 -1px 0 rgb(255 255 255 / 16%); backdrop-filter:blur(28px) saturate(160%); -webkit-backdrop-filter:blur(28px) saturate(160%); transform:none; }
.site-header__inner { width:100%; height:76px; }
.site-header__inner .social-links.social-links--facebook { width:34px; gap:0; }
@media (min-width:1521px) { .site-logo { top:10px; left:40px; }.site-header__inner .main-navigation { top:24px; right:485px; left:200px; width:auto; }.site-header__inner .main-navigation__list { gap:34px; }.site-header__inner .social-links { top:21px; right:361px; left:auto; gap:12px; }.site-header__inner .project-link { top:11px; right:115px; left:auto; height:54px; }.site-header__inner .menu-toggle { top:11px; right:40px; left:auto; display:block; } }
@media (max-width:1520px) { .site-header { width:calc(100% - 48px); height:88px; }.site-header__inner { height:88px; }.site-logo { top:16px; left:24px; }.site-header__inner .main-navigation,.site-header__inner .social-links,.site-header__inner .project-link { display:none; }.site-header__inner .menu-toggle { top:14px; right:24px; left:auto; display:block; } }
@media (max-width:760px) { .site-header { width:calc(100% - 24px); height:76px; border-radius:24px; }.site-header__inner { height:76px; }.site-logo,.site-logo img { width:124px; height:48px; }.site-logo { top:14px; left:12px; }.site-header__inner .menu-toggle { top:12px; right:12px; width:52px; height:52px; }.site-header__inner .menu-toggle img { width:52px; height:52px; } }

/* On phones the menu CTA follows the navigation instead of sharing the logo row. */
@media (max-width:760px) { .site-menu__content { gap:0; }.site-menu__project { position:static; z-index:auto; display:flex; width:min(100%,320px); height:55px; margin:24px 0 0; justify-self:start; grid-column:1; }.site-menu__aside { margin-top:44px; } }

/* Mobile footer uses one vertical reading flow. The desktop layout is intentionally
   positioned, but its fixed contact height and offset service list cannot contain
   the four shared social profiles on a narrow screen. */
@media (max-width:760px) {
  .site-footer {
    display:grid;
    width:calc(100% - 24px);
    height:auto;
    min-height:0;
    margin-top:24px;
    padding:32px 24px 24px;
    grid-template-columns:minmax(0,1fr);
    grid-template-areas:"title" "request" "contacts" "services" "bottom";
    gap:24px;
    overflow:visible;
  }

  .site-footer__title,
  .site-footer__request,
  .site-footer__contacts,
  .site-footer__services,
  .site-footer__bottom {
    position:relative;
    inset:auto;
    min-width:0;
    margin:0;
  }

  .site-footer__title {
    width:auto;
    padding-right:76px;
    grid-area:title;
    font-size:clamp(38px,10vw,48px);
    line-height:.92;
    letter-spacing:-.06em;
    white-space:normal;
  }

  .site-footer__request { grid-area:request; }
  .site-footer__to-top { top:32px; right:24px; }

  .site-footer__contacts { grid-area:contacts; width:100%; height:auto; min-height:0; }
  .site-footer__contacts.site-footer__contacts--social {
    display:grid;
    width:100%;
    height:auto;
    min-height:0;
    grid-template-columns:minmax(0,1fr);
    gap:12px;
  }

  .site-footer__contacts--social .site-footer__contact--social {
    position:relative;
    top:auto;
    left:auto;
    display:flex;
    min-height:34px;
    padding:0;
    align-items:center;
    gap:10px;
    overflow-wrap:anywhere;
  }

  .site-footer__contacts--social .site-social-icon,
  .site-footer__contacts--social .site-social-icon img {
    display:block;
    width:34px;
    height:34px;
    flex:0 0 34px;
  }

  .site-footer__services {
    display:grid;
    height:auto;
    grid-area:services;
    grid-template-columns:minmax(0,1fr);
    grid-template-rows:auto auto auto;
    gap:24px;
  }

  .site-footer__services h3 {
    position:relative;
    inset:auto;
    height:auto;
    margin:0;
    font-size:30px;
    line-height:1.1;
  }

  .site-footer__service-column,
  .site-footer__service-column--left,
  .site-footer__service-column--right {
    position:relative;
    inset:auto;
    display:flex;
    width:100%;
    height:auto;
    margin:0;
    padding:0;
    flex-direction:column;
    gap:10px;
    font-size:16px;
    line-height:1.4;
  }

  .site-footer__service-column--right { margin-top:0; }
  .site-footer__service-column li,
  .site-footer__service-column--left li:nth-child(n),
  .site-footer__service-column--right li:nth-child(n) {
    position:relative;
    top:auto;
    left:auto;
    margin:0;
    overflow-wrap:anywhere;
    white-space:normal;
  }

  .site-footer__service-column .site-footer__service-title { margin-top:12px; }
  .site-footer__service-column .site-footer__service-title:first-child { margin-top:0; }

  .site-footer__bottom {
    display:flex;
    grid-area:bottom;
    width:100%;
    height:auto;
    padding-top:20px;
    align-items:flex-start;
    flex-direction:column;
    gap:10px;
    border-top:1px solid rgb(255 255 255 / 18%);
    font-size:14px;
    line-height:1.4;
  }

  .site-footer__copyright,
  .site-footer__details,
  .site-footer__privacy {
    position:relative;
    inset:auto;
    margin:0;
    overflow-wrap:anywhere;
    white-space:normal;
  }
}

/* Shared profiles replace the legacy messenger stack in every footer. Their
   layout must win over the older absolute contact rules above. */
.site-footer__contacts.site-footer__contacts--social {
  display:grid;
  width:620px;
  height:auto;
  min-height:0;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px 34px;
}

.site-footer__contacts--social .site-footer__contact--social {
  position:relative;
  top:auto;
  left:auto;
  display:flex;
  width:auto;
  min-height:34px;
  padding:0;
  align-items:center;
  gap:10px;
  overflow-wrap:anywhere;
  color:rgb(239 239 241 / 70%);
  text-decoration:none;
}

.site-footer__contacts--social .site-social-icon,
.site-footer__contacts--social .site-social-icon img {
  display:block;
  width:34px;
  height:34px;
  flex:0 0 34px;
}

@media (min-width:761px) and (max-width:1819px) {
  .site-footer__contacts.site-footer__contacts--social {
    position:relative;
    inset:auto;
    width:100%;
  }
}

@media (max-width:760px) {
  .site-footer__contacts.site-footer__contacts--social {
    grid-template-columns:minmax(0,1fr);
    gap:12px;
  }
}

/* Shared lead form for the project CTA and service tariff selection. */
.site-lead-modal {
  position:fixed;
  z-index:2000;
  inset:0;
  display:grid;
  padding:24px;
  place-items:center;
  overflow-y:auto;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity 180ms ease,visibility 180ms ease;
}

.site-lead-modal[hidden],
.site-lead-modal__success[hidden] { display:none !important; }
.site-lead-modal.is-open { opacity:1; visibility:visible; pointer-events:auto; }
.site-lead-modal__backdrop { position:absolute; inset:0; background:rgb(10 13 21 / 42%); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); }
.site-lead-modal__dialog {
  position:relative;
  z-index:1;
  width:min(100%,560px);
  border-radius:32px;
  background:linear-gradient(180deg,#fff 0%,#f6f8fc 100%);
  box-shadow:0 40px 100px rgb(11 17 28 / 24%),inset 0 1px 0 rgb(255 255 255 / 78%);
  color:var(--chrome-ink);
  transform:translateY(18px) scale(.985);
  transition:transform 220ms cubic-bezier(.16,1,.3,1);
}

.site-lead-modal.is-open .site-lead-modal__dialog { transform:translateY(0) scale(1); }
.site-lead-modal__close {
  position:absolute;
  z-index:2;
  top:20px;
  right:20px;
  width:44px;
  height:44px;
  padding:0;
  border:0;
  border-radius:50%;
  background:rgb(27 27 27 / 92%);
  cursor:pointer;
}

.site-lead-modal__close span { position:absolute; top:50%; left:50%; width:18px; height:2px; border-radius:999px; background:#fff; }
.site-lead-modal__close span:first-child { transform:translate(-50%,-50%) rotate(45deg); }
.site-lead-modal__close span:last-child { transform:translate(-50%,-50%) rotate(-45deg); }
.site-lead-modal__close:hover,.site-lead-modal__close:focus-visible { background:var(--chrome-blue); }

.site-lead-form { display:grid; gap:20px; padding:34px; }
.site-lead-modal__title { max-width:calc(100% - 56px); margin:0; font-size:42px; font-weight:700; line-height:.95; letter-spacing:-.045em; }
.site-lead-form__fields { display:grid; gap:14px; }
.site-lead-form__field { display:grid; gap:8px; }
.site-lead-form__field > span { color:rgb(27 27 27 / 62%); font-size:12px; font-weight:700; line-height:15px; letter-spacing:.04em; text-transform:uppercase; }
.site-lead-form__field input {
  box-sizing:border-box;
  width:100%;
  min-height:58px;
  padding:16px 18px;
  border:1px solid rgb(12 24 44 / 10%);
  border-radius:18px;
  background:#f5f8fc;
  color:var(--chrome-ink);
  font:600 16px/24px "Manrope",sans-serif;
}

.site-lead-form__field input:focus { outline:0; border-color:rgb(5 117 255 / 60%); box-shadow:0 0 0 4px rgb(5 117 255 / 12%); background:#fff; }
.site-lead-form__consent { display:grid; grid-template-columns:20px minmax(0,1fr); column-gap:12px; align-items:start; color:rgb(27 27 27 / 78%); font-size:14px; font-weight:500; line-height:22px; cursor:pointer; }
.site-lead-form__consent > input { position:absolute; opacity:0; pointer-events:none; }
.site-lead-form__checkbox { position:relative; width:20px; height:20px; margin-top:1px; border:1px solid rgb(12 24 44 / 18%); border-radius:6px; background:#f5f8fc; }
.site-lead-form__checkbox::after { position:absolute; top:3px; left:7px; width:5px; height:10px; border-right:2px solid #fff; border-bottom:2px solid #fff; content:""; transform:rotate(45deg) scale(0); transition:transform 180ms ease; }
.site-lead-form__consent > input:focus-visible + .site-lead-form__checkbox { border-color:rgb(5 117 255 / 60%); box-shadow:0 0 0 4px rgb(5 117 255 / 12%); }
.site-lead-form__consent > input:checked + .site-lead-form__checkbox { border-color:var(--chrome-blue); background:var(--chrome-blue); }
.site-lead-form__consent > input:checked + .site-lead-form__checkbox::after { transform:rotate(45deg) scale(1); }
.site-lead-form__consent a { color:var(--chrome-blue); text-decoration:underline; text-underline-offset:2px; }

.site-lead-form__submit {
  display:flex;
  width:100%;
  min-height:58px;
  padding:2px 2px 2px 22px;
  border:0;
  border-radius:18px;
  align-items:center;
  justify-content:space-between;
  background:var(--chrome-ink);
  color:#fff;
  font:700 14px/18px "Manrope",sans-serif;
  letter-spacing:.07em;
  text-transform:uppercase;
  cursor:pointer;
}

.site-lead-form__submit > span:last-child { display:grid; width:54px; height:54px; place-items:center; border-radius:16px; background:rgb(255 255 255 / 12%); }
.site-lead-form__submit img { transform:rotate(-45deg); }
.site-lead-form__submit:hover,.site-lead-form__submit:focus-visible { background:var(--chrome-blue); box-shadow:0 14px 32px rgb(5 117 255 / 20%); }
.site-lead-form__submit:disabled { opacity:.72; cursor:wait; }

.site-lead-modal__success { display:grid; gap:18px; padding:40px 34px 34px; }
.site-lead-modal__success > span { justify-self:start; padding:10px 14px; border-radius:999px; background:rgb(5 117 255 / 8%); color:var(--chrome-blue); font-size:13px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; }
.site-lead-modal__success h2,.site-lead-modal__success p { margin:0; }.site-lead-modal__success h2 { font-size:40px; line-height:.98; letter-spacing:-.045em; }.site-lead-modal__success p { color:rgb(27 27 27 / 72%); font-size:17px; line-height:28px; }
.site-lead-modal__success button { min-height:56px; border:0; border-radius:18px; background:var(--chrome-ink); color:#fff; font:700 14px/18px "Manrope",sans-serif; letter-spacing:.07em; text-transform:uppercase; cursor:pointer; }.site-lead-modal__success button:hover,.site-lead-modal__success button:focus-visible { background:var(--chrome-blue); }
html.is-site-lead-modal-open,body.is-site-lead-modal-open { overflow:hidden; }

@media (max-width:760px) {
  .site-lead-modal { padding:12px; place-items:start center; }
  .site-lead-modal__dialog { width:100%; margin:auto 0; border-radius:24px; }
  .site-lead-modal__close { top:14px; right:14px; width:40px; height:40px; }
  .site-lead-form { gap:18px; padding:22px 18px; }
  .site-lead-modal__title { font-size:32px; line-height:.98; }
  .site-lead-form__field input { min-height:54px; padding:14px 16px; border-radius:16px; font-size:15px; }
  .site-lead-form__submit { min-height:54px; padding-left:18px; border-radius:16px; }.site-lead-form__submit > span:last-child { width:50px; height:50px; border-radius:14px; }
  .site-lead-modal__success { padding:36px 22px 22px; }.site-lead-modal__success h2 { font-size:30px; }
}

/* Canonical header typography. Every page consumes this exact rule set; page CSS
   owns layout only and must not redefine these text roles. */
.site-header,
.site-header .main-navigation a,
.site-header .project-link > span:first-child {
  font-family: "Manrope", sans-serif;
  font-style: normal;
  font-synthesis: none;
}

.site-header .main-navigation a {
  color: var(--chrome-ink);
  font-size: 20px;
  font-weight: 600;
  line-height: 26px;
  letter-spacing: -0.4px;
  white-space: nowrap;
}

.site-header .project-link > span:first-child {
  font-size: 16px;
  font-weight: 700;
  line-height: 20px;
  white-space: nowrap;
}

/* Localised CTA labels are longer than the original one-word controls.  Keep
   the label and arrow in a real flex row instead of relying on the former
   fixed arrow offset, so they cannot overlap at any page width. */
@media (min-width: 1521px) {
  .site-header__inner .social-links {
    /* Preserve the existing 16px gap after widening the project CTA. */
    right: 409px;
  }

  .site-header__inner .project-link {
    box-sizing: border-box;
    width: 278px;
    min-width: 278px;
    padding: 2px 8px 2px 22px;
    justify-content: flex-start;
    gap: 16px;
  }

  .site-header__inner .project-link > span:first-child {
    min-width: 0;
  }

  .site-header__inner .project-link .project-link__arrow {
    width: 56.6px;
    height: 56.6px;
    margin-left: auto;
    flex: 0 0 56.6px;
  }
}

/* The same CTA is rendered inside the expanded menu. */
.site-menu__project {
  left: calc(var(--site-menu-close-left) - 296px);
  box-sizing: border-box;
  width: 278px;
  min-width: 278px;
  padding: 2px 8px 2px 22px;
  justify-content: flex-start;
  gap: 16px;
}

.site-menu__project > span:first-child {
  min-width: 0;
}

.site-menu__project .project-link__arrow {
  width: 56.6px;
  height: 56.6px;
  margin-left: auto;
  flex: 0 0 56.6px;
}

@media (max-width: 760px) {
  .site-menu__project {
    width: min(100%, 328px);
    min-width: 0;
    padding-left: 20px;
    gap: 12px;
  }

  .site-menu__project > span:first-child {
    font-size: 14px;
  }
}

/* Below the wide desktop footer, service links become normal-flow rows.  Their
   translated labels can therefore wrap without occupying a neighbour's line. */
@media (min-width: 761px) and (max-width: 1819px) {
  .site-footer__service-column,
  .site-footer__service-column--left,
  .site-footer__service-column--right {
    display: flex;
    height: auto;
    flex-direction: column;
    gap: 10px;
    font-size: clamp(15px, 1.3vw, 18px);
    line-height: 1.35;
  }

  .site-footer__service-column li,
  .site-footer__service-column--left li:nth-child(n),
  .site-footer__service-column--right li:nth-child(n) {
    position: relative;
    top: auto;
    left: auto;
    max-width: 100%;
    overflow-wrap: anywhere;
    white-space: normal;
  }

  .site-footer__service-column .site-footer__service-title {
    margin-top: 12px;
  }

  .site-footer__service-column .site-footer__service-title:first-child {
    margin-top: 0;
  }
}

/* Long German service names remain inside the desktop footer columns. */
@media (min-width: 1820px) {
  .site-footer__service-column {
    font-size: 18px;
  }

  .site-footer__service-column li {
    max-width: calc(100% - 14px);
    white-space: nowrap;
  }
}
