/* Same role, same appearance. Page layouts, cards and navigation remain their own components. */
:root {
  --tny-action-bg: #9d1922;
  --tny-action-hover: #74121b;
  --tny-action-active: #5c1017;
  --tny-action-ink: #ffffff;
  --tny-action-soft: #f7e9ec;
  --tny-action-focus: #30282c;
  --tny-whatsapp-bg: #147d3f;
  --tny-whatsapp-hover: #0d5c2e;
  --tny-btn-bg: var(--tny-action-bg);
  --tny-btn-hover-bg: var(--tny-action-hover);
  --tny-btn-active-bg: var(--tny-action-active);
  --tny-btn-text: var(--tny-action-ink);
  --tny-btn-hover-text: var(--tny-action-ink);
  --tny-btn-border: var(--tny-action-bg);
}

/* Explicit action classes avoid recoloring ordinary links, service cards or menu toggles. */
body :is(.tny-button, .tny-contact-hero__button, .tny-contact-button,
  .tny-home-button, .tny-home-focus-button, .tny-calc3-submit, .tny-hv-button,
  .tny-a-button, .tny-b-button, .tny-t-button, .tny-g-button, .ac-button,
  a.elementor-button, .elementor-slide-button) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-height: 48px;
  max-inline-size: 100%;
  padding: 12px 22px;
  border: 1px solid var(--tny-btn-border) !important;
  border-radius: 5px !important;
  background: var(--tny-btn-bg) !important;
  color: var(--tny-btn-text) !important;
  -webkit-text-fill-color: currentColor !important;
  font: 600 15px/1.4 'Proxima Nova SemiBold', 'Proxima Nova', Arial, sans-serif;
  text-align: center;
  text-decoration: none !important;
  text-shadow: none;
  white-space: normal;
  cursor: pointer;
  transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease;
}

/* Secondary actions use the same brand color with a light surface. */
body :is(.tny-button--quiet, .tny-a-button--outline, .tny-contact-button--outline,
  .elementor-slide-button) {
  --tny-btn-bg: #ffffff;
  --tny-btn-text: var(--tny-action-bg);
  --tny-btn-hover-bg: var(--tny-action-soft);
  --tny-btn-active-bg: #eed6dc;
  --tny-btn-hover-text: var(--tny-action-hover);
}

/* Only the explicit WhatsApp action uses the channel color. */
body .tny-contact-button--whatsapp {
  --tny-btn-bg: var(--tny-whatsapp-bg);
  --tny-btn-border: var(--tny-whatsapp-bg);
  --tny-btn-hover-bg: var(--tny-whatsapp-hover);
  --tny-btn-active-bg: #094723;
}

body :is(.tny-button, .tny-contact-hero__button, .tny-contact-button,
  .tny-home-button, .tny-home-focus-button, .tny-calc3-submit, .tny-hv-button,
  .tny-a-button, .tny-b-button, .tny-t-button, .tny-g-button, .ac-button,
  a.elementor-button, .elementor-slide-button):is(:hover, :focus-visible),
body .swiper-slide-inner:is(:hover, :focus-visible) .elementor-slide-button {
  background: var(--tny-btn-hover-bg) !important;
  border-color: var(--tny-btn-border) !important;
  color: var(--tny-btn-hover-text) !important;
  -webkit-text-fill-color: currentColor !important;
}

body :is(.tny-button, .tny-contact-hero__button, .tny-contact-button,
  .tny-home-button, .tny-home-focus-button, .tny-calc3-submit, .tny-hv-button,
  .tny-a-button, .tny-b-button, .tny-t-button, .tny-g-button, .ac-button,
  a.elementor-button, .elementor-slide-button):active {
  background: var(--tny-btn-active-bg) !important;
  color: var(--tny-btn-hover-text) !important;
}

/* Two-color focus stays visible on both the pale sections and dark hero images. */
body :is(.tny-button, .tny-contact-hero__button, .tny-contact-button,
  .tny-home-button, .tny-home-focus-button, .tny-calc3-submit, .tny-hv-button,
  .tny-a-button, .tny-b-button, .tny-t-button, .tny-g-button, .ac-button,
  a.elementor-button):focus-visible {
  outline: 3px solid var(--tny-action-focus) !important;
  outline-offset: 3px;
  box-shadow: 0 0 0 3px #ffffff !important;
}

/* Elementor labels must inherit their button's current state, including hover. */
body :is(.tny-button, .tny-contact-hero__button, .tny-contact-button,
  .tny-home-button, .tny-home-focus-button, .tny-calc3-submit, .tny-hv-button,
  .tny-a-button, .tny-b-button, .tny-t-button, .tny-g-button, .ac-button,
  a.elementor-button, .elementor-slide-button) :is(span, i) {
  color: inherit !important;
  -webkit-text-fill-color: inherit !important;
}

body :is(.tny-button, .tny-contact-hero__button, .tny-contact-button,
  .tny-home-button, .tny-home-focus-button, .tny-calc3-submit, .tny-hv-button,
  .tny-a-button, .tny-b-button, .tny-t-button, .tny-g-button, .ac-button,
  a.elementor-button):is(:disabled, [aria-disabled="true"]) {
  background: #e8dcdf !important;
  border-color: #e8dcdf !important;
  color: #6b5961 !important;
  cursor: not-allowed;
  opacity: 1;
}

/* Icon-only controls share the secondary palette while retaining their original geometry. */
body :is(.tny-icon-button, .tny-home-rail-button, .tny-slide-pause,
  .tny-ps-controls button, .tny-a-lightbox-close, .tny-a-lightbox-prev,
  .tny-a-lightbox-next, .ac-lightbox-controls button,
  .tny-home-slider .elementor-swiper-button) {
  background: #ffffff !important;
  color: var(--tny-action-bg) !important;
  border: 1px solid var(--tny-action-bg) !important;
}

body :is(.tny-icon-button, .tny-home-rail-button, .tny-slide-pause,
  .tny-ps-controls button, .tny-a-lightbox-close, .tny-a-lightbox-prev,
  .tny-a-lightbox-next, .ac-lightbox-controls button,
  .tny-home-slider .elementor-swiper-button):is(:hover, :focus-visible) {
  background: var(--tny-action-hover) !important;
  color: #ffffff !important;
  border-color: var(--tny-action-hover) !important;
}

body :is(.tny-icon-button, .tny-home-rail-button, .tny-slide-pause,
  .tny-ps-controls button, .tny-a-lightbox-close, .tny-a-lightbox-prev,
  .tny-a-lightbox-next, .ac-lightbox-controls button,
  .tny-home-slider .elementor-swiper-button):focus-visible {
  outline: 3px solid var(--tny-action-focus) !important;
  outline-offset: 3px;
  box-shadow: 0 0 0 3px #ffffff !important;
}

body :is(.tny-home-rail-button, .tny-ps-controls button):is(:disabled, [aria-disabled="true"]) {
  background: #e8dcdf !important;
  color: #6b5961 !important;
  border-color: #e8dcdf !important;
}

@media (prefers-reduced-motion: reduce) {
  body :is(.tny-button, .tny-contact-hero__button, .tny-contact-button,
    .tny-home-button, .tny-home-focus-button, .tny-calc3-submit, .tny-hv-button,
    .tny-a-button, .tny-b-button, .tny-t-button, .tny-g-button, .ac-button,
    a.elementor-button, .elementor-slide-button) {
    transition: none !important;
  }
}
