:root {
  --responsive-header-height: 78px;
}

html {
  scroll-padding-top: calc(var(--responsive-header-height) + 12px);
}

body {
  min-width: 0;
  overflow-x: clip;
}
.back-to-top,
.back-to-top.metallic-click {
  position: fixed !important;
  left: max(1rem, env(safe-area-inset-left)) !important;
  right: auto !important;
  bottom: max(1rem, env(safe-area-inset-bottom)) !important;
  top: auto !important;
  z-index: 1200 !important;
  width: 54px !important;
  min-width: 54px !important;
  max-width: 176px !important;
  height: 54px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 0 !important;
  padding: 0 17px !important;
  overflow: hidden !important;
  border: 2px solid rgba(220, 177, 94, .94) !important;
  border-radius: 999px !important;
  color: #fff8df !important;
  background: linear-gradient(145deg, #39725b 0%, #214c3b 48%, #142f25 100%) !important;
  box-shadow:
    0 13px 30px rgba(20, 49, 38, .28),
    inset 0 1px 0 rgba(255, 255, 255, .25),
    inset 0 -1px 0 rgba(0, 0, 0, .18) !important;
  opacity: 0;
  pointer-events: none;
  translate: 0 18px !important;
  transform: none !important;
  transition:
    width .34s cubic-bezier(.2, .8, .2, 1),
    gap .28s ease,
    opacity .25s ease,
    translate .25s ease,
    border-color .25s ease,
    box-shadow .25s ease !important;
}

.back-to-top.visible {
  opacity: 1 !important;
  pointer-events: auto !important;
  translate: 0 0 !important;
}

.back-to-top > i {
  position: relative !important;
  z-index: 10 !important;
  width: 18px;
  min-width: 18px;
  text-align: center;
  font-size: 1rem;
  line-height: 1;
}

.back-to-top-label {
  position: relative !important;
  z-index: 10 !important;
  display: block;
  max-width: 0;
  overflow: hidden;
  opacity: 0;
  white-space: nowrap;
  color: #fff8df;
  font-family: Montserrat, Arial, sans-serif;
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .01em;
  transition: max-width .32s ease, opacity .22s ease;
}

@media (hover: hover) {
  .back-to-top:hover,
  .back-to-top:focus-visible,
  .back-to-top.is-expanded {
    width: 164px !important;
    gap: .7rem !important;
    border-color: #efca7c !important;
    box-shadow:
      0 16px 34px rgba(20, 49, 38, .34),
      inset 0 1px 0 rgba(255, 255, 255, .3) !important;
    transform: none !important;
  }

  .back-to-top:hover .back-to-top-label,
  .back-to-top:focus-visible .back-to-top-label,
  .back-to-top.is-expanded .back-to-top-label {
    max-width: 100px;
    opacity: 1;
  }
}

@media (hover: none) {
  .back-to-top.is-expanded {
    width: 164px !important;
    gap: .7rem !important;
  }

  .back-to-top.is-expanded .back-to-top-label {
    max-width: 100px;
    opacity: 1;
  }
}
@media (max-width: 1180px) {
  :root {
    --responsive-header-height: 72px;
  }

  body.mobile-menu-open {
    overflow: hidden !important;
    touch-action: none;
  }

  body.mobile-menu-open::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 1100;
    background: rgba(12, 31, 24, .42);
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px);
  }

  .site-header {
    z-index: 1500 !important;
  }

  .site-header .nav-container {
    position: relative !important;
    width: 100% !important;
    max-width: none !important;
    min-height: var(--responsive-header-height);
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto auto !important;
    align-items: center !important;
    justify-content: stretch !important;
    gap: .5rem !important;
    margin: 0 !important;
    padding:
      max(.48rem, env(safe-area-inset-top))
      max(.72rem, env(safe-area-inset-right))
      .48rem
      max(.72rem, env(safe-area-inset-left)) !important;
  }

  .site-header .brand,
  .site-header .brand.brand-home-link {
    grid-column: 1 !important;
    grid-row: 1 !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
  }

  .site-header .brand-text {
    min-width: 0 !important;
    overflow: hidden;
  }

  .site-header .brand-name,
  .site-header .brand-role {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .site-header nav {
    grid-column: 1 / -1 !important;
    grid-row: 2 !important;
    width: 0 !important;
    height: 0 !important;
    min-width: 0 !important;
    overflow: visible !important;
  }

  .site-header .menu-toggle,
  .site-header .menu-toggle.metallic-click {
    grid-column: 3 !important;
    grid-row: 1 !important;
    display: grid !important;
    place-content: center !important;
    width: 48px !important;
    min-width: 48px !important;
    height: 46px !important;
    min-height: 46px !important;
    margin: 0 !important;
    padding: 9px 10px !important;
    overflow: hidden !important;
    border: 2px solid rgba(197, 150, 73, .82) !important;
    border-radius: 14px !important;
    background: linear-gradient(145deg, #fffdf7, #e9dfc7) !important;
    box-shadow:
      0 8px 18px rgba(28, 58, 47, .15),
      inset 0 1px 0 rgba(255, 255, 255, .94) !important;
    z-index: 1600 !important;
    cursor: pointer;
  }

  .site-header .menu-toggle span:not(.metallic-sheen) {
    display: block !important;
    width: 24px !important;
    height: 2px !important;
    margin: 3px 0 !important;
    border-radius: 99px;
    background: #234a3a !important;
  }

  .site-header .menu-toggle.open {
    background: linear-gradient(145deg, #39725b, #173d30) !important;
    border-color: #e5bd70 !important;
  }

  .site-header .menu-toggle.open span:not(.metallic-sheen) {
    background: #fff7dc !important;
  }

  .site-header .language-switcher {
    position: static !important;
    inset: auto !important;
    grid-column: 2 !important;
    grid-row: 1 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: .35rem !important;
    margin: 0 !important;
    padding: 0 !important;
    translate: none !important;
    transform: none !important;
    z-index: 1550 !important;
  }

  .site-header .language-switcher .language-button {
    width: 52px !important;
    min-width: 52px !important;
    height: 42px !important;
    min-height: 42px !important;
    padding: 6px 9px !important;
    border-radius: 13px !important;
  }

  .site-header .language-switcher .language-flag {
    width: 30px !important;
    min-width: 30px !important;
    height: 20px !important;
    min-height: 20px !important;
  }

  .site-header .nav-links {
    position: fixed !important;
    top: calc(var(--responsive-header-height) + max(.65rem, env(safe-area-inset-top))) !important;
    left: max(.75rem, env(safe-area-inset-left)) !important;
    right: max(.75rem, env(safe-area-inset-right)) !important;
    bottom: auto !important;
    z-index: 1550 !important;
    width: auto !important;
    max-width: 720px !important;
    max-height: calc(100dvh - var(--responsive-header-height) - 1.6rem) !important;
    margin: 0 auto !important;
    padding: .8rem !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    align-items: stretch !important;
    gap: .45rem !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
    list-style: none !important;
    border: 1px solid rgba(199, 151, 73, .5) !important;
    border-radius: 20px !important;
    background: rgba(255, 253, 248, .985) !important;
    box-shadow: 0 25px 65px rgba(12, 35, 27, .28) !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    translate: 0 -12px !important;
    transform: scale(.985) !important;
    transform-origin: top center;
    transition:
      opacity .22s ease,
      visibility .22s ease,
      translate .24s ease,
      transform .24s ease !important;
  }

  .site-header .nav-links.open {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    translate: 0 0 !important;
    transform: scale(1) !important;
  }

  .site-header .nav-links li {
    width: 100%;
    min-width: 0;
  }

  .site-header .nav-links a,
  .site-header .nav-links a:not(.nav-cta) {
    width: 100% !important;
    min-height: 48px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: .82rem 1rem !important;
    white-space: normal !important;
    text-align: center;
    font-size: .82rem !important;
    border: 1px solid rgba(43, 89, 70, .38) !important;
    border-radius: 14px !important;
    background: linear-gradient(145deg, #fffefa, #f0eadb) !important;
  }

  .site-header .nav-links .nav-cta {
    color: #fff7dc !important;
    border-color: rgba(225, 184, 103, .86) !important;
    background: linear-gradient(145deg, #39725b, #173d30) !important;
  }

  main section[id] {
    scroll-margin-top: calc(var(--responsive-header-height) + 14px);
  }
  .carousel-track {
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-inline: contain;
  }

  .carousel-track > article {
    scroll-snap-align: center;
    scroll-snap-stop: normal;
  }
  .grecaptcha-badge {
    right: max(.55rem, env(safe-area-inset-right)) !important;
    bottom: max(.7rem, env(safe-area-inset-bottom)) !important;
    width: 70px !important;
    min-width: 70px !important;
    max-width: 70px !important;
    overflow: hidden !important;
    border-radius: 4px !important;
    transition: none !important;
    transform: none !important;
  }

  .grecaptcha-badge:hover,
  .grecaptcha-badge:focus,
  .grecaptcha-badge:focus-within {
    right: max(.55rem, env(safe-area-inset-right)) !important;
    width: 70px !important;
    min-width: 70px !important;
    max-width: 70px !important;
  }
}

@media (max-width: 760px) {
  :root {
    --responsive-header-height: 64px;
  }

  .site-header .nav-container {
    gap: .32rem !important;
    min-height: var(--responsive-header-height);
    padding-top: max(.38rem, env(safe-area-inset-top)) !important;
    padding-bottom: .38rem !important;
  }

  .site-header .brand-logo-frame {
    width: 42px !important;
    min-width: 42px !important;
    height: 42px !important;
    flex-basis: 42px !important;
    border-radius: 12px !important;
  }

  .site-header .brand-logo-image {
    width: 38px !important;
    height: 38px !important;
  }

  .site-header .brand-name {
    font-size: clamp(1.22rem, 5.8vw, 1.55rem) !important;
  }

  .site-header .brand-role {
    display: none !important;
  }

  .site-header .language-switcher .language-button {
    width: 44px !important;
    min-width: 44px !important;
    height: 36px !important;
    min-height: 36px !important;
    padding: 5px 7px !important;
    border-radius: 11px !important;
  }

  .site-header .language-switcher .language-flag {
    width: 27px !important;
    min-width: 27px !important;
    height: 18px !important;
    min-height: 18px !important;
  }

  .site-header .menu-toggle,
  .site-header .menu-toggle.metallic-click {
    width: 44px !important;
    min-width: 44px !important;
    height: 40px !important;
    min-height: 40px !important;
    padding: 7px 9px !important;
    border-radius: 12px !important;
  }

  .site-header .nav-links {
    top: calc(var(--responsive-header-height) + max(.45rem, env(safe-area-inset-top))) !important;
    left: max(.55rem, env(safe-area-inset-left)) !important;
    right: max(.55rem, env(safe-area-inset-right)) !important;
    max-height: calc(100dvh - var(--responsive-header-height) - 1rem) !important;
    border-radius: 17px !important;
  }

  .hero-inner {
    padding-top: 4.6rem !important;
  }

  .hero h1 {
    font-size: clamp(2.45rem, 12vw, 3.2rem) !important;
  }

  .section {
    padding-inline: clamp(.8rem, 4vw, 1rem) !important;
  }

  .contact-card,
  .about-panel,
  .video-card {
    max-width: 100%;
    overflow: hidden;
  }

  input,
  select,
  textarea {
    font-size: 16px !important;
  }

  .faq-item summary {
    min-width: 0;
    column-gap: .75rem !important;
  }

  .faq-question {
    min-width: 0;
    overflow-wrap: anywhere;
  }

  .back-to-top,
  .back-to-top.metallic-click {
    left: max(.7rem, env(safe-area-inset-left)) !important;
    bottom: max(.7rem, env(safe-area-inset-bottom)) !important;
    width: 50px !important;
    min-width: 50px !important;
    height: 50px !important;
    padding-inline: 15px !important;
  }

  .back-to-top.is-expanded {
    width: 154px !important;
  }
}

@media (max-width: 430px) {
  .site-header .brand-logo-frame {
    width: 36px !important;
    min-width: 36px !important;
    height: 36px !important;
    flex-basis: 36px !important;
  }

  .site-header .brand-logo-image {
    width: 33px !important;
    height: 33px !important;
  }

  .site-header .brand-name {
    font-size: 1.12rem !important;
  }

  .site-header .language-switcher {
    gap: .22rem !important;
  }

  .site-header .language-switcher .language-button {
    width: 40px !important;
    min-width: 40px !important;
    height: 34px !important;
    min-height: 34px !important;
    padding: 4px 6px !important;
  }

  .site-header .language-switcher .language-flag {
    width: 25px !important;
    min-width: 25px !important;
    height: 17px !important;
    min-height: 17px !important;
  }

  .site-header .menu-toggle,
  .site-header .menu-toggle.metallic-click {
    width: 40px !important;
    min-width: 40px !important;
    height: 38px !important;
    min-height: 38px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .back-to-top,
  .back-to-top-label,
  .site-header .nav-links {
    transition: none !important;
  }
}
@media (max-width: 1180px) {
  body.legal-page .site-header .nav-container {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: space-between !important;
    gap: .45rem 1rem !important;
  }

  body.legal-page .site-header .brand {
    flex: 1 1 auto !important;
    overflow: visible !important;
  }

  body.legal-page .site-header nav {
    position: static !important;
    width: 100% !important;
    height: auto !important;
    overflow: visible !important;
  }

  body.legal-page .site-header .nav-links {
    position: static !important;
    inset: auto !important;
    width: 100% !important;
    max-width: none !important;
    max-height: none !important;
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    gap: .4rem !important;
    margin: 0 !important;
    padding: .35rem 0 0 !important;
    overflow: visible !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    translate: none !important;
    transform: none !important;
  }

  body.legal-page .site-header .nav-links li {
    width: auto !important;
  }

  body.legal-page .site-header .nav-links a,
  body.legal-page .site-header .nav-links a:not(.nav-cta) {
    width: auto !important;
    min-height: 42px !important;
    padding: .62rem .85rem !important;
    font-size: .72rem !important;
  }
}
