/* KUPOLLA — CTA accent: Латунь / медовий (золото, темний текст) (2-brass)
   Підключати ПІСЛЯ kupolla-*.css. Vanilla CSS, без !important.
   Радіус = поточний --r-full (4px) сайту.
   Перший селектор (.btn--cta) — чистий компонент; решта — «міст» на
   поточну розмітку (специфічність на 1 вища за чинні правила kupolla-1/2.css). */
:root {
  --c-cta:        #B78117;
  --c-cta-hover:  #B98A10;
  --c-cta-active: #AD7615;
  --c-cta-text:   #111111;
  --c-cta-glow:   rgba(183,129,23,.55);   /* pulse/glow, видно і на #202020/#000 */
  --c-cta-glow-soft: rgba(183,129,23,.35);
  --c-cta-glow-0: rgba(183,129,23,0);
  --c-cta-ring:   #B78117;          /* focus-visible outline, ≥3:1 на білому, #202020, #00311e, #051f43 */
}

.btn--cta,
body button[data-modal-trigger="consult"].kp-btn.kp-btn--primary,
body header.kp-header button.kp-btn.kp-btn--primary[data-modal-trigger="consult"],
body .kp-mobile-menu button.kp-btn.kp-btn--primary[data-modal-trigger="consult"],
body .kp-form .kp-btn.kp-btn--primary,
body .kp-cfg-panel .kp-btn.kp-btn--primary,
body .kp-cfg-price-bar .kp-btn.kp-btn--primary {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background-color: var(--c-cta);
  background-image: none;
  color: var(--c-cta-text);
  border-color: var(--c-cta);
  border-radius: var(--r-full, 4px);
  font-weight: 600;
  transition: transform 200ms var(--ease, ease), box-shadow 200ms var(--ease, ease);
  touch-action: manipulation;
}

/* Shimmer: смуга світла, що пробігає раз на 4.8 с (лише transform) */
.btn--cta::before,
body button[data-modal-trigger="consult"].kp-btn.kp-btn--primary::before,
body header.kp-header button.kp-btn.kp-btn--primary[data-modal-trigger="consult"]::before,
body .kp-mobile-menu button.kp-btn.kp-btn--primary[data-modal-trigger="consult"]::before,
body .kp-form .kp-btn.kp-btn--primary::before,
body .kp-cfg-panel .kp-btn.kp-btn--primary::before,
body .kp-cfg-price-bar .kp-btn.kp-btn--primary::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background: linear-gradient(105deg, transparent 30%, rgba(255,255,255,.34) 50%, transparent 70%);
  transform: translateX(-120%);
  animation: kpCtaShimmer 4.8s ease-in-out 1.2s infinite;
}
/* Старий kpConsultPulse на ::after вимикаємо */
.btn--cta::after,
body button[data-modal-trigger="consult"].kp-btn.kp-btn--primary::after,
body header.kp-header button.kp-btn.kp-btn--primary[data-modal-trigger="consult"]::after,
body .kp-mobile-menu button.kp-btn.kp-btn--primary[data-modal-trigger="consult"]::after,
body .kp-form .kp-btn.kp-btn--primary::after,
body .kp-cfg-panel .kp-btn.kp-btn--primary::after,
body .kp-cfg-price-bar .kp-btn.kp-btn--primary::after {
  content: none;
  animation: none;
}

/* Pulse-кільце 0→12px кольору акценту, 2.4 с (лише box-shadow) */
.btn--cta.btn--pulse {
  animation: kpCtaPulse 2.4s ease-out infinite;
}

.btn--cta:hover,
body button[data-modal-trigger="consult"].kp-btn.kp-btn--primary:hover,
body header.kp-header button.kp-btn.kp-btn--primary[data-modal-trigger="consult"]:hover,
body .kp-mobile-menu button.kp-btn.kp-btn--primary[data-modal-trigger="consult"]:hover,
body .kp-form .kp-btn.kp-btn--primary:hover,
body .kp-cfg-panel .kp-btn.kp-btn--primary:hover,
body .kp-cfg-price-bar .kp-btn.kp-btn--primary:hover {
  background-color: var(--c-cta-hover);
  background-image: none;
  border-color: var(--c-cta-hover);
  color: var(--c-cta-text);
  transform: translateY(-2px);
  box-shadow: 0 8px 22px -6px var(--c-cta-glow), 0 0 0 4px var(--c-cta-glow-soft);
  animation: none;
}
.btn--cta:focus-visible,
body button[data-modal-trigger="consult"].kp-btn.kp-btn--primary:focus-visible,
body header.kp-header button.kp-btn.kp-btn--primary[data-modal-trigger="consult"]:focus-visible,
body .kp-mobile-menu button.kp-btn.kp-btn--primary[data-modal-trigger="consult"]:focus-visible,
body .kp-form .kp-btn.kp-btn--primary:focus-visible,
body .kp-cfg-panel .kp-btn.kp-btn--primary:focus-visible,
body .kp-cfg-price-bar .kp-btn.kp-btn--primary:focus-visible {
  background-color: var(--c-cta-hover);
  background-image: none;
  color: var(--c-cta-text);
  outline: 2px solid var(--c-cta-ring);
  outline-offset: 3px;
  animation: none;
  box-shadow: 0 0 0 4px var(--c-cta-glow-soft);
}
.btn--cta:active,
body button[data-modal-trigger="consult"].kp-btn.kp-btn--primary:active,
body header.kp-header button.kp-btn.kp-btn--primary[data-modal-trigger="consult"]:active,
body .kp-mobile-menu button.kp-btn.kp-btn--primary[data-modal-trigger="consult"]:active,
body .kp-form .kp-btn.kp-btn--primary:active,
body .kp-cfg-panel .kp-btn.kp-btn--primary:active,
body .kp-cfg-price-bar .kp-btn.kp-btn--primary:active {
  background-color: var(--c-cta-active);
  border-color: var(--c-cta-active);
  transform: translateY(0) scale(.98);
  box-shadow: inset 0 2px 6px rgba(0,0,0,.28);
  animation: none;
}

/* Стрілка: порожній span + CSS mask (той самий SVG, що був у формі home) */
.btn--cta__arrow {
  display: inline-block;
  flex-shrink: 0;
  width: 17px;
  height: 17px;
  margin-inline-start: 0;
  background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'/%3E%3Cpolyline points='12 5 19 12 12 19'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'/%3E%3Cpolyline points='12 5 19 12 12 19'/%3E%3C/svg%3E") center / contain no-repeat;
  transition: transform 200ms var(--ease, ease);
}
.btn--cta:hover .btn--cta__arrow,
body button[data-modal-trigger="consult"].kp-btn.kp-btn--primary:hover .btn--cta__arrow,
body header.kp-header button.kp-btn.kp-btn--primary[data-modal-trigger="consult"]:hover .btn--cta__arrow,
body .kp-mobile-menu button.kp-btn.kp-btn--primary[data-modal-trigger="consult"]:hover .btn--cta__arrow,
body .kp-form .kp-btn.kp-btn--primary:hover .btn--cta__arrow,
body .kp-cfg-panel .kp-btn.kp-btn--primary:hover .btn--cta__arrow,
body .kp-cfg-price-bar .kp-btn.kp-btn--primary:hover .btn--cta__arrow {
  transform: translateX(4px);
}

@keyframes kpCtaPulse {
  0%   { box-shadow: 0 0 0 0 var(--c-cta-glow); }
  70%  { box-shadow: 0 0 0 12px var(--c-cta-glow-0); }
  100% { box-shadow: 0 0 0 12px var(--c-cta-glow-0); }
}
@keyframes kpCtaShimmer {
  0%        { transform: translateX(-120%); }
  20%, 100% { transform: translateX(120%); }
}

/* Reduced motion: жодних циклічних анімацій — статичне кільце замість pulse */
@media (prefers-reduced-motion: reduce) {
  .btn--cta,
  body button[data-modal-trigger="consult"].kp-btn.kp-btn--primary,
  body header.kp-header button.kp-btn.kp-btn--primary[data-modal-trigger="consult"],
  body .kp-mobile-menu button.kp-btn.kp-btn--primary[data-modal-trigger="consult"],
  body .kp-form .kp-btn.kp-btn--primary,
  body .kp-cfg-panel .kp-btn.kp-btn--primary,
  body .kp-cfg-price-bar .kp-btn.kp-btn--primary {
    animation: none;
    transition: none;
    box-shadow: 0 0 0 3px var(--c-cta-glow-soft);
  }
  .btn--cta::before,
  body button[data-modal-trigger="consult"].kp-btn.kp-btn--primary::before,
  body header.kp-header button.kp-btn.kp-btn--primary[data-modal-trigger="consult"]::before,
  body .kp-mobile-menu button.kp-btn.kp-btn--primary[data-modal-trigger="consult"]::before,
  body .kp-form .kp-btn.kp-btn--primary::before,
  body .kp-cfg-panel .kp-btn.kp-btn--primary::before,
  body .kp-cfg-price-bar .kp-btn.kp-btn--primary::before {
    animation: none;
    content: none;
  }
  .btn--cta:hover,
  body button[data-modal-trigger="consult"].kp-btn.kp-btn--primary:hover,
  body header.kp-header button.kp-btn.kp-btn--primary[data-modal-trigger="consult"]:hover,
  body .kp-mobile-menu button.kp-btn.kp-btn--primary[data-modal-trigger="consult"]:hover,
  body .kp-form .kp-btn.kp-btn--primary:hover,
  body .kp-cfg-panel .kp-btn.kp-btn--primary:hover,
  body .kp-cfg-price-bar .kp-btn.kp-btn--primary:hover,
  .btn--cta:active,
  body button[data-modal-trigger="consult"].kp-btn.kp-btn--primary:active,
  body header.kp-header button.kp-btn.kp-btn--primary[data-modal-trigger="consult"]:active,
  body .kp-mobile-menu button.kp-btn.kp-btn--primary[data-modal-trigger="consult"]:active,
  body .kp-form .kp-btn.kp-btn--primary:active,
  body .kp-cfg-panel .kp-btn.kp-btn--primary:active,
  body .kp-cfg-price-bar .kp-btn.kp-btn--primary:active {
    transform: none;
    box-shadow: 0 0 0 3px var(--c-cta-glow-soft);
  }
  .btn--cta__arrow {
    transition: none;
  }
  .btn--cta:hover .btn--cta__arrow,
  body button[data-modal-trigger="consult"].kp-btn.kp-btn--primary:hover .btn--cta__arrow,
  body header.kp-header button.kp-btn.kp-btn--primary[data-modal-trigger="consult"]:hover .btn--cta__arrow,
  body .kp-mobile-menu button.kp-btn.kp-btn--primary[data-modal-trigger="consult"]:hover .btn--cta__arrow,
  body .kp-form .kp-btn.kp-btn--primary:hover .btn--cta__arrow,
  body .kp-cfg-panel .kp-btn.kp-btn--primary:hover .btn--cta__arrow,
  body .kp-cfg-price-bar .kp-btn.kp-btn--primary:hover .btn--cta__arrow {
    transform: none;
  }
}

/* Header: brass «Консультація» лишається в один рядок на 1101–1440 */
body header.kp-header button.kp-btn.kp-btn--primary[data-modal-trigger="consult"],
body header.kp-header .btn--cta.kp-btn--sm {
  gap: .3rem;
  padding-inline: .8rem .95rem;
}
