/* @import url("fonts/kallisto.css"); */
/* @import url("https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100..900;1,100..900&display=swap"); */

:root {
    --dark-1: #171717;
    --grey: #e9eef2;
    --dark-grey: #4a4a4a;
    --red: #fe1601;
    --red-rgb: 254, 22, 1;
    --red-op: #fe16018e;

    /*--scrollbar-w: 5px;
    --scrollbar-w-neg: -5px;*/
}
/*body,
html {
    width: calc(100vw - var(--scrollbar-w));
}*/
body {
    color: black;
    font-family: "Roboto", sans-serif;
    font-size: 20px;
    font-weight: 400;
    overflow-x: hidden;
}
body::-webkit-scrollbar {
    width: 5px;
    background-color: #f5f5f5;
}
body::-webkit-scrollbar-track {
    -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
    background-color: #f5f5f5;
}
body::-webkit-scrollbar-thumb {
    background-color: var(--red);
    border: 2px solid var(--red-op);
}
a {
    color: inherit;
    text-decoration: none;
}
.container-bigger {
    --bs-gutter-x: 1.5rem;
    --bs-gutter-y: 0;
    width: 100%;
    padding-right: calc(var(--bs-gutter-x) * 0.5);
    padding-left: calc(var(--bs-gutter-x) * 0.5);
    margin-right: auto;
    margin-left: auto;
}
.col-5-5 {
    flex: 0 0 auto;
    width: calc(100 / 12 * 5.5%);
}
.kallisto {
    font-family: "kallisto", sans-serif;
}
.roboto {
    font-family: "Roboto", sans-serif;
}
.min-h-100 {
    min-height: 100%;
}
.min-w-100 {
    min-width: 100%;
}
p {
    margin: 0;
}
.p-mb p {
    margin-bottom: 1rem;
}
.p-mb p:last-of-type {
    margin-bottom: 0;
}
.ratio-4x5 {
    --bs-aspect-ratio: calc(5 / 4 * 100%);
}
.ratio-3x2 {
    --bs-aspect-ratio: calc(2 / 3 * 100%);
}
.shadow {
    box-shadow: 0 0 5px var(--dark-1);
}
.shadow-0 {
    box-shadow: none;
}
.w-33 {
    width: 33.333%;
}
.w-66 {
    width: 66.666%;
}
.w-90 {
    width: 90%;
}
/* Backgrounds */
.bg-dark-1 {
    background-color: var(--dark-1);
}
.bg-grey {
    background-color: var(--grey);
}
.bg-dark-grey {
    background-color: var(--dark-grey);
}
.bg-red {
    background-color: var(--red);
}
/* Borders */
.border-red {
    --bs-border-opacity: 1;
    border-color: rgba(var(--red-rgb), var(--bs-border-opacity)) !important;
}
/* Button */
.btn-red {
    background-color: var(--red);
    color: white;
    border:0;
    border-radius: 0;
}

.btn-red:focus,
.btn-red:active,
.btn-red:focus-visible,
.btn-red:hover {
    background-color: var(--dark-1) !important;
    color: white !important;
    border:0;
    border-radius: 0;
}


.btn-angle,
.btn-default {
    display: inline-block;
    transition: all 0.3s ease;
}
.btn-default:hover {
    background-color: var(--red);
}
.btn-angle {
    background-color: var(--dark-1);
    color: white;
    font-size: 1rem;
    font-weight: light;
    padding: 0.5rem 1.5rem;
    position: relative;
    text-align: center;
    text-transform: uppercase;
}
.btn.btn-angle.bg-dark-1 {
    transition: all 0.3s ease-in-out;
}
.btn.btn-angle.bg-dark-1:hover {
    background-color: var(--red);
}
.btn-angle:focus {
    background-color: var(--red);
}
.btn-angle > span {
    position: absolute;
    top: 0;
    left: 100%;
    transition: all 0.3s ease;
}
.btn.btn-angle.no-animation {
    background-color: var(--dark-1);
    border-radius: 0;
    border: none;
    color: white;
    display: flex;
    align-items: stretch;
    font-size: 1rem;
    font-weight: light;
    position: relative;
    text-transform: uppercase;
    text-align: center;
}
.btn.btn-angle.no-animation > span {
    height: 100%;
    right: 0;
    transform: translateX(-100%);
}

/* List */
.list-custom ul {
    list-style: none;
    padding-left: 0;
}
.list-major li {
    margin: 1.5rem 0;
    position: relative;
    cursor: pointer;
}
/*.list-major li::after {
    content: '';
    display: block;
    margin-top: 1.5rem;
    width: 100%;
    height: 3px;
    border: 1px solid #f2f4f7;
}*/
.list-major li:last-of-type::after {
    display: none;
}
.list-major li a {
    text-decoration: none;
    transition: all 0.3s ease-in-out;
}
.list-major li:hover a {
    text-decoration: underline;
}
.list-major li::before {
    content: ">";
    margin-right: 0.5rem;
    position: relative;
    left: 0;
    transition: left 0.3s ease-in-out;
}
.list-major li:hover::before {
    left: 3px;
}
.list-caret ul {
    margin-top: 2rem;
}
.list-caret li {
    display: flex;
    column-gap: 0.5rem;
    margin-bottom: 0.5rem;
}
.list-caret li::before {
    content: "\f0da";
    font-family: "Font Awesome 5 Pro";
    font-weight: 900;
}
.list-caret.red li::before {
    color: var(--red);
}
/* Hover */
.hov-r .r-target {
    position: relative;
    left: 0;
    transition: all 0.3s ease-in-out;
}
.hov-r:hover .r-target {
    left: 5px;
}
.hov-zoom .zoom-target {
    transform: scale(1);
    transition: all 0.3s ease-in-out;
}
.hov-zoom:hover .zoom-target {
    transform: scale(1.1);
}
.hov-underline .underline-target,
.hov-underline.underline-target {
    text-decoration: none;
    transition: all 0.3s ease-in-out;
}
.hov-underline:hover .underline-target,
.hov-underline.underline-target:hover {
    text-decoration: underline;
}
.hvr-shadow {
    display: inline-block;
    vertical-align: middle;
    -webkit-transform: perspective(1px) translateZ(0);
    transform: perspective(1px) translateZ(0);
    box-shadow: 0 0 1px rgba(0, 0, 0, 0);
    -webkit-transition-duration: 0.3s;
    transition-duration: 0.3s;
    -webkit-transition-property: box-shadow;
    transition-property: box-shadow;
}
.hvr-shadow:hover,
.hvr-shadow:focus,
.hvr-shadow:active {
    box-shadow: 0 10px 10px -10px rgba(0, 0, 0, 0.5);
}
/* Text color-size */
.text-md {
    font-size: 18px;
}
.text-red {
    color: var(--red) !important;
}
.text-dark-grey {
color: #7c7b7b;
}
.text-grey-azienda {
    color: #E9EEF2
}
/* HEADER */
.header {
    transition: all 0.3s ease-in-out;
    width: calc(100vw - var(--scrollbar-w));
    z-index: 999;
}

.header .navbar-toggler:focus {
    box-shadow: none;
}
.header .navbar-toggler .bar-menu {
    display: block;
    width: 32px;
    height: 4px;
    border-radius: 8px;
    background-color: black;
    margin: 4px 0;
    overflow: hidden;
}
.header .navbar-toggler .bar-menu:nth-of-type(2) {
    background-color: var(--red);
    position: relative;
    left: 3px;
}
.header .navbar-nav .nav-link {
    color: black;
}
.header .navbar-nav .dropdown-item {
    white-space: normal;
}
.header .navbar-nav .dropdown-item:focus {
    background-color: var(--red);
}
.header .navbar-nav .nav-link.active {
    color: var(--red) !important;
}
.header .nav-link.dropdown-toggle.show {
    border-bottom: 1px solid rgb(128 128 128 / 25%);
}
.header .btn-close:focus {
    box-shadow: none;
}

/* Testata */
.testata,
.testata-2,
.testata-breadcrumb {
    margin-top: 102px;
}
.testata {
    height: 63vh;
    min-height: 400px;
}
.testata-2 {
    height: 30vh;
    min-height: 300px;
}
.testata-home,
.swiperTestataHome {
    height: calc(80vh - 102px);
    min-height: 400px;
}
.testata-home .bullet-container {
    width: 40px;
}
.testata .logo-home {
    max-width: calc(281px + 0.5rem);
}
.testata .label {
    min-height: 58px;
}
.breadcrumb-container .breadcrumb {
    justify-content: flex-end;
    margin-bottom: 0;
}
.breadcrumb-container .breadcrumb-item {
    color: white;
    font-size: 1rem;
    font-weight: 300;
}
.breadcrumb-item + .breadcrumb-item::before,
.breadcrumb-item.active:after {
    content: "";
}
/*.breadcrumb-item:after {
    float: right;
    padding-left: var(--bs-breadcrumb-item-padding-x);
    color: white;
    content: var(--bs-breadcrumb-divider, "|");
}*/
.breadcrumb-item.active {
    font-weight: bold !important;
}

/* Form */
.form label:not(.form-check-label),
.form-label:not(.form-upload-label) {
    display: none;
}
.form input,
.form select,
.form textarea {
    margin: 0.5rem 0;
}
.form input:not(.form-check-input),
.form select,
.form textarea {
    border: none;
    border-radius: 0;
    background-color: #f2f2f2;
    padding-bottom: 1.5rem;
}
.form input::placeholder,
.form textarea::placeholder,
.form select::placeholder,
.form .form-check-label {
    font-size: 17px;
    color: #8f8f8f;
}
.form .form-check-input {
    border-radius: 0;
    cursor: pointer;
}
.form .form-check-label {
    position: relative;
    top: 3px;
}
.form .form-check-input:checked {
    background-color: var(--red);
    border-color: var(--red);
}
.form-check-input:focus,
.form .form-control:focus {
    box-shadow: 0 0 0 0.25rem rgba(var(--red-rgb), 0.25);
    border-color: var(--red-op);
    background-color: white;
}
.form .form-upload input {
    background-color: transparent;
}

.line-custom::before,
.line-custom::after {
    transition: all 2s ease-in-out;
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    background-color: var(--red);
}
.line-custom::before {
    width: 1px;
    height: 70%;
    z-index: 1;
    transform: scaleY(0);
    transform-origin: bottom;
}
.line-custom::after {
    width: 25%;
    height: 1px;
    z-index: -1;
    transform: scaleX(0);
    transform-origin: left;
}
.line-custom.animazione.in-view::before {
    transform: scaleY(1);
}
.line-custom.animazione.in-view::after {
    transform: scaleX(1);
}
.line-custom .ratio {
    transform: translateY(60px);
}
.line-custom .lines {
    width: 115px;
    height: 115px;
    right: 22%;
    top: 50%;
    transform: scaleY(0);
    transform-origin: top;
    transition: all 2s ease-in-out;
}
.line-custom .lines.animazione.in-view {
    transform: scaleY(1);
}
.line-custom .lines:before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    width: 20px;
    height: 1px;
    background-color: var(--red);
}
.home .soluzioni .logo {
    bottom: -2rem;
    right: 0;
}

/* Swiper */
.swiper-pagination-bullet {
    width: 11px;
    height: 11px;
}
.swiperTestataHome .swiper-pagination-bullet {
    background: white;
    opacity: 1;
}
.swiperTestataHome .swiper-pagination {
    display: flex;
    flex-direction: column;
    align-items: center;
    row-gap: 1rem;
    top: auto;
    bottom: 35px;
    right: 20px;
    transform: translateX(50%);
}
.swiper-pagination-bullet-active,
.swiperTestataHome .swiper-pagination-bullet-active {
    width: 15px;
    height: 15px;
    background: var(--red);
}
.swiper-horizontal > .swiper-pagination-bullets,
.swiper-pagination-bullets.swiper-pagination-horizontal,
.swiper-pagination-custom,
.swiper-pagination-fraction {
    display: flex;
    align-items: center;
    justify-content: center;
    column-gap: 1rem;
}
.swiperApprofondimento .swiper-horizontal > .swiper-pagination-bullets,
.swiperApprofondimento .swiper-pagination-bullets.swiper-pagination-horizontal,
.swiperApprofondimento .swiper-pagination-custom,
.swiperApprofondimento .swiper-pagination-fraction {
    justify-content: start;
}
.swiperTimeLine .swiper-button-next:after,
.swiperTimeLine .swiper-button-prev:after {
    font-family: "Font Awesome 5 Pro";
    font-weight: 300;
    color: var(--red);
    font-size: 30px;
}
.swiperTimeLine .swiper-button-next,
.swiperTimeLine .swiper-button-prev {
    top: 28px;
    z-index: 4;
}
.swiperTimeLine .swiper-button-next:after {
    content: "\f061";
}
.swiperTimeLine .swiper-button-prev:after {
    content: "\f060";
}
.swiperTimeLine .swiper-button-next.swiper-button-disabled,
.swiperTimeLine .swiper-button-prev.swiper-button-disabled {
    opacity: 0;
}
.swiperGallery .swiper-button-next,
.swiperGallery .swiper-button-prev {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    background: white;
    color: black;
}
.swiperGallery .swiper-button-next:after,
.swiperGallery .swiper-button-prev:after {
    font-family: "Font Awesome 5 Pro";
    font-size: 20px;
    font-weight: 900;
}
.swiperGallery .swiper-button-next {
    left: auto;
    right: 0;
    transform: translateX(50%);
    justify-content: start;
}
.swiperGallery .swiper-button-prev {
    left: 0;
    right: auto;
    transform: translateX(-50%);
    justify-content: end;
}
.swiperGallery .swiper-button-next:after {
    content: "\f105";
    margin-left: 1rem;
}
.swiperGallery .swiper-button-prev:after {
    content: "\f104";
    margin-right: 1rem;
}

.swiperMateriali-arrow {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 337px;
    max-width: 100%;
    height: 47px;
    z-index: 1;
}
.swiperMateriali-arrow > div {
    background-color: var(--red);
    width: 47px;
    height: 47px;
    box-sizing: content-box;
    border: 7px solid #d8dee3;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: #fff;
    margin: 0;
    top: calc(50% - 23px);
    font-size: 1.25rem;
}
.swiperMateriali-arrow .swiper-button-prev {
    left: 0;
}
.swiperMateriali-arrow .swiper-button-next {
    right: 0;
}
.swiperMateriali-arrow > div::after {
    display: none;
}
.swiperVerticale {
    height: 400px;
}
.swiperVerticale .swiper-slide {
    height: auto;
    flex-wrap: wrap;
    transform-origin: left;
    text-transform: uppercase;
    transition: all 0.35s ease-in-out;
}
.swiperVerticale .swiper-slide {
    cursor: pointer;
    margin-left: 3rem;
    opacity: 0.3;
    /* transform: scale(0.75); */
    transition: all 0.35s cubic-bezier(0.25, 0.35, 0.35, 1);
    display: flex;
    align-items: center;
}
.swiperVerticale .swiper-slide.swiper-slide-prev,
.swiperVerticale .swiper-slide.swiper-slide-next {
    /* transform: scale(1); */
    font-size: 1.25rem;
    margin-left: 1.5rem;
    opacity: 0.5;
}
.swiperVerticale .swiper-slide.swiper-slide-active {
    /* transform: scale(1.5); */
    font-size: calc(1.3rem + 0.6vw);
    margin-left: 0;
    opacity: 1;
    font-weight: bold;
}

.btn-anno:hover {
    color: var(--red);
}
.btn-anno.active span {
    color: var(--red);
}
.btn-anno.active span::before {
    content: ">";
    margin-right: 0.5rem;
}
.time-line-anni::-webkit-scrollbar {
    height: 3px;
    width: 3px;
}
.time-line-anni::-webkit-scrollbar-track {
    background: #f0f0f0;
}
.time-line-anni::-webkit-scrollbar-thumb {
    background: var(--red);
}

.time-line .border-custom {
    border-bottom: 2px solid transparent;
    border-image: repeating-linear-gradient(
            to right,
            var(--red) 0,
            var(--red) 5px,
            transparent 6px,
            transparent 10px
        )
        1 round;
}

.card-container > .card-categorie:nth-child(odd) .card-content {
    background-color: var(--dark-grey);
    color: white;
    line-height: 1;
}
.card-container
    > .card-categorie:nth-child(odd)
    .card-content
    > div:last-child {
    color: #cecece;
}
.card-container > .card-categorie:nth-child(even) .card-content {
    background-color: var(--grey);
    color: var(--dark-1);
    line-height: 1;
}
.didascalie-alternate .img-container {
    top: 0;
    right: 0;
    max-height: 300px;
    height: 100%;
    width: 100%;
}
.didascalie-alternate .container-fluid {
    padding-bottom: 300px;
}
.fade-in {
    transition: all 1s ease-in-out;
    opacity: 0;
}
.fade-in.animazione.in-view {
    opacity: 1;
}
.card-news {
    height: calc(100% - 2rem);
}
.card-news .border-custom {
    border-top: 1px solid transparent;
    border-image: linear-gradient(
            to right,
            transparent 1.5rem,
            rgba(0, 0, 0, 0.75) 1.5rem,
            rgba(0, 0, 0, 0.75) 4rem,
            transparent 4rem
        )
        1;
}
.contatti .contact-label {
    width: 58px;
    height: 58px;
}
.rounded-start-0 {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}
.gallery-item {
    flex: 1 0 350px;
}
.scritta-after {
    --char-content: "Serramenti";
    --char-length: 6;
    --font-size-clamp: clamp(10px, 100vw / var(--char-length), 200px);
    position: relative;
    padding-bottom: var(--font-size-clamp) !important;
    overflow: hidden;
}
.scritta-after::after {
    content: var(--char-content);
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    font-size: clamp(40px, 10.42vw, 200px);
    font-size: var(--font-size-clamp);
    white-space: nowrap;
    width: calc(100vw - 1.5rem);
    max-width: 1920px;
    text-align: right;
    text-transform: uppercase;
    font-weight: 500;
    font-family: var(--font-family-secondary);
    line-height: 60%;
    color: #fff;
    opacity: 0.5;
}

.galleryAzienda.swiper {
    width: 100%;
    height: 100%;
}

.galleryAzienda .swiper-slide {
    text-align: center;
    font-size: 18px;
    background: #444;
    display: flex;
    justify-content: center;
    align-items: center;
}

.galleryAzienda .swiper-slide img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.swiperVerticale .swiper-slide,
.swiperVerticale .swiper-slide.swiper-slide-prev,
.swiperVerticale .swiper-slide.swiper-slide-next {
    margin-left: 0;
}
.swiper-no-swiping {
    pointer-events: auto !important;
}
