:root {
  --color-teal: #47958b;
  --color-navy: #002e54;
  --color-dark-gray: #252c30;
  --color-blue: #41b6e6;
  --color-primary: var(--color-navy);
  --color-primary-light: var(--color-blue);
  --color-secondary: var(--color-teal);
  --color-accent: var(--color-blue);
  --color-text-dark: var(--color-dark-gray);
  --color-text-light: #ffffff;
  --color-bg-white: #ffffff;
  --color-bg-light: #f4f6f8;
  --color-btn-hover: #0f665d;
  --color-border-light: #e5eaee;
  --container-bg-light-1: #ffffff;
  --container-bg-light-2: #f4f6f8;
  --container-bg-dark-1: #002e54;
  --container-bg-dark-2: #252c30;
  --spacing-xs: 4px;
  --spacing-s: 8px;
  --spacing-m: 12px;
  --spacing-l: 16px;
  --spacing-xl: 24px;
  --spacing-2xl: 32px;
  --spacing-3xl: 48px;
  --spacing-4xl: 64px;
  --spacing-5xl: 96px;
  --spacing-6xl: 128px;
  --radius-s: 8px;
  --radius-m: 16px;
  --radius-l: 24px;
  --radius-xl: 32px;
  --font-heading: "FuturaPT", sans-serif;
  --font-body: "OpenSans", sans-serif;
  --z-below: -1;
  --z-base: 0;
  --z-deco: 1;
  --z-content: 2;
  --z-overlay: 10;
  --z-modal: 100;
  --z-toast: 200;
  --main-max-width: 1536px;
}

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

body,
h1,
h2,
h3,
h4,
h5,
h6,
p,
figure,
blockquote,
dl,
dd {
  margin: 0;
  padding: 0;
}

html {
  scroll-behavior: smooth;
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}

ul[role=list],
ol[role=list] {
  list-style: none;
}

img,
picture,
video,
canvas,
svg {
  display: block;
  max-width: 100%;
}

input,
button,
textarea,
select {
  font: inherit;
}

p,
h1,
h2,
h3,
h4,
h5,
h6 {
  overflow-wrap: break-word;
}

@font-face {
  font-family: "FuturaPT";
  src: local("FuturaCyrillicBook"), url("../../public/fonts/FuturaCyrillicBook.woff2") format("woff2"), url("../../public/fonts/FuturaCyrillicBook.woff") format("woff"), url("../../public/fonts/FuturaCyrillicBook.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "FuturaPT";
  src: local("FuturaCyrillicMedium"), url("../../public/fonts/FuturaCyrillicMedium.woff2") format("woff2"), url("../../public/fonts/FuturaCyrillicMedium.woff") format("woff"), url("../../public/fonts/FuturaCyrillicMedium.ttf") format("truetype");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "FuturaPT";
  src: local("FuturaCyrillicBold"), url("../../public/fonts/FuturaCyrillicBold.woff2") format("woff2"), url("../../public/fonts/FuturaCyrillicBold.woff") format("woff"), url("../../public/fonts/FuturaCyrillicBold.ttf") format("truetype");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "FuturaPT";
  src: local("FuturaCyrillicHeavy"), url("../../public/fonts/FuturaCyrillicHeavy.woff2") format("woff2"), url("../../public/fonts/FuturaCyrillicHeavy.woff") format("woff"), url("../../public/fonts/FuturaCyrillicHeavy.ttf") format("truetype");
  font-weight: 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "FuturaPT-Demi";
  src: local("FuturaCyrillicDemi"), url("../../public/fonts/FuturaCyrillicDemi.woff2") format("woff2"), url("../../public/fonts/FuturaCyrillicDemi.woff") format("woff"), url("../../public/fonts/FuturaCyrillicDemi.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "OpenSans";
  src: local("OpenSans-Regular"), url("../../public/fonts/OpenSans-Regular.woff2") format("woff2"), url("../../public/fonts/OpenSans-Regular.woff") format("woff"), url("../../public/fonts/OpenSans-Regular.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "OpenSans";
  src: local("OpenSans-Medium"), url("../../public/fonts/OpenSans-Medium.woff2") format("woff2"), url("../../public/fonts/OpenSans-Medium.woff") format("woff"), url("../../public/fonts/OpenSans-Medium.ttf") format("truetype");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "OpenSans";
  src: local("OpenSans-SemiBold"), url("../../public/fonts/OpenSans-SemiBold.woff2") format("woff2"), url("../../public/fonts/OpenSans-SemiBold.woff") format("woff"), url("../../public/fonts/OpenSans-SemiBold.ttf") format("truetype");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "OpenSans";
  src: local("OpenSans-Bold"), url("../../public/fonts/OpenSans-Bold.woff2") format("woff2"), url("../../public/fonts/OpenSans-Bold.woff") format("woff"), url("../../public/fonts/OpenSans-Bold.ttf") format("truetype");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
.type-display-d1 {
  font-family: var(--font-heading);
  font-size: clamp(5rem, 3.3495rem + 7.767vw, 10rem);
  font-weight: 500;
  line-height: 1;
  letter-spacing: clamp(-1.6px, -0.8252px - 0.3883vw, -3.2px);
}

.type-h1-heavy {
  font-family: var(--font-heading);
  font-size: clamp(2.5rem, 1.8058rem + 3.2653vw, 4rem);
  font-weight: 900;
  line-height: 1.1;
  letter-spacing: clamp(-0.8px, -0.5243px - 0.1383vw, -1.28px);
}

.type-h1 {
  font-family: var(--font-heading);
  font-size: clamp(2.5rem, 1.8058rem + 3.2653vw, 4rem);
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: clamp(-0.8px, -0.5243px - 0.1383vw, -1.28px);
}

.type-h2-heavy {
  font-family: var(--font-heading);
  font-size: clamp(2rem, 1.5631rem + 2.0553vw, 3rem);
  font-weight: 900;
  line-height: 1.05;
  letter-spacing: clamp(-0.64px, -0.4592px - 0.0907vw, -0.96px);
}

.type-h2 {
  font-family: var(--font-heading);
  font-size: clamp(2rem, 1.5631rem + 2.0553vw, 3rem);
  font-weight: 400;
  line-height: 1.05;
  letter-spacing: clamp(-0.64px, -0.4592px - 0.0907vw, -0.96px);
}

.type-display-d3 {
  font-family: var(--font-heading);
  font-size: clamp(1.75rem, 1.4369rem + 1.4757vw, 2.5rem);
  font-weight: 900;
  line-height: 1.08;
  letter-spacing: clamp(-0.56px, -0.4165px - 0.0719vw, -0.8px);
}

.type-h3 {
  font-family: "FuturaPT-Demi", sans-serif;
  font-size: clamp(1.75rem, 1.4369rem + 1.4757vw, 2.5rem);
  font-weight: 400;
  line-height: 1.08;
  letter-spacing: clamp(-0.56px, -0.4165px - 0.0719vw, -0.8px);
}

.type-h4 {
  font-family: var(--font-heading);
  font-size: clamp(1.5rem, 1.3107rem + 0.8914vw, 1.75rem);
  font-weight: 900;
  line-height: 1.12;
  letter-spacing: clamp(-0.48px, -0.3981px - 0.0411vw, -0.56px);
}

.type-h5-demi {
  font-family: var(--font-heading);
  font-size: clamp(1.25rem, 1.0611rem + 0.8914vw, 1.5rem);
  font-weight: 500;
  line-height: 1.15;
  letter-spacing: clamp(-0.4px, -0.3155px - 0.0423vw, -0.48px);
}

.type-h5 {
  font-family: var(--font-heading);
  font-size: clamp(1.25rem, 1.0611rem + 0.8914vw, 1.5rem);
  font-weight: 900;
  line-height: 1.15;
  letter-spacing: clamp(-0.4px, -0.3155px - 0.0423vw, -0.48px);
}

.type-h6 {
  font-family: var(--font-heading);
  font-size: clamp(1.125rem, 0.9981rem + 0.5984vw, 1.25rem);
  font-weight: 500;
  line-height: 1.18;
  letter-spacing: clamp(-0.36px, -0.3108px - 0.0247vw, -0.4px);
}

.type-body-lg {
  font-family: var(--font-body);
  font-size: clamp(1rem, 0.9369rem + 0.2972vw, 1.125rem);
  font-weight: 400;
  line-height: 1.53;
  letter-spacing: normal;
}

.type-body-md {
  font-family: var(--font-body);
  font-size: clamp(0.875rem, 0.8119rem + 0.2972vw, 1rem);
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: normal;
}

.type-body-sm {
  font-family: var(--font-body);
  font-size: clamp(0.75rem, 0.6869rem + 0.2972vw, 0.875rem);
  font-weight: 400;
  line-height: 1.42;
  letter-spacing: normal;
}

.type-eyebrow {
  font-family: var(--font-heading);
  font-size: clamp(0.625rem, 0.5619rem + 0.2972vw, 0.75rem);
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: clamp(1.25px, 1.0206px + 0.1148vw, 1.5px);
  text-transform: uppercase;
  display: flex;
  gap: 0;
  align-items: flex-end;
  color: var(--color-teal);
}
.type-eyebrow::after {
  content: url("data:image/svg+xml,%3Csvg width='7' height='8' viewBox='0 0 7 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0.101928 0H6.5666C6.67706 0 6.7666 0.0895429 6.7666 0.2V7.17927C6.7666 7.27736 6.64013 7.32007 6.58302 7.24031C5.82516 6.1818 2.84788 2.15592 0.0436236 0.187958C-0.0377187 0.130874 0.00255468 0 0.101928 0Z' fill='%2347958B'/%3E%3C/svg%3E");
  position: relative;
  top: -3px;
}

/**
 * Global Page Container Styles
 *
 * Reusable container styles for consistent page layout.
 * Used across search, products archive, and other templates.
 */
.elementor-kit-54 .hm-page-container {
  height: 100%;
  width: 100%;
  padding-top: 6rem;
  padding-bottom: 6rem;
}
.elementor-kit-54 .hm-page-container--boxed {
  margin: 0 auto;
  max-width: min(100%, 1536px);
}
.elementor-kit-54 .hm-page-container--rounded-top-corners {
  border-top-left-radius: 20px;
  border-top-right-radius: 20px;
}
.elementor-kit-54 .hm-page-container--overlap-top {
  margin-top: -30px;
  z-index: 20;
  position: relative;
}
.elementor-kit-54 .hm-page-container--bg-white {
  background-color: white;
}
@media screen and (min-width: 1336px) and (max-width: 1587px) {
  .elementor-kit-54 .hm-page-container {
    padding: 6rem 1.25rem;
  }
}
@media screen and (max-width: 1335px) {
  .elementor-kit-54 .hm-page-container {
    padding: 3rem 1.25rem;
  }
}

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.no-pointer-events {
  pointer-events: none;
}

.relative {
  position: relative;
}

.absolute {
  position: absolute;
}

.overflow-hidden {
  overflow: hidden;
}

.hm-card {
  padding: 12px 14px;
  border-radius: 8px;
}
.hm-card.hm-card--outlined {
  border: 1px solid #e5eaee;
}

.hm-label {
  font-family: var(--font-body);
  font-size: clamp(0.75rem, 0.6869rem + 0.2972vw, 0.875rem);
  font-weight: 600;
  line-height: 1.42;
  letter-spacing: normal;
}

.hm-value {
  font-family: var(--font-heading);
  font-size: clamp(1.125rem, 0.9981rem + 0.5984vw, 1.25rem);
  font-weight: 500;
  line-height: 1.18;
  letter-spacing: clamp(-0.36px, -0.3108px - 0.0247vw, -0.4px);
}

.fw300 {
  font-weight: 300;
}

.fw400 {
  font-weight: 400;
}

.fw500 {
  font-weight: 500;
}

.fw600 {
  font-weight: 600;
}

.fw700 {
  font-weight: 700;
}

.fw900 {
  font-weight: 900;
}

.hm-404-page {
  min-height: 70vh;
  background-color: var(--color-bg-white);
  position: relative;
  overflow: hidden;
}
.hm-404-page .hm-page-container {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 70vh;
}
.hm-404-page .hm-404__container {
  max-width: 800px !important;
  width: 100%;
  margin: 0 auto;
  text-align: center;
  position: relative;
  z-index: var(--z-content);
}
.hm-404-page .hm-404__number {
  font-family: var(--font-heading);
  font-size: clamp(5rem, 3.3495rem + 7.767vw, 10rem);
  font-weight: 500;
  line-height: 1;
  letter-spacing: clamp(-1.6px, -0.8252px - 0.3883vw, -3.2px);
  color: var(--color-primary) !important;
  opacity: 0.08;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: var(--z-below);
  pointer-events: none;
  user-select: none;
}
@media (max-width: 768px) {
  .hm-404-page .hm-404__number {
    font-size: clamp(4rem, 10vw, 8rem) !important;
  }
}
.hm-404-page .hm-404__content {
  position: relative;
  z-index: var(--z-content);
}
.hm-404-page .hm-404__title {
  font-family: var(--font-heading);
  font-size: clamp(2.5rem, 1.8058rem + 3.2653vw, 4rem);
  font-weight: 900;
  line-height: 1.1;
  letter-spacing: clamp(-0.8px, -0.5243px - 0.1383vw, -1.28px);
  color: var(--color-primary) !important;
  margin-bottom: var(--spacing-xl) !important;
}
.hm-404-page .hm-404__description {
  font-family: var(--font-body);
  font-size: clamp(1rem, 0.9369rem + 0.2972vw, 1.125rem);
  font-weight: 400;
  line-height: 1.53;
  letter-spacing: normal;
  color: var(--color-text-dark) !important;
  margin-bottom: var(--spacing-4xl) !important;
  max-width: 600px;
  margin-left: auto;
  margin-right: auto;
}
.hm-404-page .hm-404__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--spacing-l);
  justify-content: center;
  align-items: center;
  margin-bottom: var(--spacing-4xl);
}
.hm-404-page .hm-404__button {
  font-family: var(--font-body);
  font-size: clamp(0.875rem, 0.8119rem + 0.2972vw, 1rem);
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: normal;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  padding: var(--spacing-l) var(--spacing-3xl) !important;
  border-radius: var(--radius-s) !important;
  text-decoration: none !important;
  font-weight: 600 !important;
  transition: all 0.3s ease;
  min-width: 160px;
}
.hm-404-page .hm-404__button--primary {
  background-color: var(--color-secondary) !important;
  color: var(--color-text-light) !important;
  border: 2px solid var(--color-secondary) !important;
}
.hm-404-page .hm-404__button--primary:hover, .hm-404-page .hm-404__button--primary:focus {
  background-color: var(--color-btn-hover) !important;
  border-color: var(--color-btn-hover) !important;
  color: var(--color-text-light) !important;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(71, 149, 139, 0.3);
}
.hm-404-page .hm-404__button--secondary {
  background-color: var(--color-primary) !important;
  color: var(--color-text-light) !important;
  border: 2px solid var(--color-primary) !important;
}
.hm-404-page .hm-404__button--secondary:hover, .hm-404-page .hm-404__button--secondary:focus {
  background-color: #003d70 !important;
  border-color: #003d70 !important;
  color: var(--color-text-light) !important;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 46, 84, 0.3);
}
.hm-404-page .hm-404__button--outline {
  background-color: transparent !important;
  color: var(--color-primary) !important;
  border: 2px solid var(--color-primary) !important;
}
.hm-404-page .hm-404__button--outline:hover, .hm-404-page .hm-404__button--outline:focus {
  background-color: var(--color-primary) !important;
  color: var(--color-text-light) !important;
  transform: translateY(-2px);
}
.hm-404-page .hm-404__button:focus-visible {
  outline: 3px solid var(--color-accent) !important;
  outline-offset: 2px;
}
.hm-404-page .hm-404__search {
  margin-top: var(--spacing-3xl);
  padding-top: var(--spacing-3xl);
  border-top: 1px solid var(--color-border-light);
}
.hm-404-page .hm-404__search-label {
  font-family: var(--font-body);
  font-size: clamp(0.875rem, 0.8119rem + 0.2972vw, 1rem);
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: normal;
  color: var(--color-text-dark);
  margin-bottom: var(--spacing-l);
}
.hm-404-page .hm-404__search .search-form {
  max-width: 500px;
  margin: 0 auto;
  display: flex;
  gap: var(--spacing-s);
}
.hm-404-page .hm-404__search .search-form label {
  flex: 1;
  margin: 0;
}
.hm-404-page .hm-404__search .search-form .search-field {
  width: 100%;
  padding: var(--spacing-l) var(--spacing-xl);
  border: 2px solid var(--color-border-light);
  border-radius: var(--radius-s);
  font-family: var(--font-body);
  font-size: 1rem;
  transition: border-color 0.3s ease;
}
.hm-404-page .hm-404__search .search-form .search-field:focus {
  outline: none;
  border-color: var(--color-secondary);
}
.hm-404-page .hm-404__search .search-form .search-submit {
  padding: var(--spacing-l) var(--spacing-2xl);
  background-color: var(--color-secondary);
  color: var(--color-text-light);
  border: 2px solid var(--color-secondary);
  border-radius: var(--radius-s);
  font-family: var(--font-body);
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s ease;
}
.hm-404-page .hm-404__search .search-form .search-submit:hover, .hm-404-page .hm-404__search .search-form .search-submit:focus {
  background-color: var(--color-btn-hover);
  border-color: var(--color-btn-hover);
  transform: translateY(-2px);
}
.hm-404-page .hm-404__search .search-form .search-submit:focus-visible {
  outline: 3px solid var(--color-accent);
  outline-offset: 2px;
}

@media (max-width: 768px) {
  .hm-404-page .hm-page-container {
    padding: var(--spacing-3xl) var(--spacing-l) !important;
  }
  .hm-404-page .hm-404__title {
    font-size: clamp(2rem, 8vw, 3rem) !important;
    margin-bottom: var(--spacing-l) !important;
  }
  .hm-404-page .hm-404__description {
    margin-bottom: var(--spacing-3xl) !important;
  }
  .hm-404-page .hm-404__actions {
    flex-direction: column;
    gap: var(--spacing-m);
  }
  .hm-404-page .hm-404__button {
    width: 100%;
    max-width: 300px;
  }
  .hm-404-page .hm-404__search .search-form {
    flex-direction: column;
  }
  .hm-404-page .hm-404__search .search-form .search-submit {
    width: 100%;
  }
  .hm-404-page .hm-404__deco {
    width: 200px;
    height: 200px;
    bottom: -30px;
    right: -30px;
  }
  .hm-404-page .hm-404__deco::before {
    width: 100px;
    height: 100px;
  }
}