/* ==========================================================================
   Chemesis Core — Global header (light Vercel header reproduction)
   ========================================================================== */

/* Announcement strip (normal flow above the sticky header) */
.ch-announcement {
  display: none;
  background: var(--ch-ink-950);
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  text-align: center;
}

.ch-announcement-inner {
  margin: 0;
  padding: 0.5rem 1rem;
  font-family: var(--ch-font-mono);
  font-size: var(--ch-type-mono);
  letter-spacing: 0.02em;
  color: rgba(255, 255, 255, 0.55);
}

.ch-announcement-inner a {
  color: var(--ch-blue-300);
  margin-left: 0.25rem;
}

.ch-announcement-inner a:hover {
  color: #fff;
}

.ch-announcement-dot {
  display: inline-block;
  width: 6px;
  height: 6px;
  margin-right: 0.5rem;
  border-radius: 50%;
  background: var(--ch-blue-400);
  vertical-align: middle;
  animation: ch-pulse 2.4s ease-in-out infinite;
}

@keyframes ch-pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.35; }
}

/* Sticky header bar */
.ch-header {
  position: sticky;
  top: 0;
  z-index: 50;
  border-bottom: 1px solid var(--ch-line);
  background: rgba(246, 247, 249, 0.95);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  transition: box-shadow 0.3s var(--ch-ease-expo);
}

.ch-header-root.is-scrolled .ch-header {
  box-shadow: 0 10px 40px -30px rgba(0, 12, 48, 0.5);
}

.ch-header-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  height: 74px;
}

.ch-header-logo {
  display: inline-flex;
  align-items: center;
  padding: 0.5rem 0;
  flex-shrink: 0;
}

.ch-header-logo img {
  width: 152px;
  height: auto;
}

.ch-header-logo-fallback {
  font-family: var(--ch-font-display);
  font-weight: 600;
  font-size: 1.4rem;
  color: var(--ch-ink-900);
}

/* Desktop nav (xl and up) */
.ch-nav {
  display: none;
  align-items: center;
  justify-content: center;
  flex: 1;
  min-width: 0;
  gap: 0.125rem;
}

.ch-nav-link {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  padding: 0.5rem;
  border: 0;
  background: transparent;
  border-radius: 4px;
  font-family: var(--ch-font-body);
  font-size: var(--ch-type-body-sm);
  font-weight: 500;
  white-space: nowrap;
  color: rgba(11, 18, 32, 0.7);
  cursor: pointer;
  text-decoration: none;
  transition: color 0.3s var(--ch-ease-expo), background-color 0.3s var(--ch-ease-expo);
}

.ch-nav-link:hover {
  color: var(--ch-ink-900);
  background: rgba(0, 12, 48, 0.04);
}

.ch-nav-link.is-active {
  color: var(--ch-ink-900);
}

.ch-nav-underline {
  position: absolute;
  left: 0.5rem;
  right: 0.5rem;
  bottom: -1px;
  height: 2px;
  background: var(--ch-blue);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.3s var(--ch-ease-expo);
}

.ch-nav-link.is-active .ch-nav-underline,
.ch-nav-link:hover .ch-nav-underline {
  transform: scaleX(1);
}

.ch-chevron {
  transition: transform 0.3s var(--ch-ease-expo);
}

.ch-mega-trigger[aria-expanded="true"] .ch-chevron {
  transform: rotate(180deg);
}

/* Utilities */
.ch-utilities {
  display: flex;
  align-items: center;
  gap: 0.375rem;
}

.ch-icon-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  height: 2.5rem;
  padding-inline: 0.625rem;
  border: 0;
  background: transparent;
  border-radius: 4px;
  color: rgba(11, 18, 32, 0.7);
  font-family: var(--ch-font-body);
  font-size: var(--ch-type-body-sm);
  font-weight: 500;
  cursor: pointer;
  text-decoration: none;
  transition: background-color 0.3s var(--ch-ease-expo), color 0.3s var(--ch-ease-expo);
}

.ch-icon-btn:hover {
  background: rgba(0, 12, 48, 0.05);
  color: var(--ch-ink-900);
}

.ch-util-label,
.ch-kbd {
  display: none;
}

.ch-kbd {
  padding: 0.125rem 0.375rem;
  border: 1px solid var(--ch-line);
  border-radius: 3px;
  background: #fff;
  font-family: var(--ch-font-mono);
  font-size: var(--ch-type-caption);
  color: var(--ch-faint);
}

.ch-cart-badge {
  position: absolute;
  top: -2px;
  right: -2px;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 1rem;
  height: 1rem;
  padding-inline: 0.25rem;
  border-radius: 999px;
  background: var(--ch-blue);
  color: #fff;
  font-family: var(--ch-font-mono);
  font-size: var(--ch-type-caption);
  font-weight: 500;
}

.ch-cart-badge.is-empty {
  display: none;
}

.ch-account-btn {
  display: none;
}

.ch-header-cta {
  margin-left: 0.25rem;
  display: none;
}

.ch-menu-trigger {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  width: 2.5rem;
  height: 2.5rem;
  border: 0;
  background: transparent;
  cursor: pointer;
}

.ch-menu-trigger span {
  display: block;
  width: 18px;
  height: 1.5px;
  border-radius: 2px;
  background: var(--ch-ink-900);
}

@media (min-width: 768px) {
  .ch-announcement {
    display: block;
  }

  .ch-header-cta {
    display: inline-flex;
  }
}

@media (min-width: 1280px) {
  .ch-nav {
    display: flex;
  }

  .ch-account-btn {
    display: inline-flex;
  }

  .ch-menu-trigger {
    display: none;
  }
}

@media (min-width: 1536px) {
  .ch-nav-link {
    font-size: var(--ch-type-body-sm);
    padding: 0.5rem 0.875rem;
  }

  .ch-nav-underline {
    left: 0.875rem;
    right: 0.875rem;
  }

  .ch-util-label,
  .ch-kbd {
    display: inline-block;
  }
}

/* ------------------------------------------------------------------ */
/* Mega menu (Our Products)                                            */
/* ------------------------------------------------------------------ */
.ch-mega {
  position: absolute;
  left: 0;
  right: 0;
  top: 100%;
  display: none;
  background: #fff;
  border-bottom: 1px solid var(--ch-line);
  box-shadow: 0 30px 60px -40px rgba(0, 12, 48, 0.45);
  opacity: 0;
  transform: translateY(-6px);
  pointer-events: none;
  transition: opacity 0.3s var(--ch-ease-expo), transform 0.3s var(--ch-ease-expo);
}

@media (min-width: 1280px) {
  .ch-mega {
    display: block;
  }
}

.ch-mega.is-open {
  opacity: 1;
  transform: none;
  pointer-events: auto;
}

.ch-mega-grid {
  display: grid;
  grid-template-columns: 4fr 5fr 3fr;
  gap: 2.5rem;
  padding-block: 2.5rem;
}

.ch-mega-categories {
  margin: 1.25rem 0 0;
  padding: 0;
  list-style: none;
}

.ch-mega-categories a {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.625rem 0.75rem;
  border-radius: 4px;
  text-decoration: none;
  transition: background-color 0.3s var(--ch-ease-expo);
}

.ch-mega-categories a:hover {
  background: var(--ch-paper);
}

.ch-mega-index {
  font-family: var(--ch-font-mono);
  font-size: var(--ch-type-mono);
  color: var(--ch-faint);
}

.ch-mega-name {
  flex: 1;
  font-size: var(--ch-type-body-sm);
  font-weight: 500;
  color: var(--ch-ink-900);
}

.ch-mega-count {
  font-family: var(--ch-font-mono);
  font-size: var(--ch-type-mono);
  color: var(--ch-faint);
}

.ch-mega-all {
  margin-top: 1.25rem;
  display: inline-flex;
}

.ch-mega-featured {
  margin: 1.25rem 0 0;
  padding: 0;
  list-style: none;
}

.ch-mega-featured li + li {
  border-top: 1px solid var(--ch-line);
}

.ch-mega-featured a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding-block: 0.75rem;
  text-decoration: none;
  transition: background-color 0.3s var(--ch-ease-expo);
}

.ch-mega-featured-text .ch-mega-name,
.ch-mega-featured-text .ch-mono {
  display: block;
}

.ch-mega-featured-text .ch-mono {
  margin-top: 2px;
  font-size: var(--ch-type-mono);
  color: var(--ch-faint);
}

.ch-mega-arrow {
  color: var(--ch-faint);
  transition: transform 0.3s var(--ch-ease-expo), color 0.3s var(--ch-ease-expo);
}

.ch-mega-featured a:hover .ch-mega-arrow {
  transform: translateX(4px);
  color: var(--ch-blue);
}

.ch-mega-docs-card {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  height: 100%;
  padding: 1.25rem;
  border: 1px solid var(--ch-line);
  border-radius: 6px;
  background: var(--ch-paper);
}

.ch-mega-docs-title {
  margin: 0.25rem 0 0;
  font-size: var(--ch-type-body-sm);
  font-weight: 600;
  color: var(--ch-ink-900);
  font-family: var(--ch-font-body);
}

.ch-body-sm {
  margin: 0;
  font-family: var(--ch-font-body);
  font-size: var(--ch-type-body-sm);
  line-height: 1.6;
  color: var(--ch-muted);
}

/* ------------------------------------------------------------------ */
/* Mobile menu                                                         */
/* ------------------------------------------------------------------ */
.ch-mobile {
  position: fixed;
  inset: 0;
  z-index: 60;
  display: flex;
  flex-direction: column;
  background: var(--ch-ink-950);
  color: #fff;
  overflow-y: auto;
}

body.ch-scroll-locked {
  overflow: hidden;
}

.ch-mobile-top {
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  flex-shrink: 0;
}

.ch-mobile-top-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 74px;
}

.ch-mobile-label {
  color: var(--ch-blue-300);
}

.ch-mobile-close {
  width: 2.5rem;
  height: 2.5rem;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 4px;
  background: transparent;
  color: #fff;
  font-size: 1rem;
  cursor: pointer;
}

.ch-mobile-body {
  padding-top: 1.5rem;
  padding-bottom: 2.5rem;
}

.ch-mobile-nav {
  margin: 0;
  padding: 0;
  list-style: none;
}

.ch-mobile-nav li {
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.ch-mobile-nav a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 0;
  text-decoration: none;
  color: #fff;
}

.ch-mobile-index {
  font-family: var(--ch-font-mono);
  font-size: var(--ch-type-mono);
  color: var(--ch-blue-300);
  align-self: baseline;
}

.ch-mobile-name {
  flex: 1;
  font-family: var(--ch-font-display);
  font-size: 1.5625rem;
  font-weight: 500;
  letter-spacing: -0.02em;
}

.ch-mobile-arrow {
  color: rgba(255, 255, 255, 0.4);
}

.ch-mobile-utils {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
  margin-top: 2rem;
}

.ch-mobile-util {
  justify-content: center;
}

.ch-mobile-cta {
  width: 100%;
  margin-top: 0.75rem;
}

.ch-mobile-legal {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1.25rem;
  margin-top: 2rem;
}

.ch-mobile-legal a {
  font-family: var(--ch-font-mono);
  font-size: var(--ch-type-mono);
  color: rgba(255, 255, 255, 0.6);
  text-decoration: none;
}

.ch-mobile-legal a:hover {
  color: #fff;
}

/* ------------------------------------------------------------------ */
/* Search overlay                                                      */
/* ------------------------------------------------------------------ */
.ch-search {
  position: fixed;
  inset: 0;
  z-index: 80;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: 12vh 1rem 0;
}

.ch-search-backdrop {
  position: absolute;
  inset: 0;
  border: 0;
  background: rgba(1, 6, 26, 0.7);
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
  cursor: pointer;
}

.ch-search-panel {
  position: relative;
  width: 100%;
  max-width: 42rem;
  overflow: hidden;
  border: 1px solid var(--ch-line);
  border-radius: 6px;
  background: #fff;
  box-shadow: 0 30px 60px -30px rgba(0, 12, 48, 0.5);
}

.ch-search-input-row {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  height: 4rem;
  padding-inline: 1.25rem;
  border-bottom: 1px solid var(--ch-line);
  color: var(--ch-faint);
}

.ch-search-input-row input {
  flex: 1;
  height: 100%;
  border: 0;
  outline: none;
  font-family: var(--ch-font-body);
  font-size: var(--ch-type-body);
  color: var(--ch-text);
  background: transparent;
}

.ch-search-results {
  max-height: 52vh;
  overflow-y: auto;
  padding: 0.75rem;
}

.ch-search-empty {
  padding: 2rem 1rem;
  text-align: center;
  font-family: var(--ch-font-body);
  font-size: var(--ch-type-body-sm);
  color: var(--ch-muted);
}

.ch-search-result {
  display: flex;
  align-items: center;
  gap: 0.875rem;
  padding: 0.75rem;
  border-radius: 4px;
  text-decoration: none;
  color: var(--ch-text);
  transition: background-color 0.2s var(--ch-ease-expo);
}

.ch-search-result.is-active,
.ch-search-result:hover {
  background: var(--ch-paper);
}

.ch-search-thumb {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 52px;
  flex-shrink: 0;
  border: 1px solid var(--ch-line);
  border-radius: 4px;
  overflow: hidden;
  background: #fff;
}

.ch-search-thumb img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.ch-search-result-info {
  flex: 1;
  min-width: 0;
}

.ch-search-result-name {
  display: block;
  font-size: var(--ch-type-body);
  font-weight: 500;
  color: var(--ch-ink-900);
}

.ch-search-result-meta {
  display: block;
  margin-top: 2px;
  font-family: var(--ch-font-mono);
  font-size: var(--ch-type-mono);
  color: var(--ch-faint);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.ch-search-result-arrow {
  color: var(--ch-faint);
}

.ch-search-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.75rem 1.25rem;
  border-top: 1px solid var(--ch-line);
  background: var(--ch-paper);
  font-family: var(--ch-font-mono);
  font-size: var(--ch-type-caption);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ch-faint);
}

.ch-search-footer a {
  color: var(--ch-blue-600);
}

/* ------------------------------------------------------------------ */
/* Cart drawer                                                         */
/* ------------------------------------------------------------------ */
.ch-cart-drawer {
  position: fixed;
  inset: 0;
  z-index: 75;
}

.ch-cart-backdrop {
  position: absolute;
  inset: 0;
  border: 0;
  background: rgba(1, 6, 26, 0.7);
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
  cursor: pointer;
}

.ch-cart-panel {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  display: flex;
  flex-direction: column;
  width: min(94vw, 430px);
  background: #fff;
  box-shadow: 0 30px 60px -20px rgba(0, 12, 48, 0.55);
}

.ch-cart-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 1.25rem;
  border-bottom: 1px solid var(--ch-line);
}

.ch-cart-title {
  display: flex;
  align-items: center;
  gap: 0.625rem;
  margin: 0;
  font-family: var(--ch-font-display);
  font-size: 1.1875rem;
  font-weight: 600;
  letter-spacing: -0.02em;
  color: var(--ch-ink-900);
}

.ch-cart-close {
  width: 2.25rem;
  height: 2.25rem;
  border: 1px solid var(--ch-line);
  border-radius: 4px;
  background: transparent;
  color: var(--ch-muted);
  cursor: pointer;
}

.ch-cart-close:hover {
  color: var(--ch-ink-900);
  border-color: rgba(0, 12, 48, 0.3);
}

.ch-cart-body {
  flex: 1;
  overflow-y: auto;
}

.ch-cart-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  height: 100%;
  padding: 2rem;
  text-align: center;
}

.ch-cart-empty-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 3.5rem;
  height: 3.5rem;
  border-radius: 50%;
  background: var(--ch-blue-100);
}

.ch-cart-empty-title {
  margin: 0.5rem 0 0;
  font-family: var(--ch-font-display);
  font-size: 1.1875rem;
  font-weight: 600;
  color: var(--ch-ink-900);
}

.ch-cart-items {
  margin: 0;
  padding: 0;
  list-style: none;
}

.ch-cart-item {
  display: flex;
  gap: 1rem;
  padding: 1rem 1.25rem;
  border-bottom: 1px solid var(--ch-line);
}

.ch-cart-thumb {
  width: 64px;
  height: 80px;
  flex-shrink: 0;
  display: block;
}

.ch-cart-thumb img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.ch-cart-item-info {
  flex: 1;
  min-width: 0;
}

.ch-cart-item-name {
  display: block;
  font-size: var(--ch-type-body);
  font-weight: 500;
  color: var(--ch-ink-900);
  text-decoration: none;
}

.ch-cart-item-name:hover {
  color: var(--ch-blue-600);
}

.ch-cart-item-info .ch-mono {
  display: block;
  margin-top: 2px;
  font-size: var(--ch-type-label);
  color: var(--ch-faint);
}

.ch-cart-item-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-top: 0.5rem;
}

.ch-cart-price {
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
  font-size: var(--ch-type-body);
  color: var(--ch-ink-900);
}

.ch-cart-price del {
  font-family: var(--ch-font-mono);
  font-size: var(--ch-type-mono);
  color: var(--ch-faint);
}

.ch-qty {
  display: inline-flex;
  align-items: center;
  height: 2.25rem;
  border: 1px solid var(--ch-line);
  border-radius: 4px;
}

.ch-qty button {
  width: 2rem;
  height: 100%;
  border: 0;
  background: transparent;
  color: var(--ch-muted);
  cursor: pointer;
}

.ch-qty button:hover {
  color: var(--ch-ink-900);
}

.ch-qty input {
  width: 2.25rem;
  height: 100%;
  border: 0;
  text-align: center;
  font-family: var(--ch-font-mono);
  font-size: var(--ch-type-mono);
  color: var(--ch-text);
  background: transparent;
  -moz-appearance: textfield;
  appearance: textfield;
}

.ch-qty input::-webkit-outer-spin-button,
.ch-qty input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.ch-cart-remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  border: 1px solid var(--ch-line);
  border-radius: 4px;
  background: transparent;
  color: var(--ch-faint);
  cursor: pointer;
}

.ch-cart-remove:hover {
  border-color: #fca5a5;
  color: #ef4444;
}

.ch-cart-foot {
  padding: 1.25rem;
  border-top: 1px solid var(--ch-line);
}

.ch-cart-totals {
  margin: 0 0 1rem;
}

.ch-cart-totals div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-block: 0.375rem;
}

.ch-cart-totals dt {
  font-family: var(--ch-font-body);
  font-size: var(--ch-type-body-sm);
  color: var(--ch-muted);
}

.ch-cart-totals dd {
  margin: 0;
  font-size: var(--ch-type-body);
  font-weight: 600;
  color: var(--ch-ink-900);
}

.ch-cart-savings {
  color: var(--ch-blue-600) !important;
}

.ch-cart-actions {
  display: grid;
  gap: 0.625rem;
}

.ch-cart-actions .ch-btn {
  width: 100%;
}

.ch-cart-note {
  margin: 1rem 0 0;
  text-align: center;
}


/* ------------------------------------------------------------------ */

/* ------------------------------------------------------------------ */
/* Hidden-state overlays must never intercept pointer events           */
/* ------------------------------------------------------------------ */
.ch-search[hidden],
.ch-mobile[hidden],
.ch-cart-drawer[hidden] {
  display: none !important;
}

/* ------------------------------------------------------------------ */
/* Elementor kit + Hello theme raw-button shield. Global `button` and  */
/* `[type=button]:hover/:focus` rules would otherwise paint raw buttons */
/* with kit blue / theme pink and inject 17px/24px padding.            */
/* ------------------------------------------------------------------ */
body :is(.ch-header-root, .ch-mobile, .ch-search, .ch-cart-drawer) button,
body :is(.ch-header-root, .ch-mobile, .ch-search, .ch-cart-drawer) button:hover,
body :is(.ch-header-root, .ch-mobile, .ch-search, .ch-cart-drawer) button:focus,
body :is(.ch-header-root, .ch-mobile, .ch-search, .ch-cart-drawer) button:focus-visible {
  background: transparent;
  color: inherit;
  padding: 0;
}

/* Re-assert intended paddings lost to the shield (incl. hover/focus so
   the blanket padding:0 on interactive states cannot collapse buttons) */
body :is(.ch-header-root, .ch-mobile, .ch-search, .ch-cart-drawer) .ch-icon-btn,
body :is(.ch-header-root, .ch-mobile, .ch-search, .ch-cart-drawer) .ch-icon-btn:hover,
body :is(.ch-header-root, .ch-mobile, .ch-search, .ch-cart-drawer) .ch-icon-btn:focus,
body :is(.ch-header-root, .ch-mobile, .ch-search, .ch-cart-drawer) .ch-icon-btn:focus-visible {
  padding: 0 0.625rem;
}

body :is(.ch-header-root, .ch-mobile, .ch-search, .ch-cart-drawer) .ch-nav-link,
body :is(.ch-header-root, .ch-mobile, .ch-search, .ch-cart-drawer) .ch-nav-link:hover,
body :is(.ch-header-root, .ch-mobile, .ch-search, .ch-cart-drawer) .ch-nav-link:focus,
body :is(.ch-header-root, .ch-mobile, .ch-search, .ch-cart-drawer) .ch-nav-link:focus-visible {
  padding: 0.5rem;
}

@media (min-width: 1536px) {
  body :is(.ch-header-root, .ch-mobile, .ch-search, .ch-cart-drawer) .ch-nav-link,
  body :is(.ch-header-root, .ch-mobile, .ch-search, .ch-cart-drawer) .ch-nav-link:hover,
  body :is(.ch-header-root, .ch-mobile, .ch-search, .ch-cart-drawer) .ch-nav-link:focus,
  body :is(.ch-header-root, .ch-mobile, .ch-search, .ch-cart-drawer) .ch-nav-link:focus-visible {
    padding: 0.5rem 0.875rem;
  }
}

body :is(.ch-header-root, .ch-mobile, .ch-search, .ch-cart-drawer) .ch-btn,
body :is(.ch-header-root, .ch-mobile, .ch-search, .ch-cart-drawer) .ch-btn:hover,
body :is(.ch-header-root, .ch-mobile, .ch-search, .ch-cart-drawer) .ch-btn:focus,
body :is(.ch-header-root, .ch-mobile, .ch-search, .ch-cart-drawer) .ch-btn:focus-visible {
  padding-inline: var(--ch-btn-padding);
}

body :is(.ch-header-root, .ch-mobile, .ch-search, .ch-cart-drawer) .ch-btn-sm,
body :is(.ch-header-root, .ch-mobile, .ch-search, .ch-cart-drawer) .ch-btn-sm:hover,
body :is(.ch-header-root, .ch-mobile, .ch-search, .ch-cart-drawer) .ch-btn-sm:focus,
body :is(.ch-header-root, .ch-mobile, .ch-search, .ch-cart-drawer) .ch-btn-sm:focus-visible {
  padding-inline: 1.2rem;
}

body :is(.ch-header-root, .ch-mobile, .ch-search, .ch-cart-drawer) .ch-btn-primary,
body :is(.ch-header-root, .ch-mobile, .ch-search, .ch-cart-drawer) .ch-btn-primary:focus,
body :is(.ch-header-root, .ch-mobile, .ch-search, .ch-cart-drawer) .ch-btn-primary:focus-visible {
  background: var(--ch-blue);
  color: #fff;
}

body :is(.ch-header-root, .ch-mobile, .ch-search, .ch-cart-drawer) .ch-btn-primary:hover {
  background: var(--ch-blue-600);
  color: #fff;
  box-shadow: 0 14px 30px -14px rgba(0, 84, 252, 0.55);
}

body :is(.ch-header-root, .ch-mobile, .ch-search, .ch-cart-drawer) .ch-btn-outline-light,
body :is(.ch-header-root, .ch-mobile, .ch-search, .ch-cart-drawer) .ch-btn-outline-light:focus {
  background: transparent;
  color: #fff;
  border-color: rgba(255, 255, 255, 0.28);
}

body :is(.ch-header-root, .ch-mobile, .ch-search, .ch-cart-drawer) .ch-btn-outline-light:hover {
  border-color: #fff;
  background: rgba(255, 255, 255, 0.08);
  color: #fff;
}

body .ch-search .ch-search-backdrop {
  background: rgba(1, 6, 26, 0.7);
}

/* Drawer remove: restore red hover feedback stripped by the shield. */
body :is(.ch-cart-drawer) .ch-cart-remove:hover,
body :is(.ch-cart-drawer) .ch-cart-remove:focus-visible {
  border-color: #fca5a5;
  color: #ef4444;
}

/* ------------------------------------------------------------------ */
/* Elementor kit input typography shield. The kit's global            */
/* `.elementor-kit-5 input:not(...)` rule (0,3,1) otherwise forces    */
/* 16px Instrument Sans on Chemesis-owned inputs. These selectors     */
/* intentionally match that specificity weight (0,3,2).               */
/* ------------------------------------------------------------------ */
body .ch-cart-drawer input:not([type="button"]):not([type="submit"]) {
  font-size: var(--ch-type-mono);
  font-family: var(--ch-font-mono);
}

body .ch-search input:not([type="button"]):not([type="submit"]) {
  font-size: var(--ch-type-body);
}

body .ch-header-root .ch-nav-link {
  color: rgba(11, 18, 32, 0.7);
}

body .ch-header-root .ch-nav-link:hover,
body .ch-header-root .ch-nav-link.is-active,
body .ch-header-root .ch-nav-link:focus-visible {
  color: var(--ch-ink-900);
}

body .ch-header-root .ch-nav-link:hover {
  background: rgba(0, 12, 48, 0.04);
}

body .ch-header-root .ch-icon-btn {
  color: rgba(11, 18, 32, 0.7);
}

body .ch-header-root .ch-icon-btn:hover,
body .ch-header-root .ch-icon-btn:focus-visible {
  color: var(--ch-ink-900);
  background: rgba(0, 12, 48, 0.05);
}

/* ------------------------------------------------------------------ */
/* Theme Builder header wrapper: sticky with announcement sliding out  */
/* (mirrors prototype: announcement in normal flow, bar stays at top). */
/* ------------------------------------------------------------------ */
.elementor-location-header:has(.ch-header-root) {
  position: sticky;
  top: calc(-1 * var(--ch-ann-h, 38px));
  z-index: 50;
}
