/*
Theme Name: Villa Nova
Theme URI: #
Author: Petro Krupenia
Author URI: https://krapan.net
Description:
Version: 1.0.9
Text Domain: villanova
Tags:
*/

:root {
    --black: #000000;
    --white: #ffffff;
    --light: #f7f7f7;
    --accent-1: #896051;
    --accent-2: #C7AAA8;
    --transition: all .3s ease-in;
}

@media (min-width: 768px) {
    --col-gutter--sm: 40px;
}

@media (min-width: 992px) {
    --col-gutter--sm: 40px;
}

body {
    font-family: 'Montserrat', sans-serif;
    font-size: 16px;
    line-height: 22px;
    letter-spacing: normal;
    color: var(--black);
    background: var(--white);
}

@media (min-width: 992px) {
    body {
        font-size: 20px;
        line-height: 27px;
    }
}

.font--arsenal,
h1, h2, h3, h4, h5, h6 {
    font-family: 'Arsenal', sans-serif;
}

.font--montserrat {
    font-family: 'Montserrat', sans-serif;
}

a {
    color: var(--black);
    text-decoration: none;
}

a:hover,
a:focus {
    outline: none;
    color: var(--accent-1);
}

.button {
    display: inline-block;
    background: var(--black);
    color: var(--white);
    border-radius: 0;
    box-shadow: none;
    border: none;
    font-size: 16px;
    line-height: 1em;
    font-family: 'Arsenal', sans-serif;
    padding: 14px 35px 16px;
    min-width: 300px;
}

.button:hover {
    background: var(--white);
    color: var(--black);
    box-shadow: 0 4px 35px rgba(0, 0, 0, 0.18);
}

.button-inverted {
    background: var(--white);
    color: var(--black);
    border: 1px solid var(--black);
}

.button-inverted:hover {
    background: var(--black);
    color: var(--white);
    border-color: var(--white)
}

@media (max-width: 768px) {
    .button {
        width: 100%;
    }
}

@media (min-width: 992px) {
    .button {
        font-size: 25px;
    }
}

/*===== SLIDER META =====*/

.slider-with-meta .owl-dots {
    display: flex !important;
    align-items: flex-start;
    justify-content: flex-start;
    gap: 0;
    margin: 20px 0 10px;
    width: 100%;
}

.slider-with-meta .owl-dot {
    display: block;
    flex: 1;
    background: #D9D9D9;
    padding: 0;
    height: 5px;
    box-shadow: none;
    border: none;
    border-radius: 0;
}

.slider-with-meta .owl-dot.active {
    background: #818181;
}

.slider-meta {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
}

.slider-meta__controls {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-end;
    gap: 20px;
    cursor: pointer;
    font-size: 16px;
    line-height: 1em;
    font-family: 'Arsenal', sans-serif;
}

.slider-meta__controls-meta__controls .control-prev,
.slider-meta__controls .control-next {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--black);
    transition: var(--transition);
    padding: 10px 0;
}

.slider-meta__controls-meta__controls:hover .control-prev,
.slider-meta__controls:hover .control-next {
    color: var(--accent-2);
}

@media (min-width: 992px) {
    .slider-meta__controls {
        font-size: 37px;
    }

}

/*===== SLIDER META =====*/


/*===== HEADER/FOOTER =====*/
.header-top {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 40px;
    padding: 14px 0 20px;
}

header a {
    color: var(--black);
}

header a:hover {
    color: var(--accent-2);
}

.header-top__social {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    flex: 1;
    order: 3
}

.header-top__social svg {
    display: block;
    width: 22px;
    height: 22px;
}

.header-top__logo {
    order: 2;
}

.header-top__logo a {
    display: block;
}

.header-top__logo img {
    display: block;
    margin: 0 auto;
    max-width: 100px;
    height: auto;
}

.header-top__contacts {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    gap: 20px;
    flex: 1;
    order: 1;
}

.header-top__contacts .mobile-toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    width: 29px;
    height: 22px;
    padding: 0;
    border: none;
    background: none;
    box-shadow: none;
    cursor: pointer;
    color: var(--black)
}

.header-top__contacts .mobile-toggle:hover,
.header-top__contacts .mobile-toggle:focus {
    color: var(--accent-2)
}

.header-top__contacts a {
    display: none;
}

.header-bottom {
    display: none;
}

.header-bottom ul {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 0;
    list-style: none;
    gap: 30px;
}

.header-bottom ul > li > a {
    display: block;
    line-height: 1em;
    padding: 6px 0;
}

.header-bottom ul > .current-menu-item > a {
    color: var(--accent-2);
}

footer .container--full {
    padding-top: 50px;
    padding-bottom: 50px;
    font-size: 13px;
    line-height: 1em;
}

.footer-main {
    display: flex;
    flex-flow: row wrap;
    align-items: center;
    justify-content: center;
    gap: 20px;
}

.footer-main__social {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    gap: 10px;
    order: 2;
}

.footer-main__social svg {
    display: block;
    width: 24px;
    height: 24px;
}

.footer-main__contacts {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-end;
    gap: 20px;
    order: 3;
}

.footer-main__nav {
    order: 1;
    width: 100%;
    margin-bottom: 7px;
}

.footer-main__nav ul {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 0;
    list-style: none;
    gap: 9px;
}

.footer-main__nav ul > li > a {
    display: block;
    padding: 6px 0;
}

.footer-main__nav ul > .current-menu-item > a {
    color: var(--accent-2);
}

@media (min-width: 992px) {
    .header-top {
        padding: 25px 0;
    }

    .header-top__social {
        order: 1;
        justify-content: flex-start;
    }

    .header-top__social svg {
        width: 43px;
        height: 43px;
    }


    .header-top__contacts {
        order: 3;
        justify-content: flex-end;
    }

    .header-top__contacts .mobile-toggle {
        display: none;
    }

    .header-top__logo img {
        max-width: 100%;
        width: auto;
        height: auto;
    }

    .header-top__contacts a {
        display: block;
    }

    .header-bottom {
        display: flex;
        flex-direction: row;
        align-items: center;
        justify-content: center;
        padding: 0 0 47px;
    }

    footer .container--full {
        padding-top: 100px;
        padding-bottom: 100px;
        background: rgba(0, 0, 0, .5) url(assets/public/img/footer.jpg) no-repeat center top;
        background-size: cover;
        background-blend-mode: multiply;
        font-size: 20px;
    }

    footer a {
        color: var(--white);
    }

    footer a:hover {
        color: var(--accent-2);
    }

    .footer-main {
        flex-flow: row nowrap;
        align-items: center;
        justify-content: space-between;
        gap: 40px;
    }

    .footer-main__social {
        order: 1;
        flex: 1;
    }

    .footer-main__social svg {
        width: 43px;
        height: 43px;
    }

    .footer-main__nav {
        order: 2;
        width: auto;
        margin-bottom: 0;
    }

    .footer-main__nav ul {
        flex-direction: row;
        gap: 30px;
    }

    .footer-main__contacts {
        order: 3;
        flex: 1;
    }
}

/*===== HEADER/FOOTER =====*/

/*===== FRONT PAGE HERO =====*/

.hero-front {
    margin-bottom: 60px;
    border-top: 1px solid #d7d7d7;
}

.hero-front__inner {
    display: flex;
    flex-direction: column-reverse;
}

.hero-front__content {
    text-align: center;
}

.hero-front__content-inner {
    padding: 20px 10px;
    pointer-events: all;
}

.hero-front__content h1 {
    font-size: 25px;
    line-height: normal;
    font-weight: 700;
    margin-top: 0;
    margin-right: auto;
    margin-bottom: 0;
    margin-left: auto;
    max-width: 600px;
    text-transform: uppercase;
    letter-spacing: .007em;
}

.hero-front__content p {
    margin-top: 13px;
    margin-right: auto;
    margin-bottom: 0;
    margin-left: auto;
    max-width: 425px;
}

.hero-front__content button {
    margin: 35px 0 0;
}

.hero-front__slider .slide {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    width: 100%;
}

.hero-front__slider .slide-left,
.hero-front__slider .slide-right {
    height: 100%;
    overflow: hidden;
}

.hero-front__slider .slide-left {
    display: none;
}

.hero-front__slider .slide-right {
    width: 100%;
}

.hero-front__slider .slide-left img,
.hero-front__slider .slide-right img {
    display: block;
    object-fit: cover;
    width: 100%;
    height: 100%;
    aspect-ratio: 1.5 / 1;
}

.hero-front__slider .owl-nav {
    position: absolute;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0 20px;
    width: 100%;
    top: 50%;
    left: 0;
    right: 0;
    margin: 0 auto;
    transform: translateY(-50%);
}

.hero-front__slider .owl-nav button {
    opacity: .58;
    background: transparent;
}

.hero-front__slider .owl-nav button:hover {
    opacity: 1;
}

.hero-front__slider .owl-dots {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 14px;
    margin: 17px auto 0;
}

.hero-front__slider .owl-dot {
    display: block;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--accent-2) !important;
    box-shadow: none;
    border: none;
    margin: 0;
}

.hero-front__slider .owl-dot:hover,
.hero-front__slider .owl-dot.active {
    background: var(--accent-1) !important;
}

@media (min-width: 768px) {
    .hero-front {
        margin-bottom: 100px;
    }

    .hero-front__content h1 {
        font-size: 36px;
        line-height: 48px;
    }

    .hero-front__content p {
        margin-top: 24px;
    }
}

@media (min-width: 992px) {
    .hero-front {
        margin-bottom: 167px;
    }

    .hero-front__inner {
        display: block;
    }

    .hero-front__content {
        position: absolute;
        top: 0;
        left: 0;
        z-index: 2;
        pointer-events: none;
        max-width: 700px;
        text-align: left;
    }

    .hero-front__content h1 {
        font-size: 54px;
        line-height: 65px;
        font-weight: 400;
    }

    .hero-front__content p {
        margin-top: 20px;
    }

    .hero-front__content h1,
    .hero-front__content p {
        margin-left: 0;
        margin-right: 0;
    }

    .hero-front__slider .slide {
        height: 600px;
    }

    .hero-front__slider .slide-right {
        width: 60%;
    }

    .hero-front__slider .slide-left img,
    .hero-front__slider .slide-right img {
        aspect-ratio: auto;
    }

    .hero-front__slider .slide-right img {
        object-position: left center;
    }

    .hero-front__slider .owl-nav {
        padding: 0 40px 0 calc(40% + 40px);
    }

    .hero-front__slider .owl-dots {
        position: absolute;
        justify-content: flex-start;
        right: 60%;
        transform: translateX(100%);
    }
}

@media (min-width: 1300px) {
    .hero-front__content {
        left: calc((100% - 470px) / 2.85);
    }

    .hero-front__slider .slide {
        display: grid;
        grid-template-columns: 1fr 470px 1.85fr;
        height: 730px;
    }

    .hero-front__slider .slide-left {
        display: block;
    }

    .hero-front__slider .slide-right {
        width: auto;
        max-width: none;
    }

    .hero-front__slider .owl-nav {
        padding: 0 80px;
    }
}

@media (min-width: 1500px) {
    .hero-front__content {
        left: calc((100% - 624px) / 2.754);
    }

    .hero-front__slider .slide {
        display: grid;
        grid-template-columns: 1fr 624px 1.754fr;
    }

    .hero-front__slider .owl-dots {
        right: calc((100% - 624px) / 2.754 * 1.754);
    }
}

/*===== FRONT PAGE HERO =====*/

/*===== CATALOG GRID =====*/
.catalog-section {
    margin-bottom: 60px;
}

.catalog-section__row {
    display: grid;
    grid-template-columns: 100%;
    gap: 10px;
}

.catalog-section__row + .catalog-section__row {
    margin-top: 10px;
}

.catalog-item {
    display: block;
    position: relative;
    height: auto;
    overflow: hidden;
    filter: blur(0);
}

.catalog-item img {
    aspect-ratio: 2 / 1;
}

.catalog-item .catalog-item__title {
    position: absolute;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 20px;
    font-size: 24px;
    line-height: 1em;
    font-weight: 700;
    top: 20px;
    left: 20px;
    z-index: 2;
}

.catalog-item__title svg {
    position: relative;
    display: block;
    top: 2px;
}

.catalog-item .catalog-item__image {
    display: block;
    object-fit: cover;
    width: 100%;
    height: 100%;
}

.catalog-item__hover {
    position: absolute;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 10px;
    height: 100%;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    color: var(--white);
    font-size: 20px;
    line-height: 27px;
    font-weight: 400;
    text-align: center;
    z-index: -1;
    opacity: 0;
    transition: var(--transition);
    backdrop-filter: blur(0);
}

.catalog-item__hover > div {
    max-width: 300px;
}

.catalog-item__hover-button {
    position: relative;
    font-size: 37px;
    line-height: 1em;
}

.catalog-item__hover-button svg {
    position: absolute;
    top: calc(100% + 18px);
    right: 0;
    left: 0;
    margin: 0 auto;
}


.catalog-item:hover {
    color: var(--white);
}

@media (min-width: 768px) {
    .catalog-section {
        margin-bottom: 10px;
    }
}

@media (min-width: 992px) {

    .catalog-section {
        margin-bottom: 156px;
    }

    .catalog-section__row {
        grid-template-columns: repeat(12, 1fr);
        gap: 27px 40px;
    }

    .catalog-section__row + .catalog-section__row {
        margin-top: 27px;
    }

    .catalog-item {
        height: 390px;
    }

    .catalog-item img {
        aspect-ratio: auto;
    }

    .catalog-item .catalog-item__title {
        font-size: 37px;
        font-weight: 400;
    }

    .catalog-item__title svg {
        display: none;
    }

    .catalog-item:hover .catalog-item__hover {
        backdrop-filter: blur(10.5px);
        background: rgba(255, 255, 255, .1);
        box-shadow: inset 30.3667px -30.3667px 30.3667px rgba(194, 194, 194, 0.1), inset -30.3667px 30.3667px 30.3667px rgba(255, 255, 255, 0.1);
        opacity: 1;
        z-index: 1;
    }

    .catalog-section__row:nth-child(odd) .catalog-item:first-of-type,
    .catalog-section__row:nth-child(odd) .catalog-item:only-of-type {
        grid-column: 1 / 6;
    }

    .catalog-section__row:nth-child(odd) .catalog-item:last-of-type:not(:only-of-type) {
        grid-column: 6 / 13;
    }

    .catalog-section__row:nth-child(even) .catalog-item:first-of-type,
    .catalog-section__row:nth-child(even) .catalog-item:only-of-type {
        grid-column: 1 / 8;
    }

    .catalog-section__row:nth-child(even) .catalog-item:last-of-type:not(:only-of-type) {
        grid-column: 8 / 13;
    }

    .catalog-section .catalog-item:only-of-type {
        grid-column: 1 / 13 !important;
    }
}


/*===== CATALOG GRID =====*/

/*===== BENEFITS =====*/

.benefits-section {
    margin-bottom: 60px;
}

.benefits-section__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: 30px;
}

.benefits-section__item {
    width: 100%;
    text-align: center;
}

.benefits-section__item > div {
    font-size: 25px;
    line-height: 1em;
    margin-bottom: 16px;
}

.benefits-section__item > p {
    margin: 0;
}

@media (min-width: 768px) {

    .benefits-section {
        margin-bottom: 100px;
    }

}

@media (min-width: 992px) {

    .benefits-section {
        margin-bottom: 156px;
    }

    .benefits-section__inner {
        flex-direction: row;
        align-items: flex-start;
        justify-content: center;
        gap: 52px;
    }

    .benefits-section__item {
        width: 350px;
    }

    .benefits-section__item > div {
        font-size: 37px;
        margin-bottom: 29px;
    }
}

/*===== BENEFITS =====*/

/*===== ABOUT =====*/

.about-section {
    margin-bottom: 60px;
}

.about-section__inner {
    display: grid;
    grid-template-columns: 100%;
    gap: 20px;
}

.about-section__slider h2 {
    display: block;
    text-align: center;
}

.about-section__slider img {
    object-fit: cover;
    height: auto;
    aspect-ratio: 2 / 1;
}

.about-section__slider .owl-dots {
    margin-top: 8px;
}

.about-section__slider-meta {
    flex-direction: row-reverse;
}

.about-section__slider h2,
.about-section__content h2 {
    font-size: 25px;
    line-height: normal;
    font-weight: 700;
    text-transform: uppercase;
    text-wrap: balance;
    margin: 0 auto 35px;
    text-align: center;
    padding: 0 10%;
}

.about-section__content h2 {
    display: none;
}

.about-section__content ul {
    list-style: none;
    margin: 0 0 30px;
    padding: 0;
}

.about-section__content ul li {
    position: relative;
    padding-left: 33px;
}

.about-section__content ul li::before {
    position: absolute;
    display: block;
    content: '';
    width: 18px;
    height: 1px;
    background: var(--black);
    left: 0;
    top: 14px;
}

.about-section__content ul li + li {
    margin-top: 13px;
}

.about-section__numbers {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    flex-flow: column wrap;
    gap: 23px;
}

.about-section__numbers > div {
    text-align: center;
}

.about-section__numbers > div > div {
    margin: 0;
    font-size: 35px;
    line-height: 1em;
    font-weight: 400;
    text-transform: uppercase;
    white-space: nowrap;
}

.about-section__numbers > div > p {
    margin: 2px 0 0;
}

@media (min-width: 768px) {

    .about-section {
        margin-bottom: 100px;
    }

}

@media (min-width: 992px) {

    .about-section {
        margin-bottom: 200px;
    }

    .about-section__slider h2 {
        display: none;
    }

    .about-section__content h2 {
        display: block;
        font-size: 54px;
        line-height: 65px;
        padding: 0;
        font-weight: 400;
        text-align: left;
    }

    .about-section__slider img {
        height: 510px;
        aspect-ratio: auto;
    }

    .about-section__slider .owl-dots {
        margin-top: 45px;
    }

    .about-section__inner {
        grid-template-columns: calc(50% + 20px) calc(50% - 20px);
        gap: 0;
    }

    .about-section__content {
        padding-left: 25px;
    }

    .about-section__content ul {
        margin: 0 0 70px;
    }

    .about-section__content ul li + li {
        margin-top: 35px;
    }

    .about-section__numbers {
        flex-flow: row nowrap;
        align-items: flex-start;
        padding-left: 18px;
        gap: 0;
    }

    .about-section__numbers > div > div {
        font-size: 54px;
        line-height: 65px;
    }
}

@media (min-width: 992px) and (max-width: 1200px) {
    .about-section {
        margin-bottom: 300px;
    }

    .about-section__numbers {
        position: absolute;
        left: 0;
        right: 0;
        gap: 40px;
        padding-right: 0;
        padding-top: 50px;
    }

    .about-section__numbers > div {
        flex: 1;
    }
}

@media (min-width: 1500px) {
    .about-section__slider {
        margin-left: -80px;
    }
}

/*===== ABOUT =====*/

/*===== FORM =====*/

.form-section {
    margin-bottom: 60px;
    text-align: center;
}

.form-section__inner {
    position: relative;
    background-repeat: no-repeat;
    background-position: center;
    background-size: auto;
    padding: 20px 20px 30px;
}

.form-section__inner::before {
    position: absolute;
    display: block;
    content: '';
    border: 1px solid var(--black);
    background: transparent;
    border-top-right-radius: 87px;
    top: -14px;
    left: 0;
    right: 0;
    bottom: 0;
    pointer-events: none;
}

.form-section h2 {
    font-size: 25px;
    line-height: 1em;
    font-weight: 700;
    text-transform: uppercase;
    margin: 0 0 12px;
}

.form-section h2 + p {
    max-width: 400px;
    margin: 0 auto 38px;
}

.form-section form {
    position: relative;
    margin: 0 auto;
}

.form-section .form-groups {
    display: flex;
    flex-direction: column;
    gap: 40px;
    align-items: flex-start;
    justify-content: space-between;
}

.form-section .form-group {
    margin-bottom: 0;
    flex: 1;
}

.form-section .form-control input {
    border: none;
    border-bottom: 2px solid var(--black);
    border-radius: 0;
    box-shadow: none;
    color: var(--black);
    background: transparent;
    font-size: 25px;
    line-height: 1em;
    font-family: 'Arsenal', sans-serif;
    padding: 2px 0;
    width: 100%;
}

.form-section .form-control input::placeholder {
    color: var(--black);
}

.form-section .form-action {
    position: relative;
    margin-top: 54px;
}

.form-control .wpcf7-not-valid-tip {
    font-size: 14px;
}

.wpcf7-not-valid-tip {
    position: absolute;
    text-align: left;
    font-weight: 700;
}

.wpcf7-spinner {
    position: absolute;
    top: 18px;
    margin: 0;
    right: 0;
}

.wpcf7 form .wpcf7-response-output {
    position: absolute;
    display: none;
    font-size: 14px;
    line-height: normal;
    text-align: center;
    padding: 10px 20px;
    left: 0;
    right: 0;
    margin: 0;
    top: calc(100% + 10px);
    background: rgba(255, 255, 255, .3);
}

@media (min-width: 768px) {
    .form-section {
        margin-bottom: 100px;
    }
}

@media (min-width: 992px) {
    .form-section {
        margin-bottom: 156px;
    }

    .form-section__inner {
        padding: 53px 0 59px;
    }

    .form-section__inner::before {
        top: -38px;
        right: 80px;
        border-top-right-radius: 200px;
    }

    .form-section h2 {
        font-size: 54px;
        line-height: 65px;
        margin: 0 0 30px;
        font-weight: 400;
    }

    .form-section h2 + p {
        max-width: 1000px;
    }

    .form-section form {
        width: 66.66666%;
    }

    .form-section .form-groups {
        flex-direction: row;
        gap: 120px;
    }
}

/*===== FORM =====*/

/*===== PARTNERS =====*/

.partners-section {
    margin-bottom: 60px;
    text-align: center;
}

.partners-section h2 {
    font-size: 25px;
    line-height: 1em;
    font-weight: 700;
    text-transform: uppercase;
    margin: 0 0 11px;
}

.partners-section__items {
    display: flex;
    flex-flow: row wrap;
    align-items: center;
    justify-content: center;
    gap: 0;
}

.partners-section__items > div {
    display: flex;
    align-items: center;
    justify-content: center;
}

.partners-section__items > div img {
    display: block;
    margin: 0;
    max-width: 120px;
    max-height: 70px;
    width: auto;
    height: auto;
}

@media (min-width: 768px) {
    .partners-section {
        margin-bottom: 100px;
    }
}

@media (min-width: 992px) {
    .partners-section {
        margin-bottom: 155px;
    }

    .partners-section h2 {
        font-size: 54px;
        line-height: 65px;
        font-weight: 400;
    }

    .partners-section__items > div img {
        max-width: 100%;
        max-height: none;
        height: auto;
    }
}

/*===== PARTNERS =====*/

/*===== WORK =====*/

.work-section {
    margin-bottom: 60px;
}

.work-section__inner {
    display: grid;
    grid-template-columns: 100%;
    gap: 35px;
    text-align: center;
}

.work-section__content h2 {
    font-size: 25px;
    line-height: 1em;
    font-weight: 700;
    text-transform: uppercase;
    margin: 0;
}

.work-section__content p {
    margin: 12px 0 0;
}

.work-section__content .button {
    display: none;
    margin: 39px 0 0;
}

.work-section__slider .owl-item > div {
    position: relative;
    width: 280px;
    height: 500px;
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
}

.work-section__slider .owl-item .slider-item__hover {
    position: absolute;
    text-align: center;
    padding: 30px 20px;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    opacity: 0;
    transition: var(--transition);
}

.work-section__slider .owl-item .slider-item__hover h4 {
    margin: 0 0 13px;
    font-size: 26px;
    line-height: normal;
    font-weight: 400;
}

.work-section__slider .owl-item.active .slider-item__hover {
    -webkit-backdrop-filter: blur(10.5px);
    backdrop-filter: blur(10.5px);
    background: rgba(255, 255, 255, .1);
    box-shadow: inset 30.3667px -30.3667px 30.3667px rgba(194, 194, 194, 0.1), inset -30.3667px 30.3667px 30.3667px rgba(255, 255, 255, 0.1);
    opacity: 1;
    z-index: 1;
}

.work-section__slider .owl-item.active + .owl-item.active .slider-item__hover {
    opacity: 0;
    z-index: 0;
}


.work-section__slider .owl-dots {
    margin-top: 19px;
}

@media (min-width: 768px) {
    .work-section {
        margin-bottom: 100px;
    }
}

@media (min-width: 992px) {
    .work-section {
        margin-bottom: 135px;
    }

    .work-section__inner {
        grid-template-columns: calc(33.333333% - 20px) calc(66.666666% + 20px);
    }

    .work-section__content h2 {
        font-size: 54px;
        line-height: 65px;
        font-weight: 400;
    }

    .work-section__content .button {
        display: inline-block;
    }

    .work-section__slider .owl-item > div {
        width: 370px;
        height: 700px;
    }


    .work-section__slider .owl-item .slider-item__hover {
        padding: 30px 42px;
    }

    .work-section__slider .owl-item .slider-item__hover h4 {
        font-size: 37px;
    }
}


@media (min-width: 1300px) {
    .work-section__inner {
        gap: 0;
        text-align: left;
    }

    .work-section__content p {
        margin: 12px 0 0;
        padding-right: 95px;
    }
}

/*===== WORK =====*/

/*===== TRENDS =====*/

.trends-section {
    margin-bottom: 60px;
    text-align: center;
}

.trends-section h2 {
    font-size: 25px;
    line-height: 1em;
    font-weight: 700;
    text-transform: uppercase;
    margin: 0 0 30px 0;
}

.trends-section__inner {
    display: grid;
    grid-template-columns: 100%;
    gap: 40px;
}

.trend {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 0;
}

.trend img {
    display: block;
    width: 100%;
    margin-bottom: 18px;
    object-fit: cover;
    height: 200px;
}

.trend h4 {
    font-size: 20px;
    line-height: 1em;
    margin: 0 0 8px;
}

.trend h4 a{
	display: block;
	text-decoration: underline;
}
.trend h4:hover a{
	text-decoration: none;
}

.trend > div {
    font-size: 16px;
    line-height: 1em;
    margin: 0 0 24px;
}

.trend p {
    margin: 0;
}

@media (min-width: 768px) {
    .trends-section {
        margin-bottom: 100px;
    }

    .trend h4 {
        font-size: 28px;
    }

    .trend > div {
        font-size: 14px;
    }

    .trend p {
        font-size: 18px;
    }

    .trend img {
        width: 250px;
        height: auto;
        aspect-ratio: 1 / 1;
    }
}

@media (min-width: 900px) {
    .trends-section h2 {
        font-size: 54px;
        line-height: 65px;
        font-weight: 400;
        margin-bottom: 59px;
    }
}

@media (min-width: 992px) {
    .trends-section {
        margin-bottom: 137px;
    }

    .trends-section__inner {
        grid-template-columns: 1fr calc((100% + 40px) / 3) 1fr;
    }

    .trend {
        padding: 0 0 40px;
    }
}

@media (min-width: 1300px) {
    .trends-section {
        border-bottom: 1px solid var(--black);
    }

    .trends-section__inner {
        gap: 0;
    }

    .trend {
        padding: 0 40px 87px;
    }

    .trend img {
        width: 330px;
    }

    .trend h4 {
        font-size: 37px;
    }

    .trend > div {
        font-size: 25px;
    }

    .trend p {
        font-size: 20px;
    }

    .trend:nth-child(3n+2) {
        border-left: 1px solid var(--black);
        border-right: 1px solid var(--black);
    }
}

/*===== TRENDS =====*/


/*===== BLOG =====*/

.blog-section {
    margin-bottom: 100px;
    text-align: center;
}

.blog-section h2 {
    font-size: 25px;
    line-height: 1em;
    font-weight: 700;
    text-transform: uppercase;
    margin: 0 0 30px 0;
}

.blog-section article {
    position: relative;
    display: block;
}

.blog-section article > a {
    display: block;
}

.blog-section article img {
    display: block;
    margin: 0;
    width: 100%;
    max-width: 100%;
    height: 306px;
    object-fit: cover;
}

.blog-section article .post-article__hover {
    padding: 10px 0 0;
    text-align: left;
    transition: var(--transition);
}

.blog-section article .post-article__hover h3 {
    font-size: 20px;
    line-height: normal;
    margin: 0 0 10px;
    transition: var(--transition);
}

.blog-section article .post-article__hover p {
    margin: 0;
}

.blog-section article > a:hover .post-article__hover {
    opacity: 1;
    z-index: 1;
}

.blog-section article > a:hover .post-article__hover h3:hover {
    color: var(--accent-2)
}

.blog-section article + article {
    margin-top: 40px;
}

.blog-section .button {
    margin: 34px auto 0;
}

@media (min-width: 768px) {
    .blog-section {
        margin-bottom: 100px;
    }
}

@media (min-width: 992px) {
    .blog-section {
        margin-bottom: 135px;
    }

    .blog-section h2 {
        font-size: 54px;
        line-height: 65px;
        font-weight: 400;
        margin-bottom: 23px;
    }

    .blog-section article .post-article__hover {
        position: absolute;
        padding: 30px;
        background: rgba(0, 0, 0, .58);
        color: var(--white);
        opacity: 0;
        z-index: 0;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
    }

    .blog-section article .post-article__hover h3 {
        max-width: 58.333333%;
        font-size: 37px;
        margin: 0 0 25px;
    }

    .blog-section article .post-article__hover p {
        max-width: 58.333333%;
    }
}

/*===== BLOG =====*/

/*===== CONTACTS =====*/

.contacts-section {
    margin-bottom: 60px;
}

.contacts-section__inner {
    display: flex;
    flex-direction: column-reverse;
    gap: 40px;
}

.contacts-image__left {
    display: none;
}

.contacts-section__inner h2 {
    font-size: 25px;
    line-height: 1em;
    font-weight: 700;
    text-transform: uppercase;
    margin: 0 0 6px 0;
}

.contacts-section__inner p {
    margin: 0 0 18px 0;
}

.contacts-section__inner img {
    display: block;
    height: auto;
    width: 100%;
    object-fit: cover;
}

.contacts-section form {
    position: relative;
}

.contacts-section .form-groups {
    display: flex;
    gap: 35px;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
}

.contacts-section .form-group {
    margin-bottom: 0;
    flex: 1;
    width: 100%;
}

.contacts-section .form-control input {
    border: none;
    border-bottom: 2px solid var(--black);
    border-radius: 0;
    box-shadow: none;
    color: var(--black);
    background: transparent;
    font-size: 16px;
    line-height: 1em;
    font-family: 'Arsenal', sans-serif;
    padding: 2px 0;
    width: 100%;
}

.contacts-section .form-control input::placeholder {
    color: var(--black);
}

.contacts-section .form-action {
    position: relative;
    margin-top: 54px;
}

@media (min-width: 768px) {
    .contacts-section {
        margin-bottom: 100px;
    }

    .contacts-section__inner {
        display: grid;
        grid-template-columns: 2fr 3fr;
    }
}

@media (min-width: 992px) {
    .contacts-section {
        margin-bottom: 150px;
    }

    .contacts-section__inner {
        display: grid;
        grid-template-columns: 3fr 4fr 5fr;
    }

    .contacts-section__inner h2 {
        font-size: 54px;
        line-height: 65px;
        font-weight: 400;
    }

    .contacts-section__inner img {
        height: 628px;
    }

    .contacts-image__left {
        display: block;
    }

    .contacts-image__content {
        padding-right: 54px;
    }

    .contacts-section .form-group {
        width: auto;
    }

    .contacts-section .form-control input {
        font-size: 25px;
    }

}

/*===== CONTACTS =====*/

/*===== PAGE CATALOG =====*/

.hero-catalog {
    padding: 0 0 19px;
}

.hero-catalog__inner {
    display: grid;
    grid-template-columns: 100%;
    gap: 20px;
}

#breadcrumbs {
    font-size: 16px;
    line-height: 1em;
    margin: 0;
    padding: 0;
}

#breadcrumbs a {
    color: #9E9E9E;
}

.hero-catalog__inner h1 {
    font-size: 25px;
    line-height: 1em;
    font-weight: 700;
    text-transform: uppercase;
    margin: 0;
    text-align: center;
}

.page-template-page-catalog .catalog-section {
    margin-top: 30px;
    margin-bottom: 40px;
}

.page-template-page-catalog .catalog-section h2 {
    font-size: 20px;
    line-height: 1em;
    font-weight: 700;
    text-transform: uppercase;
    margin: 0 0 12px 0;
}

.page-template-page-catalog .catalog-section__row.false {
    display: none;
}

.page-template-page-catalog .catalog-item img {
    transition: var(--transition);
}

.page-template-page-catalog .catalog-item:hover img {
    transform: scale(1.02);
    opacity: .8;
}

.page-template-page-catalog .catalog-row__show {
    display: inline-flex;
    flex-direction: column;
    gap: 5px;
    align-items: center;
    justify-content: center;
    margin: 22px auto 0;
    font-size: 16px;
    line-height: 1em;
    min-width: 300px;
    background: none;
    border: none;
    color: var(--black);
}

.page-template-page-catalog .catalog-row__show.false {
    display: none;
}

.page-template-page-catalog .catalog-row__show:hover {
    color: var(--accent-2)
}

.catalog-row__request {
    display: none;
    padding: 40px 0 30px;
    text-align: center;
}

@media (min-width: 992px) {
    .hero-catalog {
        padding: 35px 0 19px;
    }

    #breadcrumbs {
        padding: 30px 0 0;
    }

    .hero-catalog__inner {
        grid-template-columns: 1fr 2fr 1fr;
        gap: 40px;
    }

    .hero-catalog__inner h1 {
        font-size: 54px;
        line-height: 65px;
        min-height: 130px;
        font-weight: 400;
    }

    .page-template-page-catalog .catalog-section {
        margin-top: 0;
        margin-bottom: 60px;
    }

    .page-template-page-catalog .catalog-section h2 {
        font-size: 37px;
        font-weight: 400;
    }

    .page-template-page-catalog .catalog-row__show {
        font-size: 25px;
    }
}

/*===== PAGE CATALOG =====*/

/*===== MODAL/FORMS =====*/

.modal {
    display: none;
    width: 550px;
    background: var(--black);
    color: var(--white);
    padding: 42px 44px;
}

.modal-header {
    text-align: center;
    padding-bottom: 40px;
}

.modal-header h3 {
    font-size: 25px;
    line-height: 1em;
    font-weight: 700;
    text-transform: uppercase;
    margin: 0 auto 17px;
    max-width: 360px;
}

.modal-header p {
    margin: 0;
    font-size: 20px;
    line-height: 27px;
}

.modal-body {
    padding-bottom: 40px;
}

.modal-body .form-group {
    margin-bottom: 35px;
}

.modal-body .form-control input {
    border: none;
    border-bottom: 1px solid var(--white);
    border-radius: 0;
    box-shadow: 0;
    color: var(--white);
    background: transparent;
    font-size: 25px;
    line-height: 1em;
    font-family: 'Arsenal', sans-serif;
    padding: 2px 0;
    width: 100%;
}

.modal-body .form-control input::placeholder {
    color: var(--white);
}

.modal-body .form-action {
    position: relative;
    padding: 35px 0;
    text-align: center;
}

.modal-body .wpcf7-spinner {
    top: 53px;
}

.modal-body .wpcf7-not-valid-tip {
    text-align: center;
}

.modal-body .wpcf7 form .wpcf7-response-output {
    font-size: 14px;
    line-height: normal;
    text-align: center;
    padding: 20px 30px;
    top: auto;
}

.modal-wide {
    width: 100%;
    max-width: 950px;
}

.modal-wide .modal-header h3,
.modal-wide .modal-header p {
    max-width: 620px;
    margin-left: auto;
    margin-right: auto;
}

@media (min-width: 992px) {
    .modal-header h3 {
        font-size: 54px;
        line-height: 65px;
        font-weight: 400;
    }
}

/*===== MODAL/FORMS =====*/

/*===== POSTS =====*/
.posts {
    padding: 0
}

.posts-inner {
    display: grid;
    grid-template-columns: 100%;
    gap: 40px;
}

.posts-inner article {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.post-thumb {
    display: block;
    background: var(--black);
}

.post-thumb img {
    display: block;
    margin: 0;
    width: 100%;
    max-width: 100%;
    height: 250px;
    object-fit: cover;
    transition: var(--transition);
}

.posts-inner article h2 {
    font-size: 25px;
    line-height: normal;
    margin: 16px 0 21px;
}

.posts-inner article p {
    margin: 0;
}

article.post:hover .post-thumb img {
    opacity: .8;
}

.posts-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 80px;
    padding: 40px 0 60px;
}

.hero-post {
    padding: 0;
}

.hero-post a {
    display: block;
    padding: 10px 0;
}

.hero-post img {
    display: block;
    margin: 0 0 40px;
    width: 100%;
    max-width: 100%;
    height: 248px;
    object-fit: cover;
}

.hero-post h1 {
    margin: 0 0 40px;
    font-size: 25px;
    line-height: normal;
}

.post-content {
    padding: 0 0 40px;
}

.post-content__inner {
    width: 100%;
}

.post-content__inner h2,
.post-content__inner h3,
.post-content__inner h4,
.post-content__inner h5,
.post-content__inner h6 {
    margin: 30px 0 10px;
    line-height: normal;
}

.post-content__inner h2 {
    font-size: 25px;
}

.post-content__inner h3 {
    font-size: 23px;
}

.post-content__inner h4 {
    font-size: 21px;
}

.post-content__inner h5 {
    font-size: 20px;
}

.post-content__inner h6 {
    font-size: 18px;
}

.post-content__inner .button {
    margin-top: 50px;
}

@media (min-width: 992px) {
    .hero-post {
        padding: 40px 0 0;
    }

    .hero-post h1 {
        max-width: 58.333333%;
        font-size: 44px;
    }

    .posts {
        padding: 40px 0
    }

    .posts-inner {
        grid-template-columns: repeat(3, 1fr);
        gap: 90px 40px;
    }

    .post-content {
        padding: 0 0 100px;
    }

    .post-content__inner {
        max-width: 75%;
    }

    .post-content__inner h2,
    .post-content__inner h3,
    .post-content__inner h4,
    .post-content__inner h5,
    .post-content__inner h6 {
        margin: 60px 0 20px;
        line-height: normal;
    }

    .post-content__inner h2 {
        font-size: 36px;
    }

    .post-content__inner h3 {
        font-size: 32px;
    }

    .post-content__inner h4 {
        font-size: 28px;
    }

    .post-content__inner h5 {
        font-size: 24px;
    }

    .post-content__inner h6 {
        font-size: 22px;
    }

    .posts-pagination {
        padding: 100px 0 100px;
    }
}

/*===== POSTS =====*/

/*===== 404 =====*/

.hero-404 {
    min-height: 70vh;
    padding: 40px 0;
}

.hero-404__inner {
    text-align: center;
}

.hero-404 h1 {
    font-size: 44px;
    line-height: 50px;
    margin: 0 0 10px;
}

.hero-404 p {
    margin: 0 0 40px;
}

@media (min-width: 992px) {
    .hero-404 h1 {
        font-size: 54px;
        line-height: 65px;
    }
}

/*===== 404 =====*/

/*===== MOBILE =====*/

.fancybox-slide--html {
    padding: 0;
}

.modal-mobile {
    width: 100%;
    height: 100%;
    background: var(--white);
    padding: 0;
    color: var(--black)
}

.modal-mobile__header {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 51px;
    border-bottom: 1px solid #f7f7f7;
    padding: 0 10px;
}

.modal-mobile__header img {
    display: block;
    margin: 0 auto;
    max-width: 100px;
    height: auto;
}

.fancybox-slide--html .fancybox-close-small {
    top: 3px;
    right: auto;
    left: 3px;
}

.modal-mobile__menu ul {
    margin: 0 0 20px;
    padding: 0;
    list-style: none;
}

.modal-mobile__menu ul > li > a {
    display: block;
    padding: 10px 19px;
    font-size: 16px;
    line-height: 1em;
    border-bottom: 1px solid #f7f7f7;
}

.modal-mobile__menu ul > li:last-child > a {
    border-bottom: none;
}

.modal-mobile__menu ul > .current-menu-item > a {
    color: var(--accent-2);
}

.modal-mobile__phone {
    display: block;
    padding: 10px 19px;
    font-size: 16px;
    line-height: 1em;
}

.modal-mobile__social {
    display: block;
    padding: 10px 19px;
}

.modal-mobile__social svg {
    display: block;
    width: 22px;
    height: 22px;
}

/*===== MOBILE =====*/


/* Reserve the hero slider space before Owl Carousel initializes. */
@media (max-width: 991px) {
  .hero-front__slider.owl-carousel:not(.owl-loaded) { display: block; min-height: calc(66.667vw + 27px); }
  .hero-front__slider.owl-carousel:not(.owl-loaded) .slide { display: none; }
}
@media (min-width: 992px) {
  .hero-front__slider.owl-carousel:not(.owl-loaded) { display: block; min-height: 600px; }
  .hero-front__slider.owl-carousel:not(.owl-loaded) .slide { display: none; }
}
@media (min-width: 1300px) {
  .hero-front__slider.owl-carousel:not(.owl-loaded) { min-height: 730px; }
}

/* Hero text stays within its central column, 2026-09-30. */
@media(min-width:992px){.hero-front__content{width:40%;}.hero-front__content-inner{box-sizing:border-box;}.hero-front__content h1{max-width:100%;}}
@media(min-width:1300px){.hero-front__content{width:470px;}}
@media(min-width:1500px){.hero-front__content{width:624px;}}

/* Desktop hero: text left, one photograph right. */
@media(min-width:992px){
.hero-front__content{left:0;width:40%;max-width:none;}
.hero-front__content-inner{padding:32px clamp(20px,3vw,56px);box-sizing:border-box;}
.hero-front__content h1{max-width:100%;font-size:clamp(32px,3.3vw,54px);line-height:1.18;}
.hero-front__slider .slide{display:grid;grid-template-columns:40% 60%;}
.hero-front__slider .slide-left{display:none;}
.hero-front__slider .slide-right{width:auto;max-width:none;}
.hero-front__slider .slide-right img{object-position:center center;}
.hero-front__slider .owl-nav{padding:0 32px 0 calc(40% + 32px);}
.hero-front__slider .owl-dots{left:40%;right:0;width:60%;transform:none;justify-content:center;}
}

/* Home: catalog-to-materials spacing on phones only. */
@media (max-width: 767px) {
    body.home #catalog.catalog-section { margin-bottom: 48px; }
}

/* Villa Nova contact forms: shared phone typography. */
@media (max-width: 430px) {
 .wpcf7 form.wpcf7-form input:is([name="uname"],[name="uphone"]),
 .wpcf7 form.wpcf7-form input:is([name="uname"],[name="uphone"])::placeholder {
  font-size: 16px !important;
  line-height: 1.3 !important;
 }
}
@media (max-width: 767px) {
 /* Preserve the approved home project form field geometry. */
 body.home .form-section #wpcf7-f462-o1 input:is([name="uname"],[name="uphone"]) { height: 37.5px; }
}
/* Feedback occupies its own space instead of overlapping the next section. */
.wpcf7 form.wpcf7-form .wpcf7-response-output {
 position: static !important;
 inset: auto !important;
 max-width: 100%;
 box-sizing: border-box;
 overflow-wrap: anywhere;
}

/* Prevent the existing 35px grid gap from extending the home carousel beyond its container. */
@media (min-width: 992px) and (max-width: 1299px) {
    body.home .work-section__inner {
        grid-template-columns: calc(33.333333% - 20px) calc(66.666666% - 15px);
    }
}
