/* === font.css === */
@font-face {
  font-family: "Alexandria";
  src: url("../fonts/alexandria-regular.woff2") format("woff2"),
    url("../fonts/alexandria-regular.woff") format("woff");
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Alexandria";
  src: url("../fonts/alexandria-extralight.woff2") format("woff2"),
    url("../fonts/alexandria-extralight.woff") format("woff");
  font-weight: 200;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Alexandria";
  src: url("../fonts/alexandria-light.woff2") format("woff2"),
    url("../fonts/alexandria-light.woff") format("woff");
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Alexandria";
  src: url("../fonts/alexandria-thin.woff2") format("woff2"),
    url("../fonts/alexandria-thin.woff") format("woff");
  font-weight: 100;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Alexandria";
  src: url("../fonts/alexandria-semibold.woff2") format("woff2"),
    url("../fonts/alexandria-semibold.woff") format("woff");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Alexandria";
  src: url("../fonts/alexandria-medium.woff2") format("woff2"),
    url("../fonts/alexandria-medium.woff") format("woff");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Alexandria";
  src: url("../fonts/alexandria-black.woff2") format("woff2"),
    url("../fonts/alexandria-black.woff") format("woff");
  font-weight: 900;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Alexandria";
  src: url("../fonts/alexandria-extrabold.woff2") format("woff2"),
    url("../fonts/alexandria-extrabold.woff") format("woff");
  font-weight: bold;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Alexandria";
  src: url("../fonts/alexandria-bold.woff2") format("woff2"),
    url("../fonts/alexandria-bold.woff") format("woff");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

/* === variables.css === */
:root {
    --primary: #1d1d1d;
    --secondary: #f68932;
    --white: #fffefe;
    --black: #1d1d1d;
    --black2: #1a1a1a;
    --transparent: rgba(0,0,0,0);
    --opacity: 0.6;
    --transition: all 0.2s ease-in-out;
    --warning: #ff0000;
    --font-family: "Alexandria", sans-serif;
}
/* === normalize.css === */
* {
  box-sizing: border-box;
  -webkit-tap-highlight-color: transparent;
}

:root {
  font-size: 13px;
}

html,
body {
  font-family: var(--font-family);
  font-weight: normal;
  letter-spacing: 0;
  padding: 0;
  margin: 0;
  overflow-x: unset;
  position: relative;
  cursor: auto;
  /* height: 2000px; */
  background-color: var(--white);
  scroll-behavior: smooth;
  overscroll-behavior: none;
}

body {
  overflow-x: hidden;
}

html.lock,
body.lock {
  overflow: hidden;
}

.hp-h1 {
  position: absolute;
  left: -9999px;
  top: auto;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

@media (min-width: 768px) {
  :root {
    font-size: 14px;
  }
}

@media (min-width: 992px) {
  :root {
    font-size: 16px;
  }
}

a,
a:hover,
a:focus,
button,
button:hover,
button:focus {
  transition: var(--transition);
  text-decoration: none;
  cursor: pointer;
  color: var(--primary);
  font-weight: normal;
  outline: none;
  box-shadow: none;
}

button {
  all: unset;
}

ul,
ol {
  list-style: none;
  margin: 0;
  /* padding: 0; */
}

*:focus {
  outline: none;
  box-shadow: none;
}

*::placeholder,
*::-webkit-placeholder {
  color: currentColor;
}

*:-ms-input-placeholder {
  color: currentColor;
}

input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
input:-webkit-autofill:active {
  transition: background-color 5000s ease-in-out 0s;
}

/********** HELPER CLASSES **********/

.container {
  position: relative;
  width: 100%;
  padding: 0 20px;
  margin-left: auto;
  margin-right: auto;
}

.row {
  display: flex;
  --gap: 50px;
  gap: var(--gap);
  flex-wrap: wrap;
}

.filter-container .row {
  display: flex;
  --gap: 40px;
  gap: var(--gap);
  flex-wrap: wrap;
}

.template.contact .row {
  --gap: 30px 40px;
  margin-top: 65px;
}

.row + .row {
  margin-top: var(--gap);
}

.hp_gallery .row + .row {
  margin-top: -15px;
  gap: 0 5px;
}

.row + .bottom.row {
  margin-top: 0;
}

footer .top.row {
  --gap: 0;
}

.col,
.col-auto,
.col-1,
.col-2,
.col-3,
.col-4,
.col-5,
.col-6,
.col-7,
.col-8,
.col-9,
.col-10,
.col-11,
.col-12,
.col-lg,
.col-lg-auto,
.col-lg-1,
.col-lg-2,
.col-lg-3,
.col-lg-4,
.col-lg-5,
.col-lg-6,
.col-lg-7,
.col-lg-8,
.col-lg-9,
.col-lg-10,
.col-lg-11,
.col-lg-12,
.col-md,
.col-md-auto,
.col-md-1,
.col-md-2,
.col-md-3,
.col-md-4,
.col-md-5,
.col-md-6,
.col-md-7,
.col-md-8,
.col-md-9,
.col-md-10,
.col-md-11,
.col-md-12,
.col-sm,
.col-sm-auto,
.col-sm-1,
.col-sm-2,
.col-sm-3,
.col-sm-4,
.col-sm-5,
.col-sm-6,
.col-sm-7,
.col-sm-8,
.col-sm-9,
.col-sm-10,
.col-sm-11,
.col-sm-12 {
  position: relative;
  width: 100%;
}

.col {
  flex-basis: 0;
  flex-grow: 1;
  max-width: 100%;
}

.col-auto {
  flex: 1 1 auto;
  width: auto;
  max-width: none;
}

.col-1 {
  flex: 1 1 calc(8.333333% - (var(--gap) * 0.083333));
  max-width: calc(8.333333% - (var(--gap) * 0.083333));
}

.col-2 {
  flex: 1 1 calc(16.666667% - (var(--gap) * 0.16666667));
  max-width: calc(16.666667% - (var(--gap) * 0.16666667));
}

.col-3 {
  flex: 1 1 calc(25% - (var(--gap) * 0.25));
  max-width: calc(25% - (var(--gap) * 0.25));
}

.col-4 {
  flex: 1 1 calc(33.333333% - (var(--gap) * 0.33333333));
  max-width: calc(33.333333% - (var(--gap) * 0.33333333));
}

.col-5 {
  flex: 1 1 calc(41.666667% - (var(--gap) * 0.41666667));
  max-width: calc(41.666667% - (var(--gap) * 41.666667));
}

.col-6 {
  flex: 1 1 calc(50% - (var(--gap) * 0.5));
  max-width: calc(50% - (var(--gap) * 0.5));
}

.col-7 {
  flex: 1 1 calc(58.333333% - (var(--gap) * 0.5833333));
  max-width: calc(58.333333% - (var(--gap) * 0.5833333));
}

.col-8 {
  flex: 1 1 calc(66.666667% - (var(--gap) * 0.6666667));
  max-width: calc(66.666667% - (var(--gap) * 0.6666667));
}

.col-9 {
  flex: 1 1 calc(75% - (var(--gap) * 0.75));
  max-width: calc(75% - (var(--gap) * 0.75));
}

.col-10 {
  flex: 1 1 calc(83.333333% - (var(--gap) * 0.8333333));
  max-width: calc(83.333333% - (var(--gap) * 0.8333333));
}

.col-11 {
  flex: 1 1 calc(91.666667% - (var(--gap) * 0.9166667));
  max-width: calc(91.666667% - (var(--gap) * 0.9166667));
}

.col-12 {
  flex: 1 1 100%;
  max-width: 100%;
}

.col-12.wrap {
  display: flex;
  gap: var(--gap);
  justify-content: space-between;
}

@media (min-width: 576px) {
  .col-sm {
    flex-basis: 0;
    flex-grow: 1;
    max-width: 100%;
  }

  .col-sm-auto {
    flex: 1 1 auto;
    width: auto;
    max-width: none;
  }

  .col-sm-1 {
    flex: 1 1 calc(8.333333% - (var(--gap) * 0.083333));
    max-width: calc(8.333333% - (var(--gap) * 0.083333));
  }

  .col-sm-2 {
    flex: 1 1 calc(16.666667% - (var(--gap) * 0.16666667));
    max-width: calc(16.666667% - (var(--gap) * 0.16666667));
  }

  .col-sm-3 {
    flex: 1 1 calc(25% - (var(--gap) * 0.25));
    max-width: calc(25% - (var(--gap) * 0.25));
  }

  .col-sm-4 {
    flex: 1 1 calc(33.333333% - (var(--gap) * 0.33333333));
    max-width: calc(33.333333% - (var(--gap) * 0.33333333));
  }

  .col-sm-5 {
    flex: 1 1 calc(41.666667% - (var(--gap) * 0.41666667));
    max-width: calc(41.666667% - (var(--gap) * 41.666667));
  }

  .col-sm-6 {
    flex: 1 1 calc(50% - (var(--gap) * 0.5));
    max-width: calc(50% - (var(--gap) * 0.5));
  }

  .col-sm-7 {
    flex: 1 1 calc(58.333333% - (var(--gap) * 0.5833333));
    max-width: calc(58.333333% - (var(--gap) * 0.5833333));
  }

  .col-sm-8 {
    flex: 1 1 calc(66.666667% - (var(--gap) * 0.6666667));
    max-width: calc(66.666667% - (var(--gap) * 0.6666667));
  }

  .col-sm-9 {
    flex: 1 1 calc(75% - (var(--gap) * 0.75));
    max-width: calc(75% - (var(--gap) * 0.75));
  }

  .col-sm-10 {
    flex: 1 1 calc(83.333333% - (var(--gap) * 0.8333333));
    max-width: calc(83.333333% - (var(--gap) * 0.8333333));
  }

  .col-sm-11 {
    flex: 1 1 calc(91.666667% - (var(--gap) * 0.9166667));
    max-width: calc(91.666667% - (var(--gap) * 0.9166667));
  }

  .col-sm-12 {
    flex: 1 1 100%;
    max-width: 100%;
  }
}

@media (min-width: 768px) {
  .col-md {
    flex-basis: 0;
    flex-grow: 1;
    max-width: 100%;
  }

  .col-md-auto {
    flex: 1 1 auto;
    width: auto;
    max-width: none;
  }

  .col-md-1 {
    flex: 1 1 calc(8.333333% - (var(--gap) * 0.083333));
    max-width: calc(8.333333% - (var(--gap) * 0.083333));
  }

  .col-md-2 {
    flex: 1 1 calc(16.666667% - (var(--gap) * 0.16666667));
    max-width: calc(16.666667% - (var(--gap) * 0.16666667));
  }

  .col-md-3 {
    flex: 1 1 calc(25% - (var(--gap) * 0.25));
    max-width: calc(25% - (var(--gap) * 0.25));
  }

  .col-md-4 {
    flex: 1 1 calc(33.333333% - (var(--gap) * 0.33333333));
    max-width: calc(33.333333% - (var(--gap) * 0.33333333));
  }

  .col-md-5 {
    flex: 1 1 calc(41.666667% - (var(--gap) * 0.41666667));
    max-width: calc(41.666667% - (var(--gap) * 41.666667));
  }

  .col-md-6 {
    flex: 1 1 calc(50% - (var(--gap) * 0.5));
    max-width: calc(50% - (var(--gap) * 0.5));
  }

  .template.contact .col-md-6 {
    flex: 1 1 calc(50% - (40px * 0.5));
    max-width: calc(50% - (40px * 0.5));
  }

  .col-md-7 {
    flex: 1 1 calc(58.333333% - (var(--gap) * 0.5833333));
    max-width: calc(58.333333% - (var(--gap) * 0.5833333));
  }

  .col-md-8 {
    flex: 1 1 calc(66.666667% - (var(--gap) * 0.6666667));
    max-width: calc(66.666667% - (var(--gap) * 0.6666667));
  }

  .col-md-9 {
    flex: 1 1 calc(75% - (var(--gap) * 0.75));
    max-width: calc(75% - (var(--gap) * 0.75));
  }

  .col-md-10 {
    flex: 1 1 calc(83.333333% - (var(--gap) * 0.8333333));
    max-width: calc(83.333333% - (var(--gap) * 0.8333333));
  }

  .col-md-11 {
    flex: 1 1 calc(91.666667% - (var(--gap) * 0.9166667));
    max-width: calc(91.666667% - (var(--gap) * 0.9166667));
  }

  .col-md-12 {
    flex: 1 1 100%;
    max-width: 100%;
  }
}

@media (min-width: 992px) {
  .col-lg {
    flex-basis: 0;
    flex-grow: 1;
    max-width: 100%;
  }

  .col-lg-auto {
    flex: 1 1 auto;
    width: auto;
    max-width: none;
  }

  .col-lg-1 {
    flex: 1 1 calc(8.333333% - (var(--gap) * 0.083333));
    max-width: calc(8.333333% - (var(--gap) * 0.083333));
  }

  .col-lg-2 {
    flex: 1 1 calc(16.666667% - (var(--gap) * 0.16666667));
    max-width: calc(16.666667% - (var(--gap) * 0.16666667));
  }

  .col-lg-3 {
    flex: 1 1 calc(25% - (var(--gap) * 0.25));
    max-width: calc(25% - (var(--gap) * 0.25));
  }

  .col-lg-4 {
    flex: 1 1 calc(33.333333% - (var(--gap) * 0.33333333));
    max-width: calc(33.333333% - (var(--gap) * 0.33333333));
  }

  .col-lg-5 {
    flex: 1 1 calc(41.666667% - (var(--gap) * 0.41666667));
    max-width: calc(41.666667% - (var(--gap) * 41.666667));
  }

  .col-lg-6 {
    flex: 1 1 calc(50% - (var(--gap) * 0.5));
    max-width: calc(50% - (var(--gap) * 0.5));
  }

  .col-lg-7 {
    flex: 1 1 calc(58.333333% - (var(--gap) * 0.5833333));
    max-width: calc(58.333333% - (var(--gap) * 0.5833333));
  }

  .col-lg-8 {
    flex: 1 1 calc(66.666667% - (var(--gap) * 0.6666667));
    max-width: calc(66.666667% - (var(--gap) * 0.6666667));
  }

  .col-lg-9 {
    flex: 1 1 calc(75% - (var(--gap) * 0.75));
    max-width: calc(75% - (var(--gap) * 0.75));
  }

  .col-lg-10 {
    flex: 1 1 calc(83.333333% - (var(--gap) * 0.8333333));
    max-width: calc(83.333333% - (var(--gap) * 0.8333333));
  }

  .col-lg-11 {
    flex: 1 1 calc(91.666667% - (var(--gap) * 0.9166667));
    max-width: calc(91.666667% - (var(--gap) * 0.9166667));
  }

  .col-lg-12 {
    flex: 1 1 100%;
    max-width: 100%;
  }
}

@media (min-width: 1200px) {
  .col-xl {
    flex-basis: 0;
    flex-grow: 1;
    max-width: 100%;
  }

  .col-xl-auto {
    flex: 1 1 auto;
    width: auto;
    max-width: none;
  }

  .col-xl-1 {
    flex: 1 1 calc(8.333333% - (var(--gap) * 0.083333));
    max-width: calc(8.333333% - (var(--gap) * 0.083333));
  }

  .col-xl-2 {
    flex: 1 1 calc(16.666667% - (var(--gap) * 0.16666667));
    max-width: calc(16.666667% - (var(--gap) * 0.16666667));
  }

  .col-xl-3 {
    flex: 1 1 calc(25% - (var(--gap) * 0.25));
    max-width: calc(25% - (var(--gap) * 0.25));
  }

  .col-xl-4 {
    flex: 1 1 calc(33.333333% - (var(--gap) * 0.33333333));
    max-width: calc(33.333333% - (var(--gap) * 0.33333333));
  }

  .col-xl-5 {
    flex: 1 1 calc(41.666667% - (var(--gap) * 0.41666667));
    max-width: calc(41.666667% - (var(--gap) * 41.666667));
  }

  .col-xl-6 {
    flex: 1 1 calc(50% - (var(--gap) * 0.5));
    max-width: calc(50% - (var(--gap) * 0.5));
  }

  .col-xl-7 {
    flex: 1 1 calc(58.333333% - (var(--gap) * 0.5833333));
    max-width: calc(58.333333% - (var(--gap) * 0.5833333));
  }

  .col-xl-8 {
    flex: 1 1 calc(66.666667% - (var(--gap) * 0.6666667));
    max-width: calc(66.666667% - (var(--gap) * 0.6666667));
  }

  .col-xl-9 {
    flex: 1 1 calc(75% - (var(--gap) * 0.75));
    max-width: calc(75% - (var(--gap) * 0.75));
  }

  .col-xl-10 {
    flex: 1 1 calc(83.333333% - (var(--gap) * 0.8333333));
    max-width: calc(83.333333% - (var(--gap) * 0.8333333));
  }

  .col-xl-11 {
    flex: 1 1 calc(91.666667% - (var(--gap) * 0.9166667));
    max-width: calc(91.666667% - (var(--gap) * 0.9166667));
  }

  .col-xl-12 {
    flex: 1 1 100%;
    max-width: 100%;
  }
}

.w-100 {
  width: 100% !important;
}

.d-none {
  display: none !important;
}

.d-inline {
  display: inline !important;
}

.d-inline-block {
  display: inline-block !important;
}

.d-block {
  display: block !important;
}

.d-flex {
  display: flex !important;
}

.d-inline-flex {
  display: inline-flex !important;
}

.text-left {
  text-align: left !important;
}

.text-right {
  text-align: right !important;
}

.text-center {
  text-align: center !important;
}

.form input,
.form textarea,
.form select {
  appearance: none;
  -webkit-appearance: none;
  border: 0;
  display: block;
  width: 100%;
}

.form input,
.form textarea,
.form select {
  resize: none;
  appearance: none;
  -webkit-appearance: none;
  border: 0;
  display: block;
}

.img-fluid {
  display: block;
  object-fit: cover !important;
  width: 100% !important;
}

@media (max-width: 768px) {
  .form input,
  .form textarea,
  .form select {
    font-size: 13px;
  }
}

/* === main.css === */
/*******************************/
/************BUTTONS************/
/*******************************/

a.arrow-btn {
  padding: 25px 75px 25px 25px;
  border: 1px solid var(--black);
  text-transform: uppercase;
  font-size: 12px;
  margin-top: 75px;
  display: block;
  width: max-content;
  margin-inline: auto;
  position: relative;
}

a.arrow-btn.more {
  display: none;
}

a.arrow-btn.more.visible {
  display: block;
}

a.arrow-btn::before {
  content: "";
  position: absolute;
  left: unset;
  top: 50%;
  width: 20px;
  height: 14px;
  mask-image: url(/assets/img/svg/button-arrow.svg);
  -webkit-mask-image: url(/assets/img/svg/button-arrow.svg);
  background-color: var(--black);
  mask-repeat: no-repeat;
  -webkit-mask-repeat: no-repeat;
  mask-position: center;
  -webkit-mask-position: center;
  margin-right: 30px;
  transform: translateY(-50%);
  right: 0px;
  transition: var(--transition);
}

.projects a.arrow-btn::before {
  transform: translateY(-50%) rotate(90deg);
}

a.arrow-btn:hover::before {
  transform: translate(3px, -50%);
}

.projects a.arrow-btn:hover::before {
  transform: translateY(-50%) rotate(90deg) translateX(5px);
}

a.arrow-btn.down {
  display: none;
}

a.arrow-btn.down.visible {
  display: block;
}

a.arrow-btn.down:hover::before {
  transform: translateX(3px);
}

a.arrow-btn.down::before {
  transform: rotate(90deg);
  height: 14px;
  width: 20px;
  top: 26px;
}

a.arrow-btn.down:hover::before {
  transform: rotate(90deg) translate(3px, 0);
}

/**********************************/
/************* HEADER *************/
/**********************************/

header {
  width: 100%;
  padding: 0;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 10;
}

header > a {
  display: block;
  width: 100%;
  background-color: var(--black);
  height: auto;
  position: relative;
  font-size: 12px;
  font-weight: 200;
  line-height: 1.67;
  letter-spacing: 0.6px;
  text-align: center;
  color: var(--white);
  text-transform: uppercase;
  padding-block: 10px;
}

header.fixed .upper {
  background-color: #ffffff;
  box-shadow: rgba(0, 0, 0, 0.05) -2.8px 8.6px 24px 0px;
}

header.fixed.header-blog .upper {
  background-color: #ffffff;
  box-shadow: none;
}

header .upper.fixed .right-wrapper .button::before {
  background-color: var(--black);
}

header.fixed .upper .logo span {
  width: 90px;
  height: 82px;
}

header.fixed.header-blog .upper .logo span {
  width: 154px;
  height: 186px;
}

header.fixed .upper .logo span img {
  -webkit-filter: brightness(1);
  filter: brightness(1);
  max-width: 100%;
}

header.fixed.header-blog .upper .logo span img:last-of-type {
  transform: translateY(10px);
  opacity: 1;
}

header.fixed .upper .right-wrapper .phone-wrapper span:first-of-type a {
  color: var(--secondary);
}

header.fixed .upper .right-wrapper .phone-wrapper span:first-of-type::before {
  background-color: var(--primary);
}

header.fixed .upper .right-wrapper .phone-wrapper span:last-of-type {
  opacity: 0.5;
  color: var(--black);
}

header .upper.fixed .right-wrapper .phone-wrapper span:last-of-type {
  opacity: 0.4;
}

header.fixed .menu .menu-section .menu-toggle span,
header.fixed .upper .right-wrapper .menu-toggle span {
  background-color: var(--secondary);
}

header.open {
  z-index: 12;
  transition: none;
}

header::before {
  content: "";
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background-color: var(--black);
  opacity: 0;
  pointer-events: none;
  transition: var(--transition);
  -webkit-transition: var(--transition);
  z-index: 2;
}

header .upper {
  display: flex;
  background-color: transparent;
  position: relative;
  transition: var(--transition);
  left: 0;
  padding: 29px 42px;
}

header.fixed .upper {
  background-color: #ffffff;
  box-shadow: rgba(0, 0, 0, 0.05) -2.8px 8.6px 24px 0px;
}

header.fixed.header-blog .upper {
  background-color: #ffffff;
  box-shadow: none;
}

header .upper.fixed .right-wrapper .button::before {
  background-color: var(--black);
}

header .upper .logo {
  width: 211px;
  height: auto;
}

header .upper .logo span {
  position: relative;
}

header .upper .logo span img {
  width: 100%;
  height: auto;
  margin: auto;
  position: relative;
  display: block;
}

header .upper .logo span img:nth-child(1) {
  display: block;
}

header .upper .logo span img:nth-child(2) {
  display: none;
}

header .upper .logo span img:nth-child(3) {
  display: none;
}

body.article header .upper .logo span img:nth-child(1),
body.product header .upper .logo span img:nth-child(1) {
  display: none;
}

body.article header .upper .logo span img:nth-child(2),
body.product header .upper .logo span img:nth-child(2) {
  display: block;
}

body.article header.fixed .upper .logo span img:nth-child(3),
body.product header.fixed .upper .logo span img:nth-child(3) {
  display: block;
}

body.article header.fixed .upper .logo span img:nth-child(2),
body.product header.fixed .upper .logo span img:nth-child(2) {
  display: none;
}

body.article header .upper .right-wrapper .languages li a,
body.article header .upper .right-wrapper > a,
body.article header .menu .menu-section .menu-toggle span,
body.article header .upper .right-wrapper .menu-toggle span,
body.product header .upper .right-wrapper .languages li a,
body.product header .upper .right-wrapper > a,
body.product header .menu .menu-section .menu-toggle span,
body.product header .upper .right-wrapper .menu-toggle span {
  color: var(--black);
}

body.article header .menu .menu-section .menu-toggle span,
body.article header .upper .right-wrapper .menu-toggle span,
body.product header .menu .menu-section .menu-toggle span,
body.product header .upper .right-wrapper .menu-toggle span {
  background-color: var(--black);
}

header .upper .right-wrapper .languages li a.disabled{
  pointer-events: none;
  opacity: .6;
}

header.fixed .upper .logo span img {
  display: none;
}

header .upper .logo span img:last-of-type {
  display: none;
}

header.fixed .upper .logo span img:last-of-type {
  display: block;
  width: 100%;
  height: auto;
  opacity: 1;
  filter: brightness(0);
}

header.fixed .upper .logo span {
  display: block;
  width: 78px;
  height: auto;
}

header .upper .right-wrapper {
  position: relative;
  display: flex;
  align-items: flex-start;
  margin-left: auto;
  justify-content: flex-end;
  gap: 45px;
}

header .upper .right-wrapper > a {
  text-transform: uppercase;
  font-family: var(--font-family);
  font-size: 0.75rem;
  font-weight: 200;
  line-height: 1.67;
  letter-spacing: 0.6px;
  text-align: center;
  color: var(--white);
  margin-top: 15px;
  transition: var(--transition);
}

header.open .upper .right-wrapper > a {
  opacity: 0;
}

header.fixed .upper .right-wrapper > a {
  color: var(--black);
}

header.fixed .upper .right-wrapper > a::before {
  background-color: var(--black);
}

header .upper .right-wrapper > a {
  transition: var(--transition);
}

header .upper .right-wrapper > a::before {
  content: "";
  position: absolute;
  top: 8px;
  left: 50%;
  transform: translateX(-50%);
  width: 4px;
  height: 4px;
  background-color: white;
  border-radius: 50%;
  opacity: 0;
  transition: var(--transition);
}

header .upper .right-wrapper .languages li {
  font-size: 0.75rem;
}

header .upper .right-wrapper .languages li a {
  color: var(--white);
  font-weight: 200;
}

header.fixed .upper .right-wrapper .languages li a {
  color: var(--black);
}

header .upper .right-wrapper .ball {
  position: absolute;
  width: 4px;
  height: 4px;
  top: -9px;
  left: 0;
  border-radius: 50%;
  background-color: var(--white);
  transition: transform 0.3s ease;
  pointer-events: none;
}

body.product header .upper .right-wrapper .ball {
  background-color: var(--black);
}

header.fixed .upper .right-wrapper .ball {
  background-color: var(--black);
}

header .upper .right-wrapper:has( li.selected) .ball,
body.product header.fixed .upper .right-wrapper .ball {
  background-color: var(--black);
}


header .right-wrapper input {
  opacity: 0;
  transition: var(--transition);
  font-weight: 300;
  /* all: unset; */
  height: 30px;
  border: none;
  width: 0px;
  max-width: 0px;
  margin-right: 10px;
  border-bottom: 1px solid transparent;
}

header .right-wrapper .search-open input::placeholder {
  color: #00528a;
}

header .right-wrapper .search-open input {
  max-width: 150px;
  width: 150px;
  opacity: 1;
  color: #00528a;
  border-bottom: 1px solid #00528a;
}

header.fixed .right-wrapper .search-open input {
  color: #00528a;
}

header .right-wrapper .search-open button {
  margin-bottom: 0;
}

header .right-wrapper .Search-form {
  text-align: center;
  display: flex;
  align-items: center;
  display: none;
}

header .menu .menu-section .menu-toggle,
header .upper .right-wrapper .menu-toggle {
  position: relative;
  width: 39px;
  height: 22px;
  cursor: pointer;
  pointer-events: all;
  top: 10px;
  transition: var(--transition);
}

header.open .upper .right-wrapper a + .menu-toggle,
header.open .upper .right-wrapper a + .menu-toggle span {
  opacity: 0;
  right: 20px;
  /* transform: translateX(-10px); */
}

header .menu .menu-section .menu-toggle span,
header .upper .right-wrapper .menu-toggle span {
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  left: 0;
  margin: 0;
  padding: 0;
  width: 39px;
  height: 2px;
  background-color: var(--white);
  transition: var(--transition);
  -webkit-transition: var(--transition);
  z-index: 1;
  pointer-events: none;
  border-radius: 2px;
}

header .upper .right-wrapper .menu-toggle span:first-of-type {
  transform: translateY(5px);
}

header .upper .right-wrapper .menu-toggle span:nth-of-type(2) {
  width: 30px;
  transform: translateY(19px);
  left: auto;
  transition: var(--transition);
}

header.fixed .menu .menu-section .menu-toggle span,
header.fixed .upper .right-wrapper .menu-toggle span {
  background-color: var(--black);
}

header.open .menu .menu-section .menu-toggle span:nth-of-type(2) {
  opacity: 0;
}

header .top-bar {
  display: none;
}

@media (max-width: 767px) {
  header {
    width: 100%;
    padding: 0;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 10;
  }

  header > a:hover {
    color: var(--white);
    font-weight: 200;
  }

  body:not(.index) header .top-bar {
    display: block;
    background-color: var(--black);
    padding: 10px;
  }

  body:not(.index) header .top-bar span {
    font-size: 12px;
    font-weight: 200;
    line-height: 1.67;
    letter-spacing: 0.6px;
    text-align: center;
    color: var(--white);
    text-transform: uppercase;
    text-align: center;
    margin-inline: auto;
    display: block;
  }

  header .upper {
    flex-flow: row;
    gap: 40px;
    padding: 20px;
  }

  header.fixed .upper {
    flex-flow: row;
  }

  header .upper .logo {
    align-self: center;
    width: 137px;
    height: auto;
  }

  header .upper .right-wrapper {
    gap: 20px;
    align-items: center;
  }

  body:not(.index) header .upper .right-wrapper {
    gap: 20px;
    align-items: start;
  }

  header .upper .right-wrapper > a,
  header .upper .right-wrapper .languages li a {
    font-size: 11px;
  }

  header .upper .right-wrapper .menu-toggle {
    top: -3px;
    display: flex;
    justify-content: center;
    align-items: end;
    flex-direction: column;
    gap: 7px;
  }

  body:not(.index) header .upper .right-wrapper .menu-toggle {
    top: -3px;
    align-items: flex-start;
  }

  header .upper .right-wrapper > a {
    margin-top: -4px;
  }

  header .languages {
    margin-top: 0px;
  }

  header.fixed .upper .logo span img:last-of-type {
    width: 40px;
    margin: 0;
  }
}

@media (min-width: 768px) {
  header .right-wrapper .Search-form {
    margin-left: 25px;
    display: flex;
  }

  header > a {
    display: none;
  }
}

@media (min-width: 1024px) {
  header .upper .right-wrapper > a:hover::before {
    opacity: 1;
  }

  header .upper .right-wrapper .menu-toggle:hover span:nth-of-type(2) {
    transform: translateX(-9px) translateY(19px);
  }

  header .languages li:hover::before {
    opacity: 0.5;
  }

  header .right-wrapper .button {
    padding: 17px 25px;
    font-size: 20px;
  }

  header .right-wrapper .Search-form.search-open {
    margin-left: 27px;
  }

  header .right-wrapper:has(.search-open) .button {
    font-size: inherit;
  }

  header .menu form:hover span::after,
  header .menu form input:focus + ::after {
    opacity: 1;
  }

  header .menu .menu-container > ul > li.sub:hover > ul,
  header .menu .menu-container > ul > li.sub > ul:hover {
    width: 100%;
    max-width: 500px;
    opacity: 1;
    left: 99%;
    pointer-events: auto;
  }

  header .menu .menu-container > ul > li.sub:hover > ul > h5 a:hover,
  header .menu .menu-container > ul > li.sub > ul:hover > h5 a:hover {
    opacity: 1;
  }

  header .menu .menu-container > ul:has(li.sub) > li:hover h4 a {
    opacity: 1;
    color: var(--white);
  }

  header .menu .menu-container > ul > li:has(:hover) > ul > li h5 a:hover {
    opacity: 1;
  }

  header .menu ul li > ul {
    transition: var(--transition);
    opacity: 1;
    gap: 0px;
    display: flex;
    flex-direction: column;
    position: absolute;
    top: 15px;
    left: 50%;
    opacity: 0;
  }

  header .menu ul li > ul {
    flex-direction: column;
    position: absolute;
    top: 15px;
    left: 99%;
    opacity: 0;
    max-width: 400px;
    width: 100%;
    pointer-events: none;
    padding-left: 80px;
    padding-top: 40px;
    top: -13px;
  }

  header .menu ul li:has(:hover) > ul {
    pointer-events: auto;
  }

  header .menu ul li:has(:hover) > ul {
    opacity: 1;
    pointer-events: auto;
  }

  header .menu .menu-section ul li:hover .open-submenu span,
  header .menu ul li.sub:hover .open-menu span {
    background-color: var(--secondary);
  }

  header .menu ul li:has(:hover) ul li {
    pointer-events: auto;
  }

  header .menu ul li ul li:hover {
    color: var(--black);
  }

  header .right-wrapper .button:hover ::before {
    transform: scale(1.05);
  }
}

/**********************************/
/******** HEADER LANGUAGES ********/
/**********************************/

header .languages {
  position: relative;
  display: flex;
  flex-direction: row;
  padding: 0;
  gap: 16px;
  margin-right: -5px;
  margin-top: 18px;
}

header.open .languages {
  display: none;
}

header .languages li {
  position: relative;
}

header .languages li.selected::before {
  opacity: 1;
}

@media (max-width: 767px) {
  header .languages {
    margin-top: 0;
    margin-right: 2px;
    gap: 12px;
  }

  header .languages + a {
    display: none;
  }
}

/**********************************/
/******* HEADER MENU TOGGLE *******/
/**********************************/

header .menu {
  position: fixed;
  height: 100vh;
  top: 0;
  right: -100%;
  /* transform: translateX(-500%); */
  /* transition: 0.4s ease-in-out;
    -webkit-transition: 0.4s ease-in-out; */
  z-index: 2;
  width: 0;
  min-width: 100%;
  max-width: 100%;
  /* background-image: url('/assets/img/general/menu-aberto.jpg'); */
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  width: 100vw;
  height: 100%;
  transition: var(--transition);
}

header.open .menu {
  /* transform: translateX(0%); */
  right: 0;
}

header .menu::before {
  content: "";
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  position: absolute;
  background-color: #000000;
  opacity: 0.65;
  transition: var(--transition);
}

header .menu .menu-section {
  height: 100%;
  overflow: auto;
  padding: 35px 60px;
}

header .menu .menu-container {
  display: flex;
  align-items: center;
  max-width: 945px;
  padding-inline: 0 20px;
  margin-inline: auto;
  flex: 1;
  height: 100%;
  margin-block: auto;
  width: 100%;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}

header .menu .menu-section .menu-header {
  display: flex;
  justify-content: flex-end;
  align-items: flex-start;
  gap: 80px;
  position: relative;
  z-index: 2;
}

header .menu .menu-section .menu-header a:first-of-type {
  color: var(--white);
  opacity: var(--opacity);
  align-self: center;
  align-items: center;
  text-transform: uppercase;
  margin-right: auto;
  transition: var(--transition);
}

header .menu .menu-section .menu-header a:hover:first-of-type {
  opacity: 1;
}

header .menu .menu-section .menu-header .menu-toggle {
  display: block;
  width: 26px;
  height: 25px;
  margin: 0;
  transition: var(--transition);
  z-index: 20;
}

header .menu .menu-section .menu-header .menu-toggle span {
  background-color: var(--white);
  width: 30px;
  top: 10px;
}

header .menu .menu-section .menu-toggle span:first-child {
  transform: rotate(45deg);
}

header .menu .menu-section .menu-toggle span:last-child {
  transform: rotate(-45deg);
}

header .menu .menu-section .menu-header > a:first-of-type {
  /* font-size: 1.125rem;
    color: var(--primary); */
  cursor: pointer;
}

/* header.open .menu .menu-section .menu-header>a:first-of-type {
    opacity: var(--opacity);
    z-index: 20;
}

header.open .menu .menu-section .menu-header>a:first-of-type:hover {
    opacity: 1;
} */

header.open
  .menu
  .menu-section
  .menu-header
  > a:first-of-type:hover
  :nth-of-type(2) {
  background-color: var(--white);
  opacity: 0;
}

/********** SEARCH FORM **********/

header .menu form {
  position: relative;
}

header .menu form button {
  display: block;
  width: 21px;
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
}

header .menu form button::after {
  position: absolute;
  content: "";
  top: 14px;
  right: 0;
  width: 21px;
  height: 20px;
  transition: var(--transition);
  mask-image: url("/assets/img/svg/arrow_right.svg");
  mask-size: contain;
  mask-repeat: no-repeat;
  mask-position: center;
  background-color: var(--white);
  opacity: 0.15;
}

header .menu form button:hover::after {
  opacity: 1;
}

header .menu form > input {
  font-size: 11px;
  color: var(--white);
  line-height: 1;
  padding: 18px 52px 18px 0;
  background-color: var(--transparent);
  width: 100%;
  font-weight: 200;
  text-transform: uppercase;
  border: none;
  border-bottom: 1px solid rgba(255, 255, 255, 0.15);
  min-width: 300px;
}

header .menu form > input::placeholder,
header .menu .menu-section .menu-header a:first-of-type {
  font-size: 11px;
  font-family: var(--font-family);
  font-weight: 200;
  font-stretch: normal;
  font-style: normal;
  line-height: 2;
  text-transform: uppercase;
  letter-spacing: normal;
  text-align: left;
  color: var(--white);
}

header .menu .form label {
  display: inline-block;
  width: 0;
  height: 0;
  font-size: 0;
}

header .menu .form a[submit],
header .menu form a[submit] {
  position: absolute;
  height: 21px;
  width: 21px;
  top: 0;
  right: 32px;
  bottom: 0;
  font-size: 0;
  margin: auto;
}

header .menu .form a[submit]::before,
header .menu form a[submit]::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  width: 21px;
  height: 21px;
  -webkit-mask-image: url("/assets/img/svg/arrow_right.svg");
  mask-image: url("/assets/img/svg/arrow_right.svg");
  mask-repeat: no-repeat;
  -webkit-mask-repeat: no-repeat;
  background-color: var(--primary);
}

header .menu .menu-container > ul {
  /* margin-top: 130px; */
  max-width: 570px;
}

header .menu .menu-container > ul > li {
  padding-top: 15px;
}

header .menu .menu-container > ul h4 a {
  font-size: 48.5px;
  font-weight: 100;
  text-transform: uppercase;
  color: var(--white);
  display: inline-table;
  opacity: var(--opacity);
  opacity: 0;
  line-height: 1.3;
  padding-top: 15px;
  transition: var(--transition);
}

header .menu .menu-container > ul h4 a.reveal {
  opacity: var(--opacity);
}

header .menu .menu-container > ul h4 a.reveal:hover {
  opacity: 1;
}

/* header .menu .menu-container>ul h5 a.reveal {
    transform: translateY(0);
    max-height: 80px;
    opacity: var(--opacity);
    padding-right: 100px;
} */

header .menu .menu-container > ul h5 {
  margin: 0;
}

header .menu .menu-container > ul li.subsub.active h5 a {
  opacity: 1;
}

header .menu .menu-container > ul h5 a {
  font-family: var(--font-family);
  font-size: 14px;
  font-weight: 200;
  line-height: 2.14;
  text-transform: uppercase;
  color: var(--white);
  margin: 0;
  opacity: var(--opacity);
  display: inline-table;
  line-height: 30px;
  transition: var(--transition);
  padding-left: 30px;
}

header .menu .menu-container > ul > li:has(:hover) > ul > li h5 a:hover {
  opacity: 1;
}

header .menu ul {
  list-style: none;
  padding: 0;
}

header .menu > ul {
  max-width: 700px;
}

header .menu .menu-container ul li {
  transition: var(--transition);
  cursor: pointer;
  position: relative;
}

header .menu .menu-container ul li.sub.active h4 a {
  font-weight: 200;
  opacity: 1;
}

header .menu .menu-container ul li ul li.subsub.active a {
  font-weight: 200;
  opacity: 1;
}

header .menu .menu-container ul li.open a {
  font-weight: 200;
  opacity: 1;
}

header .menu ul li.subsub,
header .menu ul li.sub {
  position: relative;
  transition: var(--transition);
}

header .menu .menu-container > ul > li:last-of-type {
  margin-bottom: 0;
}

header .menu .menu-container > ul > li > ul,
header .menu .menu-container > ul > li > h4 {
  margin: 0;
}

header .menu .menu-container > ul > li > h4 {
  display: block;
  max-width: 100%;
}

header .menu ul li.subsub > ul:first-of-type {
  padding-top: 0;
}

header .menu ul li.subsub.active > ul:first-of-type,
header .menu ul li.sub.active > ul:first-of-type {
  padding-top: 38px;
  opacity: 1;
}

header .menu ul li.sub.active > ul:first-of-type {
  padding-top: 20px;
  opacity: 0;
}

header .menu ul li.sub:hover > ul:first-of-type {
  padding-top: 48px;
  opacity: 1;
}

header .menu ul li.subsub.active > ul,
header .menu ul li.sub.active > ul {
  max-height: 700px;
  margin-bottom: 20px;
  padding-right: 0;
}

header .menu ul li.sub .open-submenu,
header .menu ul li.sub .open-menu {
  display: none;
}

header .menu ul li.sub.active .open-submenu,
header .menu ul li.sub.active .open-menu {
  top: 10px;
}

header .menu ul li.sub .open-submenu {
  width: 12px;
  top: 3px;
}

header .menu ul li.sub .open-submenu span,
header .menu ul li.sub .open-menu span {
  height: 2px;
  width: 17px;
  background-color: var(--white);
  opacity: 1;
  display: flex;
  position: absolute;
  top: 0;
  bottom: 0;
  margin: auto;
}

header .menu ul li.sub .open-submenu span {
  width: 12px;
  height: 2px;
}

header .menu ul li.sub .open-submenu span:last-of-type,
header .menu ul li.sub .open-menu span:last-of-type {
  transform: rotate(90deg);
  transition: var(--transition);
  left: 0.5px;
  top: 1px;
}

header .menu ul li .subsub.active .open-submenu span,
header .menu ul li.sub.active .open-menu span {
  transform: none;
  background-color: var(--white);
}

header .right-wrapper button {
  position: relative;
  display: inline-block;
  width: 24px;
  height: 24px;
  transition: var(--transition);
  z-index: 0;
  background: none;
  border: none;
}

header .right-wrapper button::before {
  overflow: visible;
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  -webkit-mask-image: url("/assets/img/svg/lupe.svg");
  mask-image: url("/assets/img/svg/lupe.svg");
  background-color: var(--primary);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  top: 0;
  left: 0;
}

header .right-wrapper .button {
  display: flex;
  padding: 17px 25px;
  gap: 11px;
}

header .right-wrapper .Search-form {
  transition: var(--transition);
}

@media (min-width: 768px) {
  header .right-wrapper .button {
    padding: 15px;
    font-size: 14px;
    transition: var(--transition);
  }

  header .right-wrapper:has(.search-open) .button {
    font-size: 9px;
  }

  header .right-wrapper .Search-form.search-open {
    margin-left: 10px;
  }
}

@media (max-width: 1024px) {
  header .menu .menu-section {
    padding: 20px 19px 20px;
  }

  header .menu form span::after {
    width: 17px;
    height: 17px;
  }

  header .menu .menu-section .menu-header .menu-toggle span {
    width: 21px;
    top: 7px;
    left: -1px;
  }

  header .menu .menu-section .menu-header {
    gap: 28px;
  }

  header .menu ul li.sub .open-submenu,
  header .menu ul li.sub .open-menu {
    position: absolute;
    right: 0;
    height: 17px;
    width: 17px;
    display: block;
    z-index: 0;
    bottom: 10px;
  }

  header .menu ul li.sub.active .open-submenu,
  header .menu ul li.sub.active .open-menu {
    top: 37px;
  }

  header .menu .menu-section .menu-header .menu-toggle {
    width: 17px;
    height: 17px;
    top: 15px;
  }

  header .menu form {
    width: 100%;
    max-width: 236px;
  }

  header .menu form > input {
    padding-block: 14px;
    min-width: unset;
  }

  /* header .menu .menu-container>ul {
        margin-top: 71px;
    } */

  header .menu .menu-container > ul > li h4 a {
    font-size: 34px;
    line-height: 1.15;
    letter-spacing: normal;
    word-spacing: 3.1px;
  }

  header .menu .menu-container > ul > li.active h4 a {
    opacity: 1;
  }

  header .menu ul li.sub.active > ul:first-of-type {
    opacity: 1;
  }

  header .menu .menu-container > ul > li {
    margin-block: 1rem;
    padding-right: 20px;
    padding-top: 0;
  }

  header .menu .menu-container > ul > li:first-of-type {
    margin-top: 0;
    margin-bottom: 1rem;
  }

  header .menu .menu-container > ul > li:first-of-type {
    margin-top: 0;
    margin-bottom: 1rem;
  }

  header .menu .menu-container > ul {
    width: 100%;
    max-width: 100%;
    padding-inline: 0px;
    margin-top: 0;
    margin-block: auto;
  }

  header .menu .menu-container > ul > li > ul {
    max-height: 0;
    transition: var(--transition);
  }

  header .menu ul li.sub.active > ul > li h5 a,
  header .menu ul li.sub.active > ul > li h5 a:hover {
    opacity: var(--opacity);
    font-weight: 200;
  }

  header .menu .menu-container > ul h5 a {
    opacity: 0;
  }

  header .menu .menu-container {
    padding-inline: 20px;
    display: flex;
    align-items: center;
    margin-inline: auto;
    max-width: 100%;
  }

  header .menu .menu-container > ul > li > h4 {
    max-width: calc(100% - 20px);
  }

  header .menu ul li.sub:hover > ul:first-of-type {
    padding-top: 0px;
    opacity: 1;
  }

  header .menu ul li.sub.active:hover > ul:first-of-type {
    padding-top: 20px;
    opacity: 1;
  }

  header.open .menu .menu-section .menu-header > a:first-of-type:hover span {
    opacity: 0.18;
  }

  header.open .menu .menu-section .menu-header > a:first-of-type:hover span {
    background-color: var(--white);
    opacity: 0.18;
  }
}

@media (max-width: 767px) {
  header .upper.fixed,
  header .upper {
    height: 100%;
  }

  header.fixed .upper .logo span {
    width: 100%;
    height: auto;
  }

  header.fixed .upper .logo {
    padding: 0;
    width: 40px;
    height: auto;
  }

  header.fixed .upper .logo.sidemenu {
    position: absolute;
    top: -25px;
  }

  header .upper .logo span {
    max-width: 215px;
  }

  header .upper .logo span img {
    width: 100%;
  }

  header .upper .right-wrapper .button {
    width: 50%;
    padding: 10px 10px;
    border: none;
  }

  header .upper .right-wrapper .button::before {
    border-top-left-radius: unset;
    border-top-right-radius: unset;
  }

  header .upper .right-wrapper a.menu-toggle {
    position: absolute;
    top: 70px;
    z-index: 2;
  }

  header .menu ul li.sub.active .open-submenu,
  header .menu ul li.sub.active .open-menu {
    top: 25px;
  }

  header .menu {
    width: 100vw;
  }

  header.open .menu {
    transform: translateY(0%);
    width: 100vw;
    min-width: unset;
    height: 100vh;
  }

  header .menu .menu-container {
    position: relative;
    align-items: flex-start;
    padding-inline: 0;
  }

  header .menu .menu-container > ul > li {
    margin-block: 0.8rem;
  }
}

@media (max-width: 500px) {
  header .menu ul li.subsub .open-menu,
  header .menu ul li.sub .open-menu {
    top: 25px;
  }
}

/* Animations */

@keyframes slideInUp {
  0% {
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0);
    visibility: visible;
  }

  to {
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
  }
}

.animate__slideInUp {
  -webkit-animation-name: slideInUp;
  animation-name: slideInUp;
}

.animate__animated {
  -webkit-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-duration: var(--animate-duration);
  animation-duration: var(--animate-duration);
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
}

.animate__animated_fast {
  -webkit-animation-duration: 0.3s;
  animation-duration: 0.3s;
  -webkit-animation-duration: var(--animate-duration);
  animation-duration: var(--animate-duration);
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
}

/************************/
/******** FOOTER ********/
/************************/

/* Base styling for the button */
.back-to-top {
  position: fixed;
  bottom: 20px;
  /* 20px from the bottom */
  right: 40px;
  /* 20px from the right */
  width: 56px;
  /* Circle diameter */
  height: 56px;
  border-radius: 50%;
  /* Make it a circle */
  display: none;
  /* Initially hidden */
  cursor: pointer;
  z-index: 1000;
  /* Ensure it stays on top */
  /* Mask image for the arrow */
}

.back-to-top::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  background-color: #f8f8f8;
  border-radius: 50%;
  transition: var(--transition);
}

.contacts .template:has(.latest-posts) + footer .back-to-top::before {
  background-color: var(--white);
}

.back-to-top::after {
  content: "";
  mask-image: url("/assets/img/svg/arrow_right.svg");
  mask-size: 100%;
  mask-position: center;
  mask-repeat: no-repeat;
  transition: var(--transition);
  transform: rotate(-90deg);
  width: 21px;
  height: 19px;
  background-color: var(--black);
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
}

/* Show the button when the user scrolls (handled via JavaScript) */
.back-to-top.show {
  right: 40px;
  margin-left: auto;
  display: block;
  z-index: 5;
}

/* Optional hover effect */
.back-to-top:hover::before {
  transform: scale(1.1);
}

footer {
  margin-top: 150px;
  position: relative;
}

.content + footer {
  margin-top: 150px;
  position: relative;
}

.content.blog + footer {
  margin-top: 160px;
  position: relative;
}

section.content:has(.template-module:last-child .image) {
  margin-bottom: 80px;
}

section.content:has(> .template-module:last-child:has(> .container)) + footer {
  margin-bottom: -76px;
  /* Override margin if the .container is present */
}

footer .footer-section p {
  font-size: 16px;
  font-weight: 200;
  line-height: 2.25;
  text-align: center;
  color: var(--black);
  line-height: 1;
  margin-block: 1.35rem;
  width: 100%;
  height: auto;
  color: #1d1d1d99;
}

footer .footer-section p a {
  font-size: 16px;
  font-weight: 200;
  font-stretch: normal;
  font-style: normal;
  /* line-height: 2.25; */
  letter-spacing: normal;
  text-align: center;
  color: #1d1d1d99;
  transition: var(--transition);
}

footer .footer-section p a:hover {
  opacity: 1;
  color: var(--black);
}

footer .footer-section p:first-of-type {
  margin-top: 0;
}

footer .footer-section p:last-of-type {
  margin-bottom: 0;
}

footer .row.top {
  background-color: #f8f8f8;
  padding: 95px 130px;
  gap: 0;
  width: 100%;
  justify-content: center;
  flex-wrap: nowrap;
}

footer .bottom {
  background-color: #000;
  padding: 18px 130px;
  gap: 0;
  width: 100%;
  display: flex;
  justify-content: center;
}

footer .bottom div {
  width: 100%;
  max-width: 590px;
}

footer .bottom div:first-of-type a,
footer .bottom div:first-of-type p,
footer .bottom div:last-of-type a,
footer .bottom div:last-of-type p {
  font-size: 12px;
  font-weight: 200;
  line-height: 1.67;
  transition: var(--transition);
  color: var(--white);
  margin: 0;
}

footer .bottom div:first-of-type a:hover,
footer .bottom div:last-of-type a:hover {
  opacity: var(--opacity);
}

footer .bottom div:first-of-type {
  display: flex;
  justify-content: flex-start;
  gap: 10px;
}

footer .bottom div:last-of-type {
  justify-content: end;
  display: flex;
}

footer .logo {
  width: 121px;
  height: auto;
}

footer .logo img,
footer .social-media span img {
  width: auto;
  height: 19px;
}

footer .logo img {
  height: auto;
  filter: brightness(0);
  width: 100%;
}

footer .footer-section {
  align-items: center;
  justify-content: center;
  max-width: 393px;
}

footer .footer-section:has(.logo) {
  align-items: flex-start;
  justify-content: center;
  display: flex;
  flex-direction: column;
  gap: 40px;
}

footer .footer-section:last-of-type {
  align-items: end;
  justify-content: flex-end;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

footer .footer-section:last-of-type p {
  margin-block: 0;
  text-align: right;
}

footer .footer-section:last-of-type a {
  font-size: 14px;
  line-height: 1.71;
  text-transform: uppercase;
  transition: var(--transition);
  letter-spacing: 0.7px;
  text-align: right;
  color: var(--black);
  position: relative;
  padding-left: 43px;
  margin-left: 18px;
  margin-top: 30px;
}

footer .footer-section:last-of-type a:hover {
  transform: translateX(3px);
}

footer .footer-section:last-of-type a::before {
  content: "";
  position: absolute;
  left: 0;
  top: 2px;
  width: 20px;
  height: 20px;
  mask-image: url(/assets/img/svg/button-arrow.svg);
  -webkit-mask-image: url(/assets/img/svg/button-arrow.svg);
  background-color: var(--black);
  mask-repeat: no-repeat;
  -webkit-mask-repeat: no-repeat;
  mask-position: center;
  -webkit-mask-position: center;
  margin-right: 30px;
}

footer .social-media {
  display: flex;
  gap: 33px;
}

footer .social-media span {
  width: auto;
  height: 19px;
  display: block;
}

footer .social-media a:hover {
  transform: scale(1.1);
}

footer .social-media a i {
  transition: var(--transition);
  font-size: 20px;
}

.fab.fa-instagram a i {
  font-size: 19px;
}

footer .social-media .fa-brands,
.fab.fa-youtube {
  font-size: 21px;
}

@media (max-width: 1200px) {
  footer .row.top {
    padding: 95px 20px 50px 20px;
    justify-content: space-between;
  }

  footer .bottom {
    padding-inline: 20px;
  }
}

@media (max-width: 1024px) {
  footer .footer-section p {
    font-size: 14px;
  }

  footer .footer-section:last-of-type a {
    margin-left: auto;
  }

  footer .social-media a:hover i,
  footer .footer-section:last-of-type a:hover {
    transform: none;
  }
}

@media (max-width: 768px) {
  footer {
    margin-top: 70px;
  }

  .back-to-top {
    width: 47px;
    height: 47px;
  }

  .contacts .back-to-top {
    width: 47px;
    height: 47px;
  }

  .back-to-top::before {
    background-color: white;
  }

  .back-to-top.fixed::before {
    background-color: #f8f8f8;
  }

  footer .footer-section:last-of-type p {
    text-align: center;
  }

  .back-to-top.show {
    right: 20px;
    margin-left: auto;
    display: block;
  }

  section.content:has(.template-module:last-child .image) + footer {
    margin-top: 103px;
  }

  .content + footer {
    margin-top: 105px;
  }

  footer .row.top {
    align-items: center;
    width: 100%;

    max-width: unset;
    gap: 50px;
    flex-wrap: wrap;
  }

  footer .footer-section {
    max-width: unset;
  }

  footer .footer-section:has(.logo),
  footer .footer-section:last-of-type {
    align-items: center;
  }

  footer .footer-section:last-of-type a {
    margin-left: 0;
  }

  footer .footer-section:has(.logo) {
    margin-bottom: 10px;
  }

  .row + .bottom.row {
    align-items: center;
    padding: 18px 20px 25px 20px;
  }

  footer .bottom div:first-of-type {
    display: flex;
    justify-content: center;
    gap: 10px;
  }

  footer .bottom div:last-of-type {
    justify-content: center;
    display: flex;
  }

  footer .bottom div {
    width: 100%;
  }

  .back-to-top::after {
    width: 16px;
    height: 16px;
  }
}

@media (max-width: 500px) {
  footer .bottom div:first-of-type {
    flex-wrap: wrap;
    flex-direction: column;
    align-items: center;
    gap: 0;
  }

  .row + .bottom.row {
    gap: 20px;
  }
}

.smooth {
  opacity: 0;
  /* Initially invisible */
  transform: translateY(50px);
  /* Start slightly below the normal position */
  transition: opacity 0.6s ease-out, transform 0.6s ease-out;
  /* Smooth transition */
}

.smooth.visible {
  opacity: 1;
  /* Fully visible */
  transform: translateY(0);
  /* Move to the normal position */
}

/************************************/
/******** DESIGN INTERIORES *********/
/************************************/

.design-interiores .content .template + h2,
.design-interiores .content .template-module + h2,
.design-interiores .content .template > h2 {
  margin-top: 60px;
  margin-bottom: 0px;
  font-size: 60px;
  font-weight: 200;
  line-height: 1.17;
  letter-spacing: -2.4px;
  text-align: center;
  color: #1d1d1d;
  text-transform: uppercase;
}

.design-interiores .content .template + h2 strong,
.design-interiores .content .template-module + h2 strong {
  font-weight: 300;
}

.design-interiores .project-slider {
  margin-block: 80px;
  display: block;
  position: relative;
  padding-inline: 0;
  margin-inline: auto;
  opacity: 0;
  transform: translateY(100px);
  transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

.design-interiores h2 + .project-slider {
  margin-top: 75px;
}

.design-interiores .project-slider.visible {
  opacity: 1;
  transform: translateY(0px);
}

.design-interiores .project-slider .slider {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 5px;
}

body.design-interiores .banner .container ul li a {
  font-weight: 300;
}

.design-interiores .project-slider img {
  aspect-ratio: 284 / 430;
  display: block;
  width: 100%;
  height: 100%;
  max-width: 284px;
}

.design-interiores .project-slider img {
  aspect-ratio: 284 / 430;
  display: block;
  width: 100%;
  height: 100%;
  max-width: 284px;
  transition: var(--transition);
}

.design-interiores .project-slider:has(.tns-item) img {
  max-width: unset;
}

.design-interiores .project-slider .slide-container span {
  position: absolute;
  font-size: 25px;
  font-weight: 200;
  line-height: 1.4;
  letter-spacing: -0.63px;
  text-align: center;
  color: var(--white);
  text-transform: uppercase;
  bottom: 33px;
  opacity: 0;
  z-index: 1;
  transition: var(--transition);
  pointer-events: none;
  width: 100%;
  padding-inline: 20px;
  will-change: transform;
}

.design-interiores .project-slider .slide-container {
  position: relative;
  display: block;
}

.design-interiores .project-slider .slide-container .image-proj {
  position: relative;
  overflow: hidden;
}

.design-interiores .project-slider .slide-container .image-proj::before {
  content: "";
  position: absolute;
  display: block;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  margin: auto;
  background-color: var(--black);
  opacity: 0;
  transition: var(--transition);
  z-index: 1;
  pointer-events: none;
  will-change: transform;
}

.design-interiores .project-slider .controls {
  position: absolute;
  top: 50%;
  left: 0;
  right: 0;
  transform: translateY(-50%);
  display: flex;
  align-items: center;
  pointer-events: none;
  width: 100%;
  justify-content: space-between;
  height: 50px;
}

.design-interiores .project-slider .controls .previous,
.design-interiores .project-slider .controls .next {
  height: 100%;
  width: 25px;
  position: relative;
  margin: 30px;
  pointer-events: auto;
}

.design-interiores .project-slider .controls .previous::before,
.design-interiores .project-slider .controls .next::before {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  -webkit-mask-image: url("/assets/img/svg/slider_arrow.svg");
  -webkit-mask-repeat: no-repeat;
  mask-image: url("/assets/img/svg/slider_arrow.svg");
  mask-repeat: no-repeat;
  mask-size: cover;
  background-color: #ffffff;
  transition: var(--transition);
  cursor: pointer;
}

.design-interiores .project-slider .controls .previous::before {
  transform: rotateY(180deg);
}

@media (min-width: 768px) and (max-width: 1024px) {
  .design-interiores .template .project-slider:last-of-type {
    margin-bottom: 150px;
  }
}

@media (max-width: 1190px) {
  .design-interiores .project-slider .slide-container .image-proj::before {
    mix-blend-mode: multiply;
    background-blend-mode: multiply;
    background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0), #828282);
    opacity: var(--opacity);
  }

  .design-interiores .project-slider .slide-container span {
    font-size: 18px;
  }
}

@media (max-width: 1024px) {
  .design-interiores .project-slider .slide-container span {
    opacity: 1;
    font-size: 16px;
  }

  .design-interiores .content .template + h2,
  .design-interiores .content .template-module + h2,
  .design-interiores .content .template > h2 {
    font-size: 45px;
  }
}

@media (max-width: 768px) {
  .design-interiores .project-slider {
    margin-block: 60px;
  }

  .design-interiores .project-slider .slide-container .image-proj::before {
    background: none;
    mix-blend-mode: multiply;
    background-image: linear-gradient(
      to top,
      /* Direction from bottom to top */ rgba(0, 0, 0, 0.55) 0%,
      /* Black at the bottom */ rgba(0, 0, 0, 0) 100%
        /* Transparent at the top */
    );
    opacity: 1; /* Ensure the gradient is fully visible */
    z-index: 1; /* Stack above relevant elements */
    content: ""; /* Required for ::before to display */
    position: absolute; /* Position the pseudo-element */
    top: 0;
    left: 0;
    width: 100%; /* Match the parent element's width */
    height: 100%; /* Match the parent element's height */
    pointer-events: none; /* Ensure it doesn't interfere with interactions */
  }

  .design-interiores .project-slider .controls {
    top: unset;
    bottom: 20px;
    transform: none;
    height: 25px;
  }

  .design-interiores .project-slider:has(.tns-item) .controls {
    top: unset;
    bottom: 20px;
    transform: none;
    height: 25px;
    display: flex;
  }

  .design-interiores .project-slider .controls .previous,
  .design-interiores .project-slider .controls .next {
    width: 13px;
    margin: 25px;
  }

  .design-interiores .project-slider .slide-container span {
    font-size: 14px;
    opacity: 1;
    bottom: 22px;
  }

  .design-interiores .content .template + h2,
  .design-interiores .content .template-module + h2,
  .design-interiores .content .template > h2 {
    font-size: 40px;
  }

  .hp_projects a {
    margin-top: 15px;
  }

  .design-interiores .project-slider .slider {
    gap: inherit;
  }

  .design-interiores .template .project-slider:last-of-type {
    margin-bottom: 0;
  }
}

@media (min-width: 1024px) {
  .design-interiores
    .project-slider
    .slide-container:hover
    .image-proj::before {
    opacity: var(--opacity);
  }

  .design-interiores .project-slider .slide-container .image-proj:hover p {
    opacity: 1;
  }

  .design-interiores .project-slider .slide-container:hover span {
    opacity: 1;
  }

  .design-interiores .project-slider .slide-container .image-proj:hover img {
    transform: scale(1.05);
  }
}

/****************************************/
/**********PROJECTS GALLERY *************/
/****************************************/

.projects .gallery {
  margin: 0 auto;
  margin-top: 80px;
  opacity: 0;
  transform: translateY(100px);
  transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

.projects .gallery.visible {
  opacity: 1;
  transform: translateY(0px);
}

.projects .gallery .row {
  --gap: 5px;
  display: flex;
  flex-direction: row;
}

.projects .gallery .col {
  transition: var(--transition);
  opacity: 1;
  height: auto;
}

.projects .gallery .col.hidden {
  opacity: 0;
  transition: var(--transition);
  height: 0;
}

.projects .gallery .row .col .image {
  aspect-ratio: 713 / 605;
  width: 100%;
  height: 100%;
  position: relative;
}

.projects .gallery .row .col .image::before {
  content: "";
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  left: 0;
  background-color: var(--black);
  opacity: 0.3;
  transition: var(--transition);
}

.projects .gallery .row .col .image::before {
  width: 100%;
  height: 100%;
}

.projects .gallery .row .col .image img {
  width: 100%;
  height: 100%;
}

.projects .gallery .row .col span {
  position: absolute;
  bottom: 25px;
  color: white;
  opacity: 1;
  z-index: 3;
  transition: var(--transition);
  display: inline-block;
  font-size: 16px;
  font-weight: 200;
  text-transform: uppercase;
  line-height: 1.38;
  letter-spacing: -0.16px;
  color: var(--white);
  width: unset;
  left: 0;
  right: 0;
  text-align: center;
}

@media (min-width: 1024px) {
  .projects .gallery .row .col span {
    opacity: 0;
  }

  .projects .gallery .row .col span {
    opacity: 0;
    font-size: 30px;
    bottom: 50px;
    left: 35px;
    transform: none;
    text-align: left;
  }

  .projects .gallery .row .col:hover span {
    opacity: 1;
  }

  .projects .gallery .row .col:hover .image::before {
    opacity: var(--opacity);
  }

  .projects .gallery .row .col .image::before {
    opacity: 0;
  }
}

@media (max-width: 767px) {
  .projects .gallery .row .col .image::before {
    background: none;
    mix-blend-mode: multiply;
    background-image: linear-gradient(
      to top,
      rgba(130, 130, 130, 1) 0%,
      rgba(130, 130, 130, 0) 65%
    );
    opacity: 1;
    z-index: 1;
    pointer-events: none;
    will-change: transform;
  }

  .projects .gallery a.arrow-btn {
    margin-top: 45px;
  }
}

.world-map {
  max-width: 1280px;
  height: auto;
  margin-inline: auto;
  position: relative;
}

.world-map svg > image:first-of-type {
  width: 100%;
  height: auto;
  display: block;
  margin: 0 auto;
}

.world-map .map-pin {
  transform: translate(-60px, 50px);
  cursor: pointer;
}

.world-map .map-image {
  transform: translate(0px, 10px) scale(1);
}

@media (max-width: 500px) {
  .world-map svg > image:first-of-type {
    position: absolute;
    /* Keep the image aligned over the SVG */
    top: 0;
    left: 0;
    width: 100%;
    /* Ensure it spans the full width of the parent */
    height: auto;
    /* Maintain aspect ratio */
    pointer-events: none;
    /* Allow interactions to pass through to the SVG */
    transition: transform 0.3s ease;
  }
}

/****************************/
/***********BLOG*************/
/****************************/

.blog .container {
  display: flex;
  margin: auto;
  flex-direction: column;
  align-items: center;
  max-width: 100%;
  padding-inline: 40px;
  margin-inline: auto;
}

.blog .blog-container + .listing:has(.filter-container) {
  margin-top: 70px;
}

.blog .container > a {
  font-size: 13px;
  font-weight: bold;
  line-height: 1.38;
  letter-spacing: 1.04px;
  text-align: center;
  color: var(--black);
  margin: 20px 0 40px 0;
  transition: var(--transition);
  text-transform: uppercase;
}

.row:has(.blog-article) {
  width: 100%;
  max-width: 100%;
  /* opacity: 0;
    transform: translateY(100px);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;  */
  justify-content: center;
}

.row.visible:has(.blog-article) {
  width: 100%;
  max-width: 100%;
  /* opacity: 1;
    transform: translateY(0px); */
}

.blog-article .img-blog {
  position: relative;
  overflow: hidden;
  width: 100%;
  font-size: 0;
  isolation: isolate;
  transform: translateZ(0);
  margin-top: 40px;
}

.blog-article .img-blog img {
  width: 100%;
  transition: var(--transition);
  height: 100%;
}

.blog-article .blog-bot-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-top: 24px;
  gap: 17px;
}

.blog-article .blog-bot-content span {
  font-size: 12px;
  font-weight: 100;
  line-height: 1.67;
  letter-spacing: 0.6px;
  color: #1d1d1d;
}

.blog-article .blog-bot-content > a {
  font-size: 30px;
  font-weight: 200;
  line-height: 1.4;
  letter-spacing: -0.75px;
  text-align: center;
  color: #1d1d1d;
  text-transform: uppercase;
}

.blog-article .blog-bot-content span > a {
  font-size: 12px;
  font-weight: 200;
  line-height: 1.67;
  letter-spacing: 0.6px;
  text-align: left;
  color: #1d1d1d;
  text-transform: uppercase;
  margin-left: 15px;
}

@media (max-width: 1400px) {
  .blog-article .blog-bot-content > a {
    font-size: 25px;
  }
}

@media (max-width: 768px) {
  .blog .row {
    --gap: 50px;
  }

  .blog h2 {
    font-size: 24px;
    line-height: 1.4;
    letter-spacing: 1.2px;
  }

  .blog > a {
    font-size: 14px;
    letter-spacing: -0.14px;
    margin: 20px 0 30px 0;
  }

  .blog .container > a {
    font-size: 12px;
    line-height: 1.33;
    letter-spacing: 0.96px;
    margin: 13px 0 26px 0;
  }

  .listing .pagination {
    margin: 0px auto 150px;
  }

  .blog .blog-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 23px;
  }

  .blog-article {
    max-width: 100%;
  }

  .blog-article .img-blog {
    margin-top: 0;
  }

  .blog-article .blog-bot-content {
    margin-top: 13px;
    gap: 0px;
  }

  .blog-article .blog-bot-content span {
    font-size: 11px;
  }

  .blog-article .blog-bot-content > a {
    font-size: 18px;
    line-height: 1.33;
    letter-spacing: -0.72px;
    letter-spacing: normal;
    margin-top: 10px;
  }

  .world-map {
    max-width: 1280px;
    height: auto;
    margin-inline: auto;
    position: relative;
  }

  .world-map svg {
    display: block;
    margin: 0 auto;
    height: 100%;
  }

  .blog .blog-container + .listing:has(.filter-container) {
    margin-top: 70px;
  }
}

@media (max-width: 500px) {
  .world-map {
    width: 160%;
    transform: translateX(-25%);
  }
}

@media (min-width: 1024px) {
  .blog .container a:hover {
    color: var(--black);
  }

  .blog-article .img-blog:hover img {
    transform: scale(1.1);
  }

  .blog-article .blog-bot-content > a:hover {
    opacity: 0.6;
  }
}

/****************************************/
/********** LISTING PAGINATION **********/
/****************************************/

.listing .pagination ul {
  display: block;
  text-align: center;
  list-style: none;
  font-size: 0;
  padding: 0;
  margin: 0 -7px;
  align-items: center;
}

.listing .pagination ul li {
  display: inline-block;
  transition: var(--transition);
  position: relative;
  font-size: 20px;
  font-weight: 200;
  line-height: 1.5;
  letter-spacing: -0.2px;
  text-align: center;
  color: #8f8e8e;
}

.template .pagination ul li.disabled {
  pointer-events: none;
}

.template .pagination ul li.prev.disabled a,
.template .pagination ul li.next.disabled a {
  opacity: 0.32;
}

.listing .pagination ul li.prev {
  margin-right: 10px;
}

.listing .pagination ul li.next {
  margin-left: 10px;
}

.listing .pagination ul li::before {
  content: normal;
}

.listing .pagination ul li a {
  font-family: var(--font-family);
  padding: 0 7px;
  display: inline-block;
  border: none;
  font-size: 20px;
  font-weight: 200;
  line-height: 1.5;
  text-align: center;
  color: #8f8e8e;
}

.listing .pagination ul li.active a {
  font-weight: 300;
}

.listing .pagination ul li.prev a,
.listing .pagination ul li.next a {
  content: "";
  display: inline-block;
  width: 20px;
  height: 14px;
  -webkit-mask-image: url(/assets/img/svg/arrow-pag.svg);
  mask-image: url(/assets/img/svg/arrow-pag.svg);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  background-color: var(--primary);
  mask-size: cover;
  -webkit-mask-size: cover;
}

.listing .pagination ul li.prev a {
  transform: rotate(180deg);
}

@media (max-width: 768px) {
  .listing .pagination ul li.prev a,
  .listing .pagination ul li.next a {
    width: 16px;
    height: 11px;
  }

  .listing .pagination ul li a {
    font-size: 16px;
    padding: 0 2px;
  }
}

@media (min-width: 1024px) {
  .listing .pagination ul {
    margin: 0;
    padding-left: 0;
    display: flex;
    gap: 0;
    justify-content: center;
  }

  .listing .pagination ul li a {
    padding: 0;
  }

  .listing .pagination ul li.prev:hover {
    transform: translateX(-3px);
  }

  .listing .pagination ul li.next:hover {
    transform: translateX(3px);
  }

  .listing .pagination ul li.prev a,
  .listing .pagination ul li.next a {
    width: 20px;
    height: 14px;
    padding: 0;
  }

  .listing .pagination ul li a:hover,
  .listing .pagination ul li a:focus,
  .listing .pagination ul li.active a {
    color: var(--primary);
  }
}

/****************************/
/*******LISTING FILTER*******/
/****************************/

.filter-container {
  display: flex;
  justify-content: center;
  gap: 10px;
  /* margin-bottom: 80px; */
  width: 100%;
  max-width: 1020px;
  flex-wrap: wrap;
}

.filter-container .input-wrapper {
  max-width: 290px;
  width: 100%;
}

.input-wrapper {
  position: relative;
  display: flex;
}

.input-wrapper label {
  position: absolute;
  left: 0px;
  top: 18px;
  transition: var(--transition);
  z-index: 2;
  opacity: 0;
  font-size: 16px;
  font-weight: 200;
  line-height: 1.63;
  color: var(--black);
}

.input-wrapper:has(.isSelected) label {
  z-index: 0;
}

.input-wrapper:not(:has(.isSelected)) label {
  opacity: 1;
}

.input-wrapper:has(.open) label {
  z-index: 2;
}

.input-wrapper:has(.open.isSelected) label {
  z-index: 2;
}

.input-wrapper.filled label {
  top: -5px;
  font-size: 0.7rem;
  opacity: 0.3;
}

.custom-select {
  height: auto;
  padding: 0;
  background: initial;
  border: 0;
  border-radius: 0;
  min-width: 250px;
  display: inline;
}

.custom-select .placeholder {
  border: 1px solid #dddbdb;
  padding: 17px 0;
  padding-left: 22px;
  color: var(--black);
  cursor: pointer;
  z-index: 3;
}

.custom-select .placeholder,
.listing .filter-form .filter-input::placeholder {
  font-size: 16px;
  font-weight: 200;
  color: var(--black);
}

.custom-select .placeholder {
  background-color: white;
}

.custom-select .options-wrapper .custom-select.open .placeholder {
  border-bottom: 1px solid var(--transparent);
  border-radius: none;
}

.custom-select .options > div {
  font-size: 14px;
  font-weight: 200;
  color: var(--black);
}

.custom-select .options-wrapper {
  border-top: 1px solid var(--transparent);
  border-bottom: 1px solid #dddbdb;
  border-left: 1px solid #dddbdb;
  border-right: 1px solid #dddbdb;
  padding-top: 0px;
  padding-bottom: 10px;
  top: 20px;
  padding-right: 0;
  padding-left: 22px;
  margin-top: -3px;
  font-size: 13px;
}

.custom-select.has-reset .placeholder > div.reset {
  width: 7px;
  height: 20px;
  right: 21px;
  top: 0;
  overflow: visible;
}

.custom-select.has-reset .placeholder > div.reset::before,
.custom-select.has-reset .placeholder > div.reset::after {
  width: 8px;
  bottom: auto;
  height: 2px;
  transition: all 0.2s ease-in-out;
  background-color: var(--black);
}

.custom-select:not(.has-reset) .placeholder::before {
  right: 21px;
  border-right: 1px solid #003535;
  border-bottom: 1px solid #003535;
}

.custom-select.not-filled + .custom-select .placeholder {
  border-color: var(--warning);
}

.custom-select.not-filled + .custom-select .options-wrapper {
  border-left: 2px solid var(--warning);
  border-right: 2px solid var(--warning);
  border-bottom: 2px solid var(--warning);
}

.custom-select.has-reset .placeholder > div.reset::before {
  border-radius: 1px;
  transform-origin: 50%;
  left: -2px;
  transform: translateX(-25%) rotate(45deg) scaleX(0.9);
  top: 9px;
}

.custom-select.has-reset .placeholder > div.reset::after {
  border-radius: 1px;
  transform-origin: 50%;
  transform: translateX(25%) rotate(-45deg) scaleX(0.9);
  top: 9px;
}

.custom-select.has-reset.isSelected .placeholder > div.reset::before {
  transform: translateX(1px) rotate(45deg) scaleX(1.4);
  background-color: var(--black);
}

.custom-select.has-reset.isSelected .placeholder > div.reset::after {
  transform: translateX(0) rotate(-45deg) scaleX(1.4);
  background-color: var(--black);
}

.custom-select.has-reset.isSelected .placeholder > div.reset {
  height: 22px;
  top: -6px;
}

.custom-select.has-reset.isSelected .placeholder > div.reset::after,
.custom-select.has-reset.isSelected .placeholder > div.reset::before {
  height: 2px;
  width: 9px;
}

.custom-select .options {
  padding: 0;
  overflow: auto;
}

.custom-select.open .options-wrapper,
.custom-select.open .options {
  max-height: 250px;
  opacity: 1;
  top: 50px;
  /* text-transform: capitalize; */
  z-index: 4;
}

.custom-select .options > div {
  padding: 5px 0;
}

.custom-select.isSelected .placeholder {
  border-color: var(--black);
}

.custom-select.isSelected.open .placeholder {
  border-bottom: 1px solid var(--black);
}

.custom-select.isSelected.open .options-wrapper {
  border-top: 1px solid var(--transparent);
  border-bottom: 1px solid var(--black);
  border-left: 1px solid var(--black);
  border-right: 1px solid var(--black);
}

.listing .filter-form a span {
  display: inline-block;
  position: relative;
  width: 15px;
  height: 15px;
  cursor: pointer;
}

.listing .filter-form a span svg {
  width: 100%;
  height: 100%;
  opacity: 0;
}

.listing .filter-form a span.hidden svg {
  opacity: 1;
}

.listing .filter-form a span::before,
.listing .filter-form a span::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 100%;
  opacity: 1;
  transition: var(--transition);
  height: 2px;
  background-color: black;
  /* Adjust color as needed */
  transform-origin: center;
}

.listing .filter-form a span.hidden::before,
.listing .filter-form a span.hidden::after {
  opacity: 0;
}

.listing .filter-form a span::before {
  transform: rotate(45deg);
  /* First line of the "X" */
}

.listing .filter-form a span::after {
  transform: rotate(-45deg);
  /* Second line of the "X" */
}

/* .listing .clear-btn {

}

.listing .clear-btn.hidden {
    opacity: 0;
}

.listing .clear-btn::before,
.listing .clear-btn::after {
    content: "\00D7";
    font-size: 1rem;
    padding-right: 9px;
} */

.listing .filter-form {
  margin: 0;
  position: relative;
  width: 100%;
  max-width: 380px;
}

.listing .filter-form a {
  margin: 0;
  position: absolute;
  width: 15px;
  height: 15px;
  display: inline-block;
  top: 20px;
  right: 21px;
}

.listing .filter-form .filter-input {
  padding-top: 17px;
  padding-bottom: 18px;
  padding-left: 22px;
  font-size: 14px;
  color: var(--black);
  outline: none;
  position: relative;
  width: 100%;
  min-width: 300px;
  font-weight: 200;
  border: 1px solid #dddbdb;
  font-family: var(--font-family);
  transition: var(--transition);
  border-radius: 0;
}

.listing .filter-form .filter-input:focus {
  border: 1px solid var(--black);
}

.mobile-close,
.filter-button,
.apply-mobile {
  display: none;
}

.filter-container.row .row:has(.blog-article) {
  margin-top: 40px;
  justify-content: center;
  max-width: 1360px;
}

.filter-container.row .row:has(.blog-article) .no_result + p {
  font-size: 18px;
  font-weight: 300;
  line-height: 1.56;
  letter-spacing: -0.18px;
  text-align: center;
  color: #1d1d1d;
}

.filter-container label {
  left: 20px;
  top: 15px;
}

@media (max-width: 1024px) {
  .filter-container {
    flex-wrap: wrap;
    justify-content: center;
    max-width: 100%;
    padding-inline: 0;
    margin-inline: auto;
  }

  .listing .filter-form,
  .listing .filter-form .filter-input {
    max-width: unset;
    min-width: unset;
  }

  .blog .container {
    padding-inline: 20px;
    width: 100%;
    max-width: 100%;
  }

  .blog .container:has(.blog-article) {
    padding-inline: 20px;
  }

  .filter-container.row .row:has(.blog-article) {
    margin-top: 70px;
    justify-content: center;
  }

  /* .filter-container .input-wrapper {
    max-width: 250px;
  } */
}

@media (max-width: 768px) {
  .row:has(.blog-article) {
    margin-top: 50px;
  }

  .related-section .row:has(.blog-article) {
    margin-top: 0;
  }

  .filter-container.row:has(.blog-article) {
    margin-top: 0;
  }

  .listing .filter-form .filter-input {
    min-width: unset;
  }

  .listing .filter-form,
  .listing .filter-form .filter-input {
    max-width: 100%;
  }

  .filter-container .input-wrapper {
    max-width: 100%;
  }

  .filter-container .input-wrapper:has(.open) {
    z-index: 5;
  }

  .input-wrapper label {
    font-size: 14px;
    top: 15px;
  }
}

@media (min-width: 769px) and (max-width: 1024px) {
  .filter-container .input-wrapper,
  .listing .filter-form {
    max-width: calc(33.3% - 0px);
    width: 100%;
  }

  .listing .filter-form .filter-input {
    width: 100%;
  }

  .blog .filter-container .custom-select {
    min-width: unset;
  }
}
/* 
@media(max-width: 550px) {

    .custom-select.open .options-wrapper,
    .custom-select.open .options {
        position: sticky;
    }
} */

.article .banner .blog-article-desc {
  margin-top: 22px;
}

.article .banner .blog-article-desc > div {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 15px;
}

.article .banner .blog-article-desc > div > * {
  font-size: 12px;
  font-weight: 200;
  line-height: 1.67;
  letter-spacing: 0.6px;
  color: var(--black);
  text-transform: uppercase;
}

.article .banner .blog-article-desc > div > span {
  opacity: 0.5;
}

.article .banner + .template {
  margin-top: 55px;
}

.related-section {
  margin-top: 90px;
  opacity: 0;
  transform: translateY(100px);
  transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

.related-section.visible {
  margin-top: 60px;
  opacity: 1;
  transform: translateY(0px);
}

.article .related-section h2,
.article .related-section .h2 {
  font-size: 40px;
  font-weight: 200;
  font-stretch: normal;
  font-style: normal;
  line-height: 1.25;
  letter-spacing: -1.6px;
  text-align: center;
  color: #1d1d1d;
  text-transform: uppercase;
  color: var(--black);
  margin: 0;
}

.article .related-section .container {
  display: flex;
  margin: auto;
  flex-direction: column;
  align-items: center;
  max-width: 1400px;
  padding-inline: 20px;
  margin-inline: auto;
}

@media (max-width: 768px) {
  .article .related-section h2,
  .article .related-section .h2 {
    font-size: 30.5px;
    font-weight: 200;
    font-stretch: normal;
    font-style: normal;
    line-height: 1.31;
    letter-spacing: -1.22px;
    text-align: center;
    color: #1d1d1d;
    margin-bottom: 20px;
  }
}

/**************************/
/****PAGINATION WRAPPER****/
/**************************/

.pagination-wrapper {
  margin: 100px auto 0;
  max-width: 1020px;
  padding: 0 20px;
}

.pagination {
  padding: 0;
  mix-blend-mode: multiply;
  padding-bottom: 45px;
}

.product .pagination {
  border-bottom: 1px solid #dcdcdc;
}

.pagination ul {
  margin: auto;
  width: 100%;
  padding: 0;
  display: flex;
  justify-content: space-between;
}

.pagination ul li {
  display: inline-block;
  vertical-align: middle;
  cursor: pointer;
  color: var(--primary);
  text-transform: uppercase;
  transition: var(--transition);
  font-size: 12px;
  line-height: 1.67;
  letter-spacing: 0.6px;
  color: #1d1d1d;
  font-weight: 400;
}

.pagination ul li.prev a {
  position: relative;
  padding-left: 40px;
}

.pagination ul li.next a {
  position: relative;
  padding-right: 40px;
}

.pagination ul li.prev a::before,
.pagination ul li.next a::before {
  content: "";
  position: absolute;
  left: unset;
  left: 0;
  width: 18px;
  height: 12px;
  top: 50%;
  mask-image: url(/assets/img/svg/button-arrow.svg);
  -webkit-mask-image: url(/assets/img/svg/button-arrow.svg);
  background-color: var(--black);
  mask-repeat: no-repeat;
  -webkit-mask-repeat: no-repeat;
  mask-position: center;
  -webkit-mask-position: center;
  transform: translateY(-50%) rotate(180deg);
  right: 0px;
  transition: var(--transition);
}

.article .pagination ul li.prev a::before,
.article .pagination ul li.next a::before {
  content: none;
}

.article .pagination ul li.prev a {
  padding-left: 0;
}

.article .pagination ul li.next a {
  padding-right: 0;
}

.article .pagination ul {
  padding-left: 0;
  padding-bottom: 30px;
  border-bottom: 1px solid #dcdcdc;
}

.pagination ul li.next a::before {
  right: 0;
  left: unset;
  transform: translateY(-50%) rotate(0deg);
}

.content.article .pagination-wrapper {
  margin-top: 100px;
}

@media (max-width: 768px) {
  .pagination {
    padding: 0;
    padding-bottom: 25px;
    border-bottom: 1px solid #dcdcdc;
  }

  .pagination ul li {
    font-size: 12px;
  }

  .pagination ul li a {
    display: block;
    text-align: center;
    padding-inline: 20px;
  }

  .pagination ul li.prev a {
    position: relative;
    padding-left: 20px;
    padding-right: 0;
    display: flex;
    text-align: left;
  }

  .pagination ul li.next a {
    position: relative;
    padding-right: 20px;
    padding-left: 0;
    display: block;
    text-align: right;
  }

  .pagination ul li {
    margin-block: 0;
  }

  .pagination ul li.prev a::before,
  .pagination ul li.next a::before {
    width: 14px;
    height: 9px;
  }

  .project section.content {
    margin: 0px auto 160px auto;
  }
}

.image-fullscreen-container {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 50;
  width: 100%;
  height: 100vh;
  background-color: #000;
  overflow: hidden;
  opacity: 0;
  pointer-events: none;
  transition: var(--transition);
  padding: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.image-fullscreen-container span {
  cursor: pointer;
  display: block;
  position: absolute;
  top: 20px;
  right: 20px;
  width: 30px;
  height: 30px;
  left: unset;
  bottom: unset;
}

.image-fullscreen-container span.close-video::before,
.image-fullscreen-container span.close-video::after {
  content: "";
  position: absolute;
  top: 0px;
  right: 0;
  bottom: 0;
  width: 28px;
  height: 2px;
  transform: rotate(45deg);
  background-color: #fff;
  border-radius: 0;
  bottom: 0;
  left: 0;
}

.image-fullscreen-container span.close-video::after {
  transform: rotate(132deg);
  mask-image: none;
  -webkit-mask-image: none;
  mask-position: unset;
  -webkit-mask-position: unset;
  mask-size: unset;
  -webkit-mask-size: unset;
  height: 2px;
  top: 0px;
  right: 0px;
  width: 28px;
}

.image-fullscreen-container img {
  position: relative;
  width: auto;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: auto;
  object-fit: contain;
  max-width: 100%;
}

.image-fullscreen-container.open {
  opacity: 1;
  pointer-events: all;
}

@media (max-width: 1024px) {
  .project-gallery .slider-container .controls {
    padding-inline: 20px;
  }

  .project-gallery .slider-container .controls .prev,
  .project-gallery .slider-container .controls .next {
    width: 17px;
    height: 32px;
  }
}

@media (min-width: 768px) {
  .project-gallery .row .col-md-4 {
    flex: 1 1 calc((100% - ((var(--gap)) * 2) / 3));
    max-width: calc((100% - ((var(--gap)) * 2)) / 3);
  }
}

@media (min-width: 1024px) {
  .project-gallery .slider-container .controls .prev:hover::before {
    transform: rotate(0deg) translateY(-50%) translateX(5px);
  }

  .project-gallery .slider-container .controls .next:hover::before {
    transform: translateY(-50%) translateX(5px);
  }

  .pagination ul li:hover a {
    opacity: var(--opacity);
  }

  .pagination ul li.prev:hover a,
  .pagination ul li.next:hover a {
    opacity: 1;
  }

  .pagination ul li.prev:hover a::before {
    transform: translate(-3px, -50%) rotate(180deg);
    opacity: 1;
  }

  .pagination ul li.next:hover a::before {
    transform: translate(3px, -50%) rotate(0deg);
    opacity: 1;
  }
}

/***************************************/
/************ CONTACTS **************/
/***************************************/

.contacts .form + .listing .header :first-child {
  font-size: 60px;
  font-weight: 200;
  line-height: 1.17;
  letter-spacing: -2.4px;
  text-align: center;
  color: #1d1d1d;
}

.contacts .form {
  padding-block: 80px;
  background-color: #f8f8f8;
  opacity: 0;
  transform: translateY(100px);
  transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

.contacts .form.visible {
  padding-block: 80px;
  margin-top: 80px;
  background-color: #f8f8f8;
  opacity: 1;
  transform: translateY(0px);
}

.contacts .template {
  margin-top: 150px;
}

.contacts .form .row {
  --gap: 40px;
  margin-top: 11px;
}

.contacts .form .container {
  max-width: 890px;
}

.contacts .form .title {
  font-size: 30px;
  font-weight: 100;
  line-height: 1.33;
  letter-spacing: -0.75px;
  text-transform: uppercase;
  text-align: center;
  color: var(--black);
}

.contacts .form .main-title {
  font-size: 60px;
  font-weight: 200;
  line-height: 1.17;
  letter-spacing: -2.4px;
  text-align: center;
  text-transform: uppercase;
  color: var(--black);
  margin-top: 17px;
}

.form .row {
  --gap-h: 30px;
  --gap-v: 30px;
}

.form small {
  font-size: 11px;
  font-weight: 300;
  color: #848484;
}

.form .honey-input,
form .honey-input {
  position: fixed;
  top: -200%;
  left: -200%;
}

@media (max-width: 768px) {
  .form .row {
    --gap-h: 20px;
    --gap-v: 20px;
  }

  .form textarea.not-filled,
  .form select.not-filled,
  .form input[type="checkbox"].not-filled + label,
  .form input:not([type="checkbox"], [type="file"]).not-filled {
    margin-bottom: 5px;
  }

  .contacts .form.visible {
    padding-block: 60px;
    margin-top: 60px;
    background-color: #f8f8f8;
    opacity: 1;
    transform: translateY(0px);
  }

  .contacts .form {
    padding-block: 60px;
    background-color: #f8f8f8;
  }

  .contacts .form .title {
    font-size: 18px;
    font-weight: 100;
    line-height: 1.33;
    letter-spacing: -0.45px;
    text-align: center;
    color: var(--black);
  }

  .contacts .form .main-title {
    font-size: 40px;
    font-weight: 200;
    line-height: 1.13;
    letter-spacing: -1.6px;
    text-align: center;
    color: var(--black);
  }

  .contacts .template {
    margin-top: 60px;
  }

  .contacts .template .listing .container .items {
    margin-top: 60px;
  }

  .contacts .template-module.module4.module10 .row,
  .contacts .template-module.module5.module11 .row {
    flex-direction: column-reverse;
  }

  .contacts .form + .listing .header :first-child {
    font-size: 40px;
    line-height: 1.13;
    letter-spacing: -1.6px;
  }
}

/****************************/
/***********INPUTS***********/
/****************************/

.form .input {
  position: relative;
}

.form .input-wrapper input,
.form .input-wrapper textarea {
  background-color: var(--transparent);
  padding: 20px 0;
  border-bottom: 1px solid var(--black);
  font-weight: 300;
  position: relative;
  font-size: 16px;
  line-height: 1.63;
  width: 100%;
  font-family: var(--font-family);
  color: var(--black);
  border-radius: 0;
}

.form .input-wrapper textarea {
  border-radius: 0;
  margin-top: 14px;
  resize: none;
  scrollbar-width: thin;
  scrollbar-color: lightgrey transparent;
}

textarea::-webkit-scrollbar {
  width: 3px;
  border-radius: 10px;
  scrollbar-width: thin;
  scrollbar-color: lightgrey transparent;
}

textarea::-webkit-scrollbar-thumb {
  background-color: lightgrey;
  border-radius: 10px;
}

textarea::-webkit-scrollbar-track {
  background: transparent;
}

.form .input-wrapper:has(textarea) {
  width: 100%;
  max-width: 100%;
}

.form textarea.not-filled,
.form select.not-filled,
.form input[type="checkbox"].not-filled + label,
.form input:not([type="checkbox"], [type="file"]).not-filled {
  border-color: var(--warning) !important;
}

.form .warning {
  font-size: 12px;
  font-weight: 400;
  color: var(--warning);
  height: 20px;
  margin: 0;
  margin-top: 3px;
  padding-left: 0px;
  position: absolute;
  bottom: -22px;
}

.input-wrapper.filled input {
  border-color: var(--primary);
}

@media (max-width: 768px) {
  .form .input-wrapper input {
    padding: 10px 22px 10px 0;
  }

  .form .input-wrapper textarea {
    margin-top: 0;
  }

  .form .warning {
    bottom: -15px;
  }

  .checkbox-wrapper p {
    font-size: 13px;
  }
}

/****************************/
/*********CHECKBOXES******+**/
/****************************/

.form input[type="checkbox"],
.form input[type="radio"] {
  display: none;
  visibility: hidden;
}

.form input[type="checkbox"] + .privacy {
  display: inline-block;
  vertical-align: middle;
  height: 24px;
  left: 0;
  min-width: 24px;
  top: 0px;
  background-color: var(--transparent);
  border: 1px solid var(--black);
  cursor: pointer;
  pointer-events: auto;
  position: relative;
  transition: var(--transition);
  z-index: 1;
}

.form input[type="checkbox"] + label::before,
.form input[type="radio"] + label::before {
  content: "\f00c";
  font-family: "Font Awesome 5 Free";
  font-size: 0.875rem;
  font-weight: bold;
  color: var(--primary);
  line-height: 1;
  width: 11px;
  height: 12px;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 1px;
  right: 0;
  margin: auto;
  opacity: 0;
  pointer-events: none;
  transition: var(--transition);
  -webkit-transition: var(--transition);
}

.form input[type="checkbox"]:checked + label::before,
.form input[type="radio"]:checked + label::before {
  opacity: 1;
}

.form .checkbox-wrapper {
  display: flex;
  align-items: center;
  gap: 15px;
  z-index: 0;
  margin: 0;
}

.checkbox-wrapper p {
  margin: 0;
  font-weight: 200;
  font-size: 14px;
}

.checkbox-wrapper p a {
  color: var(--primary);
  font-weight: 300;
}

/****************************/
/***********LABELS********+**/
/****************************/

label {
  position: absolute;
  top: 20px;
  left: 32px;
  font-size: 14px;
  color: var(--black);
  pointer-events: none;
  transition: var(--transition);
  z-index: 2;
  opacity: 1;
}

.select-wrapper:has(.isSelected) label,
.filter-wrapper:has(.isSelected) + label,
input:focus + label,
textarea:focus + label,
.input-wrapper.filled label,
.input-wrapper.filled input:focus + label,
.input-wrapper.filled textarea:focus + label,
.input-wrapper.filled input:not(:focus) + label,
.input-wrapper.filled textarea:not(:focus) + label {
  top: -8px;
  left: 0px;
  font-size: 11px;
  color: lightgray;
  font-weight: 300;
  border-radius: 0;
  padding: 1px 0;
  z-index: 2;
  font-size: 11px;
  opacity: 1;
}

/* .filter-container .select-wrapper:has(.isSelected) label {
    opacity: 0;
    top: 15px;
    left: 20px;
    display: none;
} */

.filter-container .select-wrapper:has(.isSelected) label {
  left: 22px;
  background-color: white;
  color: black;
  padding-inline: 4px;
}

.filter-container .select-wrapper:not(:has(.isSelected)) label {
  opacity: 1;
}

@media (max-width: 768px) {
  label {
    top: 15px;
    font-size: 13px;
  }

  .select-wrapper:has(.isSelected) label,
  .filter-wrapper:has(.isSelected) + label,
  input:focus + label,
  textarea:focus + label,
  .input-wrapper.filled label,
  .input-wrapper.filled input:focus + label,
  .input-wrapper.filled textarea:focus + label,
  .input-wrapper.filled input:not(:focus) + label,
  .input-wrapper.filled textarea:not(:focus) + label {
    top: -12px;
  }

  .filter-container .select-wrapper:has(.isSelected) label {
    top: -9px;
  }
}

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

.privacy-wrapper {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  padding-block: 40px;
}

.privacy-wrapper > * {
  margin: 0 !important;
}

.contacts a.arrow-btn {
  padding-block: 22px;
  margin-top: 10px;
}

.latest-posts {
  padding-inline: 20px;
  margin-inline: auto;
  background-color: #f8f8f8;
  padding: 120px 20px;
  margin-top: 150px;
  opacity: 0;
  transform: translateY(100px);
  transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

.latest-posts iframe {
  max-width: 1360px;
  margin-inline: auto;
  display: block;
  margin-top: 30px;
}

.latest-posts.visible {
  opacity: 1;
  transform: translateY(00px);
}

.latest-posts > div {
  max-width: 1360px;
  margin-inline: auto;
  display: flex;
  justify-content: space-between;
  align-items: end;
}

.latest-posts > div > a {
  transition: var(--transition);
}

.latest-posts > div > a:hover {
  transform: translateX(3px);
}

.latest-posts.test > div > a:hover {
  transform: scale(1.05);
}

.latest-posts > div a {
  font-size: 12px;
  line-height: 2.17;
  letter-spacing: 0.6px;
  color: var(--black);
  padding-left: 38px;
  position: relative;
  transition: var(--transition);
}

.latest-posts > div a::before {
  content: "";
  position: absolute;
  top: 7px;
  left: 0;
  width: 20px;
  height: 14px;
  mask-image: url(/assets/img/svg/button-arrow.svg);
  -webkit-mask-image: url(/assets/img/svg/button-arrow.svg);
  mask-position: center;
  -webkit-mask-position: center;
  mask-size: contain;
  -webkit-mask-size: contain;
  background-color: var(--black);
  mask-repeat: no-repeat;
  -webkit-mask-repeat: no-repeat;
}

.latest-posts > div a {
  font-size: 12px;
  line-height: 2.4;
  letter-spacing: 0.6px;
  color: var(--black);
  margin-top: 0;
  text-transform: uppercase;
}

.latest-posts > a {
  display: none;
}

.latest-posts .posts-container {
  max-width: 1360px;
  margin-inline: auto;
  flex-wrap: nowrap;
  gap: 5px;
  position: relative;
  width: 100%;
  margin-top: 25px;
}

.latest-posts .posts-container a {
  height: 100%;
  padding-left: 0;
  overflow: hidden;
  flex: 1;
}

.latest-posts .posts-container a img,
.latest-posts .posts-container a video {
  width: 100%;
  height: auto;
  transition: var(--transition);
  object-fit: cover;
}

.latest-posts .posts-container a:hover img,
.latest-posts .posts-container a:hover video {
  transform: scale(1.05);
}

.latest-posts .posts-container a::before {
  content: none;
}

.latest-posts span {
  font-size: 30px;
  font-weight: 100;
  line-height: 1.33;
  letter-spacing: -0.75px;
  text-align: left;
  color: var(--black);
  text-transform: uppercase;
}

.latest-posts .posts-gallery {
  max-width: 1400px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
}

.latest-posts .posts-gallery img {
  width: 100%;
  height: 100%;
  object-position: center;
  object-fit: cover;
  display: block;
}

.latest-posts .posts-gallery .image {
  aspect-ratio: 1 / 1;
}

.content.contacts + footer .back-to-top::before {
  background-color: var(--white);
}

.content.contacts:has(.listing a.button) + footer .back-to-top::before {
  background-color: #f8f8f8;
}

.content.contacts + footer {
  margin-top: 0;
}

.contacts .template:has(.latest-posts) + footer {
  margin-top: 0;
}

.contacts .template:has(.latest-posts) + footer .row.top {
  background-color: var(--white);
}

.content.contacts:has(.listing a.button) + footer {
  background-color: #f8f8f8;
}

.content.contacts + footer .top.row {
  margin-top: unset;
  background-color: white;
}

.content.contacts:has(.listing a.button) + footer .top.row {
  margin-top: inherit;
  background-color: #f8f8f8;
  margin-top: 150px;
}

.contacts .latest-posts {
  margin-inline: auto;
}

.contacts .latest-posts .snapwidget-widget.desktop {
  display: block;
  width: 100%;
  max-width: 1360px;
  margin-inline: auto;
  margin-top: 28px;
}

.contacts .snapwidget-widget.mobile {
  display: none;
}

.design-interiores .template:has(.project-slider:last-of-type) + footer {
  margin-top: 5px;
}

.design-interiores
  .template:has(.project-slider:last-of-type)
  + footer
  .back-to-top.show {
  top: -90px;
}

.latest-posts .posts-container + a {
  display: none;
}

.latest-posts > a {
  display: none;
}

@media (max-width: 1024px) {
  .latest-posts span {
    max-width: 60%;
  }

  .design-interiores
    .template:has(.project-slider:last-of-type)
    + footer
    .back-to-top.show {
    top: -120px;
  }
}

@media (max-width: 768px) {
  .privacy-wrapper {
    flex-direction: column-reverse;
    padding: 10px 0 5px 0;
    gap: 50px;
  }

  .contacts a.arrow-btn {
    margin-top: 55px;
    padding-block: 19px;
  }

  .content.contacts .listing .header p {
    font-size: 40px;
  }

  .latest-posts {
    margin-top: 60px;
    padding-inline: 0;
    margin-inline: auto;
    padding: 60px 0px 110px 0px;
  }

  /* .listing+.latest-posts {
        margin-top: 0;
    } */

  .latest-posts .posts-container {
    max-width: 100%;
    flex-wrap: wrap;
  }

  .latest-posts .posts-container + a {
    display: block;
    max-width: 100%;
    margin-top: 30px;
  }

  .latest-posts .posts-container a {
    flex: 1 1 calc(50% - 2.5px);
    aspect-ratio: 1 / 1;
  }

  .latest-posts > div > span + a {
    display: none;
  }

  .latest-posts > a {
    display: block;
    position: relative;
    max-width: calc(100% - 40px);
    margin-inline: auto;
    margin-top: 20px;
    font-size: 11px;
    letter-spacing: 0.55px;
    padding-left: 26px;
    text-transform: uppercase;
  }

  .latest-posts > a::before {
    content: "";
    position: absolute;
    top: 2px;
    left: 0;
    width: 14px;
    height: 10px;
    mask-image: url(/assets/img/svg/button-arrow.svg);
    -webkit-mask-image: url(/assets/img/svg/button-arrow.svg);
    mask-position: center;
    -webkit-mask-position: center;
    mask-size: contain;
    -webkit-mask-size: contain;
    background-color: var(--black);
    mask-repeat: no-repeat;
    -webkit-mask-repeat: no-repeat;
  }

  .latest-posts span {
    max-width: 100%;
    font-size: 18px;
  }

  .latest-posts > div {
    width: calc(100% - 56px);
    margin-inline: auto;
  }

  .latest-posts > a {
    display: block;
    margin-top: 28px;
  }

  .contacts .latest-posts .snapwidget-widget.desktop {
    display: none;
  }

  .contacts .snapwidget-widget.mobile {
    display: block;
    height: 100%;
    width: 100%;
    overflow: visible;
    aspect-ratio: 318 / 477;
    margin-top: 38px;
  }
}

/*****************************/
/*****SECTIONS ANIMATIONS*****
/*****************************/

section:not(.hp_cta, .cta, .banner, > .banner, ) {
  opacity: 0;
  transform: translateY(100px);
  transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

/* section.content > .banner {
    opacity: 1;
    transform: translateY(0px);
    transition: none;
} */

section.visible:not(.hp_cta, .cta, .banner, .content .banner) {
  opacity: 1;
}

/*****************************/
/*****ATELIER E DECORAÇÃO *****
/*****************************/

.category_mosaic {
  display: flex;
  flex-direction: column;
  width: 100%;
  gap: 5px;
  margin-top: 150px;
}

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

.category_mosaic a {
  position: relative;
  display: block;
  width: 100%;
}

.category_mosaic .images-wrapper a {
  height: 50%;
}

/* .category_mosaic .images-wrapper a {
  height: 50%;
} */

.category_mosaic a:not([href]) {
  cursor: default;
}

.category_mosaic a::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  width: 100%;
  height: 100%;
  mix-blend-mode: multiply;
  background-blend-mode: multiply;
  background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0), #828282);
  opacity: 0.6;
  z-index: 1;
  transition: var(--transition);
  pointer-events: none;
}

.category_mosaic a:hover::before {
  opacity: 0;
}

.category_mosaic a:hover span {
  transform: scale(1.05);
}

.category_mosaic a span {
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  left: 0;
  margin: auto;
  font-size: 40px;
  font-weight: 300;
  line-height: 1.25;
  letter-spacing: -1.6px;
  text-align: center;
  color: var(--white);
  display: flex;
  align-items: center;
  justify-content: center;
  max-width: 80%;
  text-transform: uppercase;
  z-index: 1;
  transition: var(--transition);
}

.three-images-container,
.two-images-container {
  display: flex;
  width: 100%;
  gap: 5px;
}

.three-images-container > .images-wrapper {
  max-width: 37.5%;
  display: flex;
  flex-direction: column;
  gap: 5px;
  width: 100%;
}

.two-images-container > a:first-of-type {
  max-width: 37.5%;
}

.two-images-container > a:last-of-type,
.three-images-container > a {
  max-width: 62.5%;
}

@media (max-width: 1024px) {
  .category_mosaic a span {
    font-size: 30px;
  }

  .category_mosaic a span {
    font-size: 30px;
  }

  .category_mosaic a:hover::before {
    opacity: 0.3;
  }

  .category_mosaic a:hover span {
    transform: none;
  }
}

@media (max-width: 768px) {
  .three-images-container > .images-wrapper {
    max-width: 100%;
    width: 100%;
  }

  .two-images-container > a:first-of-type {
    max-width: 100%;
    width: 100%;
  }

  .two-images-container > a:last-of-type,
  .three-images-container > a {
    max-width: 100%;
    width: 100%;
  }

  .three-images-container,
  .two-images-container {
    flex-wrap: wrap;
  }

  .category_mosaic {
    margin-top: 80px;
  }
}

/*****************************/
/*****PÁGINA DE CATEGORIA *****
/*****************************/

.category_list .slider {
  display: block;
  position: relative;
  /* max-width: 1260px; */
  margin-inline: auto;
}

.category_list .slider .slide a {
  display: flex;
  padding: 0;
  margin: 0 auto;
  flex-direction: column;
  align-items: center;
  position: relative;
  width: 100%;
  height: auto;
  transition: var(--transition);
}

.category_list .slider-container .slider-arrows {
  max-width: 1360px;
  padding: 20px;
  margin-inline: auto;
}

.category_list .slide a span:first-of-type {
  content: "";
  width: 90px;
  height: 90px;
  display: block;
  margin: auto;
  position: relative;
  background-color: (--transparent);
}

.category_list .slide a span:first-of-type::before {
  content: "";
  width: 100%;
  height: 100%;
  position: absolute;
  opacity: 0.3;
  left: 0px;
  top: 0;
  bottom: 0;
  margin: auto;
  background-color: var(--primary);
  transition: var(--transition);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position-y: center;
  mask-position-y: center;
  background-color: var(--black);
}

.category_list .slide a.active span:first-of-type::before,
.category_list .slide a:hover span:first-of-type::before {
  background-color: var(--black);
  opacity: 1;
}

.category_list .slide a span:last-of-type {
  margin-top: 10px;
  font-size: 11px;
  max-width: 90px;
  font-weight: 300;
  line-height: 1.66;
  letter-spacing: -0.15px;
  text-align: center;
  color: #2f302e;
  text-transform: uppercase;
  margin-inline: auto;
  display: block;
  max-width: 90px;
}

.category_list .slide a img {
  width: auto;
  max-width: 100%;
  height: auto;
}

.category_list .slide a img {
  width: auto;
  max-width: 100%;
  height: auto;
}

.product-list-container a {
  display: block;
}

.product-list-container a > div {
  display: block;
  height: auto;
  margin: 0;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background-color: #f8f8f8;
  width: 100%;
  max-width: 100%;
  position: relative;
}

.product-list-container a > div::before {
  content: "";
  position: absolute;
  inset: 0;
  height: 100%;
  object-fit: cover;
  margin: auto;
  background-color: var(--black);
  opacity: 0.02;
  z-index: 1;
}

.product-list-container a > span {
  margin-top: 15px;
  display: block;
  font-size: 16px;
  font-weight: 200;
  line-height: 1.5;
  letter-spacing: -0.2px;
  text-align: center;
  color: #1d1d1d;
  text-transform: uppercase;
  text-align: center;
  width: 100%;
}

.category_list .slide .row {
  --gap: 40px;
}

.product-grid.row {
  width: 100%;
  --gap: 20px;
  gap: var(--gap);
  max-width: 100%;
}

/* .product-grid.row .col-md-4 {
  width: 100%;
  display: block;
  max-width: calc(50% - 20px);
} */

.product-grid.row {
  margin-top: 60px;
  --gap: 50px 40px;
  gap: var(--gap);
  width: 100%;
  max-width: calc(100% - 40px);
  display: flex;
  justify-content: flex-start;
  gap: 40px;
  margin-inline: auto;
}

.product-grid.row a img {
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 1;
  transition: var(--transition);
  object-fit: cover;
  z-index: 0;
  display: block;
}

.category_list .slider-arrows {
  display: none;
}

@media (min-width: 768px) {
  .product-grid.row .col-md-4 {
    width: 100%;
    display: block;
    max-width: calc(50% - 20px);
  }

  .product-grid.row {
    max-width: calc(100% - 40px);
    /* gap: 20px; */
    --gap: 50px 0px;
  }
}

@media (min-width: 1024px) {
  .product-list-container a:hover img {
    transform: scale(1.05);
  }

  .product-grid.row .col-md-4 {
    width: 100%;
    display: block;
    max-width: calc(33.3% - 27px);
  }

  .category_list .slider-container {
    padding-inline: 40px;
    margin-inline: auto;
  }

  .category_list .slider-container .slider-arrows {
    padding-inline: 20px;
  }

  .product-grid.row {
    max-width: calc(100% - 80px);
  }

  /* .product-grid.row .col-md-4 {
    max-width: calc(100% - 80px);
  } */

  .category_list .slider-arrows {
    display: flex;
  }

  .category_list .slider .slide a {
    max-width: 180px;
    padding: 9px;
  }

  .category_list .slide a span:first-of-type {
    width: 100px;
    height: 100px;
  }

  .category_list .slide a span:last-of-type {
    max-width: 170px;
    font-size: 14.5px;
    margin-top: 25px;
  }

  .product-list-container a > span {
    font-size: 20px;
    margin-top: 12;
  }
}

/*****************************/
/*****PÁGINA DE PRODUTO ******
/*****************************/

.product .product-gallery .slider-container .slider.row {
  flex-wrap: nowrap;
}

.product .related-section .row {
  --gap: 40px;
  gap: var(--gap);
}

.product .related-section .container .h2 {
  font-size: 30px;
  font-weight: 200;
  line-height: 1.25;
  letter-spacing: -1.6px;
  text-align: center;
  color: #1d1d1d;
}

.product .related-section .container .description a {
  font-size: 16px;
  font-weight: 200;
  line-height: 1.34;
  letter-spacing: -0.16px;
  text-align: center;
  color: #1d1d1d;
  text-transform: uppercase;
  margin-inline: auto;
  display: block;
  margin-top: 15px;
}

.product-gallery .slider-container .slider.row {
  gap: 3px;
}

.product-gallery .slider-container .slider.row .col-md-6 {
  gap: 0px;
  max-width: 100%;
}

.product .related-section .container .h2 {
  font-size: 30px;
  font-weight: 200;
  line-height: 1.25;
  letter-spacing: -1.6px;
  text-align: center;
  color: #1d1d1d;
}

.product-gallery .slider-container .slider-arrows .prev {
  transform: rotate(-180deg) translateX(0);
}

.product-gallery .slider-container.hasSlider {
  transform: translateX(-25vw);
  width: 125vw;
}

.product-gallery .slider-container.hasSlider .slider-arrows .prev {
  transform: rotate(-180deg) translateX(calc(-25vw - 18px));
}

@media (min-width: 768px) {
  .product .related-section .container .h2 {
    font-size: 40px;
  }

  .product-gallery .slider-container {
    transform: translateX(0);
    width: 100%;
  }

  .product-gallery .slider-container .slider.row {
    gap: 10px;
  }

  .product-gallery .slider-container .slider.row .col-md-6 {
    gap: 0px;
    max-width: 100%;
  }

  .product .related-section .container .description a {
    font-size: 20px;
    margin-top: 25px;
  }

  .product-gallery .slider-container .slider-arrows .prev {
    transform: rotate(-180deg) translateX(0);
  }

  .product-gallery .slider-container.hasSlider {
    transform: translateX(-25vw);
    width: 125vw;
  }

  .product-gallery .slider-container.hasSlider .slider-arrows .prev {
    transform: rotate(-180deg) translateX(calc(-25vw - 60px));
  }

  .product .related-section .row {
    --gap: 40px;
    gap: var(--gap);
    padding-inline: 20px;
  }

  .product .related-section .row .product.highlight.col-md-4 {
    flex: 1 1;
    max-width: calc(33.333333% - (var(--gap) * 0.33333333));
  }
}

@media (min-width: 1024px) {
  .product-gallery .slider-container.hasSlider .slider-arrows .prev:hover {
    transform: rotate(-180deg) translateX(calc(-25vw - 56px));
  }

  .product-gallery .slider-container.hasSlider .slider-arrows .next:hover {
    transform: translateX(4px);
  }

  .product .related-section .row .product.highlight a {
    overflow: hidden;
    display: block;
  }

  .product .related-section .row .product.highlight a img {
    transition: var(--transition);
  }

  .product .related-section .row .product.highlight a:hover img {
    transform: scale(1.05);
  }
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* === template.css === */
section.content {
  min-height: calc(100vh - 487px);
  position: relative;
}

.container.container-tmp {
  max-width: 1020px;
}

body .content h2:first-child,
body .content h3:first-child,
body .content h4:first-child,
body .content ul:first-child,
body .content ol:first-child {
  margin-top: 0;
}

body .content h2:last-child,
body .content h3:last-child,
body .content h4:last-child,
body .content p:last-child,
body .content ul:last-child,
body .content ol:last-child {
  margin-bottom: 0;
}

/* .template:not(:has(.listing,.template-module)){
    display: none;
} */

.template hr {
  background-color: #ebe9e9;
  height: 1px;
  border: none;
}

/***************************/
/***** Banner Template *****/
/***************************/

.banner {
  text-align: center;
  position: relative;
  overflow: hidden;
}

.banner .image {
  /* padding-top: 31.5%; */
  min-height: 360px;
  overflow: hidden;
  position: relative;
}

.banner:not(.no-img) .image {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}

.banner img {
  width: 100%;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.banner .image::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  mix-blend-mode: multiply;
  background-color: rgba(84, 84, 84, 0.6);
  min-height: 562px;
}

.banner:not(.no-img) .container {
  color: var(--white);
  position: relative;
  padding-top: 275px;
  padding-bottom: 197px;
  max-width: 1020px;
  padding-inline: 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
}

body .banner .container > ul,
body .banner .container ul {
  padding: 0;
  list-style: none;
  display: inline-flex;
  flex-wrap: wrap;
  line-height: 1.5;
}

body .banner .container > ul li,
body .banner .container ul li {
  font-size: 9px;
  font-weight: 200;
  line-height: 1.78;
  letter-spacing: 0.45px;
  text-align: center;
  color: #008fd7;
  text-transform: uppercase;
}

body .banner .container > ul li,
body .banner.no-img .container ul li {
  color: #008fd7;
}

body .banner .container ul li a {
  color: var(--white);
  font-weight: 200;
}

body.article .banner .container ul li a {
  color: var(--black);
}

body .banner .container ul li a:hover {
  opacity: var(--opacity);
}

.banner.no-img .container ul li a:hover {
  color: var(--black);
}

body .banner .container > ul li + li::before,
body .banner .container ul li + li::before {
  content: "/";
  padding-left: 0.2em;
  padding-right: 0.2em;
  font-size: 0.563rem;
  font-weight: 200;
  color: #9d9d9d;
}

body.article .banner .container > ul li + li::before,
body.article .banner .container ul li + li::before {
  color: var(--black);
}

.banner.no-img {
  padding-top: 20px;
  margin-top: 195px;
}

.banner.no-img .image::after {
  background-color: var(--transparent);
}

.banner.no-img .container ul li a {
  color: #9d9d9d;
}

body .banner.no-img .container ul li a:hover {
  color: var(--black);
}

.banner .container h1 {
  font-size: 2.813rem;
  font-weight: 200;
  line-height: 1.12;
  letter-spacing: -1.13px;
  text-align: center;
  color: var(--white);
  text-transform: uppercase;
  margin-top: 20px;
  margin-bottom: 0;
}

.banner.no-img .container h1 {
  color: var(--black);
  max-width: 800px;
  margin-inline: auto;
}

.banner .container h1 + span,
.banner .container h1 > span {
  display: block;
  font-size: 1.875rem;
  font-weight: 500;
  color: var(--primary);
  margin-top: 22px;
  order: 1;
}

.banner .container h1 + span p {
  margin: 0;
}

.banner .container h1 > span > span {
  display: inline-block;
  width: 0;
  font-size: 0;
}

@media (max-width: 768px) {
  .banner:not(.no-img) .container {
    padding-top: 236px;
    padding-bottom: 50px;
    min-height: unset;
    padding-inline: 0;
  }

  .banner.no-img {
    padding-top: 38px;
    width: 100%;
    max-width: 100%;
    padding-inline: 0;
  }

  .banner .container h1 + span a {
    font-size: 1.125rem;
  }

  .banner .container h1 + span,
  .banner .container h1 > span {
    display: block;
    font-size: 1.125rem;
    margin-top: 22px;
  }

  .banner:not(.no-img) .container {
    color: var(--white);
    position: relative;
    padding-top: 175px;
    padding-bottom: 60px;
    max-width: 100%;
    padding-inline: 0px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
  }
}

/* ce3c acaba aqui */

/* .banner {
    text-align: center;
    position: relative;
    isolation: isolate;
    padding: 50px 0 40px;
    background-color: #fbfbfb;
}

.banner + .template > .template-module:nth-child(2),
.banner + .template {
    margin-top: 47px;
}

body .banner ul {
    padding: 0;
    list-style: none;
    display: inline-flex;
    flex-wrap: wrap;
    line-height: 1.5;
    align-items: center;
}

body .banner ul li {
    font-size: 12px;
    color: #a4a2a2;
    font-weight: 300;
    line-height: 1.45;
    letter-spacing: normal;
}


body .banner ul li a:hover {
    color: var(--black) ;
}

body.member .banner .member-details > ul li:has( + li)::after ,
body  .banner ul li:has( + li)::after {
    content: "•";
    padding-left: .6em;
    padding-right: .6em;
    color: var(--primary);
    font-size: 12px;
    line-height: 1.45;
}

body  .banner.no-img .container ul li:has( + li)::after {
    padding-left: .7em;
    padding-right: .7em;
    color: #a5a4a4;
}

.banner.no-img {
    padding-top: 140px;
    margin-top: 90px;
}

.banner.no-img .image::after {
    background-color: var(--transparent);
}

.banner.no-img .container ul li a {
    color: #a5a4a4;
}

body  .banner.no-img .container ul li a:hover {
    color: var(--primary);
}

.banner h1 {
    font-size: 32px;
    font-weight: bold;
    font-stretch: normal;
    font-style: normal;
    line-height: 0.94;
    text-align: center;
    color: var(--black);
    margin: 15px 0;
}


.banner h1 + span,
.banner h1 > span {
	display: block;

    font-size: 1.875rem;
    font-weight: 500;
    color: var(--primary);
	margin-top: 22px;
	order: 1;
}

.banner h1 + span  p {
    margin: 0;
}

.banner h1 > span > span {
	display: inline-block;
	width: 0;
	font-size: 0;
} */

.content-banner-slider .tns-nav {
  display: flex;
  justify-content: center;
  gap: 25px;
  margin-top: 30px;
  position: absolute;
  left: 0;
  right: 0;
  bottom: -36px;
  margin: 0;
  z-index: 1;
}

.content-banner-slider .tns-nav button {
  position: relative;
  width: 6px;
  height: 6px;
  background-color: #dfdfdf;
  overflow: hidden;
  border-radius: 50px;
  transition: var(--transition);
  border: none;
  padding: 0;
}

.content-banner-slider .tns-nav button.tns-nav-active {
  width: 46px;
}

.content-banner-slider .tns-nav button::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 0%;
  height: 100%;
  background-color: var(--primary);
  transition: width 0s linear;
}

.content-banner-slider .tns-nav button.tns-nav-active::before {
  transition: width 6s linear;
  animation-name: load;
  animation-timing-function: ease-in-out;
  animation-fill-mode: forwards;
  animation-iteration-count: 1;
}

@keyframes load {
  0% {
    width: 0%;
  }

  100% {
    width: 100%;
  }
}

.content-banner-slider {
  margin-top: 60px;
  padding-bottom: 36px;
}

.content-banner-slider .slider .slide {
  border-radius: 20px;
  overflow: hidden;
}

.content-banner-slider .slider img {
  display: block;
}

@media (max-width: 768px) {
  .content-banner-slider {
    margin-top: 30px;
  }

  .homepage-secondary-banner .container .slider .slide img {
    aspect-ratio: 16 / 15;
  }

  .homepage-secondary-banner .container {
    padding: 0;
  }

  .homepage-secondary-banner .tns-nav {
    bottom: -26px;
  }

  .homepage-secondary-banner .slider .slide {
    border-radius: 0;
    overflow: unset;
  }
}

@media (max-width: 768px) {
  .banner {
    padding: 0 20px;
    width: 100%;
  }

  .banner + .template > .template-module:nth-child(2),
  .banner + .template {
    margin-top: 60px;
  }

  .blog-container .banner + .template > .template-module:nth-child(2),
  .blog-container .banner + .template {
    margin-top: -23px;
  }

  .article .blog-container .banner + .template > .template-module:nth-child(2),
  .article .blog-container .banner + .template {
    margin-top: 60px;
  }

  .banner h1 + span a {
    font-size: 1.125rem;
  }

  .banner h1 + span,
  .banner h1 > span {
    display: block;
    font-size: 1.125rem;
    margin-top: 22px;
  }
}

.banner .details {
  margin-top: 40px;
  padding-top: 30px;
  border-top: 1px solid #ebe9e9;
  position: relative;
  width: 100%;
  text-align: start;
}

.banner .details ul {
  display: block;
  text-align: left;
  padding: 0;
}

.banner .details ul li {
  font-size: 20.5px !important;
  color: var(--black) !important;
  width: 100%;
  line-height: 1.45;
  font-weight: 300;
}

.banner .details ul li + li {
  margin-top: 16px;
}

.banner .details ul li a {
  color: var(--primary) !important;
  font-weight: bold;
}

.banner .details ul li a:hover {
  opacity: 0.5;
}

.banner .details ul li b {
  font-weight: bold;
}

/***************************/
/*******  Template *********/
/***************************/

.template {
  margin-top: 80px;
  /* width: 100%; */
  margin-inline: auto;
}

.template h2,
.template .h2,
.template h4,
.template .h4,
.template h3,
.template .h3,
.template ul,
.template ol,
.template p {
  font-size: 18px;
  line-height: 1.56;
  letter-spacing: -0.18px;
  text-align: left;
  color: var(--black);
  font-weight: 200;
  margin-block: 1.8rem;
}

.template ol + h2,
.template ol + h3,
.template ul + h2,
.template ul + h3,
.template p + h2,
.template p + h3,
.template ol + h4,
.template ul + h4,
.template p + h4 {
  margin: 50px 0 25px;
}

.template h2,
.template .h2 {
  font-size: 30px;
  line-height: 1.33;
  letter-spacing: -0.75px;
  text-transform: uppercase;
}

.template h3,
.template .h3 {
  font-size: 24px;
  line-height: 1.29;
  letter-spacing: -0.28px;
  font-weight: 300;
}

.template h4,
.template .h4 {
  font-size: 20px;
  line-height: 1.5;
  letter-spacing: -0.2px;
  font-weight: 200;
}

.template .accordion div h4,
.template .accordion div .h4 {
  font-weight: 300;
}

.template .accordion div h2,
.template .accordion div .h2,
.template .accordion div h3,
.template .accordion div .h3,
.template .accordion div h4,
.template .accordion div .h4 {
  text-transform: none;
  font-weight: 300;
  pointer-events: none;
  max-width: 95%;
}

.template h2 b,
.template .h2 b,
.template h3 b,
.template .h3 b,
.template h4 b,
.template .h4 b,
.template h2 strong,
.template .h2 strong,
.template h3 strong,
.template .h3 strong,
.template h4 strong,
.template .h4 strong {
  color: var(--primary);
}

.template b,
.template strong {
  font-weight: 300;
}

.template .template-module small a,
.template .template-module ul a,
.listing.module20 .image-item a:not(.button),
.template .template-module p a,
.template .listing p a {
  display: inline-flex;
  font-weight: 300;
  transition: var(--transition);
  color: var(--primary);
  position: relative;
  border-bottom: 1px solid var(--black);
}

.template .template-module p a {
  display: inline;
  border-bottom: 1px solid var(--black);
}

.template .template-module small a,
.template .template-module ul a {
  border-bottom: 1px solid var(--black);
}

.template .template-module small a:hover,
.template .template-module ul a:hover,
.template .template-module p a:hover,
.template .listing p a:hover {
  border-bottom: 1px solid var(--transparent);
}

.template .template-module small,
p small {
  font-size: 12px;
  display: block;
  line-height: 1;
}

.template .template-module strong small,
p b small {
  font-weight: 300;
}

/* .template .template-module small {
    margin: 0.8em 0;
}  */

.template .template-module small.text-center {
  width: 100%;
  font-size: 14px;
  line-height: 1.43;
  text-align: center;
  color: #858585;
  z-index: 1;
  position: relative;
  background-color: white;
  font-weight: 100;
  top: 0px;
}

.template .template-module .image.video small.text-center {
  padding-top: 15px;
}

.template blockquote > *,
.template p:has(big) {
  position: relative;
  display: block;
  font-weight: 200;
  color: var(--black);
  font-size: 22px;
  line-height: 1.55;
  letter-spacing: -0.22px;
  text-transform: uppercase;
}

.template p big {
  position: relative;
  display: block;
  font-weight: 200;
  color: var(--black);
  font-size: 22px;
  line-height: 1.55;
  letter-spacing: -0.22px;
  text-transform: uppercase;
  text-align: center;
}

.template p:has(big),
.template blockquote {
  position: relative;
  margin-block: 40px;
  background-color: #f9f9f9;
  padding: 42px 78px 42px 78px;
}

.template blockquote {
  margin-inline: 0;
}

blockquote::before {
  content: "";
  -webkit-mask-image: url(/assets/img/svg/quote.svg);
  mask-image: url(/assets/img/svg/quote.svg);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  background-color: var(--primary);
  display: block;
  width: 37px;
  height: 29px;
  position: absolute;
  top: 35px;
  left: 30px;
}

.template blockquote p {
  padding-top: 0;
  margin: 0;
  padding-left: 12px;
}

.template .template-module blockquote small {
  color: var(--primary);
  font-size: 12px;
  text-transform: none;
  font-weight: 300;
}

.template ul,
.template ol {
  list-style-type: none;
  margin: 0;
  padding-block: 0px;
  margin-block: 26px;
  counter-reset: item;
  padding-left: 20px;
}

.product .template ul,
.product .template ol {
  padding-left: 0px;
}

.template ol {
  padding-left: 14px;
}

.listing .header p {
  margin-top: 0;
}

.listing ul li,
.template-module ul li,
.listing ol li,
.template-module ol li {
  position: relative;
  padding-left: 1rem;
}

.listing ul li::before,
.template-module ul li::before {
  content: "";
  display: inline-block;
  height: 16px;
  width: 1.25rem;
  margin-left: -2em;
  margin-right: 1.25rem;
  -webkit-mask-image: url(/assets/img/svg/bullet-arrow.svg);
  mask-image: url(/assets/img/svg/bullet-arrow.svg);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  background-color: var(--primary);
  position: absolute;
  top: 5px;
  left: 1rem;
}

.template ul li ul,
.template ol li ol,
.template ul li ol,
.template ol li ul {
  padding-left: 30px;
}

.template-module ol li::before,
.template-module ol li::before {
  font-size: 18px;
  font-weight: 300;
  line-height: 1.63;
  letter-spacing: normal;
  text-align: left;
  color: var(--primary);
  counter-increment: item;
  content: counter(item) ".";
  display: inline-block;
  width: 1.6em;
  margin-left: -2rem;
}

@media (max-width: 1024px) {
  .template .template-module small a:hover,
  .template .template-module ul a:hover,
  .template .template-module p a:hover {
    border-bottom: 1px solid var(--black);
  }
}

/***************************************************/
/***************** MODULE TABLE ********************/
/**************************************************/

.template-module table thead {
  background-color: #fef8f4;
}

.template-module table {
  padding: 0;
  overflow-x: auto;
}

.template-module table th {
  color: white;
  font-weight: bold;
}

.template-module table tbody tr td:last-of-type,
.template-module table th:last-of-type {
  text-align: end;
  padding: 16px 21px 16px 0;
}

.template-module table td {
  font-weight: 300;
}

.template-module table tr > td:first-of-type {
  padding-right: 20px;
}

.template-module table td b,
.template-module table td strong {
  font-weight: 300;
  text-align: left;
}

.template-module .table-wrapper .swipeIcon {
  display: none;
}

.template-module .table-wrapper.swipe {
  overflow: auto;
  margin-inline: -20px;
  padding-inline: 20px;
  padding-bottom: 20px;
}

.template-module .table-wrapper .swipeIcon::before {
  display: inline-flex;
  width: 25px;
  height: 27px;
  content: "";
  -webkit-mask-image: url("/assets/img/template/swipe.svg");
  mask-image: url("/assets/img/template/swipe.svg");
  background-color: var(--black);
}

.template-module table img {
  display: inline;
}

.template-module table,
.template-module table td,
.template-module table tr,
.template-module table th {
  font-size: 18px;
  line-height: 1;
  text-align: left;
  padding: 21px 19px;
  position: relative;
  color: var(--black);
  border: solid 1px #e9e8e8;
  border-collapse: collapse;
  font-weight: 200;
}

.template-module table thead,
.template-module table thead tr,
.template-module table thead tr th {
  border: none;
  background-color: var(--black);
  color: var(--white);
}

.template-module table th {
  font-weight: bold;
  color: var(--primary);
  font-weight: 300;
}

.template-module table td {
  font-weight: 200;
  color: var(--black);
}

.template-module table td b {
  font-weight: bold;
  text-align: left;
}

.template .listing .file .link {
  font-size: 0.875rem;
  font-weight: 300;
  color: var(--primary);
  text-transform: uppercase;
  padding-right: 30px;
}

.template .listing .file .link::after {
  width: 21px;
  height: 15px;
  content: "";
  display: inline-block;
  -webkit-mask-image: url(/assets/img/elements/svg/normal-arrow.svg);
  mask-image: url(/assets/img/elements/svg/normal-arrow.svg);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  background-color: var(--primary);
  position: relative;
  right: -15px;
  transition: var(--transition);
  top: 2px;
}

.template .listing .file .link:hover::after {
  right: -25px;
}

.rating-section {
  border-top: 1px solid #e6e6e8;
  /* margin-top: 100px; */
}

@media (max-width: 1024px) {
  .listing .accordion .table-wrapper.swipe .swipeIcon,
  .template-module .table-wrapper.swipe .swipeIcon {
    display: flex;
    font-size: 11px;
    font-weight: 600;
    line-height: 1;
    letter-spacing: normal;
    text-align: center;
    color: var(--black);
    margin-bottom: 20px;
    width: 100%;
    justify-content: center;
    align-items: center;
    gap: 13px;
  }

  .template-module .table-wrapper .swipeIcon.hidden {
    display: none;
    /* Hide the helper when not needed */
  }
}

@media (max-width: 768px) {
  .template {
    margin-top: 60px;
  }

  .template .container {
    width: 100%;
  }

  .template .container:has(.image > .img-fluid) {
    width: 100%;
    max-width: 100%;
    padding-inline: 20px;
  }

  .template .container:has(.image) .legend {
    max-width: 100%;
    padding-inline: 20px;
  }

  .template-module.round-corners .slider-wrapper .tns-outer {
    border-radius: 0 !important;
  }

  body .banner ul li {
    font-size: 12px;
  }

  .banner ul li + li::before,
  .banner ul {
    flex-wrap: wrap;
    justify-content: center;
  }

  .banner h1 {
    font-size: 24px;
    font-weight: bold;
    margin-top: 8px;
  }

  .banner .image {
    min-height: 264px;
  }

  .template h2,
  .template .h2 {
    font-size: 18px;
    line-height: 1.33;
  }

  .template h3,
  .template .h3 {
    line-height: 1.56;
    font-size: 18px;
  }

  .template h4,
  .template .h4 {
    line-height: 1.38;
    font-size: 16px;
    font-weight: 300;
  }

  .template ul,
  .template ol,
  .template p {
    font-size: 16px;
    line-height: 1.63;
  }

  .template p small,
  .template-module.module2.wrap .image-wrapper small,
  .template-module.module3.wrap .image-wrapper small {
    font-size: 13px;
  }

  .contacts .template p small {
    font-size: 11px;
  }

  .template .template-module blockquote small {
    font-weight: 400;
  }

  .template blockquote p,
  .template p big {
    font-size: 18px;
    line-height: 1.56;
  }

  .template p:has(big),
  .template blockquote {
    padding: 30px 39px 30px 38px;
    border-radius: 0px;
    margin-inline: -20px;
    margin-top: 47px;
  }

  blockquote::before {
    left: 20px;
    width: 22px;
    height: 17px;
    top: 35px;
  }

  .template-module ul li::before {
    margin-right: 1.6rem;
  }

  .template-module table,
  .template-module table td,
  .template-module table tr,
  .template-module table th {
    font-size: 16px;
    padding: 16px 18px;
  }
}

.template .template-module.search-results ul {
  padding-left: 20px;
  font-weight: 300;
  /* line-height: 1.55; */
  letter-spacing: normal;
  text-align: left;
}

.template .template-module.search-results ul li {
  margin: 0.5em 0;
}

.template .template-module.search-results ul li a {
  border-bottom: 1px solid var(--transparent);
}

.template .template-module.search-results ul li a:hover {
  border-bottom: 1px solid var(--black);
}

.template p.title {
  font-size: 24px;
  font-weight: 300;
  font-stretch: normal;
  font-style: normal;
  line-height: 1.55;
  letter-spacing: normal;
  text-align: left;
  margin: 2em 0 0.5rem 0;
}

.template .template-module.search-results .listing {
  margin-top: 30px;
}

.content.contacts .banner::after {
  content: unset;
}

.content.contacts .listing .header p {
  width: 100%;
  font-size: 60px;
  font-weight: 200;
  line-height: 1.17;
  letter-spacing: -2.4px;
  text-align: center;
  text-transform: uppercase;
  color: #1d1d1d;
}

@media (max-width: 768px) {
  .contacts .template .template-module .row {
    margin: 0;
  }
}

/* === template-modules.css === */
/**************************************/
/********** TEMPLATE MODULES **********/
/**************************************/

.template-module {
  margin: 80px 0;
  position: relative;
  font-size: 0;
  opacity: 0;
  transform: translateY(100px);
  /* transition: opacity 0.6s ease-out, transform 0.6s ease-out; */
}

.template-module.visible {
  opacity: 1;
  transform: translateY(0px);
  transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

.template-module:first-child {
  margin-top: 0;
}

.template-module.module21 {
  display: block;
  margin-top: 135px;
  margin-bottom: 135px;
}

.template-module:last-child {
  margin-bottom: 0;
}

.template-module .row {
  margin: 40px 0px;
}

.template-module .row > div {
  padding-inline: 0;
}

.template-module a:not(.button, .search) {
  display: flex;
}

.template-module a:not(.button, .search):has(img) {
  overflow: visible;
}

.template-module a:not([href]) {
  cursor: default;
}

.template-module img {
  display: block;
  margin: 0 auto;
  width: 100%;
}

.template-module .container img {
  width: auto !important;
  height: auto;
  max-width: 100%;
}

.template-module.round-corners video,
.template-module.round-corners iframe,
.template-module.round-corners a:has(img),
.template-module.round-corners img {
  border-radius: 20px;
}

.template-module .slider .image,
.template-module .slider img {
  border-radius: 0;
}

.template-module > img {
  width: 100%;
  border-radius: 0;
  pointer-events: all;
}

.template-module a[href] img {
  transition: var(--transition);
}

.template-module .button.button-center {
  position: relative;
  left: 50%;
  transform: translateX(-50%);
}

.template-module .button.button-right {
  position: relative;
  left: 100%;
  transform: translateX(-100%);
}

/*
@media(min-width: 768px) {
	.template-module {
		margin: 80px 0;
	}
} */

@media (min-width: 992px) {
  .template-module a[href]:has(img) {
    overflow: hidden;
  }

  .template-module a[href]:has(img):hover img {
    transform: scale(1.02);
  }

  .template-module {
    margin: 80px 0;
  }

  section.world-map + .template-module {
    margin: 100px 0;
  }

  .template-module .row {
    margin: 0;
  }

  .template-module :is(h1, h2, h3, h4, h5, p):first-child + .row {
    margin-top: 40px;
    /* Or any value you need */
  }

  .template-module .row > div {
    padding: 0;
  }

  .template-module:last-child > :not(.container) {
    margin-bottom: -150px;
  }

  .search-section .template-module:last-child > :not(.container) {
    margin-bottom: unset;
  }
}

/**************************************/
/********** MODULE 1: SLIDER **********/
/**************************************/

.template-module .slider-wrapper {
  position: relative;
}

.template-module.round-corners > .container .slider-wrapper .tns-outer {
  border-radius: 20px;
  overflow: hidden;
  isolation: isolate;
  transform: translateZ(0);
}

.template-module .slider-wrapper .tns-outer .image {
  border-radius: 0;
  background-color: #dad9d9;
}

.template-module .slider:not(.tns-slider) {
  display: flex;
  overflow: hidden;
}

.template-module .slider:not(.tns-slider) > .slide {
  flex-basis: 100%;
  min-width: 100%;
}

.template-module .slider:not(.tns-gallery) .slide {
  position: relative;
}

.template-module:not(.module3, .module2) .image {
  position: relative;
  aspect-ratio: 16 / 8.99;
  background-color: unset;
}

.template-module.round-corners .image {
  border-radius: 20px;
  overflow: hidden;
}

.template-module.module2 .image,
.template-module.module3 .image {
  position: relative;
  padding-top: 56.25%;
}

.template-module .image img {
  position: absolute;
  top: -1px;
  bottom: -1px;
  left: -1px;
  right: -1px;
  max-width: 100%;
  max-height: 100%;
  margin: auto;
  width: auto;
  height: 100%;
  background-color: #000000;
}

.template-module .slider .legend {
  padding: 10px 40px;
  text-align: center;
  position: relative;
  background-color: white;
  pointer-events: none;
}

.template-module .slider .legend small {
  text-align: center;
  margin: 0.25em 0;
  color: white;
  font-size: 20px;
  font-weight: 300;
  font-stretch: normal;
  font-style: normal;
  line-height: 1.5;
}

.slider-arrows {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  display: flex;
  align-items: center;
  pointer-events: none;
  width: 100%;
  justify-content: space-between;
}

.slider-arrows > div {
  position: relative;
  width: 24px;
  height: 46px;
  pointer-events: auto;
  margin: 40px;
  cursor: pointer;
  transition: var(--transition);
}

.template-module .slider-wrapper .slider-arrows > div:hover {
  opacity: 0.6;
  transform: none;
}

.template-module .slider-wrapper .slider-arrows > div.prev {
  transform: rotateY(180deg);
}

.template-module .slider-wrapper .slider-arrows > div.prev:hover {
  opacity: 0.6;
  transform: rotateY(180deg);
}

.slider-arrows > div.prev {
  transform: rotate(0);
}

.slider-arrows > div.next {
  right: 0;
}

.slider-arrows > div::before {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  -webkit-mask-image: url("/assets/img/svg/slider_arrow.svg");
  -webkit-mask-repeat: no-repeat;
  mask-image: url("/assets/img/svg/slider_arrow.svg");
  mask-repeat: no-repeat;
  mask-size: cover;
  background-color: #ffffff;
  transition: var(--transition);
  cursor: pointer;
}

.category_list .slider-container {
  position: relative;
  max-width: 1360px;
  margin-inline: auto;
  padding-left: 20px;
  padding-right: 0;
  margin-left: 0px;
  margin-top: -15px;
}

.category_list .slider-container .slide a {
  display: block;
  width: 100%;
  /* max-width: 170px; */
  margin: auto;
}

.category_list .slider-arrows > div {
  margin: 0;
}

.category_list .slider-arrows > div::before {
  background-color: var(--black);
  opacity: 0.16;
  transform: rotate(180deg);
}

.category_list .slider-arrows > div:last-of-type::before {
  background-color: var(--black);
  opacity: 0.16;
  transform: rotate(0deg);
}

@media (max-width: 768px) {
  .slider-arrows > div {
    width: 17px;
    height: 33px;
    margin: 10px;
  }

  .template-module.round-corners .slider-wrapper .tns-outer .image {
    border-radius: 20px;
  }
}

@media (min-width: 992px) {
  .template-module .slider .legend {
    padding: 20px 80px;
  }
}

@media (min-width: 1024px) {
  .category_list .slider-arrows > div:hover:last-of-type::before {
    transform: rotate(0deg) translateX(3px);
  }

  .category_list .slider-arrows > div:hover:first-of-type::before {
    transform: rotate(180deg) translateX(3px);
  }

  .category_list .slider-container {
    padding-inline: 20px;
    margin-left: unset;
  }
}

/***********************************************/
/********** MODULE 1: SLIDER (NO BAR) **********/
/***********************************************/

.template-module .slider-wrapper.no-bar .slider .legend {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  display: flex;
  align-items: flex-end;
  background: var(--transparent);
  justify-content: center;
  z-index: 1;
}

.template-module .slider-wrapper.no-bar .slider .legend p {
  font-size: 14px;
  line-height: 1.43;
  text-align: center;
  color: var(--white);
  letter-spacing: normal;
}

.template-module .slider-wrapper.no-bar .slider .video + .legend {
  background: transparent;
}

/*

.template-module .slider-wrapper.no-bar .slider-arrows {
    padding-top: 0;
}

.template-module .slider-wrapper.no-bar .slider-arrows > div::before {
    background-image: url(/template1/assets/img/arrow-white.svg);
} */

@media (max-width: 768px) {
  .template-module {
    margin: 60px 0;
    margin-bottom: 0;
  }

  .template-module .slider-wrapper.no-bar .slider .legend {
    position: relative;
    background: transparent;
    padding: 10px 20px 0px 20px;
  }

  .template-module .slider-wrapper.no-bar .slider .legend p {
    font-size: 13px;
    font-weight: 200;
    line-height: 1.38;
    letter-spacing: normal;
    text-align: center;
    color: #858585;
    margin: 0;
  }
}

/**************************************************/
/********** MODULE 1: SLIDER THUMBNAILS  **********/
/**************************************************/

.template-module .thumbnail-wrapper {
  position: relative;
  margin-top: 20px;
  padding: 0 40px;
}

.template-module .thumbnail-slider {
  margin: 0 -10px;
}

.template-module .thumbnail-slider:not(.tns-slider) {
  display: flex;
  justify-content: flex-start;
  overflow: hidden;
}

.template-module .thumbnail-slider:not(.tns-slider) > div {
  flex-basis: 50%;
  min-width: 50%;
}

.template-module .thumbnail-slider .slide {
  padding: 0 10px;
  cursor: pointer;
}

.template-module .thumbnail-slider .slide > div {
  padding: 6px;
  border: 1px solid transparent;
  transition: all 0.2s ease-in-out;
}

.template-module .thumbnail-slider .image {
  position: relative;
  padding-top: 56.25%;
  background-position: center;
  background-size: cover;
}

.template-module .thumbnail-slider .slide.tns-nav-active > div,
.template-module .thumbnail-slider .slide:hover > div {
  border: 1px solid rgb(var(--primary));
}

.template-module .thumbnail-slider-arrows {
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  width: 100%;
  display: flex;
  pointer-events: none;
}

.template-module .thumbnail-slider-arrows > div {
  position: relative;
  cursor: pointer;
  margin: auto;
  width: 25px;
  height: 11px;
  font-size: 0;
  pointer-events: auto;
}

.template-module .thumbnail-slider-arrows > div[aria-disabled="true"] {
  opacity: 0.1;
  pointer-events: none;
}

.template-module .thumbnail-slider-arrows > div.prev {
  margin-left: 0;
  transform: rotate(180deg);
}

.template-module .thumbnail-slider-arrows > div.next {
  margin-right: 0;
}

.template-module .thumbnail-slider-arrows > div::before {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  -webkit-mask-image: url(/assets/img/template/slider-caret.svg);
  -webkit-mask-repeat: no-repeat;
  mask-image: url(/assets/img/template/slider-caret.svg);
  mask-repeat: no-repeat;
  mask-size: cover;
  background-color: #000000;
  transition: var(--transition);
  cursor: pointer;
}

@media (min-width: 768px) {
  .template-module .thumbnail-wrapper {
    padding: 0 65px;
  }

  .template-module .thumbnail-slider:not(.tns-slider) > div {
    flex-basis: 25%;
    min-width: 25%;
  }

  .template-module .thumbnail-slider-arrows > div {
    width: 40px;
    height: 18px;
  }
}

/**************************************************/
/********** MODULE 1: FULL WIDTH GALLERY **********/
/**************************************************/

.template-module .gallery {
  position: relative;
}

.template-module .gallery-fullscreen {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  z-index: 10;
  background: rgba(32, 32, 32, 0.9);
  padding: 100px;
  opacity: 0;
  pointer-events: none;
  transition: var(--transition);
}

.template-module .gallery-fullscreen.visible {
  opacity: 1;
  pointer-events: auto;
}

.template-module .gallery-track {
  padding-top: 56.25%;
  max-height: 800px;
  position: relative;
  height: auto;
  overflow-x: auto;
  overflow-y: hidden;
  margin-top: 30px;
}

.template-module .gallery-fullscreen .gallery-track {
  height: 100%;
  padding: 0;
  max-height: none;
}

.template-module .gallery-track::-webkit-scrollbar-track {
  background-color: var(--white);
}

.template-module .gallery-track::-webkit-scrollbar {
  height: 22px;
  background-color: var(--white);
}

.template-module .gallery-fullscreen .gallery-track::-webkit-scrollbar {
  height: 0;
}

.template-module .gallery-track::-webkit-scrollbar-thumb {
  background-color: var(--black);
  border: 10px solid var(--white);
}

.template-module .gallery-track .gallery-list {
  position: absolute;
  top: 0;
  left: 0;
  display: flex;
  flex-wrap: nowrap;
  height: 100%;
}

.template-module .gallery-fullscreen .gallery-track .gallery-list {
  position: relative;
}

.template-module .gallery-slide {
  height: 100%;
  top: 0;
  overflow: hidden;
}

.template-module .gallery-fullscreen .gallery-slide {
  max-height: 100%;
  min-width: 100%;
  height: auto;
  display: flex;
  align-items: center;
}

.template-module .gallery-track .gallery-slide img {
  max-height: 100%;
  cursor: pointer;
  transition: var(--transition);
  will-change: transform;
}

.template-module .gallery-fullscreen .gallery-track .gallery-slide img {
  max-width: 100%;
  display: block;
  margin: auto;
  cursor: default;
}

.template-module .gallery > .gallery-track .gallery-slide img:hover {
  transform: scale(1.025);
}

/* .template-module .gallery-arrows {
	position: absolute;
	top: 0;left: 0;
	right: 0;bottom: 42px;
	pointer-events: none;
} */
/* .template-module .gallery-arrows div {
	position: absolute;
	width: 25px;
	height: 47px;
	top: 0;bottom: 0;
	right: 20px;
	margin: auto;
	background-image: url(/template1/assets/img/caret-slim-white.svg);
	background-size: contain;
	background-repeat: no-repeat;
	pointer-events: auto;
} */
/* .template-module .gallery-fullscreen .gallery-arrows div {
	pointer-events: none;
}
.template-module .gallery-fullscreen.visible .gallery-arrows div {
	pointer-events: auto;
}
.template-module .gallery-arrows div:first-of-type {
	left: 20px;
	right: auto;
	transform: rotate(180deg);
} */

/* .template-module .gallery.disabled .gallery-arrows div {
	opacity: 0;
	pointer-events :none;
} */

.template-module .gallery-fullscreen .close {
  position: absolute;
  top: 35px;
  right: 35px;
  height: 25px;
  width: 25px;
  opacity: 1;
  overflow: visible;
}

.template-module .gallery-fullscreen .close::before,
.template-module .gallery-fullscreen .close::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  height: 2px;
  width: 35px;
  background-color: white;
  transform: rotate(45deg);
  transform-origin: left;
}

.template-module .gallery-fullscreen .close::after {
  left: auto;
  right: 0;
  transform: rotate(-45deg);
  transform-origin: right;
}

@media (min-width: 768px) {
  .template-module .gallery-track::-webkit-scrollbar {
    height: 42px;
  }

  .template-module .gallery-track::-webkit-scrollbar-thumb {
    border: 20px solid var(--white);
  }

  /* .template-module .gallery-arrows div {
		width: 32px;
		height: 62px;
		right: 50px;
	}
	.template-module .gallery-arrows div:first-of-type {
		left: 50px;
	} */
}

@media (min-width: 992px) {
  .template-module .gallery-fullscreen {
    display: block;
  }

  .template-module .gallery-track {
    padding-top: 35.7142%;
  }
}

/**************************************************/
/********** MODULE 2 & 3: TEXT AND IMAGE **********/
/**************************************************/

/* .template-module.wrap::before,
.template-module.wrap::after {
    content: "";
    display: table;
    clear: both;
} */

.template-module.wrap img + h2,
.template-module.wrap img + h3,
.template-module.wrap img + h4,
.template-module.wrap img + p,
.template-module.wrap img + ul,
.template-module.wrap img + ol,
.template-module.wrap .image + h2,
.template-module.wrap .image + h3,
.template-module.wrap .image + h4,
.template-module.wrap .image + p,
.template-module.wrap i.imagemg + ul,
.template-module.wrap .image + ol {
  margin-top: 25px;
}

.template-module.wrap ol,
.template-module.wrap ul,
.template-module.wrap {
  display: flow-root;
}

/*
.template-module.module2.wrap  img,
.template-module.module3.wrap img {
	max-width: 100%;
	float: none;
	margin: 0 0 15px 0;
} */

.template-module.module2.wrap .image-wrapper,
.template-module.module3.wrap .image-wrapper {
  max-width: 100%;
  float: none;
  margin: 0 0 15px 0;
}

.template-module.module2.wrap .image-wrapper small,
.template-module.module3.wrap .image-wrapper small {
  width: 100%;
  font-size: 14px;
  line-height: 1.43;
  text-align: center;
  color: #858585;
  z-index: 1;
  background-color: white;
  font-weight: 100;
  top: 15px;
  margin-bottom: 15px;
}

.template-module.module2.wrap .imgVWrap small,
.template-module.module3.wrap .imgVWrap small {
  font-size: 13px;
  font-weight: 300;
  line-height: 1.38;
  position: absolute;
  bottom: 15px;
  left: 0;
  right: 0;
  margin-inline: 20px;
  color: white;
  z-index: 2;
  width: unset;
}

.template-module.module2.wrap .imgVWrap .image.video.open small,
.template-module.module3.wrap .imgVWrap .image.video.open small {
  display: none;
}

.template-module.module2 .row > div:first-child {
  padding-right: 15px;
}

.template-module.module3 .row > div:last-child {
  padding-left: 15px;
}

.template-module.module2.wrap .image.video,
.template-module.module3.wrap .image.video {
  width: 100%;
}

.template-module.module2.wrap .image.video img,
.template-module.module3.wrap .image.video img {
  position: relative;
  margin: 0;
  max-width: 100%;
  height: auto;
}

.template-module.module2.wrap .image.video > div,
.template-module.module3.wrap .image.video > div {
  position: relative;
}

@media (min-width: 768px) {
  /* .template-module.module2.wrap img,
	.template-module.module3.wrap img {
		max-width: calc(50% - 10px);
		margin-top: 5px;
	} */

  .template-module.module2.wrap .image-wrapper,
  .template-module.module3.wrap .image-wrapper {
    max-width: calc(50% - 10px);
    margin-top: 5px;
  }

  .template-module.module2.wrap h2,
  .template-module.module3.wrap h2 {
    margin-top: 0px;
  }

  .template-module.module2.wrap .image.video img,
  .template-module.module3.wrap .image.video img {
    max-width: 100%;
    height: auto;
  }

  .template-module.module2.wrap .image.video,
  .template-module.module3.wrap .image.video {
    max-width: calc(50% - 10px);
  }

  /* .template-module.module2.wrap img {
		margin: 8px 0 30px 50px;
		float: right;
	}
	.template-module.module3.wrap img {
		margin: 8px 50px 30px 0;
		float: left;
	}	 */
  .template-module.module2.wrap .image-wrapper {
    margin: 8px 0 20px 45px;
    float: right;
  }

  .template-module.module3.wrap .image-wrapper {
    margin: 8px 45px 9px 0;
    float: left;
  }

  .template-module.module2 .row > div:first-child {
    padding-right: 45px;
  }

  .template-module.module3 .row > div:last-child {
    padding-left: 45px;
  }

  .template-module.module2.wrap .image.video {
    margin-bottom: 25px;
    margin-left: 55px;
    float: right;
    padding-top: 0;
  }

  .template-module.module3.wrap .image.video {
    margin-bottom: 25px;
    margin-right: 55px;
    float: left;
    padding-top: 0;
  }

  .template-module.module2.wrap .image.video img,
  .template-module.module3.wrap .image.video img {
    padding: 0;
  }
}

/**********************************************************/
/********** MODULE 4, 5, 6 & 7: IMAGE AND LEGEND **********/
/**********************************************************/

.template-module.module4 p,
.template-module.module5 p,
.template-module.module6 p,
.template-module.module7 p {
  margin-left: auto;
  margin-right: auto;
  padding: 0 20px 0;
}

/* .template-module.module4 img+h2,
.template-module.module5 a+h2,
.template-module.module6 a+h2,
.template-module.module7 a+h2,
.template-module.module4 img+h3,
.template-module.module5 a+h3,
.template-module.module6 a+h3,
.template-module.module7 a+h3,
.template-module.module4 img+h4,
.template-module.module5 a+h4,
.template-module.module6 a+h4,
.template-module.module7 a+h5 {
   margin-top: 1em;
} */

@media (min-width: 768px) {
  .template-module.module4 p,
  .template-module.module5 p,
  .template-module.module6 p,
  .template-module.module7 p {
    width: 75%;
    padding: 0 10px 0;
  }
}

/**************************************************/
/********** MODULE 10 & 11: TEXT COLUMNS **********/
/**************************************************/

/* .template-module.module10 .row,
.template-module.module11 .row {
	display: flex;
	margin: -10px -25px;
}

.template-module.module10 .row > div,
.template-module.module11 .row > div {
	float: none !important;
	padding: 10px 25px;
	flex: 0 0 100%;
	max-width: 100% !important;
}


@media(min-width: 768px) {
    .template-module.module10 .row > div {
		flex: 0 0 50%;
		max-width: 50% !important;
		width: auto !important;
	}
	.template-module.module11 .row > div {
		flex: 0 0 33.333%;
		max-width: 33.333% !important;
		width: auto !important;
	}
} */

.template-module.module11 .row {
  width: 100%;
}

.template-module.module11 .row {
  --gap-h: 50px;
}

.template-module.module11 .row > div {
  --gap-h: 50px;
  --gap: 100px;
}

/***************************************************************************************/
/********** MODULE 4 + 10 FUSION & MODULE 5 + 11 FUSION: TEXT + IMAGE COLUMNS **********/
/***************************************************************************************/

.template-module.module4.module10 p,
.template-module.module5.module11 p {
  margin-left: 0;
  margin-right: 0;
  padding: 0;
  width: auto;
}

.template-module.module4.module10 .row,
.template-module.module5.module11 .row {
  --gap-h: 50px;
}

.template-module.module4.module10 .button,
.template-module.module5.module11 .button {
  margin-top: -10px;
  display: inline-block;
  position: relative;
  color: var(--black);
  font-size: 12px;
  text-transform: uppercase;
  font-weight: 400;
  padding: 24px 30px;
  line-height: 1;
  letter-spacing: 0.6px;
  transition: var(--transition);
}

.template-module.module4.module10 .button::before,
.template-module.module5.module11 .button::before {
  content: "";
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  position: absolute;
  border: 0.5px solid var(--black);
  transition: var(--transition);
  overflow: visible;
}

.template-module.module5.module11 .header,
.template-module.module4.module10 .header {
  margin-bottom: 37px;
}

.template-module.module5.module11 h2,
.template-module.module4.module10 h2,
.template-module.module5.module11 h3,
.template-module.module4.module10 h3,
.template-module.module5.module11 h4,
.template-module.module4.module10 h4 {
  margin-bottom: 0;
  margin-top: 25px;
}

.template-module.module5.module11 h2 + p,
.template-module.module4.module10 h2 + p,
.template-module.module5.module11 h3 + p,
.template-module.module4.module10 h3 + p,
.template-module.module5.module11 h4 + p,
.template-module.module4.module10 h4 + p {
  margin-top: 30px;
}

.template-module.module5.module11 .row > div > :first-child,
.template-module.module4.module10 .row > div > :first-child {
  margin-top: 0;
}

.template .template-module small.subtitle,
.template-module.module5.module11 .row > div > small,
.template-module.module4.module10 .row > div > small {
  display: block;
  font-size: 13px;
  font-weight: 200;
  line-height: 1.43;
  letter-spacing: normal;
  text-align: center;
  color: #858585;
  margin: 15px 0 25px;
}

.template-module.module4.module10 .row > div > small {
  max-width: 420px;
  margin-inline: auto;
}

.template-module.module5.module11 .row > div > small {
  margin: 15px 0 25px;
}

.template .template-module small.subtitle {
  text-align: center;
  width: 100%;
  margin-top: 20px;
}

.template .template-module .image.video + small.subtitle {
  color: #ffffff;
  position: absolute;
  margin-bottom: 25px;
  bottom: 0;
  z-index: 1;
}

.template-module.module5.module11 picture + h4,
.template-module.module4.module10 picture + h4,
.template-module.module5.module11 picture + h2,
.template-module.module4.module10 picture + h2,
.template-module.module5.module11 picture + h3,
.template-module.module4.module10 picture + h3,
.template-module.module5.module11 a:has(img) + h4,
.template-module.module4.module10 a:has(img) + h4,
.template-module.module5.module11 a:has(img) + h2,
.template-module.module4.module10 a:has(img) + h2,
.template-module.module5.module11 a:has(img) + h3,
.template-module.module4.module10 a:has(img) + h3 {
  margin: 25px 0 0;
}

.template-module.module5.module11 img + p {
  margin-top: 30px;
}

.template-module.module10 img + p,
.template-module.module11 img + p {
  margin-top: 1.5em;
}

@media (max-width: 767px) {
  .template-module.module5.module11 .header,
  .template-module.module4.module10 .header {
    margin-bottom: 20px;
  }

  .template-module.module4.module10 .row,
  .template-module.module5.module11 .row {
    --gap-v: 20px;
    margin: 20px 0;
  }

  .template-module.module5.module10
    .row:has(.col-12.col-md-6:last-of-type > img):not(
      :has(.col-12.col-md-6:nth-child(1) > img)
    ),
  .template-module.module4.module10
    .row:has(.col-12.col-md-6:last-of-type > img):not(
      :has(.col-12.col-md-6:nth-child(1) > img)
    ) {
    flex-direction: column-reverse;
  }

  .template
    .template-module:not(:has(.container.container-tmp))
    small.subtitle {
    padding: 0 20px;
    max-width: 100%;
  }

  .template .template-module .image.video + small.subtitle {
    position: relative;
    font-size: 13px;
    font-weight: 200;
    line-height: 1.43;
    letter-spacing: normal;
    text-align: center;
    color: #858585;
    bottom: unset;
    margin: 10px 0;
    padding-inline: 20px;
  }

  .template-module.module4.module10 .button,
  .template-module.module5.module11 .button {
    padding: 21px 19px;
  }
}

@media (max-width: 1024px) {
  .template-module.module4.module10 .button,
  .template-module.module5.module11 .button {
    margin-top: 0;
  }
}

@media (min-width: 1024px) {
  .template-module.module4.module10 .button:hover::before,
  .template-module.module5.module11 .button:hover::before {
    transform: scale(1.05);
  }
}

/******************************************************************/
/********** MODULE 12: VIDEO & MODULE 1: SLIDER w/ video **********/
/******************************************************************/

.template-module .image.video::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  mix-blend-mode: multiply;
  background-color: rgba(0, 0, 0, 0.2);
  z-index: 1;
}

.template-module.module2 .image.video:not(:has(.play))::before,
.template-module.module3 .image.video:not(:has(.play))::before{
  content: none;
  display: none;
}

.template-module .video.open::before {
  background-color: black;
}

.fullscreen-container iframe,
.fullscreen-container video,
.template-module .video iframe,
.template-module .video video {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  width: 100%;
  height: 100%;
  border: 0;
  opacity: 0;
  pointer-events: none;
  z-index: 2;
}

.template-module .video.open iframe,
.template-module .video.open video {
  opacity: 1;
  pointer-events: auto;
  /* object-fit: contain; */
}

.fullscreen-container {
  height: 100vh;
  width: 100vw;
  background-color: rgba(0, 0, 0, 0.9);
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 20;
  opacity: 0;
  pointer-events: none;
}

.fullscreen-container.open {
  opacity: 1;
  pointer-events: all;
}

.fullscreen-container iframe,
.fullscreen-container video {
  display: none;
  opacity: 1;
  pointer-events: all;
  padding-block: 50px;
}

.fullscreen-container .close {
  position: absolute;
  top: 20px;
  right: 20px;
  padding: 15px;
  z-index: 10;
  cursor: pointer;
}

.fullscreen-container .close::after,
.fullscreen-container .close::before {
  content: "";
  position: absolute;
  top: 10px;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 2px;
  transform: rotate(45deg);
  background-color: #fff;
}

.fullscreen-container .close::after {
  transform: rotate(-45deg);
}

.template-module .video.open + .legend {
  opacity: 0;
}

/* @supports(object-fit: cover) {
	.template-module .image.video img {
		top: 0;left: 0;
		transform: none;
		width: 100%;
		height: 100%;
		object-fit: cover;
	}
} */

.template-module .video a.play {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  width: 72px;
  height: 72px;
  z-index: 1;
}

.template-module .video a.play:before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 5px;
  right: 0;
  width: 24px;
  height: 28px;
  margin: auto;
  -webkit-mask-image: url("/assets/img/svg/play-sharp.svg");
  mask-image: url("/assets/img/svg/play-sharp.svg");
  mask-position: center;
  -webkit-mask-position: center;
  mask-size: cover;
  -webkit-mask-size: cover;
  background-color: var(--white);
  transition: var(--transition);
  z-index: 2;
}

.template-module .video a.play:after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  width: 83px;
  height: 83px;
  transition: var(--transition);
  border-radius: 100%;
  border: 1px solid var(--white);
  z-index: 1;
  background-color: rgba(255, 255, 255, 0);
}

/*
.template-module .video a.play:hover {
	transform: scale(1.10);
} */

.template-module .video + p.text-center {
  position: absolute;
  bottom: 0;
  left: 20px;
  right: 20px;
  margin: 1em auto;
  color: white;
  z-index: 1;
}

.template-module a + p.text-center,
.template-module img + p.text-center {
  margin-top: 25px;
}

.template-module.module2.wrap .image.video,
.template-module.module3.wrap .image.video {
  width: 100%;
  padding: 0;
}

@media (max-width: 768px) {
  .template-module .video + p.text-center {
    font-size: 10px;
  }

  .template-module a + p.text-center,
  .template-module img + p.text-center {
    margin-top: 10px;
  }

  .template-module .video a.play:before {
    max-height: 17px;
    max-width: 14px;
    left: 3px;
  }

  .template-module .video a.play:after {
    width: 100%;
    height: 100%;
  }

  .template-module .video a.play {
    width: 60px;
    height: 60px;
  }
}

@media (min-width: 768px) {
  .template-module .video a {
    width: 70px;
    height: 70px;
    border-width: 4px;
  }

  .template-module .video a.play {
    width: 93px;
    height: 93px;
  }

  .template-module.module2.wrap .image.video,
  .template-module.module3.wrap .image.video {
    max-width: 50%;
  }

  .template-module.module3.wrap .image.video {
    margin-bottom: 25px;
    margin-right: 55px;
    float: left;
    padding-top: 0;
  }

  .template-module.module2.wrap .image.video img,
  .template-module.module3.wrap .image.video img {
    padding: 0;
  }

  .template-module.module2.wrap .image.video {
    margin-bottom: 25px;
    margin-left: 55px;
    float: right;
    padding-top: 0;
  }

  .fullscreen-container iframe,
  .fullscreen-container video {
    padding: 50px;
  }
}

@media (min-width: 992px) {
  .template-module .video a {
    width: 95px;
    height: 95px;
  }

  /* .template-module .video a:hover {
		width: 100px;
		height: 100px;
	} */

  .template-module .video a:hover.play::after {
    transform: scale(1.1);
  }
}

@media (max-width: 1024px) {
  .contacts .template-module.module2.wrap .image.video {
    margin-left: 20px;
  }
}

@media (max-width: 768px) {
  .contacts .template-module.module2.wrap .image.video {
    margin-left: 0px;
  }
}

/*****************************************************/
/********** MODULE 19: CALL TO ACTION (CTA) **********/
/*****************************************************/

.template-module .cta {
  display: block;
  position: relative;
  width: 100%;
  padding: 32px 105px 32px 32px;
  background-color: var(--primary);
  text-align: center;
  background-color: var(--primary);
  text-transform: uppercase;
}

.template-module .cta h3,
.template-module .cta .h3 {
  font-size: 24px;
  font-weight: 100;
  line-height: 1.45;
  letter-spacing: normal;
  text-align: left;
  color: var(--white);
  text-transform: uppercase;
}

.template-module .cta p {
  text-align: center;
  max-width: 760px;
  margin-right: auto;
  color: var(--white);
  font-size: 25px;
  font-weight: 100;
  line-height: 1.4;
  letter-spacing: -0.63px;
  text-align: left;
  margin: 0;
  margin-bottom: 0px;
}

.template-module .cta p::before {
  content: "";
  width: 42px;
  height: 32px;
  -webkit-mask-image: url(/assets/img/svg/button-arrow.svg);
  mask-image: url(/assets/img/svg/button-arrow.svg);
  mask-repeat: no-repeat;
  -webkit-mask-repeat: no-repeat;
  mask-position: center;
  -webkit-mask-position: center;
  position: absolute;
  margin: auto;
  left: auto;
  right: 50px;
  bottom: 0;
  top: 0;
  background-color: white;
  transition: var(--transition);
}

.template-module .cta .h3 + p {
  margin-top: 23px;
}

.template-module .cta .button {
  margin: auto;
  margin-top: 35px;
  z-index: 1;
  color: var(--black);
}

.template-module .cta .button::after,
.template-module .cta .button::before {
  background-color: #fefaf8;
  background-image: none;
}

.template-module .cta .button:hover::after,
.template-module .cta .button:hover::before {
  opacity: 1;
}

@media (max-width: 768px) {
  .template-module .cta {
    padding: 40px 35px 40px 30px;
  }

  .template-module .cta p::before {
    position: relative;
    display: block;
    right: unset;
    margin: 0;
  }

  .template-module .cta p {
    font-size: 22px;
    font-weight: 100;
    flex-direction: column-reverse;
    gap: 20px;
    align-items: baseline;
    display: flex;
  }

  .template-module .cta h3,
  .template-module .cta .h3 {
    font-size: 22px;
    font-weight: 100;
    line-height: 1.5;
    color: #fefaf8;
  }

  .template-module .cta .h3 + p {
    margin-top: 12px;
  }

  .template-module .cta .button {
    margin-top: 23px;
    width: 100%;

    white-space: unset;
  }

  .template-module .cta .button::before {
    border-radius: 20px;
  }
}

@media (min-width: 1024px) {
  .template-module .cta:hover p::before {
    transform: translateX(3px);
  }
}

/*****************************************************/
/********** MODULE 21:  DESTAQUE FRASE ***************/
/*****************************************************/

.template-module.module21.center .container {
  text-align: center;
  max-width: 1020px;
}

.template-module.module21 .container > *:last-child {
  margin-bottom: 0;
  margin-top: 30px;
}

.template-module.module21 .container {
  max-width: 1020px;
  text-align: left;
}

.template-module.module21.right .container {
  text-align: right;
  max-width: 1020px;
}

.template-module.module21 .title {
  font-size: 60px;
  font-weight: 200;
  line-height: 1.17;
  letter-spacing: -2.4px;
  text-align: left;
  color: var(--black);
  text-transform: uppercase;
  max-width: 778px;
  margin-block: 0;
  margin-right: auto;
}

.template-module.module21.right .title,
.template-module.module21.right p,
.template-module.module21.right span {
  display: block;
  text-align: right;
  max-width: 778px;
  margin-left: auto;
  margin-top: 30px;
  margin-right: 0;
}

.template-module.module21.center .title,
.template-module.module21.center p,
.template-module.module21.center span {
  display: block;
  text-align: center;
  max-width: 1020px;
  margin-inline: auto;
  margin-top: 25px;
}

.template-module.module21.center .title:first-of-type,
.template-module.module21.center p:first-of-type,
.template-module.module21.center span:first-of-type {
  margin-top: 0;
}

.template-module.module21.center p.title + p:first-of-type,
.template-module.module21.center p.title + span:first-of-type {
  margin-top: 30px;
}

.template-module.module21 p {
  font-size: 30px;
  font-weight: 100;
  line-height: 1.33;
  letter-spacing: -0.75px;
  text-align: center;
  color: var(--black);
  text-transform: uppercase;
  text-align: left;
  max-width: 778px;
  margin-right: auto;
}

.template-module.module21 span {
  display: block;
  font-size: 20px;
  font-weight: 200;
  line-height: 1.56;
  letter-spacing: -0.18px;
  text-align: left;
  color: var(--black);
  max-width: 778px;
  margin-top: 30px;
  margin-right: auto;
}

.template-module.module21 a {
  text-transform: uppercase;
  display: inline-block;
  margin-top: 40px;
  position: relative;
  padding-left: 43px;
  font-size: 12px;
  transition: var(--transition);
}

.template-module.module21 a::before {
  content: "";
  position: absolute;
  left: unset;
  left: 0;
  width: 18px;
  height: 12px;
  top: 53%;
  mask-image: url(/assets/img/svg/button-arrow.svg);
  -webkit-mask-image: url(/assets/img/svg/button-arrow.svg);
  background-color: var(--black);
  mask-repeat: no-repeat;
  -webkit-mask-repeat: no-repeat;
  mask-position: center;
  -webkit-mask-position: center;
  margin-right: 30px;
  transform: translateY(-50%);
  right: 0px;
  transition: var(--transition);
}

@media (max-width: 1024px) {
  .template-module.module21 {
    margin-top: 100px;
  }

  .template-module.module21 .title {
    max-width: 100%;
    width: 100%;
  }
}

@media (max-width: 768px) {
  .template-module.module21 .title {
    font-size: 40px;
    width: 100%;
    overflow-wrap: break-word;
    word-wrap: break-word;
    white-space: normal;
  }

  .template-module.module21 p {
    font-size: 18px;
  }

  .template-module.module21 span {
    font-size: 16px;
  }

  .template-module.module21 {
    margin-top: 60px;
    margin-bottom: 60px;
  }

  .template-module.module21 a {
    padding-left: 35px;
    font-size: 11px;
  }
}

.tns-item,
.tns-item .legend,
.tns-item .container,
.tns-item .image.filter::after,
.tns-item .image.filter::before,
.tns-item .image.video::before,
.tns-item .image.video .play,
.tns-item .image.video video,
.tns-item img {
  perspective: 1000px !important;
  backface-visibility: hidden !important;
  transform: translate3d(0, 0, 0);
  -webkit-perspective: 1000px !important;
  -webkit-backface-visibility: hidden !important;
  -webkit-transform: translate3d(0, 0, 0);
}

.video-wrapper-fullscreen {
  position: fixed !important;
  top: 0;
  left: 0;
  z-index: 50;
  width: 100vw;
  height: 100vh;
  background-color: #000;
  overflow: hidden;
  opacity: 0;
  pointer-events: none;
  transition: var(--transition);
  padding: 100px 20px;
}

.video-wrapper-fullscreen.open {
  opacity: 1;
  pointer-events: all;
}

.video-wrapper-fullscreen .close {
  position: absolute;
  top: 30px;
  right: 30px;
  padding: 20px;
  z-index: 10;
  cursor: pointer;
}

.video-wrapper-fullscreen .close::after,
.video-wrapper-fullscreen .close::before {
  content: "";
  position: absolute;
  top: 10px;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 2px;
  transform: rotate(45deg);
  background-color: #fff;
}

.video-wrapper-fullscreen .close::after {
  transform: rotate(-45deg);
}

.video-wrapper-fullscreen video,
.video-wrapper-fullscreen iframe {
  width: 100%;
  height: 100%;
  display: none;
  border: none;
}

@media (min-width: 1024px) {
  .template-module.module21 a:hover {
    transform: translateY(-50%) translateX(3px);
  }

  .template-module.module21 a:hover {
    transform: translateX(3px);
  }
}

