/*!
Theme Name: Vivoil Vivolo
Theme URI: https://www.vivoil.com/
Description: Tema custom per Vivoil. Ultimo aggiornamento: 28 gennaio 2025.
Version: 1.6.3
Author: Simone Montanari
Author URI: https://www.lascribacchina.it
Text Domain: vivoil
Domain Path: /languages
Tested up to: 6.6
Requires at least: 5.5
Requires PHP: 7.4

Vivoil Vivolo is based on Underscores https://underscores.me/, (C) 2012-2017 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

== Version 1.6.1 - 24.04.2025 ==
- Removed custom-header support and file (unused)
- Languages folder
*/


/*-------------------------------------
>>> TABLE OF CONTENTS:
----------------------------------------------------------------
# Normalize
# Typography
# Elements
# Forms
# Navigation
	## Links
    ## Buttons (link)
	## Menus
# Accessibility
# Alignments
# Clearings
# Widgets
# Layout
    ## Header
    ## Footer
    ## Home Page
	## Posts and pages
    ## Template page-parent.php
    ## Template contacts.php
    ## Blog and archives
    ## Products archives
    ## Single product
	## Comments
    ## Pagination
# Media
	## Captions
	## Galleries
# Shortcodes
# Plugins
    ## Testimonial
    ## Mailchimp for WordPress
    ## Ninja Form
    ## Yoast SEO (FAQ)
-------------------------------------*/


/*-------------------------------------
# Variable
-------------------------------------*/

:root {
    --color--accent: #35a835;
    --color--links: #eb1328;
    --color--links-hover: #bc0f20;
    --color--dark: #474747;
    --color--light: #f5f6fa;
}


/*-------------------------------------
# Typography
-------------------------------------*/

html {
    line-height: 1.15;
    /* 1 */
    -webkit-text-size-adjust: 100%;
    /* 2 */
}

body,
button,
input,
select,
optgroup,
textarea {
    color: #404040;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    font-size: 16px;
    font-size: 1rem;
    line-height: 1.5;
}


/* Headings */

h1,
h2,
h3,
h4,
h5,
h6 {
    clear: both;
    line-height: 1.25;
    margin-top: 0;
}

h1 {
    font-size: 1.4em;
    font-weight: normal;
    margin-bottom: 0;
}

h2 {
    font-size: 1.5em;
    font-weight: normal;
}

h3 {
    color: #666;
    font-size: 1.25em;
}

ul + h2,
p + h2 {
    margin-top: 1.5em;
}

p {
    margin-top: 0;
    margin-bottom: 1.5em;
}

p:last-child {
    margin-bottom: 0;
}

b,
strong {
    font-weight: 700;
}

dfn,
cite,
em,
i {
    font-style: italic;
}

blockquote {
    margin: 0 1.5em;
}

address {
    margin: 0 0 1.5em;
}

pre {
    background: #eee;
    font-family: "Courier 10 Pitch", Courier, monospace;
    font-size: 15px;
    font-size: 0.9375rem;
    line-height: 1.6;
    margin-bottom: 1.6em;
    max-width: 100%;
    overflow: auto;
    padding: 1.6em;
}

sub,
sup {
    font-size: 75%;
    line-height: 0;
    position: relative;
    vertical-align: baseline;
}

sub {
    bottom: -0.25em;
}

sup {
    top: -0.5em;
}

code,
kbd,
tt,
var {
    font-family: Monaco, Consolas, "Andale Mono", "DejaVu Sans Mono", monospace;
    font-size: 15px;
    font-size: 0.9375rem;
}

abbr,
acronym {
    border-bottom: 1px dotted #666;
    cursor: help;
}

mark,
ins {
    background: #fff9c0;
    text-decoration: none;
}

big {
    font-size: 125%;
}

small {
    font-size: 80%;
}

@media screen and (min-width: 1200px) {
    h1 {
        font-size: 2.3em;
    }
    h2 {
        font-size: 1.8em;
    }
}


/*-------------------------------------
# Elements
-------------------------------------*/

html {
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
}

*,
*:before,
*:after {
    /* Inherit box-sizing to make it easier to change the property for components that leverage other behavior; see https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/ */
    -webkit-box-sizing: inherit;
    box-sizing: inherit;
}

body {
    background: #fff;
    margin: 0;
}

hr {
    background-color: #ccc;
    border: 0;
    height: 1px;
    margin-bottom: 1.5em;
    overflow: visible;
}

ul,
ol {
    margin: 0 0 2em 0;
    padding-left: 30px;
}

ul {
    list-style-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="10px" height="10px" ><defs><linearGradient id="lgrad" x1="100%" y1="100%" x2="0%" y2="0%" ><stop offset="0%" style="stop-color:rgb(255,240,30);stop-opacity:1" /><stop offset="100%" style="stop-color:rgb(53,168,53);stop-opacity:1" /></linearGradient></defs><circle cx="5" cy="5" r="4px" fill="url(#lgrad)"/></svg>');
}

ol {
    list-style: decimal;
}

.entry-content li {
    margin-bottom: .3em;
}

.entry-content>ul li:last-of-type {
    margin-bottom: 0;
}

li>ul,
li>ol {
    margin: 1em 1em 1em 0;
}

dt {
    font-weight: bold;
}

dd {
    margin: 0 1.5em 1.5em;
}

img {
    border-style: none;
    height: auto;
    max-width: 100%;
}

figure {
    margin: 1em 0;
    /* Extra wide images within figure tags don't overflow the content area. */
}

table {
    margin: 0 0 1.5em;
    width: 100%;
}


/*-------------------------------------
# Forms
-------------------------------------*/

input,
select,
textarea,
radio,
checkbox {
    border-radius: 0;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    font: inherit;
    margin: 0 0 1rem;
}

input {
    overflow: visible;
}

select {
    text-transform: none;
}

select optgroup {
    font: inherit;
    font-weight: bold;
}

textarea {
    overflow: auto;
}


/* Remove the inner padding and cancel buttons in Chrome on OS X and Safari on OS X. */

input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
    -webkit-appearance: none;
}


/* Correct the cursor style of increment and decrement buttons in Chrome. */

input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
    height: auto;
}


/* Removes placeholder transparency in Firefox. */

input::-moz-placeholder,
textarea::-moz-placeholder {
    opacity: 1;
}


/* Improves consistency of cursor style for clickable elements */

input[type="button"],
input[type="submit"],
radio:not(:disabled),
checkbox:not(:disabled) {
    cursor: pointer;
}


/* Define consistent border, margin, and padding. */

fieldset {
    border: none;
    margin: 0;
    padding: 0;
}

input,
select,
textarea {
    max-width: 100%;
    width: 100%;
    border: 0 none;
    padding: 10px;
    background: #fff;
    color: #404040;
    border: 1px solid #e5e5e5;
    -webkit-transition: 0.2s ease-in-out;
    -o-transition: 0.2s ease-in-out;
    transition: 0.2s ease-in-out;
    -webkit-transition-property: color, background-color, border;
    -o-transition-property: color, background-color, border;
    transition-property: color, background-color, border;
}

input,
select:not([multiple]):not([size]) {
    height: 46px;
    vertical-align: middle;
    /* 1 */
    display: inline-block;
}

input:not(input),
select:not(select) {
    line-height: 38px;
}

select[multiple],
select[size],
textarea {
    padding-top: 4px;
    padding-bottom: 4px;
    vertical-align: top;
}

input:focus,
select:focus,
textarea:focus {
    background-color: #fff;
    border-color: #1e87f0;
    color: #666;
    outline: none;
}

input:disabled,
select:disabled,
textarea:disabled {
    background-color: #f8f8f8;
    color: #666;
    border-color: #e5e5e5;
}


/* Buttons */

button,
input[type="button"],
input[type="reset"],
input[type="submit"] {
    -webkit-appearance: button;
    display: inline-block;
    background: var(--color--links);
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" height="100" width="120"><polygon points="0,0 50,50 0,100" style="fill:white;stroke-width:0" /></svg>');
    background-repeat: no-repeat;
    background-position: 95% center;
    background-size: .8rem;
    border: 1px solid;
    border-color: var(--color--links);
    border-radius: 0;
    color: #fff;
    height: auto;
    font-family: inherit;
    font-size: 1em;
    font-weight: bold;
    line-height: 1.3;
    overflow: visible;
    padding: .5em 2em .6em 1em;
    text-transform: uppercase;
    -webkit-transition: .3s all;
    -o-transition: .3s all;
    transition: .3s all;
    width: auto;
}

button:hover,
input[type="button"]:hover,
input[type="reset"]:hover,
input[type="submit"]:hover {
    background-color: var(--color--links-hover);
    background-position: 100% center;
    border-color: var(--color--links-hover);
    color: #fff;
}

button:active,
button:focus,
input[type="button"]:active,
input[type="button"]:focus,
input[type="reset"]:active,
input[type="reset"]:focus,
input[type="submit"]:active,
input[type="submit"]:focus {
    background-color: var(--color--links-hover);
    color: #fff;
}


/* Placeholder */

input:-ms-input-placeholder {
    color: #666 !important;
}

input::-webkit-input-placeholder {
    color: #666;
}

input::placeholder {
    color: #666;
}

textarea:-ms-input-placeholder {
    color: #666 !important;
}

textarea::-webkit-input-placeholder {
    color: #666;
}

textarea::placeholder {
    color: #666;
}


/* Search Form */

.search-form label,
.search-form input {
    display: inline-block;
}

.search-form input {
    line-height: 1.3;
}

.search-modal {
    background-color: #fff;
    max-width: 400px;
    padding: 1.5em 1.5em 1em;
    position: absolute;
    top: 40px;
    right: 0;
    -webkit-transform: translateY(-1000px);
    -ms-transform: translateY(-1000px);
    transform: translateY(-1000px);
    -webkit-transition: -webkit-transform .2s;
    transition: -webkit-transform .2s;
    -o-transition: transform .2s;
    transition: transform .2s;
    transition: transform .2s, -webkit-transform .2s;
    z-index: 99999;
    width: 100%;
}

.search-modal.opened {
    -webkit-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
}

.search-modal>span {
    display: block;
    font-weight: bold;
    margin-bottom: .5em;
}

.search-trigger {
    color: var(--color--links);
    display: inline;
}

.close-search {
    position: absolute;
    right: 1.5em;
    top: .5em;
    font-weight: bold;
}

.search-trigger:hover,
.close-search:hover {
    cursor: pointer;
    color: var(--color--links-hover);
}


/*-------------------------------------
# Navigation
-------------------------------------*/


/*-------------------------------------
## Links
-------------------------------------*/

a,
a:visited {
    background-color: transparent;
    color: var(--color--links);
    text-decoration: none;
}

.entry-content a,
.entry-content a:visited,
p a,
p a:visited {
    text-decoration: underline;
}

a:hover,
a:focus,
a:active {
    color: var(--color--links-hover);
    text-decoration: underline;
}

a:focus {
    outline: thin dotted;
}

a:hover,
a:active {
    outline: 0;
}


/*-------------------------------------
## Buttons (link)
-------------------------------------*/

a.button {
    background-color: var(--color--links);
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" height="100" width="100"><polygon points="0,0 50,50 0,100" style="fill:white;stroke-width:0" /></svg>');
    background-repeat: no-repeat;
    background-position: 95% center;
    background-size: .8rem;
    border: 1px solid var(--color--links);
    color: #fff;
    cursor: pointer;
    font-weight: bold;
    line-height: 1em;
    padding: .5em 2em .6em 1em;
    text-decoration: none;
    -webkit-transition: all .3s;
    -o-transition: all .3s;
    transition: all .3s;
}


/* Hover + Focus */

a.button:hover,
a.button:focus {
    background-color: var(--color--links-hover);
    background-position: right center;
    border-color: var(--color--links-hover);
    color: #fff;
    text-decoration: none;
}


/* OnClick + Active */

a.button:active {
    background-color: var(--color--links-hover);
}


/* Disabled */

a.button:disabled {
    background-color: transparent;
    color: #999;
    border-color: #e5e5e5;
}


/*-------------------------------------
## Menus
-------------------------------------*/

.main-navigation {
    clear: both;
    display: block;
    float: left;
    width: 100%;
}

.main-navigation ul {
    display: none;
    list-style: none;
    margin: 0;
    padding-left: 0;
}

.main-navigation ul ul {
    -webkit-box-shadow: 0 3px 3px rgba(0, 0, 0, 0.2);
    box-shadow: 0 3px 3px rgba(0, 0, 0, 0.2);
    float: left;
    position: absolute;
    top: 100%;
    left: -999em;
    z-index: 99999;
}

.main-navigation ul ul ul {
    left: -999em;
    top: 0;
}

.main-navigation ul ul li:hover>ul,
.main-navigation ul ul li.focus>ul {
    left: 100%;
}

.main-navigation ul li:hover>ul,
.main-navigation ul li.focus>ul {
    left: auto;
}

.main-navigation li {
    float: left;
    position: relative;
}

.main-navigation a {
    display: block;
    text-decoration: none;
}

.responsive-menu-pro-item-link {
    font-weight: bold;
}


/* Small menu. */

.menu-toggle,
.main-navigation.toggled ul {
    display: block;
}

@media screen and (min-width: 37.5em) {
    .menu-toggle {
        display: none;
    }
    .main-navigation ul {
        display: block;
    }
}

.site-main .comment-navigation,
.site-main .posts-navigation,
.site-main .post-navigation {
    margin: 0 0 1.5em;
    overflow: hidden;
}

.comment-navigation .nav-previous,
.posts-navigation .nav-previous,
.post-navigation .nav-previous {
    float: left;
    width: 50%;
}

.comment-navigation .nav-next,
.posts-navigation .nav-next,
.post-navigation .nav-next {
    float: right;
    text-align: right;
    width: 50%;
}


/*-------------------------------------
# Accessibility
-------------------------------------*/


/* Text meant only for screen readers. */

.screen-reader-text {
    border: 0;
    clip: rect(1px, 1px, 1px, 1px);
    -webkit-clip-path: inset(50%);
    clip-path: inset(50%);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute !important;
    width: 1px;
    word-wrap: normal !important;
    /* Many screen reader and browser combinations announce broken words as they would appear visually. */
}

.screen-reader-text:focus {
    background-color: #f1f1f1;
    border-radius: 3px;
    -webkit-box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
    box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
    clip: auto !important;
    -webkit-clip-path: none;
    clip-path: none;
    color: #21759b;
    display: block;
    font-size: 14px;
    font-size: 0.875rem;
    font-weight: bold;
    height: auto;
    left: 5px;
    line-height: normal;
    padding: 15px 23px 14px;
    text-decoration: none;
    top: 5px;
    width: auto;
    z-index: 100000;
    /* Above WP toolbar. */
}


/* Do not show the outline on the skip link target. */

#content[tabindex="-1"]:focus {
    outline: 0;
}


/*-------------------------------------
# Alignments
-------------------------------------*/

.alignleft,
.aligncenter,
.alignright {
    clear: both;
    display: block;
    margin-left: auto;
    margin-right: auto;
    max-width: 100%;
}

@media screen and (min-width: 520px) {
    .alignleft,
    .alignright {
        display: inline;
        max-width: 45%;
        max-width: calc(45% - 1em);
    }
    .alignleft {
        float: left;
        margin-right: 2em;
    }
    .alignright {
        float: right;
        margin-left: 2em;
    }
}


/*-------------------------------------
# Clearings
-------------------------------------*/

.clear:before,
.clear:after {
    content: "";
    display: table;
    table-layout: fixed;
}

.clear:after {
    clear: both;
}


/*-------------------------------------
# Widgets
-------------------------------------*/

.widget {
    -webkit-box-shadow: 4px 4px 8px 4px rgba(138, 138, 138, 0.3);
    box-shadow: 4px 4px 8px 4px rgba(138, 138, 138, 0.3);
    margin: 0 0 1.5em;
    /* Make sure select elements fit in widgets. */
}

.widget select {
    max-width: 100%;
}

.widget h2,
.widget-title {
    font-size: 1.2em;
}

.widget-title {
    margin-bottom: 0;
    padding: 1rem;
}

.widget>div,
.widget>figure,
.widget>form,
.widget>ul {
    padding: 1rem;
}

.widget_categories ul {
    list-style: none;
    margin: 0;
}

.widget_categories ul li {
    border-bottom: 1px solid var(--color--light);
    margin-top: 0;
    max-width: 320px;
    padding: 0;
    text-transform: uppercase;
}

.widget_categories ul li:last-child {
    border-bottom: 0;
}

.widget_categories ul a {
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" height="100" width="100"><polygon points="0,0 50,50 0,100" style="fill:red;stroke-width:0" /></svg>');
    background-repeat: no-repeat;
    background-position: right center;
    background-size: 1rem;
    display: block;
    padding: .6rem 2rem .6rem .3rem;
    -webkit-transition: all .3s;
    -o-transition: all .3s;
    transition: all .3s;
    width: 100%;
}

.widget_categories ul a:hover {
    background-color: var(--color--links);
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" height="100" width="100"><polygon points="0,0 50,50 0,100" style="fill:white;stroke-width:0" /></svg>');
    color: #fff;
    text-decoration: none;
}


/*-------------------------------------
# Layout
-------------------------------------*/

.red {
    color: var(--color--links);
}

.bg-red {
    background-color: var(--color--links);
    color: #fff;
}

.bg-accent {
    background-color: var(--color--accent);
    color: #fff;
}

.bg-dark {
    background-color: var(--color--dark);
    color: #fff;
}

.bg-light {
    background-color: var(--color--light);
}

.bg-red a:not(.button),
.bg-accent a:not(.button),
.bg-dark a:not(.button),
.bg-red a:visited,
.bg-accent a:visited,
.bg-dark a:visited,
.bg-red a:focus,
.bg-accent a:focus,
.bg-dark a:focus {
    color: #fff;
    text-decoration: underline;
}

.bg-gradient {
    background: var(--color--accent);
    /* Old browsers */
    background: -webkit-linear-gradient(-135deg, #fff01e 0%, var(--color--accent) 100%);
    background: -o-linear-gradient(-135deg, #fff01e 0%, var(--color--accent) 100%);
    background: -webkit-linear-gradient(225deg, #fff01e 0%, var(--color--accent) 100%);
    background: -o-linear-gradient(225deg, #fff01e 0%, var(--color--accent) 100%);
    background: linear-gradient(-135deg, #fff01e 0%, var(--color--accent) 100%);
    color: #fff;
}

.a-line {
    display: block;
    background: var(--color--accent);
    /* Old browsers */
    background: -webkit-linear-gradient(-90deg, #fff01e 0%, var(--color--accent) 100%);
    background: -webkit-gradient(linear, right top, left top, from(#fff01e), to(var(--color--accent)));
    background: -webkit-linear-gradient(right, #fff01e 0%, var(--color--accent) 100%);
    background: -o-linear-gradient(right, #fff01e 0%, var(--color--accent) 100%);
    background: linear-gradient(-90deg, #fff01e 0%, var(--color--accent) 100%);
    filter: progid: DXImageTransform.Microsoft.gradient( startColorstr='#fff01e', endColorstr='var(--color--accent)', GradientType=1);
    height: 2px;
    width: 100%;
}

h2+.a-line {
    margin-top: -1em;
    margin-bottom: 1.5em;
}

.margin-s {
    margin-top: 2rem;
    margin-bottom: 2rem;
}

.margin-m {
    margin-top: 3rem;
    margin-bottom: 3rem;
}

.margin-l {
    margin-top: 4rem;
    margin-bottom: 4rem;
}

.relative {
    position: relative;
}

@media screen and (min-width: 768px) {
    .margin-m {
        margin-top: 4rem;
        margin-bottom: 4rem;
    }
    .margin-l {
        margin-top: 6rem;
        margin-bottom: 6rem;
    }
}


/*-------------------------------------
## Header
-------------------------------------*/

.site-header {
    background-color: #fff;
    border-top: 3px solid;
    -webkit-border-image: -webkit-linear-gradient(315deg, #fff01e 0%, var(--color--accent) 100%) 100;
    -o-border-image: -o-linear-gradient(315deg, #fff01e 0%, var(--color--accent) 100%) 100;
    border-image: linear-gradient(135deg, #fff01e 0%, var(--color--accent) 100%) 100;
    -webkit-box-shadow: -3px 8px 5px -6px rgba(138, 138, 138, 0.4);
    box-shadow: -3px 8px 5px -6px rgba(138, 138, 138, 0.4);
    padding: 0 16px 16px;
    position: fixed;
    top: 0;
    width: 100%;
    z-index: 100;
}

.site-header .vv-column {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -ms-flex-line-pack: center;
    align-content: center;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
    position: relative;
}

.top-bar {
    font-size: .8em;
    font-weight: bold;
    text-align: right;
    margin: 0;
    -webkit-transition: margin-bottom .3s;
    -o-transition: margin-bottom .3s;
    transition: margin-bottom .3s;
    width: 100%;
}

@media screen and (max-width: 420px) {
    .top-bar {
        margin-bottom: 16px;
    }
}

.top-bar a {
    display: inline-block;
}

.top-bar .language-selector {
    background-color: var(--color--links);
    color: #fff;
    margin-left: 1em;
    padding: .1em .7em .4em;
}

.top-bar .language-selector:hover {
    background-color: var(--color--links-hover);
    text-decoration: none;
    -webkit-transition: background-color .3s;
    -o-transition: background-color .3s;
    transition: background-color .3s;
}

.top-bar .language-selector a {
    color: #fff;
    margin-left: .6em;
    text-transform: uppercase;
}

.top-bar .language-selector a:hover {
    text-decoration: none;
}

.site-branding {
    max-width: 180px;
    -webkit-transition: max-width .3s;
    -o-transition: max-width .3s;
    transition: max-width .3s;
    width: 90%;
}

@media screen and (max-width: 420px) {
    .site-branding {
        max-width: 130px;
    }
}

.scrolled {
    padding-bottom: 8px;
}

.scrolled .top-bar {
    margin-bottom: 8px;
}

.scrolled .site-branding {
    max-width: 100px;
}

.site-title {
    line-height: 1;
    margin: 0;
    padding: 0;
}

.main-navigation {
    -webkit-align-self: center;
    -ms-flex-item-align: center;
    -ms-grid-row-align: center;
    align-self: center;
    width: 30px;
}

@media screen and (min-width: 1200px) {
    .top-bar {
        font-size: .9em;
    }
    .site-branding {
        max-width: 240px;
    }
    .scrolled .site-branding {
        max-width: 140px;
    }
    .main-navigation {
        margin-right: -15px;
        width: auto;
    }
}


/* Header fix for WP Admin bar */

.logged-in #masthead {
    top: 32px;
}

@media screen and (max-width: 782px) {
    .logged-in #masthead {
        position: absolute;
        top: 46px;
    }
}


/* Overlapping boxes */

.ob-box .ob-image {
    display: none;
}

@media screen and (min-width: 768px) {
    .ob-text {
        margin-left: auto;
        margin-right: auto;
        max-width: 720px;
    }
    @supports (display: grid) {
        .ob-box {
            display: grid;
            grid-template-columns: 40% 20% 40%;
            grid-template-rows: 130px auto 100px;
            width: 100%;
        }
        .ob-box .ob-left {
            grid-column: 1 / 3;
            grid-row: 1 / 3;
        }
        .ob-box .ob-right {
            grid-column: 2 / 4;
            grid-row: 2 / 4;
        }
        .ob-box .ob-left,
        .ob-box .ob-right {
            margin: 0;
        }
        .ob-box .ob-top-element {
            -webkit-box-shadow: 4px 4px 8px 4px rgba(138, 138, 138, 0.3);
            box-shadow: 4px 4px 8px 4px rgba(138, 138, 138, 0.3);
            position: relative;
            z-index: 5;
        }
        .ob-box .ob-image {
            background-position: center center;
            background-repeat: none;
            background-size: cover;
            display: block;
        }
        .ob-box .ob-text {
            margin-left: 0;
            margin-right: 0;
            max-width: none;
        }
    }
}


/* Columns and padding */

.vv-column {
    margin-left: auto;
    margin-right: auto;
    max-width: 90rem;
    padding-left: 5%;
    padding-right: 5%;
    width: 100%;
}

.vv-column.with-hero-image {
    padding-left: 0;
    padding-right: 0;
}

.no-padding {
    padding: 0;
}


/* Google Map & YouTube */

.google-maps {
    position: relative;
    padding-bottom: 37.5%;
    height: 0;
    overflow: hidden;
}

.google-maps iframe {
    position: absolute;
    left: 0;
    top: 0;
    height: 100% !important;
    width: 100% !important;
}

.responsive-video {
	position: relative;
	padding-bottom: 51.8%; /* 16:9 */
	padding-top: 25px;
	height: 0;
	margin-bottom: 1.5em;
}

.responsive-video iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

.responsive-video + h2,
.single .responsive-video + h2,
.single .responsive-video + h3 {
	margin-top: 1em;
}


/*-------------------------------------
## Footer
-------------------------------------*/

.site-footer {
    margin: 4rem 5%;
}

.site-footer .a-line {
    margin-top: 1em;
    margin-bottom: 1em;
}

.footer-brand img {
    width: 140px;
}

.footer-menu .menu {
    list-style: none;
    margin-top: 1em;
    padding-left: 0;
}

.footer-widgets .menu li {
    padding: 4px 0;
    margin-top: 0;
}

.site-footer .social-link {
    display: inline-block;
    margin-right: 6px;
}

.site-footer .social-link:last-child {
    margin-right: 0;
}

@media screen and (min-width: 25em) {
    .footer-widgets>div {
        display: inline-block;
    }
    .footer-menu {
        float: right;
    }
    .footer-menu .menu {
        margin-top: 0;
        margin-bottom: 0;
        text-align: right;
    }
    .site-footer .social-icons {
        float: right;
        padding-top: 6px;
    }
}


/*-------------------------------------
## Home Page
-------------------------------------*/


/* Hero */

.hero {
    padding-left: 0;
    padding-right: 0;
    position: relative;
}

.hero-content {
    padding: 2em;
    position: relative;
    z-index: 10;
}

.home-content .content {
    margin-bottom: 1.5em;
}

.hero-image {
    background-attachment: fixed;
    background-position: center center;
    background-size: cover;
    display: none;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
}

@media screen and (min-width: 768px) {
    .hero {
        height: 300px;
        height: 70vh;
    }
    .hero-content {
        bottom: 0;
        right: 0;
        padding: 2.5em 2.2em;
        position: absolute;
        width: 70%;
    }
    .hero-image {
        display: block;
        height: 300px;
        height: 60vh;
    }
}


/* Promo Banner */

.promo-banner {
    background-color: #ffee30;
    padding: 2em;
    position: relative;
}

.promo-banner-text {
    font-size: 1.3em;
    font-weight: bold;
    line-height: 1.2;
}

.promo-home .promo-banner-text {
    font-size: 1.6em;
    margin-bottom: 2.5rem;
}

.promo-banner-image {
    position: absolute;
    bottom: 0;
    right: 0;
    width: 26%
}

.promo-top {
    font-size: .9em;
    margin-left: -16px;
    margin-right: -16px;
    overflow: hidden;
    padding-top: .4rem;
    padding-bottom: .6rem;
    text-align: center;
    -webkit-transition: all .2s ease-out;
    -o-transition: all .2s ease-out;
    transition: all .2s ease-out;
}

.scrolled .promo-top {
    font-size: 0;
    height: 0;
    padding: 0;
}

.promo-top .promo-banner-text {
    font-size: 1.1em;
    font-weight: bold;
    line-height: 1;
}

.promo-top .promo-banner-button {
    display: inline-block;
    margin-left: 1em;
    margin-right: 1em;
    padding: 0.15em 2em 0.3em 0.8em;
}

@media screen and (min-width: 768px) {
    .promo-home {
        position: absolute;
        bottom: 0;
        left: 0;
        width: 30%;
    }
    .promo-home .promo-banner-text {
        font-size: 1.8em;
        max-width: 80%;
    }
    .promo-banner-image {
        position: absolute;
        bottom: 0;
        right: 0;
        width: 43%
    }
    .promo-top {
        font-size: 1em;
    }
}

@media screen and (max-width: 800px) {
    .promo-banner-image {
        width: 32%;
    }
}

@media screen and (min-width: 1280px) {
    .promo-banner-image {
        width: 50%;
    }
}


/* Home Content */

@media screen and (min-width: 1200px) {
    .home-content {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
        -ms-flex-align: center;
        align-items: center;
        -webkit-box-pack: justify;
        -ms-flex-pack: justify;
        justify-content: space-between;
    }
    .home-content .content {
        margin-bottom: 0;
        width: calc(55.555% - 2rem);
    }
    .home-content .image {
        width: 44.444%;
    }
}


/* Features */

.features-list {
    padding: 2em;
}

.vivoil-feature .icon {
    display: block;
    font-size: 1.2em;
    margin-bottom: .5em;
}

.vivoil-feature .icon svg * {
    fill: url(#icon-fill);
}

@media screen and (min-width: 1200px) {
    .features-list {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-pack: justify;
        -ms-flex-pack: justify;
        justify-content: space-between;
        padding: 2.5em 2.2em;
    }
    .vivoil-feature {
        font-size: 1.3em;
        width: 30%;
    }
    .vivoil-feature .icon {
        font-size: 2em;
    }
}


/* Product Type Card */

.product-type-card {
    -webkit-box-shadow: 4px 4px 8px 4px rgba(138, 138, 138, 0.3);
    box-shadow: 4px 4px 8px 4px rgba(138, 138, 138, 0.3);
    margin-top: 2rem;
}

.product-type-card h3 {
    margin-bottom: 0;
    padding: .5em;
}

.product-type-card img {
    border-bottom: 1px solid var(--color--accent);
}

.product-type-card .product-info {
    padding: 1em;
}

.product-type-card .menu {
    list-style: none;
    margin: 0;
    padding: 0;
}

.product-type-card .menu li {
    border-bottom: 1px solid var(--color--links);
    margin-top: 0;
    max-width: 320px;
    padding: 0;
    text-transform: uppercase;
}

.product-type-card .menu li:last-child {
    border-bottom: 0;
}

.product-type-card .menu a {
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" height="100" width="100"><polygon points="0,0 50,50 0,100" style="fill:red;stroke-width:0" /></svg>');
    background-repeat: no-repeat;
    background-position: right center;
    background-size: 1rem;
    display: block;
    padding: .6rem 2rem .6rem .3rem;
    -webkit-transition: all .3s;
    -o-transition: all .3s;
    transition: all .3s;
    width: 100%;
}

.product-type-card .menu a:hover {
    background-color: var(--color--links);
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" height="100" width="100"><polygon points="0,0 50,50 0,100" style="fill:white;stroke-width:0" /></svg>');
    color: #fff;
    text-decoration: none;
}

@media screen and (min-width: 768px) {
    .product-types-cards {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: start;
        -ms-flex-align: start;
        align-items: flex-start;
        -webkit-box-pack: justify;
        -ms-flex-pack: justify;
        justify-content: space-between;
    }
    .product-type-card {
        width: 32%
    }
}

@media screen and (min-width: 1200px) {
    .product-type-card {
        width: 30%
    }
    .product-type-card h3 {
        font-size: 1.5em;
    }
    .product-type-card .menu a {
        font-size: 1.1em;
    }
}


/* Latest Articles */

.last-article {
    margin-bottom: 3em;
}

.last-article .entry-title {
    font-size: 1.5em;
    padding: 0.5em 0;
    margin-bottom: 0.1em;
}

.last-article .entry-title a {
    color: #000;
}

.last-article .entry-title a:hover {
    color: var(--color--links);
}

.last-article .entry-meta {
    display: inline-block;
    font-size: 0.9em;
    margin-bottom: 0;
    padding: 0.1em 0.5rem;
    width: auto;
}

.last-article img {
    float: right;
    padding-left: 0.25em;
    padding-bottom: 0.25em;
}

.last-article .button {
    display: inline-block;
    margin-top: 1em;
}

@media screen and (min-width: 680px) {
    .last-article {
        margin-bottom: 0;
    }
    .latest-articles {
        display: grid;
        grid-template-columns: 1fr 1fr 1fr;
        column-gap: 3em;
    }
    .latest-articles h2 {
        grid-column: 1 / 4;
        grid-row: 1 / 2;
    }
    .latest-articles .a-line {
        grid-column: 1 / 4;
        grid-row: 2 / 3;
        margin-bottom: 3em;
    }
}


/* Box Newsletter */

.the-form {
    padding: 2em;
}

.the-form h2 {
    font-weight: normal;
}

@media screen and (min-width: 1200px) {
    .the-form {
        padding: 2.5em 2.2em;
    }
}


/*-------------------------------------
## Posts and pages
-------------------------------------*/

.entry-header,
.page-header {
    width: 100%;
}

.entry-title,
.page-title {
    padding: .75em 5% 1em;
}

.archive.tax-vv_products_tags .entry-title.bg-gradient {
    background: none;
    background-color: var(--color--dark);
}

.breadcrumbs {
    font-size: .8em;
    margin-top: .4em;
    margin-bottom: 2em;
}

.entry-content,
.entry-excerpt {
    max-width: 45em;
}

.post-thumbnail {
    margin-bottom: 2em;
}

.with-hero-image .entry-content {
    margin-left: 5%;
    margin-right: 5%;
}

.post .entry-meta {
    padding-top: .5rem;
    padding-bottom: .5rem;
}

.post .tags-links {
    float: right;
}

.post .edit-link {
    display: block;
}

.post .byline {
    float: right;
}

.single-post .cat-links {
	border-bottom: 1px solid #eee;
	border-top: 1px solid #eee;
	display: block;
	padding-bottom: 0.5em;
	padding-top: 0.5em;
	text-align: center;
}

.social-share {
    padding: 1rem 1rem 2rem;
}

.social-share svg {
    margin-right: .5rem;
}

.post-thumbnail img {
    display: block;
}

.single .post-thumbnail img {
	width: 100%;
}

.single .entry-footer {
    margin-top: 3em;
}

.edit-link {
    display: block;
    margin-top: 2em;
    text-align: center;
}

@media screen and (max-width: 75em) {
    .entry-content {
        margin-left: auto;
        margin-right: auto;
        max-width: 45em;
    }
    .entry-excerpt {
        margin-left: auto;
        margin-right: auto;
    }
}

@media screen and (min-width: 75em) {
    .content-wrapper {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-pack: justify;
        -ms-flex-pack: justify;
        justify-content: space-between;
    }
    .with-hero-image .post-thumbnail {
        height: 600px;
        height: 80vh;
        margin-left: auto;
        margin-right: auto;
        max-width: 90rem;
        overflow: hidden;
        position: absolute;
        top: 0;
        left: 0;
        z-index: -10;
    }
    .with-hero-image .post-thumbnail img {
        height: 600px;
        height: 80vh;
        -o-object-fit: cover;
        object-fit: cover;
        -o-object-position: center bottom;
        object-position: center bottom;
    }
    .with-hero-image .column-wrapper {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-pack: justify;
        -ms-flex-pack: justify;
        justify-content: space-between;
        padding-top: 600px;
        padding-top: 80vh;
        padding-right: 5%;
        z-index: 10;
    }
    .with-hero-image .content-wrapper {
        display: block;
        background-color: #fff;
        margin-top: -128px;
        margin-top: -27vh;
        width: 55em;
    }
    .with-hero-image .entry-title,
    .with-hero-image .breadcrumbs {
        padding-left: 3rem;
    }
    .with-hero-image .entry-content {
        margin-left: 3em;
        margin-right: 3em;
    }
    .with-hero-image .cta-wrapper {
        margin-top: 3em;
    }
    .post-content-wrapper {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-pack: justify;
        -ms-flex-pack: justify;
        justify-content: space-between;
    }
}

@media screen and (min-width: 85em) {
    .with-hero-image .entry-title,
    .with-hero-image .breadcrumbs {
        padding-left: 7rem;
    }
    .with-hero-image .entry-content {
        margin-left: 7em;
    }
}


/* Page call-to-action */

.cta-wrapper,
.mobile-cta-wrapper {
    max-width: 23em;
    width: 100%;
}

.cta-wrapper .floating-cta {
    display: none;
}

.mobile-cta-wrapper {
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 2em;
}

a.floating-cta,
a.mobile-cta {
    -webkit-box-shadow: 4px 4px 8px 4px rgba(138, 138, 138, 0.3);
    box-shadow: 4px 4px 8px 4px rgba(138, 138, 138, 0.3);
    color: #fff;
    display: block;
    font-size: 1.1em;
    font-weight: bold;
    padding: 1.2em 1.2em 4em 1.2em;
    -webkit-transition: background-color .3s, color .3s;
    -o-transition: background-color .3s, color .3s;
    transition: background-color .3s, color .3s;
    width: 100%;
}

a.floating-cta:focus,
a.mobile-cta:focus {
    color: #fff;
    outline: thin dotted;
    text-decoration: none;
}

a.floating-cta:hover,
a.floating-cta:active,
a.mobile-cta:hover,
a.mobile-cta:active {
    background-color: var(--color--links-hover);
    color: #fff;
    text-decoration: none;
}

.floating-cta svg,
.mobile-cta svg {
    display: block;
    position: absolute;
    bottom: 1.5em;
    right: 1.2em;
    -webkit-transition: all .3s;
    -o-transition: all .3s;
    transition: all .3s;
}

.floating-cta:hover svg,
.mobile-cta:hover svg {
    bottom: 1em;
}

@media screen and (min-width: 75em) {
    .cta-wrapper {
        margin-left: 3em;
        margin-top: 3em;
    }
    .cta-wrapper .floating-cta {
        display: block;
    }
    .single .cta-wrapper {
        margin-top: 0;
    }
    .mobile-cta-wrapper {
        display: none;
    }
}


/* Catalogues */

.catalogues-block {
    margin-top: 20px;
}

@media screen and (min-width: 768px) {
    .catalogues {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -ms-flex-wrap: wrap;
        flex-wrap: wrap;
        -webkit-box-pack: justify;
        -ms-flex-pack: justify;
        justify-content: space-between;
    }
    .catalogues .catalogues-block {
        width: 45%;
    }
}


/*-------------------------------------
## Template page-parent.php
-------------------------------------*/

.page-template-page-parent .entry-excerpt {
    margin-top: 3em;
    margin-bottom: 3em;
}

.page-template-page-parent .entry-content {
    margin-top: 2em;
}

.page-template-page-parent .page-children {
    padding-left: 5%;
    padding-right: 5%;
}

.page-template-page-parent .category-card a {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    text-decoration: none;
}

.page-template-page-parent .category-card img {
    -webkit-box-ordinal-group: 0;
    -ms-flex-order: -1;
    order: -1;
}

@media screen and (min-width: 75em) {
    .page-template-page-parent .entry-excerpt {
        font-size: 1.1em;
    }
    .page-template-page-parent .page-children {
        padding-left: 2.5%;
        padding-right: 2.5%;
    }
}

@media screen and (min-width: 94em) {
    .page-template-page-parent .page-children {
        margin-left: auto;
        margin-right: auto;
        max-width: 90em;
        padding-left: 0;
        padding-right: 0;
    }
}


/*-------------------------------------
## Template contacts.php
-------------------------------------*/

.page-template-contacts .entry-content {
    width: 100%;
}

@media screen and (min-width: 57.5em) {
    .page-template-contacts .entry-content {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-pack: justify;
        -ms-flex-pack: justify;
        justify-content: space-between;
        max-width: none;
    }
    .page-template-contacts .contact-page-information,
    .page-template-contacts .contact-page-form {
        width: 46%;
    }
}


/*-------------------------------------
## Blog and archives
-------------------------------------*/

.blog .standard-sidebar {
    display: none;
}

.loop-wrapper article,
.loop-wrapper article {
    -webkit-box-shadow: 4px 4px 8px 4px rgba(138, 138, 138, 0.2);
    box-shadow: 4px 4px 8px 4px rgba(138, 138, 138, 0.2);
    margin-bottom: 3em;
    max-width: 45em;
}

.loop-wrapper article .entry-title {
    padding: 2rem 2rem 2rem;
    margin-bottom: 0;
    -webkit-transition: background-color .3s;
    -o-transition: background-color .3s;
    transition: background-color .3s;
}

.loop-wrapper article .entry-title a {
    display: block;
}

.loop-wrapper article .entry-title:hover {
    background-color: var(--color--links);
}

.loop-wrapper article .entry-title:hover a {
    color: #fff;
    text-transform: none;
}

.loop-wrapper article .entry-meta {
    padding: .3rem 2rem;
}

.loop-wrapper article .byline {
    float: right;
}

.loop-wrapper article .post-thumbnail {
    display: block;
    margin-bottom: 0;
    width: 100%;
}

.loop-wrapper article .post-thumbnail img {
    display: block;
    height: 300px;
    -o-object-fit: cover;
    object-fit: cover;
    width: 100%;
}

.loop-wrapper article .entry-content {
    padding: 2rem;
}

.loop-wrapper article .entry-footer {
    border-top: 1px solid var(--color--accent);
    padding: .5rem 2rem;
}

@media screen and (min-width: 75em) {
    .blog-wrapper {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-pack: justify;
        -ms-flex-pack: justify;
        justify-content: space-between;
    }
    .blog .standard-sidebar {
        display: block;
        max-width: 20em;
        width: 100%;
    }
    .archive-descriptio .blog-description {
        font-size: 1.1em;
    }
}


/*-------------------------------------
## Products archives
-------------------------------------*/

.taxonomy-content {
    position: relative;
}

.taxonomy-content .entry-excerpt {
    margin-bottom: 0;
}

.sub-categories {
    font-weight: bold;
    list-style: none;
    padding: 0;
    max-width: 45em;
    width: 100%;
}

.sub-categories li {
    padding: .3em .8em .4em;
    -webkit-transition: all .3s;
    -o-transition: all .3s;
    transition: all .3s;
}

.sub-categories li:hover {
    background-color: #666;
}

.sub-categories li a {
    color: #fff;
    display: block;
}

.sub-categories li a:hover {
    text-decoration: none;
}

@media screen and (min-width: 800px) {
    .taxonomy-content {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-pack: justify;
        -ms-flex-pack: justify;
        justify-content: space-between;
    }
    .sub-categories {
        width: 33.333333%;
    }
}

.products {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
}

.products .product-card {
    -webkit-box-shadow: 4px 4px 8px 4px rgba(138, 138, 138, 0.2);
    box-shadow: 4px 4px 8px 4px rgba(138, 138, 138, 0.2);
    margin-bottom: 2em;
    position: relative;
    width: 100%;
}

.product-card .product-title {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    background-color: var(--color--light);
    color: var(--color--links);
    font-size: 1em;
    font-weight: bold;
    margin-bottom: 0;
    min-height: 52px;
    padding: .5rem 1rem;
}

.product-card .product-group {
    display: block;
    background-color: var(--color--dark);
    color: var(--color--light);
    font-size: .85em;
    font-weight: bold;
    padding: .2em 1rem .3em;
    text-decoration: none;
    -webkit-transition: background-color .3s;
    -o-transition: background-color .3s;
    transition: background-color .3s;
}

.product-card img {
    display: block;
    margin: .5rem auto 2rem;
}

.product-card .product-tag {
    display: block;
    background-color: var(--color--light);
    color: #666;
    font-size: .9em;
    font-weight: bold;
    padding: .4em 1rem;
    position: absolute;
    bottom: 0;
    text-decoration: none;
    -webkit-transition: background-color .3s;
    -o-transition: background-color .3s;
    transition: background-color .3s;
    width: 100%;
}

.product-card .product-tag:hover {
    background-color: #666;
    color: var(--color--light);
}

.product-card .product-link {
    display: block;
}

.product-card .product-link:hover {
    text-decoration: none;
}

.product-card .product-link:hover .product-title {
    background-color: var(--color--links);
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" height="10" width="10"><line x1="5" y1="0" x2="0" y2="5" style="stroke:var(--color--links-hover);stroke-width:1" /><line x1="5" y1="10" x2="10" y2="5" style="stroke:var(--color--links-hover);stroke-width:1" /></svg>');
    color: #fff;
    text-decoration: none;
}

.product-card .product-link:hover .product-tag {
    text-decoration: none;
}


/* Change background color according to category name */

body[class*="group-0"] .entry-title,
body[class*="gruppo-0"] .entry-title,
body[class*="gruppe-0"] .entry-title,
li[vvgroup*="0"],
.product-group[vvgroup*="0"] {
    background: #c93c28;
}

body[class*="group-1"] .entry-title,
body[class*="gruppo-1"] .entry-title,
body[class*="gruppe-1"] .entry-title,
li[vvgroup*="1"],
.product-group[vvgroup*="1"] {
    background: #009900;
}

body[class*="group-2"] .entry-title,
body[class*="gruppo-2"] .entry-title,
body[class*="gruppe-2"] .entry-title,
li[vvgroup*="2"],
.product-group[vvgroup*="2"] {
    background: #faf528;
    color: #555;
}

li[vvgroup*="2"] a {
    color: #555;
}

li[vvgroup*="2"]:hover a {
    color: #fff;
}

body[class*="group-3"] .entry-title,
body[class*="gruppo-3"] .entry-title,
body[class*="gruppe-3"] .entry-title,
li[vvgroup*="3"],
.product-group[vvgroup*="3"] {
    background: #027bc4;
}

.product-group:hover {
    background: #666;
}

.product-group[vvgroup*="2"]:hover {
    color: #fff;
}

@media screen and (min-width: 320px) {
    .products {
        margin-left: -1em;
        margin-right: -1em;
    }
    .products .product-card {
        margin-right: 1em;
        margin-left: 1em;
        width: calc(50% - 2em);
    }
}

@media screen and (min-width: 800px) {
    .products .product-card {
        width: calc(33.333% - 2em);
    }
    .product-card .product-title {
        font-size: 1.1em;
    }
}

@media screen and (min-width: 1200px) {
    .products {
        margin-left: -1.5em;
        margin-right: -1.5em;
    }
    .products .product-card {
        margin: 0 1.5em 3em;
        width: calc(33.333% - 3em);
    }
}

@media screen and (min-width: 1440px) {
    .products .product-card {
        width: calc(25% - 3em);
    }
}


/* Product Category Cards */

.product-categories {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
}

.product-categories .category-card {
    -webkit-box-shadow: 4px 4px 8px 4px rgba(138, 138, 138, 0.2);
    box-shadow: 4px 4px 8px 4px rgba(138, 138, 138, 0.2);
    margin-bottom: 2em;
    position: relative;
    -webkit-transition: background-color .3s;
    -o-transition: background-color .3s;
    transition: background-color .3s;
    width: 100%;
}

.category-card:hover {
    background-color: var(--color--links-hover);
}

.category-card a {
    display: block;
    font-size: 0;
    text-decoration: none !important;
}

.category-card h2 {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    border-bottom: 3px solid #fff;
    color: #fff;
    font-size: 1.2rem;
    padding: .8rem 1rem 1rem;
    margin-bottom: 0;
    min-height: 80px;
}

.category-card img {
    line-height: 0;
    font-size: 0;
}

@media screen and (min-width: 335px) {
    .product-categories {
        margin-left: -1em;
        margin-right: -1em;
    }
    .product-categories .category-card {
        margin-right: 1em;
        margin-left: 1em;
        width: calc(50% - 2em);
    }
}

@media screen and (min-width: 702px) {
    .product-categories .category-card {
        width: calc(33.333% - 2em);
    }
}

@media screen and (min-width: 1070px) {
    .product-categories {
        margin-left: -1.5em;
        margin-right: -1.5em;
    }
    .product-categories .category-card {
        margin: 0 1.5em 3em;
        width: calc(33.333% - 3em);
    }
    .category-card h2 {
        font-size: 1.4rem;
        min-height: 90px;
    }
}

@media screen and (min-width: 1104px) {
    .product-categories .category-card {
        width: calc(25% - 3em);
    }
}


/*-------------------------------------
## Single product
-------------------------------------*/

.vv-product .call-to-action {
    margin-top: 2em;
    text-align: center;
}

.vv-product .call-to-action a,
.vv-product .call-to-action a:hover,
.vv-product .call-to-action a:visited {
    color: #fff;
    display: inline-block;
}

.vv-product .call-to-action .pdf-curves {
    margin-bottom: 35px;
}

.file-size {
    font-size: .8em;
    padding-left: .5em;
}

.vv-product .entry-content,
.vv-product .entry-excerpt {
    max-width: 90em;
}

@media screen and (max-width: 30em) {
    .file-size {
        display: block;
    }
}

.pdf-curves h4 {
    margin-bottom: .5em;
}

@media screen and (max-width: 57.5em) {
    .product-configurations {
        margin-left: auto;
        margin-right: auto;
        max-width: 45em;
    }
}

.product-configurations>h2 {
    line-height: 1;
    padding: 1rem 0 1.2rem;
    margin-top: 2rem;
    margin-bottom: 0;
}

.product-description {
    margin-bottom: 1.5em;
}

.configurations-list {
    list-style: none;
    margin: .75rem 0 3rem;
    padding: 0;
}

.configuration-gallery {
    margin: 0 auto;
    max-width: 40.5em;
}

.configuration-gallery ul {
    list-style: none;
    padding: 0;
}

.product-pictures {
    margin-top: 1.5em;
    margin-bottom: 2em;
}

.product-pictures img {
    -webkit-box-shadow: 4px 4px 8px 4px rgba(138, 138, 138, 0.2);
    box-shadow: 4px 4px 8px 4px rgba(138, 138, 138, 0.2);
    display: block;
    margin-left: auto;
    margin-right: auto;
    max-width: 175px;
}

.configuration-gallery .gallery {
    margin-top: 2em;
}

.configuration-gallery .gallery img {
    -webkit-box-shadow: 2px 2px 4px 2px rgba(138, 138, 138, 0.2);
    box-shadow: 2px 2px 4px 2px rgba(138, 138, 138, 0.2);
}

.configuration-files h4 {
    margin-bottom: 1em;
}

.step-files {
    margin: 2em 0 3rem;
}


/* Step files table */

.step-files-table {
    max-width: 37.5em;
}

@media screen and (max-width: 75em) {
    .step-files-table {
        font-size: .9em;
    }
}

@media screen and (max-width: 20em) {
    .step-files-table {
        font-size: .8em;
    }
}

.step-files-table thead {
    background-color: #e8e8e8;
}

.step-files-table th {
    color: #444;
    font-weight: bold;
    padding: .4em .2em;
    text-align: center;
}

.step-files-table td {
    padding: .2em;
    text-align: center;
    border-bottom: 1px solid #e8e8e8;
}


/* Layout Elementi Pompe Multiple nella pagina prodotto Pompe Multiple */

.pumps-elements-wrapper {
    display: none;
    margin-bottom: 3em;
}

.vv_products_categories-pompe-multiple~.pumps-elements-wrapper {
    display: block;
}

@media screen and (max-width: 57.5em) {
    .pumps-elements-wrapper {
        margin-left: auto;
        margin-right: auto;
        max-width: 45em;
    }
}

.pumps-elements-list {
    list-style: none;
    margin-left: 0;
    padding-left: 0;
}

.pumps-elements-list li {
    background-color: var(--color--light);
    border: 1px solid var(--color--light);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    margin-bottom: 1.5em;
}

.pumps-elements-list li a {
    line-height: 1.3;
    padding: .25em .75em;
}

@media screen and (min-width: 30em) {
    .product-pictures img {
        max-width: 350px;
    }
    .pumps-elements-list li a {
        font-size: 1.1em;
    }
}

@media screen and (min-width: 57.5em) {
    .vv-product .entry-content,
    .configuration-content {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -ms-flex-wrap: wrap;
        flex-wrap: wrap;
        -webkit-box-pack: justify;
        -ms-flex-pack: justify;
        justify-content: space-between;
    }
    .vv-product .product-title {
        padding: 2rem 3rem;
        width: 100%;
    }
    .vv-product h3 {
        font-size: 1.5em;
    }
    .vv-product .product-description,
    .vv-product .product-details,
    .configuration-gallery,
    .configuration-files {
        margin-top: 2em;
        margin-bottom: 1.5rem;
        width: 47.5%;
    }
    .vv-product .call-to-action {
        margin-top: 2em;
        width: 100%;
    }
    .configuration-model,
    .product-configuration .a-line {
        width: 100%;
    }
    .configuration-gallery {
        margin-left: 0;
        margin-right: 0;
    }
    .product-pictures {
        margin-top: 0;
    }
    .vv_products_categories-pompe-multiple~.pumps-elements-wrapper {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    }
    .pumps-elements-wrapper>h2 {
        width: 100%;
    }
    .pumps-elements-wrapper .pumps-elements {
        padding-right: 2em;
        width: 33.333333%;
    }
}

/*-------------------------------------
## Tables
-------------------------------------*/

.custom-table {
    max-width: 100%;
}

.custom-table thead {
    background-color: #35a835;
}

.custom-table thead th {
    color: #fff;
    font-weight: bold;
    padding: .4em .2em;
    text-align: center;
		text-transform: uppercase;
}

.custom-table tbody th {
	  background-color: #e8e8e8;
    color: #444;
    font-weight: bold;
    padding: .4em .2em;
    text-align: center;
}

.custom-table td {
    padding: .2em;
    text-align: center;
    border-bottom: 1px solid #e8e8e8;
}

.custom-table tbody tr th:nth-child(4),
.custom-table tbody tr th:nth-child(5) {
	max-width: 8em
}

@media screen and (max-width: 75em) {
    .custom-table {
        font-size: .9em;
    }
}

@media screen and (max-width: 20em) {
    .custom-table {
        font-size: .8em;
    }
}

.vivoil-table thead {
	background-color: #35A835;
	color: #fff;
}

.vivoil-table thead td {
    color: #fff;
    font-weight: bold;
    padding: .4em .2em;
    text-align: center;
}

.vivoil-table td {
    padding: .2em;
    text-align: center;
    border-bottom: 1px solid #e8e8e8;
}

.vivoil-table tbody td:first-child {
	font-weight: bold;
	text-align: left;
}

/*-------------------------------------
## Comments
-------------------------------------*/

.comment-content a {
    word-wrap: break-word;
}

.bypostauthor {
    display: block;
}


/*-------------------------------------
## Pagination
--------------------------------------*/

.pagination {
    border-top: 1px solid var(--color--light);
    border-bottom: 1px solid var(--color--light);
    margin-bottom: 2em;
    max-width: 45em;
    padding-top: .5em;
    padding-bottom: .5em;
    text-align: center;
}

.pagination .page-numbers {
    font-size: 1.1em;
    line-height: 1;
    padding: 0 .5em;
    margin-right: .5em;
}

.pagination .prev {
    float: left;
    margin-right: 0;
}

.pagination .next {
    float: right;
    margin-right: 0;
}


/*-------------------------------------
# Media
-------------------------------------*/

.page-content .wp-smiley,
.entry-content .wp-smiley,
.comment-content .wp-smiley {
    border: none;
    margin-bottom: 0;
    margin-top: 0;
    padding: 0;
}


/* Make sure embeds and iframes fit their containers. */

embed,
iframe,
object {
    max-width: 100%;
}


/* Make sure logo link wraps around logo image. */

.custom-logo-link {
    display: inline-block;
}


/*-------------------------------------
## Captions
-------------------------------------*/

.wp-caption {
    font-style: italic;
    border-bottom: 1px solid var(--color--accent);
    padding: .3rem;
    margin-bottom: 1.5em;
    max-width: 100%;
}

.wp-caption img[class*="wp-image-"] {
    display: block;
    margin-left: auto;
    margin-right: auto;
}

.wp-caption .wp-caption-text {
    margin: 0.8075em 0;
}

.wp-caption-text {
    text-align: center;
}


/*-------------------------------------
## Galleries
-------------------------------------*/

.gallery {
    margin: 3em 0 3em -.5em;
    width: calc(100% + 1.5em);
}

.gallery a {
    -webkit-box-shadow: none;
    box-shadow: none;
}

.gallery-item {
    display: inline-block;
    padding: .75em;
    line-height: 0;
    text-align: center;
    vertical-align: top;
    width: 100%;
}

.gallery-item a {
    display: block;
}

.gallery figcaption {
    display: none;
}

@media screen and (min-width: 300px) {
    .gallery-item {
        max-width: 50%;
    }
}

@media screen and (min-width: 460px) {
    .gallery-columns-3 .gallery-item,
    .gallery-columns-6 .gallery-item,
    .gallery-columns-7 .gallery-item {
        max-width: 33.33%;
    }
    .gallery-columns-4 .gallery-item,
    .gallery-columns-8 .gallery-item,
    .gallery-columns-9 .gallery-item {
        max-width: 25%;
    }
}

@media screen and (min-width: 600px) {
    .gallery-columns-5 .gallery-item {
        max-width: 20%;
    }
    .gallery-columns-6 .gallery-item {
        max-width: 16.66%;
    }
    .gallery-columns-7 .gallery-item {
        max-width: 14.28%;
    }
    .gallery-columns-8 .gallery-item {
        max-width: 12.5%;
    }
    .gallery-columns-9 .gallery-item {
        max-width: 11.11%;
    }
}

.gallery-caption {
    display: block;
    line-height: 1.35;
    text-align: left;
}

.single .gallery {
	margin-top: 1.5em;
	margin-bottom: 1.5em;
}

/*-------------------------------------
# Shortcodes
-------------------------------------*/

.vv-card {
	background-color: var(--color--light);
	border-left: 1.3em solid var(--color--accent);
	margin-bottom: 1.5em;
	padding: 16px;
	position: relative;
}

.vv-card h3 {
	color: #666;
}

.vv-card-number {
	color: #fff;
	display: block;
	font-size: 1.3em;
	font-weight: bold;
	position: absolute;
	left: -1.3rem;
	line-height: 1.1;
	top: 16px;
	text-align: center;
	width: 1.3rem;
}

.vv-card p {
    margin-bottom: 1em;
}

.vv-card p:last-child {
	margin-bottom: 0;
}

.vv-card + h2 {
    margin-top: 1.5em;
}

.icon-link + .icon-link {
    margin-top: -1.4em;
}

/*-------------------------------------
# Plugins
-------------------------------------*/

/*-------------------------------------
## Table of Contents
-------------------------------------*/

.ez-toc-title {
	font-weight: 700;
	margin-bottom: 0.5em;
}

.ez-toc-list {
	border-bottom: 1px solid var(--color--accent);
	font-size: 0.95em;
	margin-bottom: 1.5em;
	padding-bottom: 1.5em;
	padding-left: 1.2em;
}


/*-------------------------------------
## Testimonial
-------------------------------------*/

.sp-testimonial-free-wrapper {
    margin-top: 2em;
    margin-bottom: 2em;
}

.tfree-testimonial-content {
    font-size: 1.125em;
    font-style: italic;
}

.sp-testimonial-free-section h2.tfree-client-name {
    font-size: 1.2em;
}


/*-------------------------------------
## Mailchimp for WordPress
-------------------------------------*/

.mc4wp-error,
.mc4wp-success {
    color: #fff !important;
    background-color: var(--color--dark);
    font-weight: bold;
    margin-top: 1em;
    padding: 1em;
}

.mc4wp-error {
    background-color: var(--color--links);
}

.map-wrapper {
    position: relative;
    padding-bottom: 56%;
    /* This is the aspect ratio */
    height: 0;
    overflow: hidden;
}

.map-wrapper iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100% !important;
    height: 100% !important;
}


/*-------------------------------------
## Ninja Form
-------------------------------------*/

.ninja-form {
    padding: 1.5rem;
}

.nf-form-fields-required,
.ninja-forms-req-symbol {
    display: none;
}

#ninja_forms_required_items,
.nf-field-container {
    margin-bottom: 20px;
}

.nf-form-fields-required {
    margin-bottom: 1em;
}

@media screen and (min-width: 28em) {
    .ninja-form {
        padding: 2.5rem;
    }
}

.contact-form {
    width: 100%;
}


/*-------------------------------------
## Yoast SEO
-------------------------------------*/

.schema-faq {
    margin-bottom: 3em;
}

.schema-faq-section:not(:last-child) {
    border-bottom: 1px solid #ccc;
    margin-bottom: 1em;
    padding-bottom: 1em;
}

.schema-faq-question {
    display: block;
    font-size: 1.15em;
    font-weight: 400;
    margin-bottom: 0.5em;
    padding-right: 1.5em;
    position: relative;
}

.schema-faq-question:hover {
    cursor: pointer;
}

.schema-faq-question::after {
    background-color: var(--color--accent);
    border-radius: 50%;
    color: #fff;
    content: "+";
    display: inline-block;
    position: absolute;
    right: 0;
    height: 1.25em;
    line-height: 1;
    text-align: center;
    width: 1.25em;
}

.schema-faq-question.active::after {
    content: "-";
}

p.schema-faq-answer {
    background-color: #f2f2f2;
    display: none;
    margin-bottom: 1.5em;
    padding: 0.75em 1em 1.25em;
}

p.schema-faq-answer br {
    margin-bottom: 0.5em;
}

.active+p.schema-faq-answer {
    margin-top: 1em;
    margin-bottom: 0.5em;
}