body {
    --color-aqua: #e6f9fd;
}

.text-primary {
    color: #003b98;
}

.bg-primary {
    background-color: #3a3f69;
    color: white;
}

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

.h1 {
    font-size: 3rem;
}

.h3 {
    font-size: 1.8rem;
}

.d-flex {
    display: flex;
}

.align-items-center {
    align-items: center;
}

.justify-content-between {
    justify-content: space-between;
}

.flex-wrap {
    flex-wrap: wrap;
}

.flex-row {
    flex-direction: row;
}

.flex-col {
    flex-direction: column;
}

.flex-row-gap-4 {
    row-gap: 30px;
}

.flex-row-gap-3 {
    row-gap: 20px;
}

.flex-row-gap-2 {
    row-gap: 10px;
}

.my-0 {
    margin-bottom: 0;
    margin-top: 0;
}
footer .widget{
    margin-bottom: 30px;
}
footer .widget-mobile h4 {
    margin-top: 0px;
}
@media (min-width: 768px) {
    footer .widget{
        margin-bottom: 60px;
    }
    footer .widget-mobile h4 {
        margin-top: 16px;
    }
    .flex-md-row {
        flex-direction: row;
    }

    .order-md-2 {
        order: 2;
    }
}

.mb-auto {
    margin-bottom: auto;
}

.tp-banner {
    overflow: hidden;
    position: relative;
}

.font-aptos {
    font-family: 'Aptos', sans-serif;
}

.font-lato {
    font-family: 'Lato', sans-serif;
}

.tp-banner:after {
    content: " ";
    position: absolute;
    z-index: 20;
    background-color: rgba(0, 0, 0, 0.3);
    top: 0px;
    right: 0px;
    bottom: 0px;
    left: 0px;
}

.tp-banner.tp-chisiamo:after {
    display: none;
}

.tp-chisiamo-video {
    position: relative;
}

.tp-chisiamo-video:after {
    display: block;
    content: "";
    inset: 0 0 0 0;
    background-color: #195c8c;
    opacity: 0.8;
    z-index: 1;
    position: absolute;
}

/** HEADER **/
.logo-2 {
    padding-top: 8px;
    padding-bottom: 8px;
}

.logo-img {
    height: 84px;
}

.logo-row {
    width: 217px;
}

header.affix .logo-2 .logo-img, .header.affix.no-transparent .logo-2 .logo-img {
    height: 50px;
}

header.affix .logo-2, .header.affix.no-transparent .logo-2 {
    padding-top: 5px;
    padding-bottom: 5px;
}

@media (max-width: 1024px) {

    .logo-row {
        width: auto;
    }

    .logo-img {
        height: 50px;
    }

    .logo-2, .header.no-transparent .logo-2 {
        padding-top: 13px;
        padding-bottom: 13px;
    }
}

@media (min-width: 1024.1px) and (max-width: 1199.98px) {
    #main-menu .navbar .nav > li > a {
        margin-left: 5px;
        margin-right: 0px;
    }

    .logo-img {
        height: auto;
    }

    .logo-row {
        width: 180px;
    }
}

/* Below header */
.rs-footer {
    width: 140%;
    height: 250px;
    border-radius: 50% 50% 0 0/50%;
    position: absolute;
    left: -20%;
    bottom: -209px;
    background: #fff;
    z-index: 25;
}

.rs-show-bullets .tp-bullets.preview4 {
    z-index: 26;
}

.rs-show-bullets .tp-bullets.preview4 .bullet, .owl-page span {
    border-width: 1px !important;
    width: 10px !important;
    height: 10px !important;
    margin-left: 5px;
    margin-right: 2px;
}

.list-products {
    display: flex;
    flex-wrap: wrap;
    margin-left: -15px;
    margin-right: -15px;
}

.list-products .product-item {
    max-width: 50%;
    flex-basis: 50%;
    padding: 15px;
}

.list-products .product-item.product-item-2x {
    max-width: 100%;
    flex-basis: 100%;
}

.list-products .product-normal-item {
    display: block;
    padding: 20px;
    background: #ededed;
    border-radius: 5px;
    text-align: center;
}

.list-products .product-normal-item:hover {
    background-color: #dadada;
}

.list-products .product-normal-item img {
    max-height: 200px;
}

.list-products .product-curved-item {
    display: block;
    position: relative;
    overflow: hidden;
    background-color: #dadada;
    border-radius: 20px 20px 20px 20px; /*5px 5px 0px 0px */
}

.product-label {
    background: white;
    color: #003b98;
    font-size: 1.8rem;
    font-weight: bold;
    border-radius: 5px;
    text-align: center;
    padding: 15px;
    margin-top: 20px;
}

.product-curved-label {
    width: 140%;
    height: 280px;
    border-radius: 50% 50% 0 0/50%;
    position: absolute;
    left: -20%;
    bottom: -225px;
    background: #3a3f69;
    color: white;
    font-size: 3rem;
    font-weight: bold;
    z-index: 1;
    text-align: center;
    padding-top: 17px;
    transition: bottom 400ms ease-in-out;
}

.product-curved-item:hover .product-curved-label {

    bottom: -200px;
}

@media (min-width: 768px) {
    .list-products .product-item {
        max-width: 25%;
        flex-basis: 25%;
    }

    .list-products .product-item.product-item-2x {
        max-width: 50%;
        flex-basis: 50%;
    }

    .product-curved-label.label-left {
        width: calc(240% + 18px);
        left: calc(-20% - 1.5px);
        padding-right: calc(120% + 50px);
        text-align: right;
    }

    .product-curved-label.label-right {
        width: calc(240% + 18px);
        right: calc(-20% - 1.5px);
        padding-left: calc(120% + 50px);
        left: auto;
        text-align: left;
    }
}

.list-middle-icons ul {
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    margin: 0;
}

.list-middle-icons ul li {
    flex-basis: 33%;
    max-width: 33%;
}

.list-middle-icons ul li .icon {
    font-size: 4rem;
    margin-bottom: 0.5rem;
}

.list-middle-icons ul li a {
    display: block;
    padding: 40px 15px;
    text-align: center;
    color: white;
}

.list-middle-icons ul li a:hover {
    background-color: rgba(255, 255, 255, 0.2);
}

.list-middle-icons ul li a img {
    max-height: 50px;
    margin-bottom: 20px;
}


.row-promotion {
    display: flex;
    flex-wrap: wrap;
    margin-left: -15px;
    margin-right: -15px;
}

.row-promotion .col-promotion {
    max-width: 100%;
    flex-basis: 100%;
    padding: 15px;
}

.row-promotion video {
    max-width: 100%;
    height: 100%;
}

.list-promotion {
    list-style: none;
    display: block;
    height: 100%;
    width: 100%;
    border: 1px solid grey;
}

.list-promotion .promotion-item {
    display: flex;
    padding: 20px 20px 30px 20px;
    min-height: 200px;
}

.list-promotion .promotion-item .promotion-text {
    flex-basis: 66.66%;
    padding-right: 15px;
}

.list-promotion .promotion-item .promotion-img {
    flex-basis: 50%;
    min-width: 33.33%;
    max-width: 100%;
}

.list-promotion .promotion-item .promotion-img img {
    max-height: 100%;
    max-width: 100%;
}

@media (min-width: 768px) {
    .row-promotion .col-promotion {
        max-width: 50%;
        flex-basis: 50%;
    }

    .list-promotion .promotion-item {
        min-height: auto;
    }
}

.owl-page span {
    background-color: rgba(0, 0, 0, 0.5);
    border-width: 1px;
    border-style: solid;
    padding-left: 0px;
    padding-right: 0px;
}

.owl-page.active span, .owl-page:hover span {
    background-color: rgba(0, 0, 0, 0);
    border-color: rgba(0, 0, 0, 1);
    transform: none;
}

/* CHISIAMO page*/
.section-chisiamo {
    display: flex;
    flex-direction: column;
    padding: 40px 0 50px 0;
    gap: 60px;
}

.row-chisiamo {
    display: flex;
    align-items: stretch;
    flex-direction: column;
    gap: 30px;
}

.row-chisiamo > div {
    display: flex;
    flex-direction: column;
    justify-content: center;
    color: black;
}

.row-chisiamo h1 {
    color: #011C5D;
    font-weight: 900;
    font-family: 'Open Sans', Arial, Helvetica, sans-serif;
    margin: 0;
}

.row-chisiamo > div.col-caption {
    order: 1;
}

.row-chisiamo > div.col-cover {
    order: 2;
}

.row-chisiamo > div.col-cover img {
    border-radius: 50px;
}

@media (min-width: 768px) {
    .row-chisiamo {
        flex-direction: row;
        gap: 10px;
    }

    .row-chisiamo > div.col-caption {
        padding: 0 30px;
        order: unset;
    }

    .row-chisiamo > div.col-cover {
        min-width: 55%;
        max-width: 55%;
        order: unset;
    }
}

.pos-absolute {
    position: absolute;
}

/** Page privatelabel **/
.page-private-label {
    font-family: 'Atos', sans-serif;
}

@media (min-width: 1024px) {
    header ~ .section-private-label {
        padding-top: 135px;
    }

    header.affix ~ .section-private-label {
        padding-top: 60px;
    }
}

.fluid-font {
    font-size: 16px;
    @media (min-width: 768px) {
        font-size: 20px;
    }
    @media (min-width: 1024px) {
        font-size: 24px;
    }
}

.page-private-label .container {
    font-size: 1.4rem;
}

.section-private-label .pos-absolute {
    top: 20%;
    bottom: 0;
    left: 0;
    right: 0;
}

.section-private-label .pos-absolute .container {
    height: 100%;
    color: #337fb3;
    font-size: 1em;
    font-family: 'Atos', sans-serif;
}

.fluid-font h1, .fluid-font h2 {
    margin-top: 0;
    margin-bottom: 1em;
    font-size: 1.6em;
    font-weight: 900;
    color: #025fa4;
    font-family: 'Atos', sans-serif;
}

.fluid-font h2 {
    font-size: 1.4em;
}

.fluid-font .default {
    font-size: 1.4rem;
}

.page-private-label {
    color: #025fa4;
}

.private-label-icons {
    list-style: none;
    display: inline-flex;
    flex-wrap: wrap;
    margin-left: auto;
    margin-right: auto;
}

.private-label-icons {
    margin: -15px;
    font-size: 1.6rem;
}

.private-label-icons li {
    max-width: 50%;
    flex-basis: 50%;
}

.private-label-icons li > div {
    padding: 15px;
    display: flex;
    flex-direction: column;
    height: 100%;
}

.private-label-icons li img {
    margin-top: auto;
}

@media (min-width: 400px) {
    .private-label-icons {
        flex-wrap: nowrap;
    }

    .private-label-icons li {
        flex-basis: 25%;
        max-width: 242px;
    }
    .private-label-icons li label {
        word-break: break-all;
    }
}

@media (min-width: 480px) {
    .private-label-icons li label {
        word-break: normal;
    }
}

/***
List continuous
 */
.section-continuous {
    background-color: var(--color-aqua);
}

.list-continuous {
    display: flex;
    flex-direction: column;
    row-gap: 60px;
    --bullet-radius: 8px;
}

.list-continuous li {
    display: flex;
    position: relative;
    padding-top: 20px;
    padding-bottom: 20px;
}

.list-continuous li div {
    order: 2;
    z-index: 1;
}

.list-continuous li div.space {
    min-width: 30%;
    max-width: 30%;
    order: 4;
}

.list-continuous li:before {
    position: absolute;
    z-index: 0;
    background-color: #cdf0f6;
    top: 0px;
    bottom: 0px;
    width: 66%;
    content: "";
    right: 0;
    left: auto;
}


.list-continuous li h3 {
    margin-top: 0;
    margin-bottom: 10px;
    font-weight: 900;
    color: #025fa4;
    font-size: 1.8rem;
}

.list-continuous li label {
    order: 1;
    min-width: calc(var(--bullet-radius) + 30px);
    padding-top: var(--bullet-radius);
    line-height: calc(2 * var(--bullet-radius));
    text-align: center;
    font-size: 26px;
    font-weight: 900;
    position: relative;
    padding-left: var(--bullet-radius);
}

.list-continuous li label:after {
    position: absolute;
    left: -1px;
    border-left: 2px solid #488fbb;
    content: "";
    top: var(--bullet-radius);
    bottom: -110px;
    z-index: 1;
}

.list-continuous li:last-child label:after {
    bottom: 0;
}

.list-continuous li label:before {
    position: absolute;
    left: calc(0px - var(--bullet-radius));
    background-color: #488fbb;
    content: "";
    top: var(--bullet-radius);
    width: calc(2 * var(--bullet-radius));
    height: calc(2 * var(--bullet-radius));
    border-radius: 50%;
    z-index: 2;
}

@media (min-width: 768px) {
    .list-continuous {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        grid-auto-rows: 1fr;
    }

    .list-continuous li:nth-child(2n+1):before {
        right: auto;
        left: 0;
    }

    .list-continuous li:nth-child(2n+1) div.space {
        order: 0;
    }

    .list-continuous li:nth-child(2n+1) label {
        padding-right: var(--bullet-radius);
        padding-left: 0;
        order: 3;
    }

    .list-continuous li:nth-child(2n+1) label:after {
        left: auto;
        border-left: 0;
        right: -1px;
        border-right: 2px solid #488fbb;
    }

    .list-continuous li:nth-child(2n+1) label:before {
        right: calc(0px - var(--bullet-radius));
        left: auto;
    }

    .list-continuous li:nth-child(2n) {
        transform: translateY(calc(50% + 30px));
    }
}


.fw-light {
    font-weight: 100 !important;
}

/*** SECTION NUMBERS ***/

.section-numbers .animated-number {
    font-size: 50px;
    font-weight: 100;
    white-space: nowrap;
    line-height: 1;
}

.section-numbers .animated-number span:not(.open) {
    opacity: 0;
    transition: all 400ms ease-in-out;
}
