/*

[Table of contents] 

1. SITE STRUCTURE and TYPOGRAPHY

2. CONTENT

3. COMMON


/*============================================================================================*/
/* 1.  SITE STRUCTURE and TYPOGRAPHY */
/*============================================================================================*/
/*-------- 1.1 Typography --------*/
/* rem reference
10px = 0.625rem
12px = 0.75rem
14px = 0.875rem
16px = 1rem (base)
18px = 1.125rem
20px = 1.25rem
24px = 1.5rem
30px = 1.875rem
32px = 2rem
*/
html * {
  -webkit-font-smoothing: antialiased;
}

body {
  background: white;
  font-size: 17px;
  font-size: 1.0625rem;
  font-weight: 300;
  font-family: "Poppins", sans-serif;
  color: #000;
  line-height: 1.5;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  color: #000;
  font-weight: 800;
}

p {
  margin-bottom: 20px;
}

strong, b {
  font-weight: 600;
}

label {
  font-weight: 600;
  color: #000;
  margin-bottom: 3px;
  font-size: 16px;
  font-size: 1rem;
}

hr {
  margin-top: 25px;
  margin-bottom: 25px;
  border-color: #ededed;
}

@media (max-width: 991px) {
  br.no_mobile {
    display: none;
    visibility: hidden;
  }
}

/*General links color*/
a {
  color: #c21b17;
  text-decoration: none;
  transition: all 0.3s ease-in-out;
  outline: none;
}
a:hover, a:focus {
  color: #111;
  text-decoration: underline;
  outline: none;
}

/*-------- 1.3 Buttons --------*/
a.btn_1,
.btn_1 {
  border: none;
  background: #c21b17;
  outline: none;
  cursor: pointer;
  display: inline-flex;
  text-decoration: none;
  padding: 17px 20px 17px 30px;
  color: #fff;
  text-align: center;
  transition: all 0.3s ease-in-out;
  line-height: 1;
  font-size: 16px;
  font-size: 1rem;
  font-weight: 600;
  align-items: center;
}
a.btn_1:focus,
.btn_1:focus {
  outline: none;
}
a.btn_1:hover,
.btn_1:hover {
  background: #a51714;
}
a.btn_1.full-width,
.btn_1.full-width {
  display: block;
  width: 100%;
  text-align: center;
}
a.btn_1.small,
.btn_1.small {
  font-size: 12px;
  font-size: 0.75rem;
  padding: 7px 15px;
}
a.btn_1.medium,
.btn_1.medium {
  font-size: 18px;
  font-size: 1.125rem;
  padding: 12px 30px;
}
a.btn_1.gray,
.btn_1.gray {
  background: #666;
  color: #fff !important;
}
a.btn_1.gray:hover,
.btn_1.gray:hover {
  background-color: #a51714;
  color: #fff !important;
}
a.btn_1.white,
.btn_1.white {
  background: #fff;
  color: #111 !important;
}
a.btn_1.white:hover,
.btn_1.white:hover {
  background-color: #a51714;
  color: #fff !important;
}
a.btn_1 i,
.btn_1 i {
  font-size: 24px;
  font-size: 1.5rem;
  margin-left: 5px;
}
a.btn_1.active,
.btn_1.active {
  background: #a51714;
  cursor: default;
}

a.normal_link {
  font-size: 17px;
  font-size: 1.0625rem;
  line-height: 1;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  text-transform: uppercase;
  letter-spacing: 2px;
}
a.normal_link i {
  font-size: 20px;
  font-size: 1.25rem;
  margin-left: 8px;
}
a.normal_link:hover {
  color: #a51714;
  text-decoration: none;
}

/*-------- 1.4 Structure --------*/
header {
  width: 100%;
}

.logo-footer {
  height: 45px;
  width: auto;
}
@media (max-width: 767px) {
  .logo-footer {
    margin-bottom: 25px;
  }
}

footer {
  width: 100%;
  font-size: 14px;
  font-size: 0.875rem;
  color: #d8d8d8;
  padding: 25px 15px;
  background-color: #000 !important;
}
footer h5 {
  font-size: 16px;
  font-size: 1rem;
}
footer a {
  text-decoration: underline;
}
footer a:hover {
  text-decoration: none;
}
@media (max-width: 767px) {
  footer {
    padding: 25px 0px;
  }
}

@media (min-width: 767px) {
  br.on_mobile {
    display: none;
  }
}
footer em {
  display: inline-block;
  margin-top: 10px;
}

.event_date {
  z-index: 2;
  background: url(../img/bg-products.svg) no-repeat left top;
  background-size: cover;
  width: auto;
  color: white;
  position: absolute;
  top: -65px;
  left: 25px;
  padding: 20px 30px;
}
.event_date h1 {
  color: white;
  font-size: 26px;
  font-size: 1.625rem;
  margin: 0;
  text-transform: uppercase;
}
.event_date h1 span {
  font-weight: 500;
  font-size: 20px;
  font-size: 1.25rem;
  display: block;
  text-transform: none;
}
.event_date h1 span em {
  font-style: normal;
}
@media (max-width: 767px) {
  .event_date h1 span em {
    display: none;
  }
}
@media (max-width: 991px) {
  .event_date {
    position: static;
    text-align: center;
    background: #000;
    padding: 15px;
  }
}
@media (max-width: 767px) {
  .event_date {
    position: static;
    text-align: center;
    background: #000;
  }
  .event_date h1 {
    font-size: 21px;
    font-size: 1.3125rem;
  }
  .event_date h1 span {
    font-size: 18px;
    font-size: 1.125rem;
  }
}

br.on_mobile {
  display: none;
}
@media (max-width: 767px) {
  br.on_mobile {
    display: block;
  }
}

.my-toggle {
  background: transparent;
  border: 0;
  color: #888;
  cursor: pointer;
  font-size: 24px;
  font-size: 1.5rem;
  margin: 0 5px 0 0;
  height: 45px;
  line-height: 48px;
  padding: 0 10px;
  -moz-appearance: none;
  -webkit-appearance: none;
  appearance: none;
  border: 0;
}

.my-toggle:hover, .my-toggle:focus {
  color: #333;
  outline: transparent;
}

.box_general {
  margin-bottom: 25px;
}

.box_general .bg {
  background: #efefef url(../img/logo-footer.svg) no-repeat bottom -20px left -20px;
  background-size: 50%;
}
@media (max-width: 767px) {
  .box_general .bg {
    background: #efefef;
  }
}

.box_general .wrapper {
  padding: 40px 50px 40px 50px;
}
@media (max-width: 767px) {
  .box_general .wrapper {
    padding: 30px;
  }
}
.box_general .wrapper h3 {
  color: #c21b17;
  font-size: 22px;
  font-size: 1.375rem;
  margin-bottom: 15px;
}

.box_general .wrapper_2 {
  background-color: transparent;
  text-align: right;
}
@media (max-width: 767px) {
  .box_general .wrapper_2.two_buttons {
    text-align: center;
  }
}
@media (max-width: 767px) {
  .box_general .wrapper_2.two_buttons .btn_1 {
    margin-bottom: 0;
  }
}
@media (max-width: 767px) {
  .box_general .wrapper_2.two_buttons .btn_1.gray {
    margin-bottom: 8px;
  }
}

.box_general .bg.column {
  min-height: 980px;
  display: flex;
  flex-direction: column;
}
@media (max-width: 1199px) {
  .box_general .bg.column {
    min-height: auto;
    margin-bottom: 45px;
  }
}

.main_title_custom {
  position: relative;
  padding-left: 30px;
}
.main_title_custom h2 {
  font-size: 27px;
  font-size: 1.6875rem;
}
.main_title_custom::before {
  content: "";
  display: inline-block;
  width: 4px;
  height: 100px;
  background-color: #c21b17;
  position: absolute;
  top: 0;
  left: 4px;
  z-index: 3;
}

a.link_black {
  color: #000;
  text-decoration: underline;
}
a.link_black:hover {
  text-decoration: none;
}

.list_agenda ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
.list_agenda ul li {
  margin-bottom: 10px;
  position: relative;
  padding-left: 120px;
}
@media (max-width: 767px) {
  .list_agenda ul li {
    padding-left: 0;
  }
}
.list_agenda ul li strong {
  display: inline-block;
  position: absolute;
  left: 0;
}
@media (max-width: 767px) {
  .list_agenda ul li strong {
    position: static;
    display: block;
  }
}
.list_agenda ul li:last-child {
  margin-bottom: 0;
}

.box_album {
  margin: 0 0 35px 0;
}

.box_album a figure {
  transition: all 0.3s ease-in-out;
  font-size: 18px;
  font-size: 1.125rem;
  background-color: black;
  background-color: rgba(0, 0, 0, 0.3);
  padding: 3px;
}

.box_album a figure:hover {
  background-color: #af1119;
  background-color: rgba(180, 17, 26, 0.8);
}

.box_album h6 {
  font-size: 18px;
  font-size: 1.125rem;
}

.box_album a:hover {
  text-decoration: none;
}

.gallery_item {
  display: block;
}

.gallery_item img {
  margin-bottom: 25px;
}

ul.image-gallery {
  list-style: none;
  padding: 0;
  margin-bottom: 45px;
}

.image-gallery > li {
  margin: 5px;
  width: calc(20% - 10px);
  background-color: black;
  background-color: rgba(0, 0, 0, 0.3);
  padding: 3px;
  height: 140px;
  cursor: pointer;
  position: relative;
}

.image-gallery > li:hover {
  background-color: #af1119;
  background-color: rgba(180, 17, 26, 0.8);
}

@media (max-width: 1199px) {
  .image-gallery > li {
    width: calc(25% - 10px);
  }
}
@media (max-width: 991px) {
  .image-gallery > li {
    width: calc(33% - 10px);
  }
}
@media (max-width: 767px) {
  .image-gallery > li {
    height: 100%;
    width: 100%;
  }
}
.image-gallery li a img {
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: top;
     object-position: top;
  width: 100%;
  height: 100%;
  vertical-align: middle;
}

a.btn_download,
.btn_download {
  border: none;
  color: #fff;
  background: #c21b17;
  cursor: pointer;
  padding: 10px 20px;
  display: inline-block;
  outline: none;
  font-size: 1rem;
  margin-top: 5px;
  text-decoration: none;
  font-weight: 700;
}

a.btn_download.red,
.btn_download.red {
  background: #c21b17;
}

a.btn_download:before,
.btn_download:before {
  content: url("../img/download.svg");
  margin-right: 10px;
}

a.btn_download:hover,
.btn_download:hover {
  background: #a51714;
}

h3.titolo {
  font-size: 22px;
  font-size: 1.375rem;
  margin-bottom: 0 !important;
}
@media (max-width: 991px) {
  h3.titolo {
    margin-bottom: 15px !important;
  }
}
h3.titolo span {
  display: block;
  font-weight: 500;
  font-size: 18px;
  font-size: 1.125rem;
}

/*============================================================================================*/
/* 3.  COMMON */
/*============================================================================================*/
#success_2 {
  padding: 60px 0;
}

#success_2 h4 {
  font-weight: 600 !important;
  font-size: 21px;
  font-size: 1.3125rem;
}

@keyframes checkmark {
  0% {
    stroke-dashoffset: 50px;
  }
  100% {
    stroke-dashoffset: 0;
  }
}
@keyframes checkmark-circle {
  0% {
    stroke-dashoffset: 240px;
  }
  100% {
    stroke-dashoffset: 480px;
  }
}
.inlinesvg .svg svg {
  display: inline;
}

.icon--order-success svg path {
  animation: checkmark 0.25s ease-in-out 0.7s backwards;
}

.icon--order-success svg circle {
  animation: checkmark-circle 0.6s ease-in-out backwards;
}

.styled_select {
  display: grid;
  grid-template-areas: "select";
  align-items: center;
  position: relative;
  background-color: #c21b17;
  border-radius: 0;
  font-weight: 600;
  padding: 0;
  font-size: 18px;
  font-size: 1.125rem;
  cursor: pointer;
  line-height: 1.2;
  width: 100%;
  border: none;
}
.styled_select select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-color: transparent;
  border: none;
  padding: 17px 20px;
  margin: 0;
  width: 100%;
  font-family: inherit;
  font-size: inherit;
  cursor: inherit;
  line-height: inherit;
  z-index: 1;
  outline: none;
  color: white;
  font-weight: 600;
  font-size: 18px;
  font-size: 1.125rem;
}
.styled_select select option {
  color: #fff;
  background-color: #c21b17;
}
.styled_select select:focus {
  color: #fff;
  outline: none;
  box-shadow: none;
}
.styled_select select::-ms-expand {
  display: none;
}

.styled_select select,
.styled_select::after {
  grid-area: select;
}

.styled_select:not(.select--multiple)::after {
  font-family: bootstrap-icons;
  content: "\f282";
  width: 0.8em;
  height: 0.5em;
  position: absolute;
  color: white;
  right: 20px;
  top: 14px;
  font-size: 24px;
  font-size: 1.5rem;
}

.form-control {
  padding: 10px 15px;
  font-size: 17px;
  font-size: 1.0625rem;
  font-weight: 300;
  border-radius: 3px;
  border: 1px solid #d2d8dd;
  color: #000;
}
.form-control:focus {
  border-color: #ccc;
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(0, 0, 0, 0.05);
}

.form-group {
  margin-bottom: 15px;
  position: relative;
}

.error_message {
  font-weight: 500;
  color: #e3464c;
}

.container_check {
  display: block;
  position: relative;
  padding-left: 35px;
  padding-top: 1px;
  line-height: 1.3;
  margin-bottom: 10px;
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
  font-weight: 500;
  color: #000;
  font-size: 16px;
  font-size: 1rem;
}
.container_check input {
  position: absolute;
  opacity: 0;
  cursor: pointer;
}
.container_check .checkmark {
  position: absolute;
  top: 0;
  left: 0;
  height: 25px;
  width: 25px;
  background-color: #fff;
  border: 1px solid #d2d8dd;
  border-radius: 3px;
}
.container_check .checkmark:after {
  transition: all 0.3s ease-in-out;
  content: "";
  position: absolute;
  display: none;
  left: 8px;
  top: 3px;
  width: 8px;
  height: 13px;
  border: solid #c21b17;
  border-width: 0 3px 3px 0;
  transform: rotate(45deg);
}

.container_check input:checked ~ .checkmark:after {
  display: block;
}

.container_radio {
  display: block;
  position: relative;
  padding-left: 35px;
  padding-top: 1px;
  line-height: 1.3;
  margin-bottom: 10px;
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
  font-weight: 500;
  color: #000;
  font-size: 19px;
  font-size: 1.1875rem;
}
.container_radio input {
  position: absolute;
  opacity: 0;
}
.container_radio input:checked ~ .checkmark:after {
  opacity: 1;
}
.container_radio .checkmark {
  position: absolute;
  top: 0;
  left: 0;
  height: 25px;
  width: 25px;
  background-color: #fff;
  border-radius: 50%;
  border: 1px solid #d2d8dd;
  transition: all 0.3s ease-in-out;
}
.container_radio .checkmark:after {
  transition: all 0.3s ease-in-out;
  display: block;
  content: "";
  position: absolute;
  opacity: 0;
  top: 6px;
  left: 6px;
  width: 11px;
  height: 11px;
  border-radius: 50%;
  background: #c21b17;
}

.checkbox_radio_container {
  position: relative;
}
.checkbox_radio_container input[type=radio] {
  display: none;
}
.checkbox_radio_container label {
  cursor: pointer;
}

.checkbox_radio_container {
  display: inline-block;
  min-width: 160px;
  margin-right: 8px;
}
.checkbox_radio_container .radio {
  display: inline-block;
  width: 25px;
  height: 25px;
  border: 2px solid #ccc;
  border-radius: 50%;
  position: absolute;
  z-index: 9;
  right: 15px;
  top: 12px;
}
.checkbox_radio_container .radio:after {
  transition: all 0.3s ease-in-out;
  display: block;
  content: "";
  position: absolute;
  opacity: 0;
  top: 5px;
  left: 5px;
  width: 11px;
  height: 11px;
  border-radius: 50%;
  background: #fff;
}
.checkbox_radio_container .wrapper {
  border-radius: 5px;
  background-color: #f2f4f7;
  position: relative;
  left: 0;
  top: 0;
  display: block;
  width: 100%;
  padding: 10px 15px;
  font-weight: 400;
  cursor: pointer;
}

.checkbox_radio_container input[type=radio]:checked ~ .radio {
  border: 2px solid #fff;
}
.checkbox_radio_container input[type=radio]:checked ~ .radio:after {
  opacity: 1;
}
.checkbox_radio_container input[type=radio]:checked ~ .wrapper {
  transition: all 450ms;
  background-color: #b3bac4;
  color: #fff;
}

.checkbox_radio_container input[type=radio]:disabled ~ .wrapper {
  opacity: 0.7;
  cursor: default;
}

.checkbox_radio_container input[type=radio]:checked ~ .wrapper {
  transition: all 450ms;
  background-color: #485b76;
  color: #fff;
}

.checkbox_radio_container {
  position: relative;
}
.checkbox_radio_container label {
  cursor: pointer;
}

.checkbox_radio_container {
  display: inline-block;
  min-width: 160px;
  margin-right: 8px;
}
.checkbox_radio_container .radio {
  display: inline-block;
  width: 25px;
  height: 25px;
  border: 2px solid #ccc;
  border-radius: 50%;
  position: absolute;
  z-index: 9;
  right: 15px;
  top: 12px;
}
.checkbox_radio_container .radio:after {
  transition: all 0.3s ease-in-out;
  display: block;
  content: "";
  position: absolute;
  opacity: 0;
  top: 5px;
  left: 5px;
  width: 11px;
  height: 11px;
  border-radius: 50%;
  background: #fff;
}
.checkbox_radio_container .wrapper {
  border-radius: 5px;
  background-color: #f2f4f7;
  position: relative;
  left: 0;
  top: 0;
  display: block;
  width: 100%;
  padding: 10px 15px;
  font-weight: 400;
  cursor: pointer;
}

.checkbox_radio_container input[type=radio]:checked ~ .radio {
  border: 2px solid #fff;
}
.checkbox_radio_container input[type=radio]:checked ~ .radio:after {
  opacity: 1;
}
.checkbox_radio_container input[type=radio]:checked ~ .wrapper {
  transition: all 450ms;
  background-color: #b3bac4;
  color: #fff;
}

.checkbox_radio_container input[type=radio]:disabled ~ .wrapper {
  opacity: 0.7;
  cursor: default;
}

.checkbox_radio_container input[type=radio]:checked ~ .wrapper {
  transition: all 450ms;
  background-color: #485b76;
  color: #fff;
}

/*-------- 3.1 Misc --------*/
.background-image {
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  background-attachment: scroll;
}

.background-image.left_center {
  background-position: left center;
}

/*-------- 3.6 Spacing --------*/
.margin_120_95 {
  padding-top: 120px;
  padding-bottom: 95px;
}
@media (max-width: 767px) {
  .margin_120_95 {
    padding-top: 90px;
    padding-bottom: 65px;
  }
}

.margin_120_0 {
  padding-top: 120px;
}

.margin_120 {
  padding-top: 120px;
  padding-bottom: 120px;
}

.margin_60_35 {
  padding-top: 60px;
  padding-bottom: 35px;
}

.margin_80 {
  padding-top: 80px;
  padding-bottom: 80px;
}
@media (max-width: 991px) {
  .margin_80 {
    padding-bottom: 60px;
    padding-top: 60px;
  }
}

.margin_80_55 {
  padding-top: 80px;
  padding-bottom: 55px;
}
@media (max-width: 991px) {
  .margin_80_55 {
    padding-top: 60px;
    padding-bottom: 35px;
  }
}

.margin_80_0 {
  padding-top: 80px;
}
@media (max-width: 991px) {
  .margin_80_0 {
    padding-top: 60px;
  }
}
@media (max-width: 575px) {
  .margin_80_0 {
    padding-top: 45px;
  }
}

.margin_60_0 {
  padding-top: 60px;
}
@media (max-width: 991px) {
  .margin_60_0 {
    padding-top: 60px;
  }
}
@media (max-width: 575px) {
  .margin_60_0 {
    padding-top: 45px;
  }
}

.margin_60_40 {
  padding-top: 60px;
  padding-bottom: 40px;
}

.add_bottom_60 {
  padding-bottom: 60px;
}

.add_bottom_120 {
  padding-bottom: 120px;
}
@media (max-width: 767px) {
  .add_bottom_120 {
    padding-bottom: 90px;
  }
}

.add_bottom_90 {
  padding-bottom: 90px;
}
@media (max-width: 767px) {
  .add_bottom_90 {
    padding-bottom: 60px;
  }
}

.add_top_90 {
  margin-top: 90px;
}

.frame_video {
  background-color: #efefef;
  width: 100%;
  height: 60vh;
  min-height: 600px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.2rem;
  font-weight: 600;
  text-align: center;
  margin-bottom: 25px;
  padding: 25px;
}
@media (max-width: 767px) {
  .frame_video {
    padding: 15px;
    min-height: 450px;
  }
}

.frame_video i {
  font-size: 42px;
  font-size: 2.625rem;
}