/* Коррекция по визуальному сравнению с оригинальным vazaplast.ru. */
/* WebP-версии фонов лежат рядом с исходными PNG, оригиналы сохранены для отката. */
body {
    background: #fff url("/img/bg.webp") center top no-repeat;
    color: #343434;
    font:
        14px/20px Arial,
        Tahoma,
        sans-serif;
}
.wrap {
    max-width: 1200px;
    padding-left: 20px;
    padding-right: 20px;
}
.header {
    position: relative;
    min-height: 115px;
    padding-top: 12px;
    padding-bottom: 38px;
    gap: 24px;
    align-items: flex-start;
}
.brand {
    flex: 0 0 180px;
    position: relative;
    z-index: 2;
}
.brand img {
    display: block;
    width: 180px;
    height: 150px;
    object-fit: contain;
    position: absolute;
    top: -10px;
    left: 0;
}
.slogan {
    width: 350px;
    max-width: 31%;
    height: 54px;
    object-fit: contain;
    margin-left: auto;
    margin-top: 4px;
}
.phones {
    grid-template-columns: repeat(2, 1fr);
    font-size: 18px;
    line-height: 23px;
    margin-top: 4px;
    gap: 0 15px;
}
.phones a {
    color: blue;
    text-decoration: underline;
    font-weight: 400;
}
.header > .button {
    /* Кнопка выше прозрачного правого отступа перекрывающего меню. */
    z-index: 3;
    position: absolute;
    right: 20px;
    top: 82px;
    background: linear-gradient(#ffc600, #ffb008);
    color: #000;
    padding: 4px 12px;
    font:
        16px/20px Georgia,
        serif;
    text-transform: uppercase;
    border-radius: 4px;
}
.topnav {
    background: transparent;
    max-width: 1200px;
    margin: -38px auto 0;
    position: relative;
    padding-left: 195px;
    padding-right: 210px;
}
.topnav .wrap {
    padding: 0 12px;
    background: #525b60 url("/img/menu.webp") repeat-x;
    display: flex;
    flex-wrap: nowrap;
    justify-content: space-between;
    gap: 0;
}
.topnav a {
    font:
        17px/37px Georgia,
        serif;
    padding: 0 8px;
    text-transform: uppercase;
    white-space: nowrap;
}
.factory-link {
    text-align: center;
    margin: 14px auto 0;
    height: 62px;
    font:
        18px/24px Georgia,
        serif;
}
.factory-link a {
    color: blue;
}
.home-hero {
    padding: 12px 60px 0;
}
.home-hero h1 {
    font-size: 46px;
    line-height: 1.15;
    font-weight: 400;
    color: blue;
    margin: 15px 0 24px;
}
.hero-body {
    display: grid;
    grid-template-columns: 34% minmax(0, 1fr);
    gap: 24px;
    align-items: center;
}
.hero-copy {
    font-size: 14px;
    line-height: 20px;
}
.hero-pipe {
    width: 100%;
    height: auto;
    object-fit: contain;
}
.home-gallery {
    padding-left: 60px;
    padding-right: 60px;
}
.layout {
    grid-template-columns: 220px minmax(0, 1fr);
    gap: 12px;
    padding-top: 24px;
    padding-bottom: 45px;
    padding-left: 70px;
}
main {
    padding: 0 0 0 0;
    border: 0;
    border-radius: 0;
    background: transparent;
}
.prose {
    display: flow-root;
    overflow-wrap: normal;
}
.prose h1 {
    font-size: 30px;
    line-height: 1.5;
    font-weight: 400;
    color: blue;
    margin: 10px 0 20px;
}
.prose h2 {
    font-size: 24px;
    line-height: 1.3;
    text-align: center;
    margin: 35px 0 20px;
    font-weight: 400;
    color: #343434;
}
.prose table {
    display: table;
    width: auto;
    max-width: 100%;
    font-size: inherit;
    margin: 0;
    border-collapse: collapse;
}
.prose td,
.prose th {
    padding: 3px;
    border: 0;
}
.prose table[border="1"] td,
.prose table[border="1"] th {
    border: 1px solid #999;
}
.prose p {
    margin-bottom: 18px;
}
aside details {
    background: #ebebeb;
    border: 0;
    margin-bottom: 38px;
    padding: 5px;
    border-radius: 8px;
}
summary {
    background: transparent;
    text-align: center;
    padding: 3px 0 16px;
    list-style: none;
    cursor: pointer;
}
summary::-webkit-details-marker {
    display: none;
}
aside nav > ul,
aside details > ul {
    background: #fff;
    border-radius: 6px;
    padding: 10px;
}
aside li > a {
    border: 0;
    font-size: 13px;
    line-height: 20px;
    padding: 0;
    color: #404040;
}
aside li li a {
    font-size: 13px;
    line-height: 20px;
    padding: 0 0 0 15px;
    color: #404040;
}
aside a[aria-current] {
    background: transparent;
    font-weight: bold;
    color: #333;
}
.promotion {
    background: white;
    padding: 10px;
    border-radius: 6px;
    font-size: 13px;
    line-height: 20px;
}
.promotion h3 {
    font-size: 13px;
}
.promotion hr {
    margin: 4px 0;
}
.gallery-section {
    border: 0;
    margin-top: 8px;
    padding-top: 0;
    clear: both;
}
.gallery-section h2 {
    text-align: center;
    color: #000;
    font: bold 23px/30px Arial;
    margin: 12px 0;
}
.gallery-section .gallery {
    display: flex;
    overflow-x: auto;
    gap: 20px;
    scroll-snap-type: x mandatory;
    padding: 0 0 12px;
}
.gallery-section figure {
    flex: 0 0 198px;
    padding: 0;
    border: 0;
    background: transparent;
    scroll-snap-align: start;
}
.gallery-section img {
    height: 138px;
    width: 198px;
    object-fit: cover;
}
.gallery-section figcaption {
    display: none;
}
footer {
    background: #666;
}
footer .prose table {
    width: 100%;
}
footer .prose td {
    padding: 12px;
}
@media (max-width: 1050px) {
    .header {
        gap: 12px;
    }
    .brand {
        flex-basis: 140px;
    }
    .brand img {
        width: 140px;
        height: 125px;
    }
    .slogan {
        width: 280px;
    }
    .phones {
        font-size: 15px;
    }
    .topnav {
        padding-left: 155px;
        padding-right: 185px;
    }
    .topnav a {
        font-size: 14px;
        padding: 0 5px;
    }
    .header > .button {
        font-size: 14px;
    }
    .home-hero {
        padding-left: 25px;
        padding-right: 25px;
    }
    .home-hero h1 {
        font-size: 36px;
    }
    .layout {
        padding-left: 25px;
        grid-template-columns: 210px minmax(0, 1fr);
    }
}
@media (max-width: 700px) {
    .header {
        min-height: 0;
        padding: 12px 16px;
        align-items: center;
        flex-wrap: wrap;
    }
    .brand {
        flex: 0 0 100px;
    }
    .brand img {
        position: static;
        width: 100px;
        height: 88px;
    }
    .slogan {
        max-width: none;
        width: calc(100% - 120px);
        height: auto;
        margin: 0;
    }
    .phones {
        width: 100%;
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        margin: 0;
        font-size: 14px;
    }
    .header > .button {
        position: static;
        width: auto;
        margin: 6px 0 0;
    }
    .topnav {
        margin: 0;
        padding: 0;
    }
    .topnav .wrap {
        flex-wrap: wrap;
        justify-content: center;
    }
    .topnav a {
        font-size: 13px;
        line-height: 32px;
        padding: 0 10px;
    }
    .factory-link {
        height: auto;
        margin: 14px 12px 22px;
        font-size: 16px;
    }
    .home-hero {
        padding: 0 16px;
    }
    .home-hero h1 {
        font-size: 29px;
    }
    .hero-body {
        grid-template-columns: 1fr;
        gap: 10px;
    }
    .hero-pipe {
        max-height: 240px;
        order: -1;
    }
    .home-gallery {
        padding: 0 16px;
    }
    .layout {
        display: flex;
        padding: 16px;
        gap: 16px;
    }
    .layout aside {
        order: 0;
        width: 100%;
    }
    main {
        order: 1;
        padding: 0;
    }
    .prose h1 {
        font-size: 25px;
    }
    .prose {
        overflow-x: auto;
    }
    .prose table {
        max-width: 100%;
        font-size: 12px;
    }
    .prose img[style*="float"] {
        max-width: 48%;
        height: auto;
    }
    aside details {
        margin-bottom: 12px;
    }
    footer .prose table {
        display: block;
    }
}
