/*
    HTML5 Reset :: style.css
    ----------------------------------------------------------
    We have learned much from/been inspired by/taken code where offered from:
    Eric Meyer                  :: http://meyerweb.com
    HTML5 Doctor                :: http://html5doctor.com
    and the HTML5 Boilerplate   :: http://html5boilerplate.com
-------------------------------------------------------------------------------*/

/* Let's default this puppy out
-------------------------------------------------------------------------------*/

html, body, body div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, figure, footer, header, menu, nav, section, time, mark, audio, video, details, summary {
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 100%;
    font-weight: normal;
    vertical-align: baseline;
    background: transparent;
}

main, article, aside, figure, footer, header, nav, section, details, summary {display: block;}

/* Handle box-sizing while better addressing child elements:
   http://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/ */
html {
    box-sizing: border-box;
}

*,
*:before,
*:after {
    box-sizing: inherit;
}

/* consider resetting the default cursor: https://gist.github.com/murtaugh/5247154 */

/* Responsive images and other embedded objects */
/* if you don't have full control over `img` tags (if you have to overcome attributes), consider adding height: auto */
img,
object,
embed {max-width: 100%;}

/*
   Note: keeping IMG here will cause problems if you're using foreground images as sprites.
    In fact, it *will* cause problems with Google Maps' controls at small size.
    If this is the case for you, try uncommenting the following:
#map img {
        max-width: none;
}
*/

/* force a vertical scrollbar to prevent a jumpy page */
html {overflow-y: scroll;}

/* we use a lot of ULs that aren't bulleted.
    you'll have to restore the bullets within content,
    which is fine because they're probably customized anyway */
ul {list-style: none;}

blockquote, q {quotes: none;}

blockquote:before,
blockquote:after,
q:before,
q:after {content: ''; content: none;}

a {margin: 0; padding: 0; font-size: 100%; vertical-align: baseline; background: transparent;}

del {text-decoration: line-through;}

abbr[title], dfn[title] {border-bottom: 1px dotted #000; cursor: help;}

/* tables still need cellspacing="0" in the markup */
table {border-collapse: separate; border-spacing: 0;}
th {font-weight: bold; vertical-align: bottom;}
td {font-weight: normal; vertical-align: top;}

hr {display: block; height: 1px; border: 0; border-top: 1px solid #ccc; margin: 1em 0; padding: 0;}

input, select {vertical-align: middle;}

pre {
    white-space: pre; /* CSS2 */
    white-space: pre-wrap; /* CSS 2.1 */
    white-space: pre-line; /* CSS 3 (and 2.1 as well, actually) */
    word-wrap: break-word; /* IE */
}

input[type="radio"] {vertical-align: text-bottom;}
input[type="checkbox"] {vertical-align: bottom;}
.ie7 input[type="checkbox"] {vertical-align: baseline;}
.ie6 input {vertical-align: text-bottom;}

select, input, textarea {font: 99% sans-serif;}

table {font-size: inherit; font: 100%;}

small {font-size: 85%;}

strong {font-weight: bold;}

td, td img {vertical-align: top;}

/* Make sure sup and sub don't mess with your line-heights http://gist.github.com/413930 */
sub, sup {font-size: 75%; line-height: 0; position: relative;}
sup {top: -0.5em;}
sub {bottom: -0.25em;}

/* standardize any monospaced elements */
pre, code, kbd, samp {font-family: monospace, sans-serif;}

/* hand cursor on clickable elements */
.clickable,
label,
input[type=button],
input[type=submit],
input[type=file],
button {cursor: pointer;}

/* Webkit browsers add a 2px margin outside the chrome of form elements */
button, input, select, textarea {margin: 0;}

/* make buttons play nice in IE */
button,
input[type=button] {width: auto; overflow: visible;}

/* scale images in IE7 more attractively */
.ie7 img {-ms-interpolation-mode: bicubic;}

/* prevent BG image flicker upon hover
   (commented out as usage is rare, and the filter syntax messes with some pre-processors)
.ie6 html {filter: expression(document.execCommand("BackgroundImageCache", false, true));}
*/

/* let's clear some floats */
.clearfix:after { content: " "; display: block; clear: both; }
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/montserrat/v31/JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCtr6Ew-.ttf) format('truetype');
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/montserrat/v31/JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCu170w-.ttf) format('truetype');
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/montserrat/v31/JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCuM70w-.ttf) format('truetype');
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/montserrat/v31/JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCvC70w-.ttf) format('truetype');
}
:root {
  --swiper-pagination-bullet-horizontal-gap: 3px;
  --swiper-pagination-bullet-inactive-opacity: 1;
}
.container {
  width: 100%;
  padding: 0 20px;
  margin: 0 auto;
  overflow: hidden;
  max-width: 1780px;
  box-sizing: border-box;
}
.container-sm {
  max-width: 1700px;
}
.site figure {
  margin: 0;
}
.site-main {
  position: relative;
  z-index: 1;
}
@media screen and (min-width: 992px) {
  .mobile-only {
    display: none !important;
  }
}
.desktop-only {
  display: none !important;
}
@media screen and (min-width: 992px) {
  .desktop-only {
    display: block !important;
  }
}
.article-wrapper {
  padding-top: 80px;
  padding-bottom: 80px;
}
.col-4 > * {
  width: 100%;
}
@media screen and (min-width: 480px) {
  .col-4 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
  }
}
@media screen and (min-width: 992px) {
  .col-4 {
    display: flex;
    grid-template-columns: 1fr 1fr 1fr 1fr;
    gap: 20px;
  }
}
.col-3 > * {
  width: 100%;
}
@media screen and (min-width: 768px) {
  .col-3 {
    display: flex;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
  }
}
@media screen and (min-width: 992px) {
  .col-3 {
    grid-template-columns: 1fr 1fr 1fr;
    gap: 30px;
  }
}
.col-2 > * {
  width: 100%;
}
@media screen and (min-width: 768px) {
  .col-2 {
    display: flex;
    gap: 10px;
    grid-template-columns: 1fr 1fr;
  }
}
.grecaptcha-badge {
  visibility: hidden;
}
.section-space {
  padding-top: 80px;
  padding-bottom: 80px;
}
@media screen and (min-width: 768px) {
  .section-space {
    padding-top: 120px;
    padding-bottom: 120px;
  }
}
@media screen and (min-width: 992px) {
  .section-space {
    padding-top: 150px;
    padding-bottom: 150px;
  }
}
html {
  font-family: 'Montserrat', sans-serif;
  font-weight: 400;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased !important;
  line-height: 1.6;
  color: #1E1E1E;
  font-size: 16px;
}
a,
.btn {
  -webkit-transition: 0.3s all ease-out;
  -moz-transition: 0.3s all ease-out;
  -o-transition: 0.3s all ease-out;
  -ms-transition: 0.3s all ease-out;
  transition: 0.3s all ease-out;
  cursor: pointer;
}
a {
  color: inherit;
}
a.link-block {
  display: table;
  margin-left: auto;
  margin-right: auto;
}
a:hover {
  text-decoration: none;
}
p {
  margin-bottom: 20px;
  font-size: 1.125rem;
}
@media screen and (min-width: 768px) {
  p {
    font-size: 1.25rem;
  }
}
@media screen and (min-width: 992px) {
  p {
    font-size: 1.5rem;
  }
}
.text-centered {
  text-align: center;
}
h1,
.h1,
h2,
.h2,
h3,
.h3,
h4,
.h4 {
  display: block;
  line-height: 1.2;
  margin-bottom: 1.25rem;
}
h1,
.h1,
h2,
.h2 {
  font-size: 2.5rem;
  font-weight: 900;
  margin-bottom: 2rem;
}
@media screen and (min-width: 768px) {
  h1,
  .h1,
  h2,
  .h2 {
    font-size: 3rem;
  }
}
@media screen and (min-width: 992px) {
  h1,
  .h1,
  h2,
  .h2 {
    font-size: 3.75rem;
    margin-bottom: 2.5rem;
  }
}
h3,
.h3 {
  font-size: 2.25rem;
  font-weight: 700;
}
h3 > span,
.h3 > span {
  font-weight: 700;
}
@media screen and (min-width: 768px) {
  h3,
  .h3 {
    font-size: 2.625rem;
  }
}
@media screen and (min-width: 992px) {
  h3,
  .h3 {
    font-size: 3rem;
  }
}
h4,
.h4 {
  font-size: 1.125rem;
}
address {
  font-style: normal;
}
.text-subtitle {
  font-size: 1.5rem;
  text-transform: uppercase;
  display: block;
  font-weight: 600;
  color: #E30613;
}
@media screen and (min-width: 768px) {
  .text-subtitle {
    font-size: 2rem;
  }
}
@media screen and (min-width: 992px) {
  .text-subtitle {
    font-size: 2.5rem;
  }
}
.link,
.menu-item a {
  position: relative;
  white-space: nowrap;
}
form .input-wrapper {
  display: flex;
  flex-wrap: wrap;
  margin-bottom: 24px;
  position: relative;
}
form .input-wrapper p {
  margin-bottom: 0;
  width: 100%;
}
form .input-wrapper label {
  display: block;
  color: #1E1E1E;
  font-size: 1.125rem;
}
form .input-wrapper label,
form .input-wrapper .wpcf7-form-control-wrap,
form .input-wrapper input,
form .input-wrapper textarea {
  width: 100%;
}
form .input-wrapper textarea {
  height: 140px;
}
form .input-wrapper input,
form .input-wrapper textarea {
  background: #fff;
  color: #1E1E1E;
  border: none;
  padding: 8px 20px;
  font-size: 1.125rem;
  border-radius: 40px;
}
form .input-wrapper input:focus,
form .input-wrapper textarea:focus,
form .input-wrapper input:active,
form .input-wrapper textarea:active {
  outline: none;
}
form .input-wrapper input::placeholder,
form .input-wrapper textarea::placeholder {
  color: #1E1E1E;
}
form .input-wrapper input {
  height: 49px;
}
form .input-wrapper input[type="submit"] {
  color: #fff;
  width: 100%;
  background-color: #E30613;
  font-weight: 700;
  font-size: 1.125rem;
  height: 49px;
}
form .input-wrapper input[type="checkbox"] {
  width: 20px;
  height: 20px;
  margin-bottom: 6px;
}
form .input-wrapper .wpcf7-not-valid {
  border-color: red;
}
form .input-wrapper .wpcf7-spinner {
  position: absolute;
  top: 16px;
  left: 50%;
  transform: translateX(-50%);
  margin: 0;
  z-index: 9;
}
form .wpcf7-list-item {
  margin: 15px 0;
}
form .wpcf7-list-item label {
  margin-bottom: 0;
}
form .wpcf7-not-valid {
  border-color: red;
}
form.submitting .btn {
  font-size: 0 !important;
}
.main-navigation {
  display: flex;
  margin-right: 0;
  align-items: center;
}
.main-navigation .menu-toggle {
  border: none;
  padding: 0;
  background: transparent;
  height: 34px;
  display: block;
  position: relative;
  z-index: 9999;
  width: auto;
}
.main-navigation .menu-toggle > span {
  display: block;
  width: 34px;
  height: 2px;
  background: #000;
  margin-bottom: 5px;
  border-radius: 4px;
  margin-right: 0;
  margin-left: auto;
  -webkit-transition: 0.3s all ease-out;
  -moz-transition: 0.3s all ease-out;
  -o-transition: 0.3s all ease-out;
  -ms-transition: 0.3s all ease-out;
  transition: 0.3s all ease-out;
}
.main-navigation .menu-toggle > span:last-child {
  margin-bottom: 0;
}
.main-navigation > div {
  position: fixed;
  width: 100%;
  top: 0;
  left: 0;
  z-index: 999;
  height: 0;
  overflow: hidden;
}
.main-navigation > div ul {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  justify-content: center;
}
.main-navigation > div ul li a {
  text-decoration: none;
  color: #1E1E1E;
  font-size: 1.5rem;
  font-weight: 600;
  text-align: center;
  width: 100%;
  display: flex;
  justify-content: center;
}
.main-navigation > div ul li a:hover {
  color: #E30613;
}
.main-navigation > div ul li a.btn--primary {
  background-color: #1E1E1E;
  color: #fff;
  height: 52px;
}
.main-navigation > div ul li a.btn--primary:hover {
  background-color: #E30613;
}
.main-navigation .container {
  flex-direction: column;
}
.toggled .main-navigation > div {
  min-height: 100vh;
  background: #fff;
  padding-top: 100px;
  height: 100%;
  overflow-y: auto;
  padding-bottom: 40px;
}
.toggled .main-navigation .menu-toggle {
  position: fixed;
  top: 20px;
  right: 20px;
}
.toggled .main-navigation .menu-toggle > span {
  position: relative;
  margin-bottom: 0;
}
.toggled .main-navigation .menu-toggle > span:nth-child(1) {
  transform: rotate(45deg);
  top: 1px;
}
.toggled .main-navigation .menu-toggle > span:nth-child(even) {
  display: none;
}
.toggled .main-navigation .menu-toggle > span:nth-child(3) {
  transform: rotate(-45deg);
  top: -1px;
}
@media screen and (min-width: 992px) {
  .main-navigation {
    width: auto;
  }
  .main-navigation .menu-toggle {
    display: none;
  }
  .main-navigation > div {
    position: relative;
    display: flex;
    width: auto;
    height: auto;
    background: transparent;
    top: 0;
    overflow: visible;
  }
  .main-navigation > div .container {
    padding: 0;
    overflow: visible;
  }
  .main-navigation > div ul {
    gap: 40px;
    flex-direction: row;
    align-items: center;
  }
  .main-navigation > div ul li a {
    font-size: 1.5rem;
  }
}
@media screen and (min-width: 1200px) {
  .main-navigation > div ul {
    gap: 67px;
  }
}
.btn {
  border: none;
  background: none;
  display: block;
  text-decoration: none;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  color: #fff;
  width: 100%;
  font-family: 'Montserrat', sans-serif;
  padding: 0 20px;
  border-radius: 40px;
  width: auto;
}
.btn--primary {
  overflow: hidden;
  position: relative;
  background: #E30613;
}
.btn--primary:hover {
  background-color: #b1050f;
}
.btn--secondary {
  overflow: hidden;
  position: relative;
  background: #C2D0A9;
  color: #1E1E1E;
}
.btn--secondary:hover {
  background-color: #abbe88;
}
.btn--md {
  height: 56px;
  padding: 0 20px;
  font-size: 1.125rem;
}
@media screen and (min-width: 992px) {
  .btn--md {
    font-size: 1.5rem;
    height: 66px;
    padding-left: 28px;
    padding-right: 28px;
  }
}
.btn--lg {
  height: 70px;
  font-weight: 700;
  padding: 0 20px;
  font-size: 1.125rem;
}
@media screen and (min-width: 992px) {
  .btn--lg {
    font-size: 1.5rem;
    height: 79px;
    padding: 0 32px;
  }
}
.btn--sm {
  height: 49px;
  padding: 0 15px;
  font-size: 1rem;
  font-weight: 700;
}
.site-header {
  padding-top: 14px;
  padding-bottom: 14px;
  position: sticky;
  background: #C2D0A9;
  z-index: 99999;
  top: 0;
  border-bottom: 4px solid #E30613;
}
.site-header .site-branding a {
  display: flex;
  align-items: center;
  text-decoration: none;
}
.site-header .site-branding a figure {
  display: flex;
}
.site-header .site-branding a figure svg {
  height: 40px;
  width: auto;
}
.site-header .container {
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 100%;
}
@media screen and (min-width: 992px) {
  .site-header {
    height: 100px;
    border-width: 12px;
    padding: 0;
  }
  .site-header .site-branding a figure svg {
    height: auto;
  }
}
.block-hero {
  position: relative;
  overflow-x: hidden;
  height: calc((var(--vh, 1vh) * 100) - 246px);
}
.hero-slider {
  position: relative;
  width: 100%;
  min-height: 500px;
  overflow: hidden;
}
@media screen and (min-width: 768px) {
  .hero-slider {
    min-height: 600px;
  }
}
@media screen and (min-width: 992px) {
  .hero-slider {
    min-height: 800px;
  }
}
.hero-slider .swiper {
  width: 100%;
  height: 100%;
}
.hero-slider .swiper-slide {
  display: flex;
  align-items: center;
  justify-content: center;
  background-size: cover;
  background-position: center;
  padding-top: 30px;
  padding-bottom: 30px;
}
.hero-slider .swiper-slide img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 1;
}
.hero-slider .swiper-slide::after {
  content: "";
  width: 100%;
  height: 100%;
  position: absolute;
  background: linear-gradient(0deg, rgba(0, 0, 0, 0.5) 40.07%, rgba(0, 0, 0, 0) 80.56%);
  display: block;
  top: 0;
  left: 0;
  z-index: 1;
}
.hero-slider .swiper-slide .btn {
  min-width: 280px;
}
.hero-slider .slide-content {
  position: relative;
  z-index: 2;
  text-align: center;
  color: #fff;
  max-width: 1700px;
  margin-left: auto;
  margin-right: auto;
  width: 100%;
}
.hero-slider .slide-content h1,
.hero-slider .slide-content h2 {
  margin-bottom: 20px;
  color: #fff;
}
.hero-slider .slide-content .container {
  max-width: 800px;
  margin-right: auto;
  margin-left: 0;
}
.hero-slider .swiper-pagination {
  bottom: 30px !important;
  display: flex;
  align-items: center;
  justify-content: center;
}
.hero-slider .swiper-pagination .swiper-pagination-bullet {
  background: #fff;
  width: 16px;
  height: 16px;
}
.hero-slider .swiper-pagination .swiper-pagination-bullet-active {
  opacity: 1;
  background: #E30613;
  width: 28px;
  height: 28px;
}
.hero-slider .swiper-button-prev,
.hero-slider .swiper-button-next {
  color: #fff;
}
.hero-slider .swiper-button-prev:after,
.hero-slider .swiper-button-next:after {
  font-size: 30px;
}
@media screen and (min-width: 992px) {
  .hero-slider .swiper-slide::after {
    content: "";
    width: 100%;
    height: 100%;
    position: absolute;
    background: linear-gradient(90deg, rgba(0, 0, 0, 0.5) 30%, rgba(0, 0, 0, 0) 60%);
    display: block;
    top: 0;
    left: 0;
    z-index: 1;
  }
  .hero-slider .slide-content {
    text-align: left;
  }
  .hero-slider .slide-content h1,
  .hero-slider .slide-content h2 {
    margin-bottom: 28px;
  }
  .hero-slider .slide-content .btn {
    width: max-content;
    margin-top: 50px;
  }
  .hero-slider .slide-content p {
    max-width: 560px;
  }
}
.site-footer {
  padding-top: 50px;
  padding-bottom: 20px;
  position: relative;
  z-index: 1;
  overflow: hidden;
  background: #1E1E1E;
  color: #fff;
}
.site-footer .container {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  overflow: visible;
}
.site-footer .footer-logo {
  width: 100%;
}
.site-footer .footer-logo a {
  display: flex;
  width: max-content;
}
.site-footer .footer-logo a figure {
  display: flex;
}
.site-footer .footer-cols {
  margin-top: 30px;
  display: flex;
  gap: 30px;
  border-bottom: 2px solid #fff;
  padding-bottom: 30px;
  flex-direction: column;
}
.site-footer .footer-cols .divider {
  width: 100%;
  height: 2px;
  background-color: #fff;
  display: block;
}
.site-footer .footer-cols strong {
  display: block;
  font-size: 1rem;
}
.site-footer .footer-cols span {
  display: block;
}
.site-footer .footer-cols p,
.site-footer .footer-cols ul {
  font-size: 1rem;
  margin: 0;
}
.site-footer .footer-copyright {
  padding-top: 20px;
}
.site-footer .footer-copyright p {
  font-size: 1rem;
  margin-bottom: 0;
}
@media screen and (min-width: 768px) {
  .site-footer .footer-cols {
    justify-content: space-between;
    width: 100%;
    flex-direction: row;
    padding-bottom: 50px;
  }
  .site-footer .footer-cols .item-col {
    max-width: 380px;
    margin-right: auto;
  }
  .site-footer .footer-cols .footer-menu {
    margin-left: auto;
    margin-right: auto;
  }
  .site-footer .footer-cols .divider {
    height: 160px;
    width: 2px;
  }
}
@media screen and (min-width: 768px) {
  .site-footer {
    padding-top: 70px;
  }
  .site-footer .footer-copyright {
    padding-top: 24px;
  }
}
.block-contact {
  position: relative;
  z-index: 1;
  background-color: #C2D0A9;
}
.block-contact .container {
  padding: 0;
}
.block-contact .contact-content {
  padding-top: 50px;
  padding-bottom: 50px;
  padding-left: 20px;
  padding-right: 20px;
}
.block-contact .contact-content h3 {
  color: #E30613;
}
.block-contact .contact-content > .col-2 {
  max-width: 700px;
}
.block-contact .contact-content > .col-2 div:first-child {
  margin-bottom: 20px;
}
.block-contact .contact-content ol {
  list-style: none;
}
.block-contact .contact-content ol li {
  counter-increment: counter;
  margin-bottom: 30px;
}
.block-contact .contact-content ol li > span {
  color: #fff;
  font-weight: 500;
  font-size: 1.25rem;
  line-height: 32/20;
}
.block-contact .contact-content ol li > span a {
  font-size: 1.25rem;
  line-height: 32/20;
}
.block-contact .wpcf7 {
  margin-top: 24px;
  position: relative;
  z-index: 1;
}
.block-contact .contact-map {
  display: flex;
  overflow: hidden;
  justify-content: flex-end;
  height: 360px;
  align-items: center;
}
.block-contact .contact-map img {
  width: 200%;
  margin-left: auto;
  margin-right: 0;
  max-width: none;
  height: auto;
  margin-bottom: 200px;
}
.block-contact .contact-info {
  display: flex;
  flex-direction: column;
  gap: 30px;
  padding-top: 40px;
  margin-top: 40px;
  width: 100%;
  border-top: 2px solid #1E1E1E;
}
.block-contact .contact-info .info-item {
  display: flex;
  gap: 15px;
  align-items: center;
  width: 100%;
  font-size: 1.125rem;
}
.block-contact .contact-info .info-item figure {
  display: flex;
}
@media screen and (min-width: 992px) {
  .block-contact {
    overflow: hidden;
  }
  .block-contact .container {
    display: flex;
    flex-direction: row;
  }
  .block-contact .contact-content {
    max-width: 660px;
    padding-left: 20px;
    padding-right: 70px;
    padding-top: 70px;
    padding-bottom: 100px;
    background: #C2D0A9;
    position: relative;
    z-index: 1;
  }
  .block-contact .contact-content p {
    font-size: 1.25rem;
  }
  .block-contact .contact-map {
    height: auto;
    width: auto;
  }
  .block-contact .contact-map img {
    width: auto;
    margin-bottom: 0;
    min-height: 100%;
  }
  .block-contact .contact-info {
    display: grid;
    padding-top: 60px;
    margin-top: 60px;
    grid-template-columns: 1fr 1fr;
  }
  .block-contact .contact-info .info-item {
    font-size: 1.25rem;
  }
}
@media screen and (min-width: 1800px) {
  .block-contact .contact-map img {
    position: absolute;
    right: 0;
    height: 100%;
  }
}
.block-why-us .container {
  overflow: visible;
}
.block-why-us .section-title {
  text-align: center;
  margin-bottom: 2rem;
  max-width: 840px;
  margin-left: auto;
  margin-right: auto;
}
.block-why-us .section-title + p {
  max-width: 920px;
  margin-left: auto;
  margin-right: auto;
}
.block-why-us .why-us-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 30px;
  margin-top: 60px;
  max-width: 1470px;
  margin-left: auto;
  margin-right: auto;
}
@media screen and (min-width: 768px) {
  .block-why-us .why-us-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media screen and (min-width: 992px) {
  .block-why-us .why-us-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}
.block-why-us .why-us-item {
  text-align: center;
  border-radius: 40px;
  box-shadow: 0 8px 8px 8px rgba(0, 0, 0, 0.3);
  overflow: hidden;
  background: #1E1E1E;
  display: flex;
  flex-direction: column;
  max-width: 275px;
  margin-left: auto;
  margin-right: auto;
}
.block-why-us .why-us-item .icon {
  height: 268px;
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: #C2D0A9;
  flex-shrink: 0;
}
.block-why-us .why-us-item .icon svg {
  max-width: 100%;
}
.block-why-us .why-us-item p {
  margin-bottom: 0;
  line-height: 1.4;
}
.block-why-us .why-us-item .text-content {
  color: #fff;
  padding: 0.5rem;
  height: 100%;
  display: flex;
  align-items: center;
}
.block-why-us .why-us-item:nth-child(1) .icon {
  padding-top: 50px;
}
@media screen and (min-width: 992px) {
  .block-why-us .section-title {
    margin-bottom: 2.5rem;
  }
  .block-why-us .why-us-grid {
    margin-top: 120px;
  }
}
.block-about {
  background: url(../img/bg_about_us.webp) no-repeat;
  background-size: cover;
  box-shadow: 0px 16px 16px rgba(0, 0, 0, 0.3);
}
.block-about .about-content {
  display: grid;
  grid-template-columns: 1fr;
  gap: 40px;
  align-items: center;
}
@media screen and (min-width: 768px) {
  .block-about .about-content {
    grid-template-columns: 1fr 1fr;
  }
}
.block-about .about-image {
  display: flex;
}
.block-about .about-image img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 40px;
}
.block-about .about-text p:last-child {
  margin-bottom: 0;
}
@media screen and (min-width: 992px) {
  .block-about .about-content {
    gap: 60px;
  }
}
.block-product-cards .container {
  overflow: visible;
}
.block-product-cards .product-cards-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 30px;
  margin-top: 60px;
}
@media screen and (min-width: 768px) {
  .block-product-cards .product-cards-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media screen and (min-width: 992px) {
  .block-product-cards .product-cards-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media screen and (min-width: 992px) {
  .block-product-cards .product-cards-grid.col-2 {
    grid-template-columns: repeat(2, 1fr);
  }
}
.block-product-cards .product-card {
  position: relative;
  overflow: hidden;
  border-radius: 40px;
  box-shadow: 8px 8px 8px rgba(0, 0, 0, 0.3);
  display: flex;
  flex-direction: column;
}
.block-product-cards .product-card__image {
  position: relative;
  width: 100%;
  max-height: 294px;
  overflow: hidden;
  background: #C2D0A9;
  flex-shrink: 0;
  text-align: center;
}
.block-product-cards .product-card__image img {
  margin-left: auto;
  margin-right: auto;
}
.block-product-cards .product-card__content {
  padding: 32px 20px 20px;
  color: #fff;
  background-color: #1E1E1E;
  display: flex;
  flex-direction: column;
  height: 100%;
}
.block-product-cards .product-card__content h3 {
  margin-bottom: 1rem;
  font-size: 1.125rem;
}
.block-product-cards .product-card__content .btn {
  width: max-content;
  margin-top: auto;
  margin-bottom: 0;
}
@media screen and (min-width: 768px) {
  .block-product-cards .product-card__content h3 {
    font-size: 1.25rem;
  }
}
@media screen and (min-width: 992px) {
  .block-product-cards .text-subtitle,
  .block-product-cards h2 {
    text-align: center;
  }
  .block-product-cards .product-cards-grid {
    margin-top: 120px;
    gap: 60px;
  }
  .block-product-cards .product-card__content {
    padding: 44px 24px 24px;
  }
  .block-product-cards .product-card__content h3 {
    font-size: 1.5rem;
  }
  .block-product-cards .product-card__content p {
    margin-bottom: 40px;
  }
}
@media screen and (min-width: 1200px) {
  .block-product-cards .product-cards-grid {
    gap: 90px;
  }
}
.manufactured-in-czech {
  background-color: #1E1E1E;
  color: #fff;
  text-align: left;
  padding: 1rem;
  height: 170px;
  box-shadow: 0px 16px 16px rgba(0, 0, 0, 0.3);
}
.manufactured-in-czech .container {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  justify-content: center;
  align-items: center;
  height: 100%;
}
.manufactured-in-czech .container p {
  margin-bottom: 0;
  font-size: 1.5rem;
  text-align: center;
}
.manufactured-in-czech .container figure {
  display: flex;
}
@media screen and (min-width: 768px) {
  .manufactured-in-czech {
    height: 110px;
  }
  .manufactured-in-czech .container {
    flex-direction: row;
  }
  .manufactured-in-czech .container p {
    font-size: 2rem;
  }
}
@media screen and (min-width: 992px) {
  .manufactured-in-czech .container p {
    font-size: 2.5rem;
  }
}
/* Gallery Block */
.block-gallery .container {
  overflow: visible;
}
.block-gallery .gallery-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 30px;
}
@media screen and (min-width: 768px) {
  .block-gallery .gallery-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media screen and (min-width: 992px) {
  .block-gallery .gallery-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}
.block-gallery .gallery-item {
  position: relative;
  overflow: hidden;
  border-radius: 40px;
  box-shadow: 8px 8px 8px rgba(0, 0, 0, 0.3);
  display: flex;
  align-items: center;
  cursor: pointer;
  aspect-ratio: 1/1;
  border: 1px solid #f7f7f7;
  -webkit-transition: 0.3s all ease-out;
  -moz-transition: 0.3s all ease-out;
  -o-transition: 0.3s all ease-out;
  -ms-transition: 0.3s all ease-out;
  transition: 0.3s all ease-out;
}
.block-gallery .gallery-item:hover {
  transform: translateY(-5px);
  box-shadow: 12px 12px 12px rgba(0, 0, 0, 0.4);
}
.block-gallery .gallery-item:hover img {
  transform: scale(1.05);
}
.block-gallery .gallery-item:hover .gallery-overlay {
  opacity: 1;
}
.block-gallery .gallery-item img {
  width: 100%;
  height: auto;
  display: block;
  -webkit-transition: 0.3s all ease-out;
  -moz-transition: 0.3s all ease-out;
  -o-transition: 0.3s all ease-out;
  -ms-transition: 0.3s all ease-out;
  transition: 0.3s all ease-out;
}
.block-gallery .gallery-item .gallery-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.6);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  -webkit-transition: 0.3s all ease-out;
  -moz-transition: 0.3s all ease-out;
  -o-transition: 0.3s all ease-out;
  -ms-transition: 0.3s all ease-out;
  transition: 0.3s all ease-out;
}
.block-gallery .gallery-item .gallery-overlay svg {
  width: 50px;
  height: 50px;
  fill: #fff;
}
@media screen and (min-width: 768px) {
  .block-gallery .gallery-item .gallery-overlay svg {
    width: 60px;
    height: 60px;
  }
}
/* FAQ Accordion Block */
.block-faq {
  background-color: #C2D0A9;
}
.block-faq .container {
  overflow: visible;
}
.block-faq .text-subtitle {
  text-align: center;
}
.block-faq .section-title {
  text-align: center;
  margin-bottom: 60px;
}
.block-faq .faq-list {
  max-width: 900px;
  margin: 0 auto;
}
.block-faq .faq-item {
  margin-bottom: 20px;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
  -webkit-transition: 0.3s all ease-out;
  -moz-transition: 0.3s all ease-out;
  -o-transition: 0.3s all ease-out;
  -ms-transition: 0.3s all ease-out;
  transition: 0.3s all ease-out;
}
.block-faq .faq-item:last-child {
  margin-bottom: 0;
}
.block-faq .faq-item.active {
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
}
.block-faq .faq-item.active .faq-question .faq-icon {
  transform: rotate(45deg);
}
.block-faq .faq-item.active .faq-answer {
  max-height: 1000px;
  padding: 20px 30px 30px;
}
.block-faq .faq-question {
  width: 100%;
  padding: 25px 30px;
  background: #f9f9f9;
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  text-align: left;
  font-family: inherit;
  -webkit-transition: 0.3s all ease-out;
  -moz-transition: 0.3s all ease-out;
  -o-transition: 0.3s all ease-out;
  -ms-transition: 0.3s all ease-out;
  transition: 0.3s all ease-out;
}
.block-faq .faq-question:hover {
  background: #f0f0f0;
}
.block-faq .faq-question span {
  font-size: 1.125rem;
  font-weight: 600;
  color: #1E1E1E;
  line-height: 1.4;
  padding-right: 20px;
}
@media screen and (min-width: 768px) {
  .block-faq .faq-question span {
    font-size: 1.25rem;
  }
}
.block-faq .faq-question .faq-icon {
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  fill: #1E1E1E;
}
.block-faq .faq-answer {
  max-height: 0;
  overflow: hidden;
  padding: 0 30px;
  background: #fff;
  transition: max-height 0.4s ease, padding 0.4s ease;
}
.block-faq .faq-answer p {
  margin-bottom: 15px;
  font-size: 1rem;
  line-height: 1.7;
  color: #1E1E1E;
}
.block-faq .faq-answer p:last-child {
  margin-bottom: 0;
}
.block-faq .faq-answer ul,
.block-faq .faq-answer ol {
  margin: 15px 0;
  padding-left: 25px;
}
.block-faq .faq-answer ul li,
.block-faq .faq-answer ol li {
  margin-bottom: 10px;
  line-height: 1.7;
  color: #1E1E1E;
}
/* Contact Page Template */
.page-contact .container {
  overflow: visible;
  max-width: 1140px;
}
.page-contact .contact-hero {
  text-align: center;
}
.page-contact .contact-hero .section-title {
  margin-bottom: 20px;
}
.page-contact .contact-hero .contact-intro {
  max-width: 700px;
  margin: 0 auto;
  font-size: 1.125rem;
  line-height: 1.7;
  color: #1E1E1E;
}
.page-contact .contact-content .contact-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 60px;
}
@media screen and (min-width: 992px) {
  .page-contact .contact-content .contact-grid {
    grid-template-columns: 1fr 1.5fr;
    gap: 80px;
  }
}
.page-contact .contact-content .contact-info .info-title {
  font-size: 1.75rem;
  font-weight: 700;
  margin-bottom: 40px;
  color: #1E1E1E;
}
@media screen and (min-width: 768px) {
  .page-contact .contact-content .contact-info .info-title {
    font-size: 2rem;
  }
}
.page-contact .contact-content .contact-info .contact-info-item {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  margin-bottom: 35px;
}
.page-contact .contact-content .contact-info .contact-info-item:last-child {
  margin-bottom: 0;
}
.page-contact .contact-content .contact-info .contact-info-item .icon {
  flex-shrink: 0;
  width: 50px;
  height: 50px;
  background: transparent;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.page-contact .contact-content .contact-info .contact-info-item .info-content {
  flex: 1;
}
.page-contact .contact-content .contact-info .contact-info-item .info-content h3 {
  font-size: 1.125rem;
  font-weight: 600;
  margin-bottom: 8px;
  color: #1E1E1E;
}
.page-contact .contact-content .contact-info .contact-info-item .info-content p {
  font-size: 1rem;
  line-height: 1.7;
  color: #1E1E1E;
  margin: 0;
}
.page-contact .contact-content .contact-info .contact-info-item .info-content p a {
  color: #E30613;
  text-decoration: none;
  -webkit-transition: 0.3s all ease-out;
  -moz-transition: 0.3s all ease-out;
  -o-transition: 0.3s all ease-out;
  -ms-transition: 0.3s all ease-out;
  transition: 0.3s all ease-out;
}
.page-contact .contact-content .contact-info .contact-info-item .info-content p a:hover {
  color: #b1050f;
}
.page-contact .contact-content .contact-form-wrapper .form-title {
  font-size: 1.75rem;
  font-weight: 700;
  margin-bottom: 30px;
  color: #1E1E1E;
}
@media screen and (min-width: 768px) {
  .page-contact .contact-content .contact-form-wrapper .form-title {
    font-size: 2rem;
  }
}
.page-contact .contact-content .contact-form-wrapper .contact-form {
  background: #f9f9f9;
  padding: 30px;
  border-radius: 20px;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
}
@media screen and (min-width: 768px) {
  .page-contact .contact-content .contact-form-wrapper .contact-form {
    padding: 40px;
  }
}
.page-contact .contact-map-section {
  padding-top: 0;
}
.page-contact .contact-map-section .section-title {
  text-align: center;
  margin-bottom: 40px;
}
.page-contact .contact-map-section .contact-map img {
  width: auto;
  height: auto;
  display: block;
  margin-left: auto;
  margin-right: auto;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
}
.error404 article header h1 {
  margin-bottom: 20px;
}
.error404 article header p {
  margin-bottom: 40px;
  text-transform: uppercase;
}
.error404 article .img-404 {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 40px 0;
}
@media screen and (min-width: 480px) {
  .error404 article header .btn {
    max-width: 295px;
  }
}
@media screen and (min-width: 768px) {
  .error404 article {
    padding-bottom: 80px;
    padding-top: 60px;
  }
  .error404 article .container {
    display: flex;
    align-items: flex-start;
  }
  .error404 article .container > * {
    width: 50%;
  }
  .error404 article .container .img-404 {
    margin: 15px 0 0;
  }
}
@media screen and (min-width: 768px) {
  .error404 article {
    padding-bottom: 140px;
  }
  .error404 article header h1 {
    margin-bottom: 32px;
  }
  .error404 article header p {
    margin-bottom: 80px;
  }
}
