:root {
    --time: .3s;
    --main: 1820px;
    --gold: #d2b25a;
    --gold-dark: #b99843;
    --black: #050b0d;
    --dark: #121212;
    --text: #202020;
    --muted: #666;
    --line: #e6e6e6;
    --p20: 20px;
    --p30: 30px;
    --p40: 40px;
    --p60: 60px;
    --p80: 80px;
    --ft14: 14px;
    --ft16: 16px;
    --ft18: 18px;
    --ft20: 20px;
    --ft24: 24px;
    --ft30: 30px;
    --ft36: 36px;
    --ft48: 48px
}

* {
    box-sizing: border-box;
    min-width: 0;
    margin: 0;
    padding: 0
}

html {
    scroll-behavior: smooth
}

body {
    overflow-x: hidden;
    background: #fff;
    color: var(--text);
    font-family: Arial, Helvetica, sans-serif;
    font-size: var(--ft16)
}

img,
svg {
    display: block;
    max-width: 100%
}

a {
    color: inherit;
    text-decoration: none;
    transition: color var(--time), transform var(--time), opacity var(--time)
}

button {
    border: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    cursor: pointer
}

ul,
li {
    list-style: none
}

section,
main {
    width: 100%
}

.main {
    width: var(--main);
    max-width: calc(100% - 20px);
    margin: 0 auto
}

.img_100 {
    display: flex;
    overflow: hidden
}

.img_100 img {
    width: 100%;
    height: 100%;
    object-fit: cover
}

.line-clamp1,
.line-clamp2,
.line-clamp3 {
    display: -webkit-box;
    overflow: hidden;
    text-overflow: ellipsis;
    -webkit-box-orient: vertical
}

.line-clamp1 {
    -webkit-line-clamp: 1;
    line-clamp: 1
}

.line-clamp2 {
    -webkit-line-clamp: 2;
    line-clamp: 2
}

.line-clamp3 {
    -webkit-line-clamp: 3;
    line-clamp: 3
}

.icon {
    display: inline-flex;
    position: relative;
    flex: 0 0 auto;
    color: var(--gold)
}

.iconSvg {
    display: inline-block;
    flex: 0 0 auto;
    width: 18px;
    height: 18px;
    object-fit: contain;
    vertical-align: middle
}

.iconPhone {
    width: 38px;
    height: 38px
}

.breadcrumbIcon {
    width: 13px;
    height: 13px
}

.SiteHeader {
    height: 100px;
    background: #050a0c;
    color: #fff
}

.SiteHeader .main {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 100%
}

.SiteHeader .logo {
    display: block;
    width: 185px
}

.SiteHeader .logo img {
    width: 100%
}

.headerPhone {
    display: inline-flex;
    align-items: center;
    gap: 18px;
    margin-right: 12px;
    font-size: 30px;
    font-weight: 700;
    letter-spacing: 0
}

.headerPhone .icon {
    font-size: 34px
}

.headerPhone .iconSvg {
    width: 38px;
    height: 38px
}

.PageHero {
    position: relative;
    height: 838px;
    overflow: hidden;
   background-size: 100% 100%;
   background-repeat: no-repeat;
       background-position-x: right;
    color: #fff;
}
.PageHero .iconSvg{
    
    margin-right: 0.3em;
}
/*.PageHero::before {*/
/*    content: "";*/
/*    position: absolute;*/
/*    inset: 0;*/
/*    background:linear-gradient(77deg, #020707 0, #020707 48%, rgba(2, 7, 7, 0.4) 61%, rgba(2, 7, 7, 0.0) 67%, rgba(2, 7, 7, 0.00) 68%);*/
/*}*/

.PageHero .main {
    position: relative;
    height: 100%
}

.PageHero .info {
    width: 545px;
    padding-top: 160px
}

.PageHero h1 {
    margin-bottom: 8px;
    color: #000;
    font-size: 56px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: -1px
}

.PageHero .eyebrow {
    margin-bottom: 41px;
    color: var(--gold);
    font-size: 19px;
    line-height: 1.3
}

.heroSlogan {
    margin-bottom: 43px;
    font-size: 38px;
    font-weight: 700;
    line-height: 1.08;
    letter-spacing: -0.4px;
    color: var(--gold)
}


.heroSlogan span{
    color: var(--gold)
}

.PageHero .desc {
    width: 535px;
    margin-bottom: 43px;
    color: rgba(255, 255, 255, 1);
    font-size: 17px;
    line-height: 1.5
}

.contactList {
    display: grid;
    gap: 15px;
    color: rgba(255, 255, 255, 1);
    font-size: 17px
}

.contactList li,
.SiteFooter p {
    display: flex;
    align-items: center;
    gap: 12px
}

.FeatureStrip {
    background: #f5f5f5;
    border-bottom: 1px solid #efefef
}

.FeatureStrip .main {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    height: 150px
}

.FeatureStrip .item {
    display: flex;
    align-items: center;
    gap: 28px;
    padding-left: 78px;
    border-left: 1px solid #e0e0e0
}

.FeatureStrip .item:last-child {
    border-right: 1px solid #e0e0e0
}

.FeatureStrip h3 {
    margin-bottom: 8px;
    color: #252525;
    font-size: 19px;
    font-weight: 800;
    line-height: 1.15
}

.FeatureStrip p {
    color: #5f5f5f;
    font-size: 15px;
    line-height: 1.35
}

.featureIcon {
    flex: 0 0 auto;
    width: 56px;
    height: 56px;
    object-fit: contain
}

.Specialize {
    padding: 77px 0 19px
}

.titleCom {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 32px;
    margin-bottom: 33px
}

.titleCom span {
    width: 52px;
    height: 2px;
    background: #d6ba69
}

.titleCom h2 {
    color: #151515;
    font-size: 26px;
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: 1.2px
}

.serviceGrid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px
}

.serviceGrid .item {
    display: flex;
    min-height: 350px;
    flex-direction: column;
    background: #111;
    color: #fff;
    transition: transform var(--time), box-shadow var(--time)
}

.serviceGrid .img_100 {
    height: 270px
}

.serviceGrid h3 {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 1;
    min-height: 80px;
    padding: 10px 16px;
    color: #fff;
    font-size: 18px;
    font-weight: 800;
    line-height: 1.12;
    text-align: center
}

.SecurityDoors {
    padding: 0 0 22px
}

.SecurityDoors .main {
    display: grid;
    grid-template-columns: 720px 1fr;
    min-height: 480px;
    background: #071012
}

.SecurityDoors .doorPhoto {
    height: 100%;
}

.SecurityDoors .info {
    position: relative;
    padding: 39px 54px 40px 59px;
    color: #fff
}

.SecurityDoors h2 {
    margin-bottom: 10px;
    font-size: 36px;
    font-weight: 800;
    line-height: 1
}

.SecurityDoors h3 {
    margin-bottom: 25px;
    color: var(--gold);
    font-size: 31px;
    font-weight: 800;
    line-height: 1
}

.SecurityDoors .desc {
    width: 760px;
    max-width: calc(100% - 130px);
    margin-bottom: 23px;
    color: rgba(255, 255, 255, 0.88);
    font-size: 15px;
    line-height: 1.55
}

.SecurityDoors h4 {
    margin-bottom: 15px;
    font-size: 17px;
    font-weight: 800
}

.checkGrid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 11px 58px
}

.checkGrid li {
    position: relative;
    padding-left: 22px;
    font-size: 14px;
    line-height: 1.35
}

.checkGrid li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 2px;
    width: 14px;
    height: 14px;
    background: url("../icons/check-circle.svg") center / contain no-repeat
}

.checkGrid li::after {
    content: none
}

.SecurityDoors .badge {
    position: absolute;
    right: 64px;
    top: 35px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 136px;
    height: 136px;
    padding-top: 6px;
    color: #111;
    font-size: 10px;
    font-weight: 800;
    line-height: 1.05;
    text-align: center
}

.SecurityDoors .badge strong {
    font-size: 21px
}

.SecurityDoors .note {
    display: flex;
    align-items: center;
    gap: 14px;
    min-height: 58px;
    margin-top: 31px;
    padding: 12px 20px;
    border: 1px solid var(--gold-dark);
    border-radius: 4px;
    color: rgba(255, 255, 255, 0.9);
    font-size: 14px;
    line-height: 1.25
}

.SecurityDoors .note .icon {
    font-size: 20px
}

.SecurityDoors .note .iconSvg {
    width: 20px;
    height: 20px
}

.InfoPanels {
    padding: 0 0 30px
}

.InfoPanels .main {
    display: grid;
    grid-template-columns: 1.12fr .88fr;
    gap: 18px
}

.InfoPanels .panel {
    min-height: 250px;
    border: 1px solid #e4e4e4;
    background: #fff;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.03)
}

.customPanel {
    display: grid;
    grid-template-columns: 1fr 300px;
    gap: 20px 38px;
    padding: 31px 31px 31px 33px;
}
.customPanel h2{
    grid-column: span 2;
}
.customPanel .img_100 {
    align-self: center;
    height: 145px
}

.InfoPanels h2 {
    margin-bottom: 10px;
    color: #111;
    font-size: 30px;
    font-weight: 800;
    line-height: 1
}

.InfoPanels h2 span {
    color: var(--gold)
}

.InfoPanels p {
    margin-bottom: 27px;
    color: #555;
    font-size: 14px;
    line-height: 1.55
}

.InfoPanels .checkGrid {
    gap: 13px 35px
}

.choosePanel {
    padding: 31px 42px 28px 33px
}
.choosePanel hr{
    border: none;
    width: 3em;
    height: 4px;
    background:  var(--gold);
    margin-bottom: 28px;
}
.SiteFooter {
    background: #080D10;
    color: #fff
}

.SiteFooter .main {
    position: relative;
    display: grid;
    grid-template-columns: 360px 360px 1fr 260px;
    gap: 60px;
    min-height: 197px;
    padding-top: 39px
}

.SiteFooter img {
    width: 150px;
}

.SiteFooter h3 {
    flex-shrink: 0;
    margin-bottom: 19px;
    font-size: 19px;
    font-weight: 800;
    width: max-content;
}
.SiteFooter .logo{
    margin-bottom: 1em;
    display: block;
}
.SiteFooter p {
    margin-bottom: 9px;
    color: rgba(255, 255, 255, 0.78);
    font-size: 12px;
    
    line-height: 1.25
}

.SiteFooter .iconSvg {
    width: 14px;
    height: 14px
}

.footerMark {
    position: absolute;
    right: 30px;
    bottom: 35px;
    width: 285px;
    height: 80px
}

.footerMark span {
    position: absolute;
    display: block;
    height: 16px;
    background: #f39200;
    transform: skewX(-35deg) rotate(-18deg)
}

.footerMark span:nth-child(1) {
    right: 0;
    bottom: 38px;
    width: 210px
}

.footerMark span:nth-child(2) {
    right: 112px;
    bottom: 17px;
    width: 92px
}

.footerMark span:nth-child(3) {
    right: 210px;
    bottom: 2px;
    width: 58px
}

.Breadcrumb {
    padding: 21px 0 18px;
    color: #999;
    font-size: 13px
}

.Breadcrumb .main {
    display: flex;
    align-items: center;
    gap: 6px
}

.Breadcrumb .icon {
    font-size: 12px;
    color: #aaa
}

.GlassGallery {
    padding: 19px 0 48px
}

.galleryGrid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 5px
}

.galleryGrid .item {
    cursor: pointer;
    aspect-ratio: 1 / 1;
    background: #f2f2f2
}

.loadMore {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 132px;
    height: 47px;
    margin: 26px auto 0;
    border: 1px solid #222;
    background: #fff;
    color: #222;
    font-size: 14px;
    transition: background var(--time), color var(--time)
}

.chevronIcon {
    width: 12px;
    height: 12px
}

.serviceGrid .item:hover,
.galleryGrid .item:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 22px rgba(0, 0, 0, 0.18)
}

.serviceGrid .item:hover img,
.galleryGrid .item:hover img {
    transform: scale(1.04)
}

.serviceGrid img,
.galleryGrid img {
    transition: transform .55s ease
}

.loadMore:hover {
    background: #111;
    color: #fff
}

@media only screen and (min-width:768px) and (max-width:1199px) {
    :root {
        --main: 92%;
        --ft48: 42px;
        --ft36: 32px
    }

    .main {
        width: calc(100vw - 40px);
        max-width: calc(100vw - 40px)
    }

    .SiteHeader {
        height: 86px
    }

    .SiteHeader .logo {
        width: 160px
    }

    .headerPhone {
        font-size: 24px
    }

    .PageHero {
        height: 650px;
        background-size: auto 100%
    }

    .PageHero .info {
        width: 48%;
        padding-top: 95px
    }

    .PageHero h1 {
        font-size: 42px
    }

    .heroSlogan {
        font-size: 30px
    }

    .PageHero .desc {
        width: 100%
    }

    .FeatureStrip .main {
        grid-template-columns: repeat(2, 1fr);
        height: auto
    }

    .FeatureStrip .item {
        min-height: 120px;
        padding-left: 45px;
        border-bottom: 1px solid #e0e0e0
    }

    .serviceGrid {
        grid-template-columns: repeat(2, 1fr)
    }

    .SecurityDoors .main,
    .InfoPanels .main {
        grid-template-columns: 1fr
    }

    .SecurityDoors .doorPhoto {
        height: 420px
    }

    .SecurityDoors .desc {
        max-width: 100%
    }

    .customPanel {
        grid-template-columns: 1fr 260px
    }

    .galleryGrid {
        grid-template-columns: repeat(3, 1fr)
    }

    .SiteFooter .main {
        grid-template-columns: repeat(3, 1fr);
        gap: 40px
    }

    .footerMark {
        display: none
    }
}

@media only screen and (max-width:767px) {
    :root {
        --main: 92%;
        --ft48: 34px;
        --ft36: 28px;
        --ft30: 24px;
        --p60: 40px
    }
.customPanel h2{
  grid-column: unset;
}
    .main {
        max-width: 92%
    }

    .SiteHeader {
        height: 72px
    }

    .SiteHeader .logo {
        width: 116px
    }

    .headerPhone {
        display: inline-flex;
        align-items: center;
        justify-content: flex-end;
        flex-shrink: 1;
        gap: 6px;
        min-width: 28px;
        margin-right: 0;
        font-size: 14px;
        white-space: nowrap
    }

    .headerPhone span:not(.icon) {
        display: none
    }

    .headerPhone .icon {
        font-size: 18px
    }

    .headerPhone .iconSvg {
        display: block;
        width: 22px;
        height: 22px
    }

    .PageHero {
        height: auto;
        min-height: 650px;
        background-position: 64% center;
        background-size: cover
    }

    .PageHero::before {
        background: linear-gradient(90deg, rgba(2, 7, 7, 0.98), rgba(2, 7, 7, 0.86))
    }

    .PageHero .info {
        width: 100%;
        padding: 70px 0
    }

    .PageHero h1 {
        font-size: 38px
    }

    .PageHero .eyebrow {
        font-size: 15px
    }

    .heroSlogan {
        font-size: 28px
    }

    .PageHero .desc {
        width: 330px;
        max-width: 100%;
        font-size: 15px
    }

    .contactList {
        font-size: 15px
    }

    .FeatureStrip .main,
    .serviceGrid,
    .SecurityDoors .main,
    .InfoPanels .main,
    .customPanel,
    .SiteFooter .main {
        grid-template-columns: 1fr
    }

    .FeatureStrip .main {
        height: auto
    }

    .FeatureStrip .item {
        min-height: 112px;
        padding-left: 22px;
        border-right: 1px solid #e0e0e0;
        border-bottom: 1px solid #e0e0e0
    }

    .Specialize {
        padding: 48px 0 18px
    }

    .titleCom {
        gap: 14px
    }

    .titleCom h2 {
        font-size: 22px
    }

    .titleCom span {
        width: 34px
    }

    .serviceGrid .item {
        min-height: auto
    }

    .serviceGrid .img_100 {
        height: auto;
        aspect-ratio: 418 / 270
    }

    .SecurityDoors .doorPhoto {
        height: auto;
        aspect-ratio: 3 / 2
    }

    .SecurityDoors .info {
        padding: 30px 22px
    }

    .SecurityDoors h2 {
        padding-right: 95px;
        font-size: 28px;
        line-height: 1.1
    }

    .SecurityDoors h3 {
        font-size: 24px
    }

    .SecurityDoors .badge {
        right: 18px;
        top: 25px;
        width: 82px;
        height: 82px;
        font-size: 7px
    }

    .SecurityDoors .badge strong {
        font-size: 15px
    }

    .SecurityDoors .desc {
        width: 100%;
        max-width: 100%
    }

    .checkGrid {
        grid-template-columns: 1fr;
        gap: 10px
    }

    .InfoPanels .panel {
        min-height: auto
    }

    .customPanel,
    .choosePanel {
        padding: 24px 20px
    }

    .InfoPanels h2 {
        font-size: 24px;
        line-height: 1.2
    }

    .InfoPanels h2 span {
        display: block;
        margin: 8px 0 0
    }

    .customPanel .img_100 {
        height: auto;
        aspect-ratio: 300 / 145
    }

    .Breadcrumb {
        padding: 15px 0
    }

    .GlassGallery {
        padding-top: 8px
    }

    .galleryGrid {
        grid-template-columns: 1fr 1fr;
        gap: 8px
    }

    .SiteFooter .main {
        gap: 18px;
        min-height: auto;
        padding: 30px 0
    }

    .SiteFooter img {
        width: 135px
    }

    .footerMark {
        display: none
    }

    .serviceGrid .item:hover,
    .galleryGrid .item:hover {
        transform: none;
        box-shadow: none
    }

    .serviceGrid .item:hover img,
    .galleryGrid .item:hover img {
        transform: none
    }
}