/* Universal CUTLINE header and fullscreen navigation. */
:root{
  --cutline-bg:#fafafc;
  --cutline-ink:#0b0b10;
  --cutline-muted:rgba(11,11,16,.48);
  --cutline-line:rgba(11,11,16,.14);
  --cutline-accent:#bc6c25;
}

html.dark{
  --cutline-bg:#0b0b10;
  --cutline-ink:#f4f5fa;
  --cutline-muted:rgba(244,245,250,.48);
  --cutline-line:rgba(244,245,250,.16);
}

body.has-cutline-header > header{
  position:fixed !important;
  inset:0 0 auto !important;
  top:0 !important;
  width:100% !important;
  height:auto !important;
  margin:0 !important;
  z-index:2147483000 !important;
  isolation:auto !important;
  overflow:visible !important;
  color:var(--cutline-ink) !important;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Arial,sans-serif !important;
  opacity:1 !important;
  filter:none !important;
  transform:none !important;
  visibility:visible !important;
}

body.has-cutline-header.cutline-menu-open > header{
  z-index:2147483000 !important;
  opacity:1 !important;
  filter:none !important;
  transform:none !important;
  visibility:visible !important;
  pointer-events:auto !important;
}

body.has-cutline-header > header::before{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  z-index:-1 !important;
  border:0 !important;
  border-bottom:1px solid transparent !important;
  background:transparent !important;
  box-shadow:none !important;
  opacity:1 !important;
  transition:background-color .32s ease,border-color .32s ease,box-shadow .32s ease !important;
}

body.has-cutline-header > header::after{
  content:"" !important;
  position:absolute !important;
  right:clamp(18px,4.25vw,64px) !important;
  bottom:0 !important;
  left:clamp(18px,4.25vw,64px) !important;
  width:auto !important;
  height:1px !important;
  background:var(--cutline-accent) !important;
  opacity:0 !important;
  transform:scaleX(.16) !important;
  transform-origin:right center !important;
  transition:opacity .32s ease,transform .48s cubic-bezier(.22,.72,.2,1) !important;
}

body.has-cutline-header > header:is(.is-cutline-scrolled,.is-cutline-menu-open)::before{
  border-bottom-color:var(--cutline-line) !important;
  /* Было 92% непрозрачности через color-mix — читалось как сплошная
     плашка (и в этом движке color-mix с transparent давал не то, что
     ожидалось). Теперь явный rgba: лёгкий тон + сильный блюр, контент
     под шапкой просвечивает и размывается, а не перекрывается почти
     сплошным цветом. */
  background:rgba(250,250,252,.38) !important;
  box-shadow:0 12px 34px rgba(11,11,16,.055) !important;
  -webkit-backdrop-filter:blur(22px) saturate(1.4) !important;
  backdrop-filter:blur(22px) saturate(1.4) !important;
}

html.dark body.has-cutline-header > header:is(.is-cutline-scrolled,.is-cutline-menu-open)::before{
  background:rgba(11,11,16,.42) !important;
}

body.has-cutline-header > header:is(.is-cutline-scrolled,.is-cutline-menu-open)::after{
  opacity:.72 !important;
  transform:scaleX(1) !important;
}

body.has-cutline-header > header :is(.container,.case-shell){
  width:100% !important;
  max-width:1384px !important;
  margin-inline:auto !important;
  padding-inline:clamp(24px,4.25vw,64px) !important;
}

body.has-cutline-header > header :is(.nav,.case-header__inner,.lgNav){
  position:relative !important;
  width:min(100%,1384px) !important;
  max-width:1384px !important;
  min-height:88px !important;
  margin:0 auto !important;
  padding:8px clamp(24px,4.25vw,64px) !important;
  display:flex !important;
  align-items:center !important;
  gap:18px !important;
  overflow:visible !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  -webkit-backdrop-filter:none !important;
  backdrop-filter:none !important;
}

body.has-cutline-header > header .container > .nav{
  padding-inline:0 !important;
}

body.has-cutline-header > header :is(.nav,.case-header__inner,.lgNav)::before,
body.has-cutline-header > header :is(.nav,.case-header__inner,.lgNav)::after{
  content:none !important;
  display:none !important;
}

body.has-cutline-header > header :is(.backBtn,.servicesBack,.links,.servicesNav,#headerContactBtn,.servicesHeaderCta,.case-back,.case-nav,.case-header__cta,.lgBack,.lgLinks){
  display:none !important;
}

body.has-cutline-header > header :is(.brand,.case-logo,.lgBrand){
  position:relative !important;
  min-width:0 !important;
  margin:0 !important;
  padding:0 !important;
  display:flex !important;
  align-items:center !important;
  flex:0 0 auto !important;
  color:inherit !important;
  text-decoration:none !important;
  transform:none !important;
}

body.has-cutline-header > header :is(.brandCopy,.case-logo__copy,.lgBrandCopy){
  min-height:30px !important;
  margin-left:12px !important;
  padding-left:12px !important;
  display:grid !important;
  align-content:center !important;
  gap:2px !important;
  border-left:1px solid var(--cutline-line) !important;
  color:var(--cutline-muted) !important;
}

body.has-cutline-header > header :is(.brandCopy,.case-logo__copy,.lgBrandCopy)::before{
  content:none !important;
  display:none !important;
}

body.has-cutline-header > header :is(.brandTitle,.case-logo__copy,.lgBrandTitle){
  color:inherit !important;
  font:600 9px/.96 -apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Arial,sans-serif !important;
  letter-spacing:.18em !important;
}

body.has-cutline-header > header :is(.brandTitle,.case-logo__copy,.lgBrandTitle) span{
  display:block !important;
}

body.has-cutline-header > header .case-logo__mark{
  width:108px !important;
  height:70px !important;
  background-position:center !important;
  background-size:contain !important;
  background-repeat:no-repeat !important;
  font-size:0 !important;
  transform:translateY(1px) scale(1.92) !important;
  transform-origin:center !important;
}

body.has-cutline-header > header .lgMark{
  width:82px !important;
  height:52px !important;
  margin:0 !important;
  transform:scale(1.5) !important;
  transform-origin:left center !important;
}

body.has-cutline-header > header .mark,
body.has-cutline-header[data-mode] > header .mark{
  --nav-logo-scale:1.92 !important;
  width:108px !important;
  height:70px !important;
  transform:translateY(1px) scale(var(--nav-logo-scale)) !important;
}

body.has-cutline-header > header :is(.actions,.case-header__actions,.lgActions){
  min-width:0 !important;
  margin:0 0 0 auto !important;
  padding:0 !important;
  display:flex !important;
  align-items:center !important;
  gap:12px !important;
}

body.has-cutline-header > header :is(.langSwitch,.case-lang-switch,.lgLang){
  position:relative !important;
  margin:0 !important;
  padding:0 !important;
  display:flex !important;
  align-items:center !important;
  gap:0 !important;
  overflow:visible !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
}

body.has-cutline-header > header :is(.langBtn,.case-lang){
  position:relative !important;
  min-width:0 !important;
  height:auto !important;
  margin:0 !important;
  padding:5px 7px !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  color:var(--cutline-muted) !important;
  font:650 10px/1 -apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Arial,sans-serif !important;
  letter-spacing:.08em !important;
  text-decoration:none !important;
  box-shadow:none !important;
}

body.has-cutline-header > header :is(.langBtn,.case-lang).active,
body.has-cutline-header > header :is(.langBtn,.case-lang).is-active,
body.has-cutline-header > header :is(.langBtn,.case-lang)[aria-current="page"]{
  color:var(--cutline-ink) !important;
}

body.has-cutline-header > header :is(.langSwitch,.case-lang-switch,.lgLang) > :is(.langBtn,.case-lang) + :is(.langBtn,.case-lang)::before{
  content:"/" !important;
  position:absolute !important;
  left:-2px !important;
  color:var(--cutline-muted) !important;
  font-weight:400 !important;
}

body.has-cutline-header > header :is(.themeToggle,#lgTheme,.cutlineThemeButton){
  position:relative !important;
  width:34px !important;
  height:34px !important;
  min-width:34px !important;
  margin:0 !important;
  padding:0 !important;
  display:grid !important;
  place-items:center !important;
  border:0 !important;
  border-radius:50% !important;
  background:transparent !important;
  color:var(--cutline-ink) !important;
  box-shadow:none !important;
  cursor:pointer !important;
}

body.has-cutline-header > header :is(.themeToggle,#lgTheme,.cutlineThemeButton):hover{
  background:rgba(175, 128, 75,.1) !important;
  transform:rotate(12deg) !important;
}

.cutlineThemeButton .themeIconSlot{
  position:relative;
  width:18px;
  height:18px;
  display:grid;
  place-items:center;
}

.cutlineThemeButton .themeIcon{
  position:absolute;
  inset:0;
  width:18px;
  height:18px;
  transition:opacity .28s ease,transform .42s cubic-bezier(.18,.9,.2,1),filter .28s ease;
}

.cutlineThemeButton .themeIconMoon{
  opacity:1;
  transform:rotate(0) scale(1);
}

.cutlineThemeButton .themeIconMoon path{fill:currentColor}

.cutlineThemeButton .themeIconSun{
  opacity:0;
  transform:rotate(-42deg) scale(.58);
}

.cutlineThemeButton .themeIconSun *{
  fill:none;
  stroke:currentColor;
  stroke-width:1.9;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.cutlineThemeButton.is-dark .themeIconMoon{
  opacity:0;
  transform:rotate(36deg) scale(.62);
}

.cutlineThemeButton.is-dark .themeIconSun{
  opacity:1;
  transform:rotate(0) scale(1);
}

.cutlineMenuButton{
  position:relative;
  width:44px;
  height:44px;
  min-width:44px;
  margin:0;
  padding:0;
  display:grid;
  place-items:center;
  border:0;
  border-radius:50%;
  background:transparent;
  color:var(--cutline-ink);
  box-shadow:none;
  cursor:pointer;
}

.cutlineMenuButton__label{
  position:absolute;
  width:1px;
  height:1px;
  overflow:hidden;
  clip:rect(0 0 0 0);
}

.cutlineMenuButton__icon{
  position:relative;
  width:25px;
  height:15px;
  display:block;
}

.cutlineMenuButton__icon span{
  position:absolute;
  right:0;
  width:100%;
  height:1px;
  background:currentColor;
  transform-origin:center;
  transition:top .28s ease,width .28s ease,transform .36s cubic-bezier(.22,.72,.2,1);
}

.cutlineMenuButton__icon span:first-child{top:3px}
.cutlineMenuButton__icon span:last-child{top:11px;width:68%}
.cutlineMenuButton:hover .cutlineMenuButton__icon span:last-child{width:100%}
.cutlineMenuButton[aria-expanded="true"] .cutlineMenuButton__icon span:first-child{top:7px;transform:rotate(45deg)}
.cutlineMenuButton[aria-expanded="true"] .cutlineMenuButton__icon span:last-child{top:7px;width:100%;transform:rotate(-45deg)}

body.cutline-menu-open{
  overflow:hidden !important;
}

body.has-cutline-header:is([data-page-mode="author"],[data-mode="author"]) main#top{
  padding-top:112px !important;
}

.cutlineMenu{
  position:fixed;
  inset:0;
  z-index:2147482000;
  overflow:hidden;
  visibility:hidden;
  background:var(--cutline-bg);
  color:var(--cutline-ink);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Arial,sans-serif;
  opacity:0;
  clip-path:inset(0 0 100% 0);
  transition:clip-path .68s cubic-bezier(.77,0,.18,1),opacity .24s ease,visibility 0s linear .68s;
}

.cutlineMenu.is-open{
  visibility:visible;
  opacity:1;
  clip-path:inset(0);
  transition:clip-path .68s cubic-bezier(.77,0,.18,1),opacity .24s ease,visibility 0s;
}

.cutlineMenu__frame{
  width:min(100%,1384px);
  height:100dvh;
  min-height:620px;
  margin:0 auto;
  padding:clamp(118px,13vh,150px) clamp(24px,4.25vw,64px) clamp(32px,5vh,58px);
  display:grid;
  grid-template-rows:minmax(0,1fr) auto;
  gap:28px;
}

.cutlineMenu__body{
  width:100%;
  max-width:1010px;
  height:auto;
  min-height:0;
  margin:auto;
  display:grid;
  grid-template-columns:minmax(0,.94fr) minmax(410px,1.06fr);
  gap:clamp(72px,8vw,124px);
  align-items:center;
  align-self:center;
}

.cutlineMenu__primary{
  min-height:0;
  display:block;
}

.cutlineMenu__links{
  display:grid;
  gap:clamp(22px,3.2vh,34px);
  border:0 !important;
}

.cutlineMenu__link{
  min-height:clamp(72px,8.5vh,92px);
  display:grid;
  grid-template-columns:42px minmax(0,1fr);
  align-items:center;
  gap:12px;
  border:0 !important;
  color:inherit;
  text-decoration:none;
}

.cutlineMenu__index{
  align-self:start;
  padding-top:20px;
  color:var(--cutline-muted);
  font-size:10px;
  font-weight:650;
  letter-spacing:.08em;
  transition:color .25s ease;
}

.cutlineMenu__name{
  font-size:clamp(42px,5vw,76px);
  line-height:.94;
  font-weight:560;
  letter-spacing:-.065em;
  transition:color .28s ease,transform .4s cubic-bezier(.22,.72,.2,1);
}

.cutlineMenu__link:hover :is(.cutlineMenu__index,.cutlineMenu__name),
.cutlineMenu__link:focus-visible :is(.cutlineMenu__index,.cutlineMenu__name){
  color:var(--cutline-accent);
}

.cutlineMenu :is(a,button):focus-visible{
  outline:1px solid var(--cutline-accent) !important;
  outline-offset:4px !important;
  box-shadow:none !important;
}

.cutlineMenu__link:focus-visible{
  outline:0 !important;
}

.cutlineMenu__link:hover .cutlineMenu__name{
  transform:translateX(10px);
}

.cutlineMenu__contact{
  display:flex;
  align-items:center;
  gap:20px;
  padding-top:36px;
}

.cutlineMenu__discuss{
  width:max-content !important;
  min-width:0 !important;
  min-height:42px !important;
  height:42px !important;
  padding:0 23px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  border:1px solid var(--cutline-ink);
  border-radius:999px;
  background:var(--cutline-ink);
  color:var(--cutline-bg);
  font:600 13px/1 -apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Arial,sans-serif !important;
  text-align:center !important;
  cursor:pointer;
  transition:background-color .25s ease,border-color .25s ease,color .25s ease,transform .25s ease;
}

.cutlineMenu__discuss:hover{
  border-color:var(--cutline-accent);
  background:var(--cutline-accent);
  color:#fff;
  transform:translateY(-2px);
}

.cutlineMenu__email{
  color:var(--cutline-muted);
  font-size:13px;
  text-decoration:none;
  transition:color .25s ease;
}

.cutlineMenu__email:hover{color:var(--cutline-accent)}

.cutlineMenu__featured{
  min-width:0;
  display:flex;
  flex-direction:column;
  justify-content:center;
}

.cutlineMenu__featuredTitle{
  margin:0 0 20px;
  color:var(--cutline-muted);
  font:600 13px/1 -apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Arial,sans-serif;
  letter-spacing:-.01em;
}

.cutlineMenu__works{
  border-top:1px solid var(--cutline-line);
}

.cutlineMenu__work{
  min-height:86px;
  display:grid;
  grid-template-columns:58px minmax(0,1fr) 24px;
  align-items:center;
  gap:16px;
  border-bottom:1px solid var(--cutline-line);
  color:inherit;
  text-decoration:none;
}

.cutlineMenu__workImage{
  width:58px;
  height:58px;
  display:block;
  border-radius:10px;
  object-fit:cover;
  filter:saturate(.88);
  transition:transform .35s ease,filter .35s ease;
}

.cutlineMenu__workCopy{
  min-width:0;
  display:grid;
  gap:6px;
}

.cutlineMenu__workCopy strong{
  overflow:hidden;
  color:inherit;
  font-size:16px;
  line-height:1.1;
  font-weight:600;
  letter-spacing:-.025em;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.cutlineMenu__workCopy small{
  overflow:hidden;
  color:var(--cutline-muted);
  font-size:11px;
  line-height:1.25;
  font-weight:450;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.cutlineMenu__workArrow{
  color:var(--cutline-muted);
  font-size:17px;
  transition:color .25s ease,transform .3s ease;
}

.cutlineMenu__work:hover .cutlineMenu__workImage{
  filter:saturate(1.05);
  transform:scale(1.04);
}

.cutlineMenu__work:hover .cutlineMenu__workArrow{
  color:var(--cutline-accent);
  transform:translate(3px,-3px);
}

.cutlineMenu__footer{
  width:100%;
  max-width:1010px;
  min-height:38px;
  margin:0 auto;
  padding-top:20px;
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:24px;
  border-top:1px solid var(--cutline-line);
  color:var(--cutline-muted);
  font-size:10px;
  line-height:1;
  font-weight:560;
  letter-spacing:.07em;
}

.cutlineMenu__socials{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:30px;
}

.cutlineMenu__socials a{
  color:inherit;
  text-decoration:none;
  transition:color .25s ease;
}

.cutlineMenu__socials a:hover,
.cutlineMenu__socials a:focus-visible{
  color:var(--cutline-accent);
}

@media (max-width:900px){
  /* Раньше отступ под фикс-шапку на телефоне был только у author-режима —
     у brand-страниц геро прижималось прямо под шапку и сливалось с ней. */
  body.has-cutline-header:is([data-page-mode="author"],[data-mode="author"],[data-page-mode="brand"],[data-mode="brand"]) main#top{
    padding-top:86px !important;
  }

  body.has-cutline-header > header :is(.nav,.case-header__inner,.lgNav){
    min-height:72px !important;
    padding:5px 18px !important;
  }

  body.has-cutline-header > header .container{
    padding-inline:18px !important;
  }

  body.has-cutline-header > header .container > .nav{
    padding-inline:0 !important;
  }

  body.has-cutline-header > header .mark,
  body.has-cutline-header[data-mode] > header .mark{
    --nav-logo-scale:1.95 !important;
    width:76px !important;
    height:49px !important;
  }

  body.has-cutline-header > header .lgMark{
    width:62px !important;
    height:42px !important;
  }

  body.has-cutline-header > header .case-logo__mark{
    width:76px !important;
    height:49px !important;
    font-size:0 !important;
    transform:translateY(1px) scale(1.95) !important;
  }

  body.has-cutline-header > header :is(.actions,.case-header__actions,.lgActions){
    gap:6px !important;
  }

  body.has-cutline-header > header :is(.themeToggle,#lgTheme,.cutlineThemeButton){
    width:30px !important;
    height:30px !important;
    min-width:30px !important;
  }

  .cutlineMenuButton{
    width:40px;
    height:40px;
    min-width:40px;
  }

  .cutlineMenu{
    overflow-y:auto;
    overscroll-behavior:contain;
  }

  .cutlineMenu__frame{
    height:auto;
    min-height:100dvh;
    padding:92px 18px 28px;
    grid-template-rows:auto auto;
    gap:38px;
  }

  .cutlineMenu__body{
    display:block;
  }

  .cutlineMenu__primary{
    display:block;
  }

  .cutlineMenu__link{
    min-height:72px;
    grid-template-columns:32px minmax(0,1fr);
    gap:6px;
  }

  .cutlineMenu__links{
    gap:20px;
  }

  .cutlineMenu__index{
    padding-top:16px;
    font-size:9px;
  }

  .cutlineMenu__name{
    font-size:clamp(34px,10vw,48px);
  }

  .cutlineMenu__contact{
    padding-top:22px;
  }

  .cutlineMenu__featured{
    margin-top:44px;
  }

  .cutlineMenu__footer{
    align-items:flex-start;
    flex-direction:column;
    gap:16px;
  }

  .cutlineMenu__socials{
    justify-content:flex-start;
    flex-wrap:wrap;
    gap:18px 26px;
  }
}

@media (max-width:760px){
  body.has-cutline-header > header :is(.brandCopy,.case-logo__copy,.lgBrandCopy){
    min-height:0 !important;
    margin-left:9px !important;
    padding-left:9px !important;
  }

  body.has-cutline-header > header :is(.brandTitle,.case-logo__copy,.lgBrandTitle){
    font-size:7.5px !important;
    letter-spacing:.14em !important;
    white-space:nowrap !important;
  }

  body.has-cutline-header > header :is(.brand,.case-logo,.lgBrand){
    width:auto !important;
    max-width:none !important;
    flex:0 0 auto !important;
  }

  body.has-cutline-header > header :is(.actions,.case-header__actions,.lgActions){
    position:absolute !important;
    top:50% !important;
    right:12px !important;
    flex:0 0 auto !important;
    gap:2px !important;
    transform:translateY(-50%) !important;
  }
}

@media (max-width:430px){
  body.has-cutline-header > header :is(.brandTitle,.case-logo__copy,.lgBrandTitle){
    font-size:6.8px !important;
  }

  body.has-cutline-header > header :is(.langBtn,.case-lang){
    padding-inline:5px !important;
    font-size:9px !important;
  }

  .cutlineMenu__contact{
    align-items:flex-start;
    flex-direction:column;
    gap:14px;
  }

  .cutlineMenu__discuss{
    min-height:42px !important;
    padding-inline:22px !important;
  }

  .cutlineMenu__featured{
    margin-top:38px;
  }

  .cutlineMenu__featuredTitle{
    margin-bottom:14px;
  }

  .cutlineMenu__work{
    min-height:76px;
    grid-template-columns:50px minmax(0,1fr) 20px;
    gap:12px;
  }

  .cutlineMenu__workImage{
    width:50px;
    height:50px;
    border-radius:8px;
  }

  .cutlineMenu__workCopy strong{font-size:14px}
  .cutlineMenu__workCopy small{font-size:10px}
}

@media (prefers-reduced-motion:reduce){
  .cutlineMenu,
  .cutlineMenuButton__icon span,
  .cutlineMenu__name,
  .cutlineMenu__workImage,
  .cutlineMenu__workArrow,
  body.has-cutline-header > header::before,
  body.has-cutline-header > header::after{
    transition:none !important;
  }
}
