/* =====================================================================
   SILECTRA — button system
   Own class names (sl-btn*): WooCommerce / plugins style `.button`,
   `a.button`, `.woocommerce a.button`… and can never touch these.
   Loaded LAST, so it wins ties against generic link rules.
   ===================================================================== */

/* ---------- base ---------- */
:is(a, button).sl-btn {
  --b-bg: #1e7fd0;
  --b-bg-h: #1565c0;
  --b-fg: #ffffff;
  --b-fg-h: #ffffff;
  --b-bd: transparent;
  --b-bd-h: transparent;
  --b-sh: 0 10px 22px -10px rgba(21, 101, 192, .7);
  --b-sh-h: 0 16px 28px -12px rgba(21, 101, 192, .75);

  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  box-sizing: border-box;
  min-height: 56px;
  margin: 0;
  padding: 0 28px;
  border: 2px solid var(--b-bd);
  border-radius: 12px;
  color: var(--b-fg);
  background: var(--b-bg);
  box-shadow: var(--b-sh);
  font-family: inherit;
  font-size: 17px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0;
  text-align: center;
  text-decoration: none;
  text-transform: none;
  white-space: normal;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
  -webkit-tap-highlight-color: transparent;
  transition: background-color .2s ease, color .2s ease, border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
:is(a, button).sl-btn:hover,
:is(a, button).sl-btn:focus-visible {
  color: var(--b-fg-h);
  background: var(--b-bg-h);
  border-color: var(--b-bd-h);
  box-shadow: var(--b-sh-h);
  text-decoration: none;
  transform: translateY(-2px);
}
:is(a, button).sl-btn:active { transform: translateY(0); box-shadow: var(--b-sh); }
:is(a, button).sl-btn:focus-visible { outline: 3px solid rgba(30, 127, 208, .45); outline-offset: 3px; }
:is(a, button).sl-btn:disabled,
:is(a, button).sl-btn.is-sending { opacity: .6; cursor: progress; transform: none; }

.sl-btn .icon { flex: 0 0 auto; width: 20px; height: 20px; }
.sl-btn .icon-arrow { transition: transform .2s ease; }
.sl-btn:hover .icon-arrow { transform: translateX(4px); }

/* ---------- variants ---------- */
:is(a, button).sl-btn.sl-btn--dark { --b-bg: #0d2f57; --b-bg-h: #1565c0; --b-sh: 0 10px 22px -10px rgba(13, 47, 87, .7); --b-sh-h: 0 16px 28px -12px rgba(21, 101, 192, .75); }

:is(a, button).sl-btn.sl-btn--white {
  --b-bg: #ffffff; --b-bg-h: #e8f4ff; --b-fg: #0f5aa8; --b-fg-h: #0a4a8c;
  --b-sh: 0 12px 26px -12px rgba(0, 25, 60, .55); --b-sh-h: 0 18px 32px -14px rgba(0, 25, 60, .6);
}

:is(a, button).sl-btn.sl-btn--outline {
  --b-bg: transparent; --b-bg-h: #1e7fd0; --b-fg: #1565c0; --b-fg-h: #ffffff; --b-bd: #1e7fd0; --b-bd-h: #1e7fd0;
  --b-sh: none; --b-sh-h: 0 12px 24px -12px rgba(21, 101, 192, .6);
}

:is(a, button).sl-btn.sl-btn--glass {
  --b-bg: rgba(255, 255, 255, .14); --b-bg-h: rgba(255, 255, 255, .28); --b-fg: #ffffff; --b-fg-h: #ffffff;
  --b-bd: rgba(255, 255, 255, .55); --b-bd-h: rgba(255, 255, 255, .9); --b-sh: none; --b-sh-h: 0 12px 26px -14px rgba(0, 25, 60, .6);
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
}

/* sizes */
:is(a, button).sl-btn.sl-btn--sm { min-height: 46px; padding: 0 20px; border-radius: 10px; font-size: 16px; }
:is(a, button).sl-btn.sl-btn--block { display: flex; width: 100%; }

/* phone: round icon + two lines */
:is(a, button).sl-btn.sl-btn--phone { justify-content: flex-start; gap: 14px; min-height: 64px; padding: 8px 28px 8px 9px; border-radius: 999px; text-align: left; }
.sl-btn--phone .btn-ic { display: grid; flex: 0 0 46px; place-items: center; width: 46px; height: 46px; border-radius: 50%; color: #0f5aa8; background: #fff; box-shadow: 0 6px 14px -6px rgba(0, 25, 60, .5); transition: transform .2s ease; }
.sl-btn--phone:hover .btn-ic { transform: rotate(-10deg) scale(1.06); }
.sl-btn--phone .btn-txt { display: flex; flex-direction: column; align-items: flex-start; gap: 3px; min-width: 0; }
.sl-btn--phone small { font-size: 13px; font-weight: 600; letter-spacing: .02em; opacity: .85; }
.sl-btn--phone strong { font-size: 20px; font-weight: 800; letter-spacing: 0; white-space: nowrap; }

/* ---------- contexts ---------- */
.header-right :is(a, button).sl-btn { white-space: nowrap; }
.main-nav a.sl-btn, .main-nav a.sl-btn:hover { padding: 0 24px; color: var(--b-fg); font-size: 17px; }
.main-nav a.sl-btn:hover { color: var(--b-fg-h); }
.main-nav .nav-cta, .main-nav .nav-phone { display: none; }
.site-header.nav-collapsed .header-right .sl-btn { display: none; }
.site-header.nav-collapsed .main-nav .nav-cta { display: flex; width: 100%; margin-top: 20px; }
.site-header.nav-collapsed .main-nav .nav-phone { display: flex; }
@media (min-width: 1101px) { .site-header.fit-1 .header-right .sl-btn { display: none; } }

.hero-actions .sl-btn { min-height: 60px; padding: 0 32px; font-size: 18px; }
.form-submit.sl-btn { margin-top: 4px; }
.cta-band .sl-btn, .wp-catalog-request .sl-btn { flex: 0 0 auto; min-height: 60px; padding: 0 30px; font-size: 18px; }
.custom-copy .sl-btn { min-height: 60px; padding: 0 30px; font-size: 18px; }
.sp-cta-actions { display: grid; grid-template-columns: 1fr; gap: 12px; }
.sp-cta .sl-btn { width: 100%; min-height: 64px; }
.sp-cta .sl-btn--white { font-size: 18px; }
.request-modal .sl-btn, .empty-state .sl-btn, .catalog-empty-note .sl-btn, .form-success .sl-btn { min-height: 54px; }

/* ---------- small controls: chips, round icon buttons, text buttons ---------- */
.filter-chip, .saved-filter, .direction-tags :is(button, a) {
  display: inline-flex; align-items: center; gap: 8px; box-sizing: border-box;
  border: 1.5px solid #c6dff3; border-radius: 999px; color: #2f5077; background: #fff; box-shadow: none;
  font-family: inherit; font-weight: 600; line-height: 1.2; text-decoration: none; cursor: pointer;
  transition: background-color .2s ease, border-color .2s ease, color .2s ease, transform .2s ease;
}
.filter-chip { flex: 0 0 auto; min-height: 46px; padding: 0 20px; font-size: 16px; }
.filter-chip > span { display: grid; place-items: center; min-width: 22px; height: 22px; padding: 0 6px; border-radius: 999px; color: #0f5aa8; background: #e3effa; font-size: 13px; font-weight: 700; }
.filter-chip:hover, .saved-filter:hover, .direction-tags :is(button, a):hover { border-color: #1e7fd0; color: #0f5aa8; background: #f0f8ff; }
.filter-chip.is-active, .saved-filter.is-active { border-color: #1565c0; color: #fff; background: #1565c0; }
.filter-chip.is-active > span { color: #0f5aa8; background: #fff; }
.saved-filter { min-height: 48px; padding: 0 18px; font-size: 16px; }
.saved-filter > span { display: grid; place-items: center; min-width: 22px; height: 22px; padding: 0 6px; border-radius: 999px; color: #0f5aa8; background: #e3effa; font-size: 13px; font-weight: 700; }
.saved-filter.is-active > span { color: #0f5aa8; background: #fff; }
.saved-filter:disabled { opacity: .5; cursor: not-allowed; }
.direction-tags :is(button, a) { min-height: 44px; padding: 0 16px; font-size: 15.5px; }
.direction-tags :is(button, a) > span { color: #1e7fd0; }

.save-product { display: grid; place-items: center; width: 42px; height: 42px; padding: 0; border: 1.5px solid #d3e6f6; border-radius: 50%; color: #3d6a93; background: rgba(255, 255, 255, .96); cursor: pointer; transition: background-color .2s ease, color .2s ease, border-color .2s ease; }
.save-product:hover { border-color: #1e7fd0; color: #1565c0; background: #fff; }
.save-product.is-saved { border-color: #1565c0; color: #fff; background: #1565c0; }
.save-product.is-saved .icon { fill: currentColor; }

.product-inquiry-link { display: grid; flex: 0 0 auto; place-items: center; width: 46px; height: 46px; padding: 0; border: 0; border-radius: 50%; color: #fff; background: #1e7fd0; box-shadow: 0 8px 18px -8px rgba(21, 101, 192, .8); cursor: pointer; transition: background-color .2s ease, transform .2s ease; }
.product-inquiry-link:hover { color: #fff; background: #1565c0; transform: translateX(3px); }
.product-inquiry-link .icon { width: 20px; height: 20px; }
.product-detail-link { display: inline-flex; align-items: center; padding: 6px 0; border: 0; border-bottom: 2px solid transparent; color: #1565c0; background: none; font-family: inherit; font-size: 17px; font-weight: 700; text-decoration: none; cursor: pointer; transition: border-color .2s ease, color .2s ease; }
.product-detail-link:hover { border-bottom-color: #1e7fd0; color: #0f5aa8; }
.product-detail-link > span { padding-left: 6px; color: #1e7fd0; font-size: 16px; }

.catalog-search .search-submit { display: grid; flex: 0 0 auto; place-items: center; width: 42px; height: 42px; padding: 0; border: 0; border-radius: 50%; color: #fff; background: #1e7fd0; cursor: pointer; transition: background-color .2s ease; }
.catalog-search .search-submit:hover { background: #1565c0; }

.request-modal__close, .dialog-close { display: grid; place-items: center; width: 46px; height: 46px; padding: 0; border: 1.5px solid #d3e6f6; border-radius: 50%; color: #0d2f57; background: #fff; cursor: pointer; transition: background-color .2s ease, border-color .2s ease, transform .2s ease; }
.request-modal__close:hover, .dialog-close:hover { border-color: #1e7fd0; background: #e8f4ff; transform: rotate(90deg); }

.mobile-menu-toggle { border-radius: 12px; }

.footer-call { display: inline-flex; align-items: center; gap: 12px; margin-top: 8px; padding: 12px 22px; border: 1.5px solid rgba(255, 255, 255, .45); border-radius: 999px; color: #fff; background: transparent; font-family: inherit; font-size: 16px; font-weight: 700; text-decoration: none; cursor: pointer; transition: background-color .2s ease, border-color .2s ease; }
.footer-call:hover { border-color: #fff; background: rgba(255, 255, 255, .14); color: #fff; }
.footer-call span { color: #9fe0ff; font-size: 17px; }

.sp-save { display: inline-flex; align-items: center; gap: 10px; min-height: 46px; margin-top: 20px; padding: 0 20px; border: 1.5px solid rgba(255, 255, 255, .45); border-radius: 999px; color: #fff; background: transparent; font-family: inherit; font-size: 15.5px; font-weight: 700; cursor: pointer; transition: background-color .2s ease, border-color .2s ease; }
.sp-save:hover { border-color: #fff; background: rgba(255, 255, 255, .16); color: #fff; }
.sp-save.is-saved { border-color: #fff; color: #0f5aa8; background: #fff; }

.text-link { font-family: inherit; }

/* ---------- tablet / phone ---------- */
@media (min-width: 1280px) { .sp-cta-actions { grid-template-columns: 1fr 1fr; } }
@media (max-width: 680px) {
  :is(a, button).sl-btn { min-height: 56px; padding: 0 22px; font-size: 17px; }
  :is(a, button).sl-btn.sl-btn--sm { min-height: 46px; }
  .hero-actions .sl-btn, .custom-copy .sl-btn, .cta-band .sl-btn, .wp-catalog-request .sl-btn, .catalog-empty-note .sl-btn, .sp-description--empty .sl-btn, .request-modal .form-success .sl-btn, .wp-not-found .sl-btn { display: flex; width: 100%; }
  .sl-btn--phone strong { font-size: 19px; }
  .filter-chip { min-height: 44px; padding: 0 16px; font-size: 15px; }
  .saved-filter { min-height: 46px; }
  .direction-tags :is(button, a) { min-height: 42px; font-size: 15px; }
  .product-detail-link { font-size: 16px; }
}
@media (prefers-reduced-motion: reduce) {
  :is(a, button).sl-btn, .sl-btn .icon-arrow, .product-inquiry-link { transition: none; }
  :is(a, button).sl-btn:hover { transform: none; }
}
