/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */

/* Document
   ========================================================================== */

/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */

html {
  line-height: 1.15; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
}

/* Sections
   ========================================================================== */

/**
 * Remove the margin in all browsers.
 */

body {
  margin: 0;
}

/**
 * Render the `main` element consistently in IE.
 */

main {
  display: block;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */

h1 {
  font-size: 2em;
  margin: 0.67em 0;
}

/* Grouping content
   ========================================================================== */

/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */

hr {
  box-sizing: content-box; /* 1 */
  height: 0; /* 1 */
  overflow: visible; /* 2 */
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */

pre {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
}

/* Text-level semantics
   ========================================================================== */

/**
 * Remove the gray background on active links in IE 10.
 */

a {
  background-color: transparent;
}

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */

abbr[title] {
  border-bottom: none; /* 1 */
  text-decoration: underline; /* 2 */
  text-decoration: underline dotted; /* 2 */
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */

b,
strong {
  font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */

code,
kbd,
samp {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
}

/**
 * Add the correct font size in all browsers.
 */

small {
  font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/* Embedded content
   ========================================================================== */

/**
 * Remove the border on images inside links in IE 10.
 */

img {
  border-style: none;
}

/* Forms
   ========================================================================== */

/**
 * 1. Change the font styles in all browsers.
 * 2. Remove the margin in Firefox and Safari.
 */

button,
input,
optgroup,
select,
textarea {
  font-family: inherit; /* 1 */
  font-size: 100%; /* 1 */
  line-height: 1.15; /* 1 */
  margin: 0; /* 2 */
}

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */

button,
input { /* 1 */
  overflow: visible;
}

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */

button,
select { /* 1 */
  text-transform: none;
}

/**
 * Correct the inability to style clickable types in iOS and Safari.
 */

button,
[type="button"],
[type="reset"],
[type="submit"] {
  -webkit-appearance: button;
}

/**
 * Remove the inner border and padding in Firefox.
 */

button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

/**
 * Restore the focus styles unset by the previous rule.
 */

button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
  outline: 1px dotted ButtonText;
}

/**
 * Correct the padding in Firefox.
 */

fieldset {
  padding: 0.35em 0.75em 0.625em;
}

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *    `fieldset` elements in all browsers.
 */

legend {
  box-sizing: border-box; /* 1 */
  color: inherit; /* 2 */
  display: table; /* 1 */
  max-width: 100%; /* 1 */
  padding: 0; /* 3 */
  white-space: normal; /* 1 */
}

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */

progress {
  vertical-align: baseline;
}

/**
 * Remove the default vertical scrollbar in IE 10+.
 */

textarea {
  overflow: auto;
}

/**
 * 1. Add the correct box sizing in IE 10.
 * 2. Remove the padding in IE 10.
 */

[type="checkbox"],
[type="radio"] {
  box-sizing: border-box; /* 1 */
  padding: 0; /* 2 */
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */

[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
  height: auto;
}

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */

[type="search"] {
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */

[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */

::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}

/* Interactive
   ========================================================================== */

/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */

details {
  display: block;
}

/*
 * Add the correct display in all browsers.
 */

summary {
  display: list-item;
}

/* Misc
   ========================================================================== */

/**
 * Add the correct display in IE 10+.
 */

template {
  display: none;
}

/**
 * Add the correct display in IE 10.
 */

[hidden] {
  display: none;
}

@font-face{
    font-display:swap;
    font-family:"Europe";
    font-style:normal;
    font-weight:400;
    src:url(.././assets/fonts/Europe-Regular.de66d25a.woff2) format("woff2")
}
:root{
    --main-font-family: "Europe", sans-serif;
    --font-main: 'Jost', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
    --header-height: 60px;
    --neutral-0: #fff;
    --neutral-1: #d8e0e5;
    --neutral-2: #1a1a1a;
    --neutral-3: #28363f;
    --neutral-4: #7c858b;
    --neutral-5: #606060;
    --neutral-6: #949494;
    --neutral-7: #a0a0a0
}
@media screen and (min-width: 1024px){
    :root{
        --header-height: 68px
    }
}
html,body{
    height:100%
}
html{
/*    min-width:360px;*/
    background-color:var(--neutral-0);
    color:var(--neutral-2);
    font-family:var(--main-font-family);
    font-size:16px;
    font-weight:400;
    line-height:normal
}
@media screen and (min-width: 1024px){
    html{
        font-size:12px
    }
}
@media screen and (min-width: 1280px){
    html{
        font-size:14px
    }
}
@media screen and (min-width: 1440px){
    html{
        font-size:16px
    }
}
body{
    min-width:375px;
    min-height:100%;
    margin:auto
}
body._modal-opened{
    overflow:hidden
}
*,::before,::after{
    box-sizing:border-box;
    padding:0;
    border:0;
    margin:0
}
h1,h2,h3,h4,h5,h6,p{
    margin:0;
    font-weight:400
}
ul,ol{
    margin:0;
    list-style:none
}
a{
    color:inherit;
    text-decoration:none
}
fieldset{
    padding:0
}
mark{
    background:rgba(0,0,0,0)
}
mark.mark{
    color:var(--accent-6)
}
img{
    display:block;
    width:auto;
    height:auto
}
section{
    margin:60px auto
}
@media screen and (min-width: 1024px){
    section{
        margin:6.75rem auto
    }
}
.main{
    overflow:hidden
}
.container{
    --x-padding: 10px;
    width:100%;
    max-width:1440px;
    padding-right:var(--x-padding);
    padding-left:var(--x-padding);
    margin:0 auto
}
@media screen and (min-width: 768px){
    .container{
        --x-padding: 20px
    }
}
@media screen and (min-width: 1440px){
    .container{
        --x-padding: 44px
    }
}
._p._p1{
    font-size:24px;
    line-height:34px
}
@media screen and (min-width: 1024px){
    ._p._p1{
        font-size:2.1875rem;
        line-height:1.25
    }
}
._p._p2{
    font-size:14px;
    line-height:26px
}
@media screen and (min-width: 1024px){
    ._p._p2{
        font-size:16px;
        line-height:2
    }
}
._p._p3{
    font-size:12px;
    line-height:22px
}
@media screen and (min-width: 1024px){
    ._p._p3{
        font-size:14px
    }
}
._p._p4{
    font-size:12px;
    line-height:32px
}
._h2{
    font-size:28px;
    line-height:44px
}
@media screen and (min-width: 1024px){
    ._h2{
        font-size:35px;
        line-height:1.25
    }
}
._title{
    text-transform:uppercase
}
.btn{
    display:inline-flex;
    height:60px;
    align-items:center;
    justify-content:center;
    padding:0 30px;
    border-radius:55px;
    background-color:var(--accent-4);
    color:#f8f8f8;
    cursor:pointer;
    font-size:20px;
    font-weight:500;
    text-align:center;
    transition:background-color .3s
}
.btn:hover{
    background-color:var(--accent-5)
}
.spinner{
    width:24px;
    height:24px;
    animation:rotate 2s linear infinite
}
.spinner .path{
    animation:dash 1.5s ease-in-out infinite;
    stroke-linecap:round
}
.input{
    width:100%;
    height:50px;
    padding:0 20px;
    border-radius:var(--base-border-radius);
    background:var(--neutral-11);
    color:var(--neutral-10);
    font-size:20px;
    font-weight:400
}
.input._has-error{
    outline:1px solid var(--accent-4)
}
.input:focus{
    outline:1px solid var(--accent-1)
}
.input::-moz-placeholder{
    color:var(--neutral-10)
}
.input::placeholder{
    color:var(--neutral-10)
}
.input:-webkit-autofill,.input:-webkit-autofill:hover,.input:-webkit-autofill:focus{
    background-color:var(--neutral-11);
    -webkit-box-shadow:0 0 0 1000px var(--neutral-11) inset !important;
    -webkit-text-fill-color:var(--neutral-10);
    -webkit-transition:background-color 5000s ease-in-out 0s;
    transition:background-color 5000s ease-in-out 0s
}
.error{
    display:block;
    margin-top:8px;
    color:var(--accent-4)
}
.link{
    color:var(--neutral-7)
}
.link:hover,.link:active,.link._active{
    color:var(--neutral-0)
}
@keyframes scale-out{
    from{
        scale:1.25
    }
    to{
        scale:1
    }
}
@keyframes fade-in{
    from{
        opacity:0
    }
    to{
        opacity:1
    }
}
@keyframes fade-in-top{
    from{
        opacity:0;
        transform:translate3d(0, -100%, 0)
    }
    to{
        opacity:1;
        transform:translate3d(0, 0, 0)
    }
}
@keyframes fade-in-right{
    from{
        opacity:0;
        transform:translate3d(100%, 0, 0)
    }
    to{
        opacity:1;
        transform:translate3d(0, 0, 0)
    }
}
@keyframes fade-in-bottom{
    from{
        opacity:0;
        transform:translate3d(0, 100%, 0)
    }
    to{
        opacity:1;
        transform:translate3d(0, 0, 0)
    }
}
@keyframes fade-in-left{
    from{
        opacity:0;
        transform:translate3d(-100%, 0, 0)
    }
    to{
        opacity:1;
        transform:translate3d(0, 0, 0)
    }
}
@media screen and (min-width: 1024px){
    .animated{
        animation-fill-mode:forwards
    }
    .fade-in{
        opacity:0
    }
    .fade-in.animated{
        animation-name:fade-in
    }
    .fade-in-right{
        opacity:0;
        transform:translate3d(100%, 0, 0)
    }
    .fade-in-right.animated{
        animation-name:fade-in-right
    }
    .fade-in-left{
        opacity:0;
        transform:translate3d(-100%, 0, 0)
    }
    .fade-in-left.animated{
        animation-name:fade-in-left
    }
    .scale-out{
        scale:1.25
    }
    .scale-out.animated{
        animation-name:scale-out
    }
}
@media(pointer: none),(pointer: coarse){
    [class*=scale-],[class*=fade-]{
        opacity:1;
        scale:1;
        transform:none
    }
}
.header{
    position:fixed;
    z-index:9;
    top:0;
    left:0;
    width:100%;
    height:var(--header-height);
    border-bottom:1px solid rgba(255,255,255,.2);
    background-color:rgba(0,0,0,0);
    transition:background-color .3s
}
@media screen and (min-width: 1024px){
    .header{
        border-bottom:0
    }
}
.header._fixed{
    background-color:rgba(0,0,0,.85)
}
.header__content{
    display:flex;
    height:var(--header-height);
    align-items:center;
    justify-content:space-between;
    color:var(--neutral-7);
    gap:0.875rem
}
.header__logo{
    display:block;
    width:10.625rem;
    min-width:10.625rem;
    height:auto
}
@media screen and (min-width: 1024px){
    .header__logo{
        width:15.375rem;
        min-width:15.375rem
    }
}
.header__logo img{
    max-width:100%
}
.nav{
    position:fixed;
    z-index:-1;
    top:0;
    bottom:0;
    left:0;
    display:flex;
    width:100%;
    height:100%;
    flex-direction:column;
    align-items:center;
    padding-top:calc(var(--header-height) + 26px);
    background:var(--neutral-2);
    font-size:14px;
    line-height:40px;
    opacity:0;
    text-align:center;
    transform:translateX(-100%);
    transition:opacity .3s
}
@media screen and (min-width: 1024px){
    .nav{
        position:static;
        z-index:1;
        height:auto;
        flex-direction:row;
        justify-content:center;
        padding-top:0;
        background:rgba(0,0,0,0);
        font-size:12px;
        gap:1rem;
        line-height:32px;
        opacity:1;
        text-align:left;
        transform:none;
        white-space: nowrap;
    }
}
.nav._opened{
    opacity:1;
    transform:translateX(0)
}
.nav::before{
    position:absolute;
    top:calc(var(--header-height) - 1px);
    left:0;
    width:100%;
    height:1px;
    background-color:rgba(255,255,255,.2);
    content:""
}
@media screen and (min-width: 1024px){
    .nav::before{
        content:none
    }
}
.language{
    position:relative;
    margin-left:auto
}
@media screen and (min-width: 1024px){
    .language{
        margin:0
    }
}
.language svg{
    width:10px;
    min-width:10px;
    height:6px
}
.language__btn{
    display:none
}
@media screen and (min-width: 1024px){
    .language__btn{
        display:flex;
        align-items:center;
        background:rgba(0,0,0,0);
        color:inherit;
        cursor:pointer;
        gap:8px;
        text-transform:inherit
    }
}
.language__content{
    display:none;
    gap:16px
}
@media screen and (min-width: 1024px){
    .language__content{
        position:absolute;
        z-index:1;
        top:100%;
        right:-50%;
        left:-50%;
        width:48px;
        flex-direction:column;
        padding:0 12px;
        margin:0 auto;
        background-color:var(--neutral-2);
        gap:0
    }
}
.language._showed .language__btn{
    color:var(--neutral-0)
}
.language._showed .language__content{
    display:flex
}
.page-en .language [href="/en"]{
    color:var(--neutral-0)
}
.page-ru .language [href="/ru"]{
    color:var(--neutral-0)
}
.socials{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    margin-top:24px;
    gap:30px 40px
}
@media screen and (min-width: 1024px){
    .socials{
        flex-wrap:initial;
        justify-content:normal;
        margin-top:0;
        margin-left:2.85vw;
        gap:1rem
    }
}
@media screen and (min-width: 1280px){
    .socials{
        margin-left:2.5vw;
    }
}
.socials__item{
    display:flex;
    align-items:center;
    justify-content:center;
    color:var(--neutral-7);
    gap:8px;
    white-space:nowrap
}
@media screen and (min-width: 1024px){
    .socials__item{
        flex-basis:auto;
        justify-content:normal
    }
}
.socials__item:last-child{
    flex-basis:100%
}
.socials__item svg{
    width:14px;
    height:14px
}
.open-menu{
    width:24px;
    height:24px;
    border:none;
    background:rgba(0,0,0,0);
    color:var(--neutral-0);
    cursor:pointer
}
.open-menu svg{
    width:100%;
    height:100%
}
@media screen and (min-width: 1024px){
    .open-menu{
        display:none
    }
}
.open-menu__close{
    display:none
}
.open-menu._opened .open-menu__open{
    display:none
}
.open-menu._opened .open-menu__close{
    display:block
}
.footer{
    text-align:center
}
.footer__icon{
    width:22px;
    height:22px;
    color:var(--neutral-2)
}
.footer__sub{
    flex-basis:100%;
    color:var(--neutral-2);
    font-size:16px;
    line-height:22px
}
.footer__contact{
    display:flex;
    align-items:center;
    gap:8px
}
.footer__link{
    display:grid;
    gap:12px 8px;
    justify-items:center
}
.footer__item{
    display:flex;
    max-width:-moz-max-content;
    max-width:max-content;
    flex-wrap:wrap;
    align-items:center;
    color:var(--neutral-5);
    place-content:start center;
    text-align:center
}
.footer__list{
    display:grid;
    justify-content:center;
    margin-top:2vh;
    grid-gap:20px 0;
    justify-items:center
}
@media screen and (min-width: 1024px){
    .footer__list{
        margin-top:2.75rem;
        grid-template-columns: 1fr 2fr 1fr;
        grid-gap: 6.25rem;
        max-width: 920px;
        grid-gap:6.25rem;
        margin-left: auto;
        margin-right: auto;
    }

    .footer__list_2 {
        grid-template-columns: 1fr 1fr 1fr; 
        max-width: 640px;

    }
}
.footer__pic{
    width:58px;
    height:85px;
    margin-bottom:30px
}
.footer__slogan{
    color:var(--neutral-5)
}
.footer__socials{
    display:grid;
    justify-content:center;
    margin-top:30px;
    grid-auto-flow:column;
    grid-gap:10px
}
@media screen and (min-width: 1024px){
    .footer__socials{
        display:none
    }
}
.footer__socials-item{
    display:flex;
    width:72px;
    height:72px;
    align-items:center;
    justify-content:center;
    border:1px solid #ababab;
    border-radius:50%
}
.footer__socials-item svg{
    width:16px;
    height:16px
}
.footer__top{
    padding-bottom:70px;
    border-bottom:1px dashed #7a8c98
}
.footer__bottom{
    padding:70px 0
}
.certificate{
    position:relative;
    order:1;
    padding:12px 1.5rem 3.375rem;
    border:1px solid #cbcbcb
}
@media screen and (min-width: 1024px){
    .certificate{
        order:0
    }
}
@media screen and (min-width: 540px){
    .certificate{
        width:16.25rem
    }
}
.certificate__img{
    display:flex;
    max-width:100%;
    padding:0 1.25rem;
    transition:transform .3s
}
.certificate__img img{
    max-width:100%;
    max-height:100%;
    -o-object-fit:contain;
    object-fit:contain
}
.certificate__zoom{
    width:14px;
    max-width:100%;
    height:17px;
    max-height:100%;
    background-color:color .3s
}
.certificate__link{
    position:absolute;
    z-index:1;
    top:0;
    left:0;
    width:100%;
    height:100%
}
.certificate__btn{
    position:absolute;
    z-index:2;
    right:1.5rem;
    bottom:1.5rem;
    display:flex;
    width:46px;
    height:46px;
    align-items:center;
    justify-content:center;
    border:1px solid #cbcbcb;
    border-radius:50%;
    background:rgba(0,0,0,0);
    cursor:pointer;
    transition:background-color .3s
}
.certificate__btn:hover{
    background:var(--neutral-2)
}
.certificate__btn:hover .certificate__zoom{
    color:var(--neutral-0)
}
.certificate:hover .certificate__img{
    transform:scale(0.9)
}
.modal{
    position:fixed;
    z-index:99;
    top:0;
    left:0;
    display:none;
    width:100%;
    height:100%;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    padding:10px;
    background-color:rgba(0,0,0,.8)
}
.modal__content{
    position:relative;
    z-index:1;
    padding:40px 30px;
    overflow-y:auto
}
.modal__close{
    position:absolute;
    top:10px;
    right:0;
    width:20px;
    height:20px;
    background:rgba(0,0,0,0);
    color:var(--neutral-0);
    cursor:pointer
}
.modal__close svg{
    width:100%;
    height:100%
}
.modal._show{
    display:flex
}
.modal._certificate img{
    max-width:100%;
    max-height:100%;
    margin:auto
}
@media screen and (min-width: 768px){
    .modal._certificate img{
        max-width:39rem
    }
}
.swiper._projects-swiper{
    width:100vw;
    height:100%;
    padding-right:var(--x-padding);
    padding-left:var(--x-padding);
    margin-left:calc(var(--x-padding)*-1)
}
@media screen and (min-width: 768px){
    .swiper._projects-swiper{
        width:100%;
        padding-right:0;
        padding-left:0;
        margin-left:0
    }
}
.swiper .swiper-slide{
    max-width:85vw
}
@media screen and (min-width: 768px){
    .swiper .swiper-slide{
        max-width:unset
    }
}
.swiper-pagination._projects-pagination{
    --swiper-pagination-top: -30px;
    --swiper-pagination-bottom: auto;
    --swiper-pagination-bullet-horizontal-gap: 6px;
    --swiper-pagination-bullet-size: 7px;
    --swiper-pagination-bullet-inactive-color: var(--neutral-5);
    --swiper-pagination-bullet-inactive-opacity: 1;
    --swiper-pagination-color: var(--neutral-0);
    text-align:right
}
@media screen and (min-width: 768px){
    .swiper-pagination._projects-pagination{
        position:static
    }
}
.swiper-pagination._projects-pagination .swiper-pagination-bullet{
    border:1px solid var(--neutral-5)
}
.swiper-pagination._projects-pagination .swiper-pagination-bullet-active{
    border-color:var(--neutral-5)
}
.swiper-pagination._projects-pagination.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{
    right:0;
    left:auto;
    transform:none
}
.s-1{
    position:relative;
    display:flex;
    overflow:hidden;
    min-height:100vh;
    min-height: 100dvh;
    flex-direction:column;
    align-items:center;
    justify-content:flex-end;
    padding:var(--header-height) 15px 2vh;
    margin:0;
    background-color:#14181c;
    text-align:center
}
@media screen and (min-width: 768px){
    .s-1{
        min-height:100vh;
        padding:var(--header-height) 15px 2vh;
        background-position:center;
        background-size:cover
    }
}
.s-1__img{
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:35vh;
    background-image:url(.././images/first-screen-bg.0bd37a2c.jpg);
    background-position:top;
    background-repeat:no-repeat;
    background-size:cover
}
@supports(background-image: url("@/images/first-screen-bg.jpg?as=webp")){
    .s-1__img{
        background-image:url(.././images/first-screen-bg.8677adaa.webp)
    }
}
@media screen and (min-width: 768px){
    .s-1__img{
        height:100%;
        background-position:center
    }
}
.s-1::before,.s-1::after{
    position:absolute;
    z-index:1;
    left:0;
    width:100%
}
.s-1::before{
    top:calc(35vh - 80px);
    height:82px;
    background:linear-gradient(0deg, #14181c 6.5%, rgba(20, 24, 28, 0) 100%);
    content:""
}
@media screen and (min-width: 768px){
    .s-1::before{
        content:unset
    }
}
.s-1::after{
    top:calc(35vh - 218px);
    bottom:auto;
    height:220px;
    background:linear-gradient(180deg, rgba(11, 16, 18, 0) 0%, rgba(16, 24, 27, 0.65) 45.9%, rgba(18, 27, 30, 0.8) 100%);
    content:""
}
@media screen and (min-width: 768px){
    .s-1::after{
        top:auto;
        bottom:0;
        height:60vh
    }
}
.s-1__logo{
    position:relative;
    z-index:2
}
.s-1__pic{
    position:relative;
    z-index:2;
    color:var(--neutral-0)
}
.s-1__pic._pic-1{
    width:280px;
    max-width:100%;
    max-height:36px
}
@media screen and (min-width: 768px){
    .s-1__pic._pic-1{
        width:54.625rem;
        max-height:6.75rem
    }
}
.s-1__pic._pic-2{
    position:relative;
    width:36px;
    height:52px;
    margin:30px auto 30px
}
@media screen and (min-width: 768px){
    .s-1__pic._pic-2{
        width:4.25rem;
        height:6.25rem;
        margin:54px auto 40px
    }
}
.s-1__pic._arrow{
    width:10px;
    height:6px;
    margin-top:34px;
    animation:bounce 1.5s ease infinite
}
.s-1__window{
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:100%
}
.s-1__window svg{
    width:100%;
    height:100%
}
.s-1__txt{
    position:relative;
    z-index:2;
    max-width:325px;
    color:var(--neutral-7)
}
@keyframes bounce{
    0%,20%,50%,80%,100%{
        transform:translateY(0)
    }
    40%{
        transform:translateY(-10px)
    }
    60%{
        transform:translateY(-6px)
    }
}
.s-2{
    position:relative
}
.s-2__main{
    position:relative;
    padding:300px 0 80px;
    border-bottom:1px dashed #cbcbcb
}
@media screen and (min-width: 1024px){
    .s-2__main{
        display:flex;
        min-height:30.5rem;
        align-items:center;
        padding:0 4.375rem;
        border:1px solid #cbcbcb
    }
}
.s-2__photo{
    position:absolute;
    top:0;
    left:0
}
@media screen and (min-width: 1024px){
    .s-2__photo{
        top:auto;
        bottom:0;
        display:flex;
        max-width:70%;
        max-height:100%
    }
}
.s-2__photo img{
    max-width:360px;
    max-height:100%;
    -o-object-fit:contain;
    object-fit:contain
}
@media screen and (min-width: 1024px){
    .s-2__photo img{
        max-width:100%
    }
}
.s-2__photo::before{
    position:absolute;
    bottom:-1px;
    left:0;
    width:100%;
    height:325px;
    background-image:linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, #fff 90%);
    content:""
}
@media screen and (min-width: 1024px){
    .s-2__photo::before{
        content:none
    }
}

.s-2__text._p._p1 {
    font-size: 1.5rem;
    margin-bottom: 2rem;
    line-height: 1.4;
}
.s-2__info{
    display:grid;
    justify-content:center;
    margin-top:20px
}
.s-2__name {
    font-weight: 600;
}
@media screen and (min-width: 1024px){
    .s-2__info{
        gap:0 3.125rem;
        grid-template-areas:"name sign" "post sign"
    }
}
@media screen and (min-width: 1024px){
    .s-2__name{
        align-self:end;
        grid-area:name
    }
}
.s-2__post{
    color:var(--neutral-5)
}
@media screen and (min-width: 1024px){
    .s-2__post{
        align-self:start;
        grid-area:post
    }
}
.s-2__sign{
    height:112px;
    margin-top:16px;
    background: url(../images/signature.cb4ea03d.png) center center no-repeat;
    display: block;
    width: 120px;
    background-size: contain;
}
@media screen and (min-width: 1024px){
    .s-2__sign{
        margin-top:0;
        grid-area:sign
    }
}
.s-2__sign img{
    max-width:100%;
    max-height:100%;
    -o-object-fit:contain;
    object-fit:contain
}
.s-2__content{
    position:relative;
    z-index:1;
    margin:110px auto 0
}
@media screen and (min-width: 1024px){
    .s-2__content{
        max-width:35.625rem;
        margin:0 0 0 auto
    }
}
.s-2__container{
    padding:0
}
@media screen and (min-width: 1024px){
    .s-2__container{
        padding:0 var(--x-padding)
    }
}


.header-btn {
  border: 1px solid var(--neutral-7);
  padding: 0px 10px;
}

.discuss-project {
  max-width: 600px;
  margin: 0 auto 5vh auto;
  padding: 30px;
  background: #f5f5f5;
  border-radius: 8px;
  text-align: center;
}

.discuss-project .webform-submission-form {
   max-width: 400px;
   margin: 0 auto;
}

.discuss-project .phone-block {
  margin: 30px 0;
}

.discuss-project .phone {
  display: block;
  font-size: 24px;
  color: #000;
  text-decoration: none;
  font-weight: bold;
  margin: 15px 0;
}

.discuss-project .form-block {
  text-align: center;
}

.discuss-project .contact-form {
  margin-top: 20px;
}

.discuss-project .form-group {
  margin-bottom: 15px;
}

.discuss-project label {
    padding: 0.4em 0;
    display: block;
}

.discuss-project input, .discuss-project textarea, .discuss-project select {
  width: 100%;
  padding: 10px;
  border: 1px solid #ddd;
  border-radius: 4px;
  box-sizing: border-box;
}

.form-type-webform-telephone .form-item {
    margin: 0;
}

.discuss-project .iti--allow-dropdown {
    width: 100%;
}

.discuss-project textarea {
  resize: vertical;
}

.discuss-project button {
  background: #007bff;
  color: white;
  padding: 12px 30px;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  font-size: 16px;
}

.discuss-project button:hover {
  background: #0056b3;
}

.discuss-project .webform-confirmation__message {
   margin: 1rem;
   font-size: 1.4em;
}





.header-contacts {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 30px;
  z-index: 2;/*
  position: absolute;
  top: 5rem;*/
  padding: 1.6rem 0 2.2rem;
}

.contact-group {
 display: flex;
 align-items: center;
 gap: 20px;
}

.phone {
 font-size: 14px;
 font-weight: normal;
 text-decoration: none;
 white-space: nowrap;
  color: var(--neutral-7);
}

.messengers {
 display: flex;
 gap: 10px;
}

.messenger {
 display: flex;
 align-items: center;
 justify-content: center;
 width: 36px;
 height: 36px;
 border-radius: 50%;
 transition: 0.3s;
}

.messenger {
  transition: filter 0.3s ease; /* Плавный переход цвета */
}

.messenger:hover  {
  filter: contrast(10);
}

.messenger img {
 width: 20px;
 height: 20px;
}

.header .nav .messenger {
  width: auto;
  height: auto;
}

.header .nav .messenger img {
   width: 14px;
 height: 14px;
}

.discuss-btn {
     display: inline-block;
    padding: 10px 16px;
    color: white;
    text-decoration: none;
    border-radius: 4px;
    transition: 0.3s;
    white-space: nowrap;
    border: 1px solid var(--neutral-7);
    font-size: 16px;
        z-index: 2;
    position: relative;
    margin-top: 2vh;
}

@media (max-width: 768px) {
  .discuss-btn, .callback-trigger  {
    font-size: 14px;
    padding: 8px 12px;
  }
}

.discuss-btn:hover {
 background: var(--neutral-7);
}

/* Мобильная версия */
@media (max-width: 768px) {
 .header-contacts {
   flex-direction: row;
   align-items: center;
  gap: 10px;
  top: 5rem;
 }
 
 .contact-group {
   flex-direction: column;
   align-items: center;
   text-align: center;
   gap: 4px;
 }
 
 .phone {
   margin-bottom: 0;
 }
 
 .messengers {
   justify-content: center;
 }
}
@media (max-width: 768px) {
  .header-contacts {
   flex-direction: column;
  }
}

.field--type-text-with-summary {
  max-width: 600px;
  margin: 0 auto;
}

.main-page {
  margin-top: 6rem;
}

.field--type-text-with-summary p {
  margin-bottom: 1rem;
}

.path-node .header {
  background-color: rgba(0, 0, 0, .85);
}

.callback-trigger {
  display: inline-block;
    padding: 10px 16px;
    color: white;
    text-decoration: none;
    border-radius: 4px;
    transition: 0.3s;
    white-space: nowrap;
    border: 1px solid var(--neutral-7);
    position: relative;
    z-index: 80;
}

section#team {
  margin-bottom: 5vh;
}

#start {
  margin-top: 0;
}

.href-contacts {
  margin-top: 0;
}

.mobile-hide{
    display: none;
}

@media screen and (min-width: 768px){
    .mobile-only{
        display: none;
    }

    .mobile-hide{
        display: inherit;
    }
}
@media screen and (min-width: 1024px){
  .header-address {
    margin-left: 3vw;
  }
}

@media screen and (min-width: 1280px){
    .header-address {
      margin-left: 3.25vw;
    }
}


/*New Team Block*/

#block-shatro-views-block-our-team-2-block-1 {
    margin-top: 4rem;
    margin-bottom: 4rem;
}

.view-our-team-2 .s-10__name {
    line-height: 1.33;
}

.view-our-team-2 .s-10__name i {
    display: block;
    height: 1px;
    visibility: hidden;
}

.view-our-team-2 .s-10__list {
    gap: 1.5em 2%;
}

.view-our-team-2 .s-10__item {
        width: 30%;
        text-align: center;
    }

@media screen and (min-width: 768px) {
    .view-our-team-2 .s-10__item {
        width: 15%;
        text-align: center;
    }
}


/*Projects Pages*/

.path-taxonomy .page-title, .path-projects .page-title {
    font-size: 3em;
    margin: 3em 0 1em 0;
}

.path-taxonomy .s-8__item, .path-projects .s-8__item {
    min-width: 45%;
    max-width: 45%;
}


.view-projects--content .view-footer {
    max-width: 640px;
    margin: 3em auto;
    color: #666;
}


.view-projects--content {
    margin-bottom: 6em;
}

.view-projects--content .s-8__list {
    justify-content: center;
}



.view-project-categories .view-content-rows {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 6px;
    padding: 0;
    justify-content: left;
    margin-bottom: 2em;
}
  
.view-project-categories .views-row {
flex: 0 0 auto;
}

.view-project-categories .views-field-name a {
display: inline-block;
padding: var(--x-padding) 18px;
text-decoration: none;
color: #111;
font-size: 1.25rem; /* Больше стандартного */
font-weight: 500;
border-radius: 8px;
transition: background-color 0.3s, color 0.3s;
}

.view-project-categories .views-field-name a:hover,
.view-project-categories .views-field-name a:focus {
/* background-color: #f5f5f5; */
color: var(--neutral-6);;
}

.view-project-categories .views-field-name a.active {
    /* background-color: #f5f5f5; */
    color: var(--neutral-6);;
}

.view-project-categories .view-content {
    gap: 6px;
    justify-content: flex-start;
    padding: 0;
    margin-bottom: 2em;
}

.view-project-categories .views-field-name a {
  font-size: 0.9rem;
  padding: 8px var(--x-padding);
} 

@media screen and (min-width: 1024px){

    .view-project-categories .view-content-rows {
        display: flex;
        flex-wrap: wrap;
        gap: 16px;
        padding: 0;
        margin-bottom: 2em;
    }

    .view-project-categories .views-field-name a {
        font-size: 1.25rem;
        padding: 8px 16px 4px 16px;
        margin-left: -16px;
      } 


    .s-8 .view-project-categories .view-content-rows {
        justify-content: center;
    }
}

/* .path-projects .view-project-categories .view-content-rows,
.path-taxonomy  .view-project-categories .view-content-rows {
    justify-content: center;
} */

  @media (max-width: 768px) {
    /* */

    .path-taxonomy .page-title, .path-projects .page-title {
        font-size: 2em;
    }
  }
  
  .no-header header.header {
    display: none!important;
  }


  .path-taxonomy .header .link._active {
    color: var(--neutral-7);
  }

  
/*
 * ===============================================
 *  ISOLATED STYLES FOR SERVICE POPUP 
 * ===============================================
 */

/* Helper class to lock body scroll */
body.body-modal-open {
  overflow: hidden;
}

/* 
 *  POPUP BACKDROP: Uses the unique '.service-popup' class
 */
.service-popup {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1000;
  display: flex; /* Kept from your original .modal style for centering */
  align-items: center;
  justify-content: center;
  
  /* Visual effects */
  background-color: rgba(0, 0, 0, 0.5);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

/* 
 *  POPUP CONTENT WINDOW: Uses '.service-popup__content'
 */
.service-popup__content {
  position: relative; /* This is required for the close button */
  max-width: 700px;
  width: 90%;
  border-radius: 8px;
  background: #fff;
  padding: 2rem 2.5rem;
  
  overflow-y: auto;
  max-height: 90vh;
  
  /* Applying the appearance animation */
  animation: modal-appear 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
}

/* 
 *  POPUP CLOSE BUTTON: Uses '.service-popup__close'
 */
.service-popup__close {
    position: absolute;
    top: 10px;
    right: 10px;
    width: 20px;
    height: 20px;
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
    color: #000;
    transition: transform 0.2s ease;
}

.service-popup__close:hover {
    transform: rotate(90deg);
}

.service-popup__close svg {
    width: 100%;
    height: 100%;
}

.service-popup h3 {
    margin-bottom: 1rem;
}

.service-popup p {
    margin-bottom: 1rem;
}

/* List styling (no changes needed here, but kept for completeness) */
.service-popup .competencies-list {
  padding-left: 0;
  margin-top: 1rem;
}
.service-popup .competencies-list li {
  display: list-item;
  margin-left: 1em;
  margin-bottom: 0.75rem;
  line-height: 1.6;
  list-style: disc;
}

/* Animation (no changes needed) */
@keyframes modal-appear {
  from {
    opacity: 0;
    transform: translateY(-20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
