@font-face {
    font-family:Onest;
    src:url('../fonts/onest-variable.ttf') format('truetype');
    font-weight:100 900;
    font-style:normal;
    font-display:swap;
}

:root {
    --page:#f1f2f0;
    --panel:#e9eae7;
    --ink:#14161a;
    --muted:#474d54;
    --soft:#738087;
    --accent:#e5261f;
    --line:rgba(0,0,0,.08);
}

* {
    box-sizing:border-box;
}

html {
    scroll-behavior:smooth;
    scroll-padding-top:24px;
}

body {
    margin:0;
    background:var(--page);
    color:var(--ink);
    font:16px/1.5 Onest,Arial,sans-serif;
}

a {
    color:inherit;
    text-decoration:none;
}

button,input,textarea,select {
    font:inherit;
}

button,a,input[type=submit] {
    cursor:pointer;
}

img {
    display:block;
    max-width:100%;
    height:auto;
}

h1,h2,h3,p,dl,dd {
    margin:0;
}

h1,h2,h3 {
    line-height:1.275;
}

h1,h2 {
    font-weight:800;
}

a,button {
    transition:color .15s,background-color .15s;
}

a:hover {
    color:var(--accent);
}

:focus-visible {
    outline:2px solid var(--accent);
    outline-offset:4px;
}

[hidden] {
    display:none!important;
}

.container {
    width:calc(100% - 160px);
    max-width:1280px;
    margin-inline:auto;
}

.skip-link {
    position:absolute;
    left:16px;
    top:-100px;
    padding:12px;
    background:#fff;
    z-index:20;
}

.skip-link:focus {
    top:10px;
}

.site-header {
    position:sticky;
    top:0;
    z-index:100;
    background:rgba(241,242,240,.97);
    border-bottom:1px solid rgba(0,0,0,.1);
}

.admin-bar .site-header {
    top:32px;
}

.site-header.is-scrolled {
    background:rgba(255,255,255,.96);
    box-shadow:0 6px 24px rgb(20 22 26 / 8%);
    backdrop-filter:blur(12px);
}

.back-to-top {
    position:fixed;
    right:28px;
    bottom:28px;
    z-index:90;
    display:grid;
    place-items:center;
    width:48px;
    height:48px;
    padding:0;
    border:1px solid var(--accent);
    border-radius:0;
    background:var(--accent);
    color:#fff;
    box-shadow:0 4px 16px rgb(20 22 26 / 12%);
}

.back-to-top:hover {
    background:#c71e18;
    border-color:#c71e18;
}

html {
    scroll-padding-top:116px;
}

.language-nav a[data-gt-lang] {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:8px 11px;
    font-size:12px;
    line-height:15px;
    font-weight:600;
    color:var(--soft);
}

.language-nav a.gt-current-lang {
    background:var(--accent);
    color:#fff;
}

.language-nav a:not(.gt-current-lang):hover {
    background:var(--panel);
    color:var(--ink);
}

@media (prefers-reduced-motion:no-preference) {
    .site-header {
        transition:background-color 200ms ease, box-shadow 200ms ease;
    }
}

.site-header__inner {
    min-height:84px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
}

.site-logo {
    flex-shrink:0;
}

.site-logo img {
    width:121.65px;
    height:45px;
    object-fit:contain;
}

.site-nav__list,.language-nav,.footer-nav {
    list-style:none;
    padding:0;
    margin:0;
    display:flex;
    align-items:center;
}

.site-nav__list {
    gap:30px;
    font-size:14px;
    font-weight:500;
    color:var(--muted);
}

.site-header__right {
    display:flex;
    align-items:center;
    gap:18px;
}

.site-header__contacts {
    display:flex;
    flex-direction:column;
    align-items:flex-end;
    gap:2px;
}

.site-header__phone {
    font-size:14px;
    font-weight:600;
}

.site-header__email {
    font-size:12px;
    color:#6e767f;
}

.language-nav a {
    display:block;
    padding:8px 11px;
    font-size:12px;
    line-height:15px;
}

.language-nav .current-menu-item a {
    background:var(--accent);
    color:#fff;
}

.button,
.woocommerce .product-hero__buttons a.button {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    padding:16px 28px;
    border:0;
    background:var(--accent);
    color:#fff;
    font-size:15px;
    font-weight:600;
    line-height:19px;
}

.button:hover,
.woocommerce .product-hero__buttons a.button:hover {
    background:#c71e18;
    color:#fff;
}

.button--light,
.woocommerce .product-hero__buttons a.button--light {
    background:#f3f4f5;
    color:var(--ink);
}

.button--light:hover,
.woocommerce .product-hero__buttons a.button--light:hover {
    background:#e3e5e5;
    color:var(--ink);
}

.eyebrow {
    display:flex;
    align-items:center;
    gap:14px;
    font-size:11.5px;
    font-weight:600;
    letter-spacing:.1em;
    line-height:15px;
    text-transform:uppercase;
    color:var(--soft);
}

.eyebrow::before {
    content:'';
    display:block;
    width:30px;
    height:1px;
    flex-shrink:0;
    background:currentColor;
}

.eyebrow--accent {
    color:var(--accent);
}

.hero {
    position:relative;
    isolation:isolate;
}

.hero__image {
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    z-index:-2;
}

.hero::after {
    content:'';
    position:absolute;
    inset:0;
    background:linear-gradient(90deg,#f1f2f0,rgba(241,242,240,.8395) 38.316%,rgba(241,242,240,.6608) 61.916%,rgba(241,242,240,0));
    z-index:-1;
}

.hero__inner {
    min-height:720px;
    padding-block:168px 58px;
}

.hero__copy {
    max-width:790px;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:26px;
}

.hero h1 {
    font-size:64px;
    line-height:1.04;
    letter-spacing:-.02em;
}

.hero h1 span {
    color:var(--accent);
}

.hero__text {
    max-width:600px;
    font-size:19px;
    line-height:1.5;
    color:var(--muted);
}

.hero__buttons {
    display:flex;
    flex-wrap:wrap;
    gap:14px;
}

.hero__buttons:empty {
    display:none;
}

.hero-specs {
    display:flex;
    gap:32px;
    border-top:1px solid var(--line);
    max-width:1120px;
    margin-top:21px;
    padding-top:25px;
}

.hero-specs__item {
    display:flex;
    flex-direction:column-reverse;
    gap:6px;
}

.hero-specs__item+.hero-specs__item {
    border-left:1px solid var(--line);
    padding-left:32px;
}

.hero-specs dd {
    font-size:26px;
    font-weight:800;
    line-height:33px;
}

.hero-specs dt {
    font-size:11px;
    line-height:14px;
    color:var(--muted);
    letter-spacing:.07em;
}

.advantages {
    background:var(--panel);
}

.advantages__list {
    display:flex;
    justify-content:space-between;
    gap:24px;
    padding-block:36px;
}

.advantages__item {
    display:flex;
    gap:15px;
    align-items:center;
}

.advantages__icon {
    width:44px;
    height:44px;
    object-fit:contain;
}

.advantages h2 {
    font-size:16px;
    font-weight:700;
}

.advantages p {
    font-size:11px;
    color:var(--soft);
    margin-top:3px;
}

.section {
    padding-block:96px;
}

.section-heading {
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:36px;
    margin-bottom:44px;
}

.section-heading__title>.eyebrow {
    margin-bottom:16px;
}

.section-heading h2 {
    font-size:44px;
    letter-spacing:-.02em;
}

.section-heading__text {
    max-width:380px;
    flex:0 1 380px;
    color:var(--muted);
    font-size:16px;
    line-height:1.5;
}

.category-grid {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:24px;
}

.category-card {
    background:#fff;
    display:flex;
    flex-direction:column;
}

.category-card__image {
    width:100%;
    aspect-ratio:302/200;
    object-fit:cover;
    filter:grayscale(1);
}

.category-card__body {
    padding:26px 26px 30px;
    display:flex;
    flex-direction:column;
    gap:12px;
    flex:1;
}

.category-card h3 {
    font-size:20px;
}

.category-card p {
    font-size:14px;
    line-height:1.5;
    color:var(--muted);
    flex:1;
}

.category-card__range {
    color:var(--accent);
    font-size:12px;
    font-weight:600;
}

.category-card__more {
    font-size:14px;
    font-weight:600;
}

.category-card__more span {
    margin-left:8px;
}

.about {
    background:var(--panel);
    padding-block:100px;
}

.about .section-heading {
    margin-bottom:52px;
}

.about .section-heading__title {
    max-width:720px;
}

.about .section-heading__text {
    max-width:420px;
    flex-basis:420px;
}

.about__steps {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    border-top:1px solid var(--line);
    padding-top:52px;
}

.about__step {
    padding-right:40px;
    display:flex;
    flex-direction:column;
    gap:12px;
}

.about__number {
    font-size:30px;
    line-height:38px;
    font-weight:700;
    color:var(--accent);
}

.about h3 {
    font-size:18px;
}

.about__step p {
    font-size:14px;
    color:var(--muted);
}

.projects__slider {
    position:relative;
}

.projects__slide {
    position:relative;
    min-height:540px;
    display:flex;
    align-items:flex-end;
    padding:48px;
    isolation:isolate;
}

.projects__image {
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    filter:grayscale(1);
    z-index:-2;
}

.projects__slide::after {
    content:'';
    position:absolute;
    inset:0;
    background:linear-gradient(0deg,rgba(241,242,240,.85),transparent 70%);
    z-index:-1;
}

.projects__caption {
    max-width:700px;
    display:flex;
    flex-direction:column;
    gap:12px;
}

.projects__caption h3 {
    font-size:40px;
    font-weight:800;
}

.projects__controls {
    position:absolute;
    top:0;
    right:0;
    display:flex;
    pointer-events:none;
}

.projects__controls button {
    display:grid;
    place-items:center;
    pointer-events:auto;
    width:62px;
    height:62px;
    border:1px solid var(--line);
    background:rgba(255,255,255,.8);
    color:var(--ink);
    font-size:0;
    padding:0;
}

.projects__controls button::before {
    content:'';
    width:8px;
    height:8px;
    border-top:1.5px solid currentColor;
    border-right:1.5px solid currentColor;
    transform:rotate(45deg);
}

.projects__controls button[data-direction="-1"]::before {
    transform:rotate(-135deg);
}

.projects__controls button:hover {
    background:#fff;
    color:var(--accent);
}

.projects__dots {
    display:flex;
    justify-content:center;
    gap:10px;
    margin-top:44px;
}

.projects__dots .swiper-pagination-bullet {
    border:1px solid #879097;
    padding:0;
    width:8px;
    height:8px;
    border-radius:50%;
    background:transparent;
}

.projects__dots .swiper-pagination-bullet-active {
    width:24px;
    border-radius:4px;
    border-color:var(--accent);
    background:var(--accent);
}

.contacts {
    background:var(--panel);
}

.contacts__grid {
    display:grid;
    grid-template-columns:551fr 729fr;
    background:#fff;
}

.contacts__form {
    padding:52px 56px;
}

.contacts__form form {
    display:flex;
    flex-direction:column;
    gap:22px;
}

.contacts__form label {
    display:block;
    font-size:11px;
    letter-spacing:.08em;
    color:var(--soft);
    font-weight:600;
}

.contacts__form input:not([type=submit]),.contacts__form textarea {
    display:block;
    width:100%;
    border:0;
    border-bottom:1.5px solid #ddd;
    background:transparent;
    border-radius:0;
    padding:11px 0 12px;
    font-size:16px;
    line-height:20px;
    font-weight:400;
    color:var(--ink);
    letter-spacing:normal;
}

.contacts__form textarea {
    resize:vertical;
    min-height:45px;
    height:45px;
}

.contacts__form .button {
    width:100%;
}

.contacts__form input:not([type=submit]):focus-visible,
.contacts__form textarea:focus-visible {
    outline:none;
    border-bottom-color:var(--accent);
    box-shadow:0 1px 0 var(--accent);
}

.contacts__form .wpcf7-spinner {
    position:absolute;
}

.contacts__form .wpcf7-response-output {
    margin:0;
    padding:12px;
    font-size:14px;
}

.contacts__form .wpcf7-not-valid-tip {
    font-size:12px;
    letter-spacing:0;
}

.contacts__map-image {
    width:100%;
    height:375px;
    object-fit:cover;
}

.contact-details {
    display:flex;
    gap:48px;
}

.contact-details dt {
    font-size:10.5px;
    line-height:13px;
    color:var(--soft);
    margin-bottom:7px;
    letter-spacing:.08em;
}

.contact-details dd {
    font-size:16px;
    line-height:20px;
    font-weight:700;
    overflow-wrap:anywhere;
}

.contacts__side .contact-details {
    padding:30px;
    gap:16px;
    flex-wrap:wrap;
}

.contacts__side .contact-details dd {
    font-size:18px;
    line-height:23px;
}

.contacts__side .contact-details__item {
    min-width:0;
    flex:1 0 auto;
}

.contacts__side .contact-details__item--address {
    flex:1 0 auto;
    white-space:nowrap;
}

.contacts__side {
    border-left:1px solid rgba(0,0,0,.1);
    min-width:0;
}

.contact-details__item--phone dd,
.contact-details__item--email dd {
    white-space:nowrap;
}

.site-footer {
    padding-block:56px 30px;
}

.site-footer__top {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:40px;
    padding-bottom:28px;
    border-bottom:1px solid var(--line);
}

.site-footer__bottom {
    display:flex;
    justify-content:space-between;
    gap:24px;
    margin-top:28px;
    font-size:13px;
    color:var(--soft);
}

.footer-nav {
    gap:20px;
}

.page-content {
    padding-block:60px;
}

.page-content h1 {
    margin-bottom:24px;
}

.page-content p+p {
    margin-top:16px;
}

@media(prefers-reduced-motion:reduce) {
    html {
        scroll-behavior:auto;
    }
    a,button {
        transition:none;
    }
}

.language-nav__current,.language-nav button {
    padding:8px 11px;
    font-size:12px;
    line-height:15px;
    font-weight:600;
    border:0;
}

.language-nav__current {
    color:#fff;
    background:var(--accent);
}

.language-nav button:disabled {
    color:#6e767f;
    background:transparent;
    cursor:default;
}

html {
    scrollbar-gutter:stable;
}

html body.gscrollbar-fixer {
    margin-right:0;
}

.projects__controls {
    z-index:2;
}

.projects__dots .swiper-pagination-bullet {
    opacity:1;
    margin:0;
}

.blocker {
    z-index:10000;
}

.request-modal {
    width:100%;
    max-width:620px;
    padding:40px;
    border-radius:0;
    background:var(--background, #f1f2f0);
    box-shadow:none;
}

.request-modal h2 {
    margin-bottom:28px;
    font-size:36px;
}

.request-modal a.close-modal {
    top:12px;
    right:12px;
}

.request-modal.is-success {
    max-width:480px;
}

.request-modal.is-success > #request-modal-title,
.request-modal.is-success > .wpcf7 {
    display:none;
}

.request-modal__success h2 {
    font-size:30px;
    margin-bottom:16px;
    outline:none;
}

.request-modal__success p {
    color:var(--soft);
    margin-bottom:28px;
    line-height:1.5;
}

.has-form-toast .wpcf7-response-output,
.has-form-toast .wpcf7-not-valid-tip {
    display:none;
}

.contacts__form input.wpcf7-not-valid:not([type=submit]),
.contacts__form textarea.wpcf7-not-valid {
    border-bottom-color:var(--accent);
}

.form-action {
    position:relative;
}

.contacts__form .form-action .wpcf7-spinner {
    top:50%;
    left:50%;
    margin:-12px 0 0 -12px;
    background:#fff;
    opacity:1;
}

.contacts__form .form-action .wpcf7-spinner::before {
    background:var(--accent);
}

.form-action .button {
    padding-inline:48px;
}

.contacts__form form.submitting .form-action .button {
    color:transparent;
    pointer-events:none;
}

.form-toast {
    position:fixed;
    z-index:10010;
    right:28px;
    bottom:28px;
    width:min(420px, calc(100vw - 56px));
    padding:22px 52px 22px 24px;
    border:1px solid var(--line);
    border-left:4px solid var(--accent);
    background:#fff;
    color:var(--ink);
    box-shadow:0 12px 40px rgb(20 22 26 / 16%);
    text-align:left;
}

.form-toast p {
    font-size:15px;
    line-height:1.5;
    white-space:pre-line;
}

.form-toast--success {
    border-left-color:#3c7052;
}

.form-toast__close {
    position:absolute;
    top:12px;
    right:12px;
    width:28px;
    height:28px;
    padding:0;
    border:0;
    background:var(--panel);
    color:var(--ink);
    font-size:24px;
    line-height:1;
}

@keyframes content-enter {
    from { opacity:.45; transform:translateY(12px); }
    to { opacity:1; transform:translateY(0); }
}

@media (prefers-reduced-motion:no-preference) {
    .motion-enter {
        animation:content-enter 420ms cubic-bezier(.2,.65,.3,1);
    }

    .form-toast:not([hidden]) {
        animation:content-enter 180ms ease-out;
    }

    .category-card__image,
    .product-card__image {
        transition:opacity 220ms ease;
    }

    .category-card:hover .category-card__image,
    .product-card:hover .product-card__image {
        opacity:.92;
    }

    .projects__controls button,
    .projects__dots .swiper-pagination-bullet {
        transition:background-color 180ms ease, color 180ms ease, width 180ms ease;
    }
}
