/* Realgas theme base styles. 1rem ~= 1 design px at 1950px desktop / 390px mobile. */
@font-face {
    font-family: 'Gilroy';
    src: local('Gilroy Light'), local('Gilroy-Light'), url('/wp-content/uploads/2020/09/Gilroy-Light.woff2') format('woff2');
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Gilroy';
    src: local('Gilroy Regular'), local('Gilroy-Regular'), url('/wp-content/uploads/2020/09/Gilroy-Regular.woff2') format('woff2');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Gilroy';
    src: local('Gilroy Bold'), local('Gilroy-Bold'), url('/wp-content/uploads/2020/09/Gilroy-Bold.woff2') format('woff2');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

:root {
    --root-desktop-divisor: 19.5;
    --root-mobile-divisor: 3.9;
    --blue: #4675c3;
    --blue-hero: #4574c4;
    --dark: #182842;
    --text: #171d26;
    --white: #fff;
    --shell: 1400rem;
}

html {
    box-sizing: border-box;
    font-size: calc(1vw / var(--root-desktop-divisor)) !important;
    scroll-behavior: smooth;
    -webkit-text-size-adjust: 100%;
}
*, *::before, *::after { box-sizing: inherit; }
body {
    margin: 0;
    min-width: 320rem;
    background: #fff;
    color: var(--text);
    font-family: 'Gilroy', Arial, sans-serif;
    font-size: 16rem;
    line-height: 1.35;
    -webkit-font-smoothing: antialiased;
}
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
.shell {
    width: min(calc(100% - 40rem), var(--shell));
    margin-inline: auto;
}

/* Header */
.site-header {
    position: relative;
    z-index: 20;
    background: #fff;
}
.site-header__inner {
    min-height: 108rem;
    display: grid;
    grid-template-columns: 400rem 1fr;
    align-items: center;
    gap: 24rem;
}
.brand {
    display: flex;
    align-items: center;
    min-width: 0;
}
.brand__mark {
    flex: 0 0 auto;
    width: 58rem;
    height: 58rem;
    margin-right: 12.8rem;
}
.brand__copy {
    display: flex;
    flex-direction: column;
    min-width: 0;
    line-height: 1.1;
}
.brand__title {
    font-size: 24.8rem;
    font-weight: 400;
    white-space: nowrap;
}
.brand__subtitle {
    margin-top: 2.4rem;
    font-size: 16.48rem;
    line-height: 1.08;
    max-width: 252.8rem;
}
.site-header__right {
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: center;
    gap: 8.8rem;
}
.site-header__contacts,
.site-header__bottom {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    width: 100%;
}
.site-header__contacts { gap: 24.8rem; }
.header-contact {
    display: inline-flex;
    align-items: center;
    white-space: nowrap;
    font-size: 18.72rem;
    line-height: 1;
}
.header-contact--icon { gap: 9.92rem; }
.header-contact--icon img {
    width: 25rem;
    height: 25rem;
    object-fit: cover;
    flex: 0 0 auto;
}
.site-header__bottom { gap: 32.8rem; }
.site-nav__list {
    list-style: none;
    display: flex;
    align-items: center;
    gap: 28.8rem;
    margin: 0;
    padding: 0;
}
.site-nav__list a {
    position: relative;
    display: block;
    padding: 2.88rem 0;
    font-size: 17.28rem;
    font-weight: 700;
}
.site-nav__list a::after {
    content: '';
    position: absolute;
    left: 0;
    right: 100%;
    bottom: -1.92rem;
    height: 2.08rem;
    background: var(--blue);
    transition: right .2s ease;
}
.site-nav__list a:hover::after,
.site-nav__list a:focus-visible::after { right: 0; }
.site-header__address {
    font-style: normal;
    font-size: 16.48rem;
    white-space: nowrap;
}


@media (max-width: 767px) {
    html { font-size: calc(1vw / var(--root-mobile-divisor)) !important; }
}
@media (max-width: 1199.84px) {
    .site-header__inner { grid-template-columns: 336rem 1fr; }
    .site-header__contacts { gap: 16rem; }
    .header-contact { font-size: 16rem; }
    .site-header__bottom { gap: 20rem; }
    .site-nav__list { gap: 18.4rem; }
    .site-nav__list a, .site-header__address { font-size: 15.2rem; }
}

@media (max-width: 767.84px) {
    .shell { width: min(calc(100% - 36rem), var(--shell)); }
    .site-header__inner {
        min-height: 216.8rem;
        display: flex;
        flex-direction: column;
        justify-content: flex-start;
        gap: 6.72rem;
        padding-top: 7.2rem;
        padding-bottom: 12rem;
    }
    .brand { align-self: center; }
    .brand__mark {
        width: 44.8rem;
        height: 44.8rem;
        margin-right: 9.92rem;
    }
    .brand__title { font-size: 23.68rem; }
    .brand__subtitle {
        margin-top: 1.28rem;
        max-width: none;
        font-size: 14.56rem;
        white-space: nowrap;
    }
    .site-header__right {
        width: 100%;
        align-items: center;
        gap: 0;
    }
    .site-header__contacts {
        display: grid;
        grid-template-columns: auto auto;
        justify-content: center;
        gap: 9.28rem 11.52rem;
        width: 100%;
    }
    .header-contact {
        font-size: 16.48rem;
        line-height: 1.05;
    }
    .header-contact--email { justify-self: end; }
    .header-contact--icon img {
        width: 24.8rem;
        height: 24.8rem;
    }
    .site-header__contacts .header-contact:nth-child(3),
    .site-header__contacts .header-contact:nth-child(4) {
        grid-column: 1 / -1;
        justify-self: center;
    }
    .site-header__bottom { display: block; }
    .site-nav { display: none; }
    .site-header__address {
        margin-top: 8.8rem;
        max-width: 336rem;
        margin-inline: auto;
        text-align: center;
        white-space: normal;
        font-size: 15.68rem;
        line-height: 1.05;
    }
}

@media (max-width: 376px) {
    .shell { width: calc(100% - 36rem); }
}
/* Footer */
.site-footer {
    background: #fff;
    padding: 39.2rem 0 36rem;
}
.site-footer__inner {
    width: min(calc(100% - 40rem), 1424rem);
    display: grid;
    grid-template-columns: 328rem minmax(0, 1fr) 184rem;
    align-items: center;
    gap: 32rem;
}
.footer-brand {
    display: flex;
    align-items: center;
    min-width: 0;
}
.footer-brand__mark {
    flex: 0 0 auto;
    width: 58.4rem;
    height: 58.4rem;
    margin-right: 12rem;
}
.footer-brand__copy {
    display: flex;
    flex-direction: column;
    min-width: 0;
    line-height: 1.08;
}
.footer-brand__title {
    font-size: 23.2rem;
    white-space: nowrap;
}
.footer-brand__subtitle {
    max-width: 236.8rem;
    margin-top: 1.92rem;
    font-size: 12.8rem;
    line-height: 1.1;
}
.site-footer__main {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 12.8rem;
}
.site-footer__contacts,
.site-footer__bottom {
    display: flex;
    align-items: center;
    justify-content: center;
}
.site-footer__contacts { gap: 22.4rem; }
.footer-contact {
    display: inline-flex;
    align-items: center;
    gap: 8.8rem;
    white-space: nowrap;
    font-size: 16.8rem;
}
.footer-contact img {
    flex: 0 0 auto;
    width: 24.8rem;
    height: 24.8rem;
    object-fit: cover;
}
.site-footer__bottom {
    justify-content: space-between;
    gap: 27.2rem;
}
.footer-nav__list {
    display: flex;
    align-items: center;
    gap: 28.8rem;
    margin: 0;
    padding: 0;
    list-style: none;
}
.footer-nav__list a {
    font-size: 14.88rem;
    font-weight: 700;
}
.site-footer__address {
    font-style: normal;
    white-space: nowrap;
    font-size: 14.72rem;
}
.site-footer__developer {
    justify-self: end;
    width: 184rem;
}
.site-footer__developer-text {
    font-size: 14.08rem;
    line-height: 1.15;
}
.site-footer__developer-text span { display: block; }
.site-footer__developer-text a {
    color: #168817;
    font-weight: 700;
    text-decoration: underline;
}
.site-footer__developer-logo {
    display: block;
    width: 132.8rem;
    margin-top: 10.4rem;
}
.site-footer__developer-logo img { width: 100%; }

@media (max-width: 1199.84px) {
    .site-footer__inner { grid-template-columns: 288rem minmax(0, 1fr) 160rem; gap: 16rem; }
    .site-footer__contacts { gap: 12.8rem; }
    .footer-contact { font-size: 14.4rem; }
    .footer-nav__list { gap: 16rem; }
    .site-footer__address { font-size: 13.12rem; }
}

@media (max-width: 767.84px) {
    .site-footer {
        padding: 28.8rem 0 27.2rem;
    }
    .site-footer__inner {
        display: flex;
        flex-direction: column;
        gap: 16.8rem;
        width: min(calc(100% - 24rem), var(--shell));
        text-align: center;
    }
    .footer-brand {
        align-self: stretch;
        justify-content: center;
    }
    .footer-brand__mark {
        width: 52.8rem;
        height: 52.8rem;
        margin-right: 8.8rem;
    }
    .footer-brand__copy { text-align: left; }
    .footer-brand__title { font-size: 22.08rem; }
    .footer-brand__subtitle { font-size: 12rem; }
    .site-footer__main { width: 100%; gap: 12.8rem; }
    .site-footer__contacts {
        flex-wrap: wrap;
        gap: 10.4rem 13.6rem;
    }
    .footer-contact {
        gap: 6.72rem;
        font-size: 15.36rem;
    }
    .footer-contact img { width: 23.2rem; height: 23.2rem; }
    .site-footer__bottom { display: block; }
    .footer-nav { display: none; }
    .site-footer__address {
        max-width: 320rem;
        margin-inline: auto;
        white-space: normal;
        font-size: 14.08rem;
        line-height: 1.05;
    }
    .site-footer__developer {
        width: auto;
        justify-self: auto;
        margin-top: 8.8rem;
    }
    .site-footer__developer-text { font-size: 13.76rem; }
    .site-footer__developer-logo {
        width: 139.2rem;
        margin: 10.4rem auto 0;
    }
}

/* Mobile call action: appears only after the hero is fully scrolled past. */
.mobile-callbar {
    display: none;
}
@media (max-width: 767.84px) {
    .mobile-callbar {
        position: fixed;
        z-index: 900;
        left: 16rem;
        right: 16rem;
        bottom: 12rem;
        min-height: 66rem;
        display: grid;
        grid-template-columns: 44rem minmax(0, 1fr);
        align-items: center;
        gap: 12rem;
        padding: 9rem 18rem 9rem 12rem;
        border-radius: 5rem;
        background: var(--dark);
        color: #fff;
        box-shadow: 0 8rem 28rem rgba(24, 40, 66, .28);
        opacity: 0;
        transform: translateY(calc(100% + 28rem));
        pointer-events: none;
        transition: opacity .2s ease, transform .24s ease;
    }
    .mobile-callbar.is-visible {
        opacity: 1;
        transform: translateY(0);
        pointer-events: auto;
    }
    .mobile-callbar__icon {
        width: 44rem;
        height: 44rem;
        display: grid;
        place-items: center;
        border-radius: 50%;
        background: #fff;
        color: var(--dark);
    }
    .mobile-callbar__icon svg {
        width: 22rem;
        height: 22rem;
        fill: currentColor;
    }
    .mobile-callbar__copy {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        min-width: 0;
        line-height: 1.05;
        text-align: center;
    }
    .mobile-callbar__copy strong {
        font-size: 18rem;
        font-weight: 700;
    }
    .mobile-callbar__copy span {
        margin-top: 3rem;
        font-size: 15rem;
        font-weight: 400;
        white-space: nowrap;
    }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after {
        scroll-behavior: auto !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
}
