/**
 * Paul Lauzon Music: reusable primary button design.
 * Source of truth: the homepage's "Watch Latest Video" hero button.
 * Intentionally excludes slider dots, media play buttons, navigation links,
 * and mobile-menu controls, which are not calls to action.
 */
:root {
  --plm-button-blue: #47A6DD;
  --plm-button-blue-hover: #268CC4;
  --plm-button-ink: #fff;
  --plm-button-radius: 12px;
  --plm-button-shadow: 0 6px 16px rgba(20, 70, 110, .16);
}

/* Applies to Elementor Free, native WordPress buttons, theme CTAs,
   and the independent Paul Lauzon Companion plugin. */
body:not(.wp-admin) :is(
  .elementor-widget-button .elementor-button,
  .elementor .elementor-button,
  .plm-button,
  .plm-search-form button,
  .plmc-action,
  .plmc-submit,
  .wp-block-button__link,
  .wp-block-file .wp-block-file__button,
  a.button,
  form button[type="submit"],
  form input[type="submit"]
) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  background-color: var(--plm-button-blue) !important;
  background-image: none !important;
  color: var(--plm-button-ink) !important;
  border: 0 !important;
  border-radius: var(--plm-button-radius) !important;
  padding: 18px 24px !important;
  min-height: 56px;
  font-family: Roboto, Arial, Helvetica, sans-serif !important;
  font-size: 18px !important;
  font-weight: 600 !important;
  line-height: 1.25 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  text-decoration: none !important;
  text-shadow: none !important;
  box-shadow: var(--plm-button-shadow) !important;
  opacity: 1;
  cursor: pointer;
  transition: background-color .2s ease, box-shadow .2s ease, transform .2s ease !important;
}

body:not(.wp-admin) :is(
  .elementor-widget-button .elementor-button,
  .elementor .elementor-button,
  .plm-button,
  .plm-search-form button,
  .plmc-action,
  .plmc-submit,
  .wp-block-button__link,
  .wp-block-file .wp-block-file__button,
  a.button,
  form button[type="submit"],
  form input[type="submit"]
):is(:hover, :active) {
  background-color: var(--plm-button-blue-hover) !important;
  color: var(--plm-button-ink) !important;
  border-color: transparent !important;
  box-shadow: 0 8px 20px rgba(20, 70, 110, .22) !important;
}

body:not(.wp-admin) :is(
  .elementor-widget-button .elementor-button,
  .elementor .elementor-button,
  .plm-button,
  .plm-search-form button,
  .plmc-action,
  .plmc-submit,
  .wp-block-button__link,
  .wp-block-file .wp-block-file__button,
  a.button,
  form button[type="submit"],
  form input[type="submit"]
):focus-visible {
  outline: 3px solid #173C5A !important;
  outline-offset: 3px !important;
}

body:not(.wp-admin) :is(button, input[type="submit"]):disabled {
  opacity: .55 !important;
  cursor: not-allowed !important;
}

/* Featured slide link contains a text CTA rather than a real button. Give
   the text the shared CTA treatment without nesting interactive elements. */
body:not(.wp-admin) .plm-featured__link .plm-featured__cta {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  background: var(--plm-button-blue) !important;
  color: var(--plm-button-ink) !important;
  border: 0 !important;
  border-radius: var(--plm-button-radius) !important;
  padding: 18px 24px !important;
  min-height: 56px;
  font-family: Roboto, Arial, Helvetica, sans-serif !important;
  font-size: 18px !important;
  font-weight: 600 !important;
  line-height: 1.25 !important;
  box-shadow: var(--plm-button-shadow);
  transition: background-color .2s ease, box-shadow .2s ease;
}
body:not(.wp-admin) .plm-featured__link:hover .plm-featured__cta {
  background: var(--plm-button-blue-hover) !important;
  color: #fff !important;
}

/* Navigation controls keep their compact shapes and hit targets, while
   sharing the blue palette. Dots remain indicators, not pill buttons. */
body:not(.wp-admin) .plm-featured__arrow {
  background-color: var(--plm-button-blue) !important;
  border-radius: var(--plm-button-radius) !important;
}
body:not(.wp-admin) .plm-featured__arrow:is(:hover, :focus-visible) {
  background-color: var(--plm-button-blue-hover) !important;
}

/* Pagination should stay compact, but its colors and corner style match. */
body:not(.wp-admin) .plm-pagination .page-numbers {
  background: var(--plm-button-blue) !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: var(--plm-button-radius) !important;
  font-weight: 600;
  padding: 9px 15px;
  text-decoration: none !important;
  transition: background-color .2s ease !important;
}
body:not(.wp-admin) .plm-pagination :is(a.page-numbers:hover, .page-numbers.current) {
  background: var(--plm-button-blue-hover) !important;
  color: #fff !important;
}

@media (max-width: 767px) {
  body:not(.wp-admin) .plm-featured__link .plm-featured__cta {
    font-size: 16px !important;
    padding: 13px 18px !important;
    min-height: 48px;
  }
}
@media (prefers-reduced-motion: reduce) {
  body:not(.wp-admin) :is(
    .elementor-widget-button .elementor-button,
    .elementor .elementor-button,
    .plm-button,
    .plm-search-form button,
    .plmc-action,
    .plmc-submit,
    .wp-block-button__link,
    .wp-block-file .wp-block-file__button,
    a.button,
    form button[type="submit"],
    form input[type="submit"],
    .plm-featured__cta,
    .plm-pagination .page-numbers
  ) { transition: none !important; }
}
