/**
 * Parní Kaktus – jednotná tlačítka
 * Primární CTA: pill + zelený gradient + ProtestStrike
 * Načítat jako poslední design vrstva (po stránkových CSS).
 */

:root {
  --pk-btn-radius: 999px;
  --pk-btn-pad-y: 0.9rem;
  --pk-btn-pad-x: 1.55rem;
  --pk-btn-font: "ProtestStrike", Impact, sans-serif;
  --pk-btn-size: 1.05rem;
  --pk-btn-weight: 700;
  --pk-btn-gap: 0.55rem;
  --pk-btn-primary-bg: linear-gradient(135deg, #1faa3a 0%, #0d5c1a 100%);
  --pk-btn-primary-shadow: 0 10px 28px rgba(13, 92, 26, 0.32);
  --pk-btn-primary-shadow-hover: 0 14px 36px rgba(13, 92, 26, 0.42);
  --pk-btn-ease: cubic-bezier(0.22, 1, 0.36, 1);
}

/* ========== Shared primary CTA family ========== */
body.pk-home .btn-primary,
body.pk-home .btn.primary,
body.pk-home .ical-main-button,
body.pk-portal-nastym .btn-primary,
body.pk-portal-nastym .btn.primary,
body.pk-portal-nastym .ical-main-button,
body.pk-portal-subpage .btn-primary,
body.pk-portal-subpage .btn.primary,
body.pk-portal-subpage .submit-button,
body.pk-portal-subpage .cta-button,
body.pk-portal-subpage .ical-main-button,
body.pk-portal-subpage button[type="submit"]:not(.nav-button):not(.pk-portal-nav-toolbar-btn):not(.response-btn):not(.delete-button):not(.edit-icon-btn):not(.edit-description-btn),
body.pk-portal-page .btn-primary,
body.pk-portal-page .btn.primary,
body.pk-portal-page .submit-button,
body.pk-portal-page .login-button,
body.pk-portal-page .password-button,
body.pk-portal-page .save-attendance-button,
body.pk-portal-page .ical-main-button,
body.pk-portal-page .admin-btn-primary,
body.pk-portal-page .pk-entry-button,
body.pk-portal-page button[type="submit"]:not(.nav-button):not(.pk-portal-nav-toolbar-btn):not(.response-btn):not(.delete-button):not(.edit-icon-btn):not(.edit-description-btn):not(.pk-portal-nav-hide-toggle):not(.pk-ui3d-submit),
body.pk-portal-hrac .btn-primary,
body.pk-portal-hrac .btn.primary,
body.pk-portal-hrac .submit-button,
body.pk-portal-hrac .login-button,
body.pk-portal-hrac .password-button,
body.pk-portal-hrac .save-attendance-button,
body.pk-portal-hrac .ical-main-button,
body.pk-portal-hrac button[type="submit"]:not(.nav-button):not(.pk-portal-nav-toolbar-btn):not(.response-btn):not(.delete-button):not(.edit-icon-btn):not(.edit-description-btn):not(.pk-portal-nav-hide-toggle):not(.pk-ui3d-submit),
.pk-btn--primary {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: var(--pk-btn-gap) !important;
  padding: var(--pk-btn-pad-y) var(--pk-btn-pad-x) !important;
  border-radius: var(--pk-btn-radius) !important;
  border: none !important;
  background: var(--pk-btn-primary-bg) !important;
  color: #fff !important;
  font-family: var(--pk-btn-font) !important;
  font-size: var(--pk-btn-size) !important;
  font-weight: var(--pk-btn-weight) !important;
  letter-spacing: 0.02em !important;
  text-transform: none !important;
  text-decoration: none !important;
  box-shadow: var(--pk-btn-primary-shadow) !important;
  cursor: pointer !important;
  transition:
    transform 0.2s var(--pk-btn-ease),
    box-shadow 0.25s var(--pk-btn-ease),
    filter 0.2s ease !important;
  position: relative;
  overflow: hidden;
}

body.pk-home .btn-primary:hover,
body.pk-home .btn.primary:hover,
body.pk-home .ical-main-button:hover,
body.pk-portal-nastym .btn-primary:hover,
body.pk-portal-nastym .btn.primary:hover,
body.pk-portal-nastym .ical-main-button:hover,
body.pk-portal-subpage .btn-primary:hover,
body.pk-portal-subpage .btn.primary:hover,
body.pk-portal-subpage .submit-button:hover,
body.pk-portal-subpage .cta-button:hover,
body.pk-portal-subpage .ical-main-button:hover,
body.pk-portal-subpage button[type="submit"]:not(.nav-button):not(.pk-portal-nav-toolbar-btn):not(.response-btn):not(.delete-button):hover,
body.pk-portal-page .btn-primary:hover,
body.pk-portal-page .submit-button:hover,
body.pk-portal-page .login-button:hover,
body.pk-portal-page .password-button:hover,
body.pk-portal-page .save-attendance-button:hover,
body.pk-portal-page .ical-main-button:hover,
body.pk-portal-page .admin-btn-primary:hover,
body.pk-portal-page button[type="submit"]:not(.nav-button):not(.response-btn):not(.delete-button):not(.pk-ui3d-submit):hover,
body.pk-portal-hrac .btn-primary:hover,
body.pk-portal-hrac .submit-button:hover,
body.pk-portal-hrac .login-button:hover,
body.pk-portal-hrac .password-button:hover,
body.pk-portal-hrac .save-attendance-button:hover,
body.pk-portal-hrac .ical-main-button:hover,
body.pk-portal-hrac button[type="submit"]:not(.nav-button):not(.response-btn):not(.delete-button):not(.pk-ui3d-submit):hover,
.pk-btn--primary:hover {
  transform: translateY(-2px) !important;
  filter: brightness(1.05) !important;
  box-shadow: var(--pk-btn-primary-shadow-hover) !important;
  color: #fff !important;
}

body.pk-home .btn-primary:active,
body.pk-portal-nastym .btn-primary:active,
body.pk-portal-subpage .submit-button:active,
body.pk-portal-page .login-button:active,
body.pk-portal-hrac .password-button:active,
body.pk-portal-page button[type="submit"]:not(.nav-button):not(.delete-button):not(.pk-ui3d-submit):active,
body.pk-portal-hrac button[type="submit"]:not(.nav-button):not(.delete-button):not(.pk-ui3d-submit):active {
  transform: translateY(0) !important;
  filter: brightness(0.98) !important;
}

/* Full-width form submits (kontakt atd.) */
body.pk-portal-subpage .form-actions .submit-button,
body.pk-portal-subpage .submit-button.full-width,
body.pk-portal-page .login-button,
body.pk-portal-page .pk-admin-login-form button[type="submit"] {
  width: 100%;
}

/* ========== Secondary / outline CTAs ========== */
body.pk-portal-subpage .btn-secondary,
body.pk-portal-subpage .btn.secondary,
body.pk-portal-page .btn-secondary,
body.pk-portal-hrac .btn-secondary,
body.pk-portal-subpage .back-button:not(.nav-button),
body.pk-portal-hrac .external-link-button,
body.pk-portal-page .external-link-button,
body.pk-portal-subpage .action-button.secondary,
body.pk-portal-page .action-button.secondary,
.pk-btn--outline {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: var(--pk-btn-gap) !important;
  padding: var(--pk-btn-pad-y) var(--pk-btn-pad-x) !important;
  border-radius: var(--pk-btn-radius) !important;
  background: rgba(31, 170, 58, 0.08) !important;
  color: #0d5c1a !important;
  border: 1.5px solid rgba(13, 92, 26, 0.28) !important;
  font-family: var(--pk-btn-font) !important;
  font-size: var(--pk-btn-size) !important;
  font-weight: var(--pk-btn-weight) !important;
  text-transform: none !important;
  letter-spacing: 0.02em !important;
  box-shadow: none !important;
  text-decoration: none !important;
  cursor: pointer !important;
  transition: background 0.2s ease, transform 0.2s var(--pk-btn-ease), border-color 0.2s ease !important;
}

body.pk-portal-subpage .btn-secondary:hover,
body.pk-portal-page .btn-secondary:hover,
body.pk-portal-hrac .btn-secondary:hover,
.pk-btn--outline:hover {
  background: rgba(31, 170, 58, 0.14) !important;
  border-color: rgba(13, 92, 26, 0.4) !important;
  transform: translateY(-1px) !important;
  color: #0d5c1a !important;
}

/* ========== Danger ========== */
body.pk-portal-page .delete-button,
body.pk-portal-hrac .delete-button,
body.pk-portal-subpage .delete-button,
body.pk-portal-page .btn-danger:not(.nav-button),
body.pk-portal-page button.danger:not(.nav-button) {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: var(--pk-btn-gap) !important;
  padding: var(--pk-btn-pad-y) var(--pk-btn-pad-x) !important;
  border-radius: var(--pk-btn-radius) !important;
  background: linear-gradient(135deg, #dc2626, #991b1b) !important;
  color: #fff !important;
  border: none !important;
  font-family: var(--pk-btn-font) !important;
  font-size: var(--pk-btn-size) !important;
  font-weight: var(--pk-btn-weight) !important;
  text-transform: none !important;
  letter-spacing: 0.02em !important;
  box-shadow: 0 10px 28px rgba(220, 38, 38, 0.28) !important;
  cursor: pointer !important;
}

body.pk-portal-page .delete-button:hover,
body.pk-portal-hrac .delete-button:hover,
body.pk-portal-page .btn-danger:not(.nav-button):hover {
  filter: brightness(1.05) !important;
  transform: translateY(-2px) !important;
}

/* ========== Admin module card buttons – shape + type, keep color accents ========== */
body.pk-portal-page .card-button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.5rem !important;
  padding: 0.8rem 1.4rem !important;
  border-radius: var(--pk-btn-radius) !important;
  font-family: var(--pk-btn-font) !important;
  font-weight: var(--pk-btn-weight) !important;
  font-size: 0.95rem !important;
  text-transform: none !important;
  letter-spacing: 0.02em !important;
  border: none !important;
  color: #fff !important;
}

body.pk-portal-page .card-button.green {
  background: var(--pk-btn-primary-bg) !important;
  box-shadow: var(--pk-btn-primary-shadow) !important;
}

/* ========== Filters / tabs – pill family ========== */
body.pk-portal-subpage .filter-btn,
body.pk-portal-subpage .tab-btn,
body.pk-portal-subpage .season-btn,
body.pk-portal-subpage .category-btn,
body.pk-portal-page .filter-btn,
body.pk-portal-hrac .filter-btn,
body.pk-portal-hrac .calendar-nav-btn {
  border-radius: var(--pk-btn-radius) !important;
  font-family: var(--pk-btn-font) !important;
  font-weight: 700 !important;
  text-transform: none !important;
  letter-spacing: 0.02em !important;
}

body.pk-portal-subpage .filter-btn.active,
body.pk-portal-subpage .tab-btn.active,
body.pk-portal-subpage .season-btn.active,
body.pk-portal-subpage .category-btn.active {
  background: var(--pk-btn-primary-bg) !important;
  color: #fff !important;
  border-color: transparent !important;
  box-shadow: 0 8px 20px rgba(13, 92, 26, 0.25) !important;
}

/* ========== Response buttons – keep semantic colors, unify shape ========== */
body.pk-portal-hrac .response-btn {
  border-radius: var(--pk-btn-radius) !important;
  font-family: var(--pk-btn-font) !important;
  font-weight: 700 !important;
  text-transform: none !important;
  letter-spacing: 0.02em !important;
  box-shadow: none !important;
}

/* ========== Eshop / galerie / misc action buttons ========== */
body.pk-portal-subpage .buy-button,
body.pk-portal-subpage .add-to-cart,
body.pk-portal-subpage .order-button,
body.pk-portal-subpage .gallery-btn,
body.pk-portal-subpage .load-more,
body.pk-portal-subpage .show-more,
body.pk-portal-subpage .action-button.primary,
body.pk-portal-subpage a.action-button.primary,
body.pk-portal-page .action-button.primary,
body.pk-portal-page a.action-button.primary,
body.pk-portal-page .add-button,
body.pk-portal-page .edit-button:not(.edit-icon-btn):not(.edit-description-btn),
body.pk-portal-page .save-button,
body.pk-portal-hrac .add-button,
body.pk-portal-hrac .save-button,
body.pk-portal-hrac .pk-portal-galerie-load-more {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: var(--pk-btn-gap) !important;
  padding: var(--pk-btn-pad-y) var(--pk-btn-pad-x) !important;
  border-radius: var(--pk-btn-radius) !important;
  background: var(--pk-btn-primary-bg) !important;
  color: #fff !important;
  border: none !important;
  font-family: var(--pk-btn-font) !important;
  font-weight: var(--pk-btn-weight) !important;
  text-transform: none !important;
  letter-spacing: 0.02em !important;
  box-shadow: var(--pk-btn-primary-shadow) !important;
  text-decoration: none !important;
  cursor: pointer !important;
}

body.pk-portal-subpage .buy-button:hover,
body.pk-portal-subpage .add-to-cart:hover,
body.pk-portal-subpage .order-button:hover,
body.pk-portal-subpage .load-more:hover,
body.pk-portal-page .add-button:hover,
body.pk-portal-page .save-button:hover {
  transform: translateY(-2px) !important;
  filter: brightness(1.05) !important;
  color: #fff !important;
}

/* Kill old heavy uppercase / thick borders on content buttons */
body.pk-portal-subpage .btn::before,
body.pk-portal-subpage .submit-button::before,
body.pk-portal-page .login-button::before,
body.pk-portal-page .password-button::before,
body.pk-portal-hrac .password-button::before,
body.pk-portal-hrac .save-attendance-button::before,
body.pk-portal-hrac .ical-main-button::before {
  display: none !important;
}

/* Homepage CTA group */
body.pk-portal-nastym .btn,
body.pk-home .btn {
  border-radius: var(--pk-btn-radius) !important;
  font-family: var(--pk-btn-font) !important;
}

body.pk-portal-page .btn-add-credit,
body.pk-portal-page .tag-save-btn,
body.pk-portal-page .btn-sm.primary,
body.pk-portal-page .save-btn,
body.pk-portal-page .action-btn.primary {
  border-radius: var(--pk-btn-radius) !important;
  background: var(--pk-btn-primary-bg) !important;
  color: #fff !important;
  border: none !important;
  font-family: var(--pk-btn-font) !important;
  font-weight: var(--pk-btn-weight) !important;
  text-transform: none !important;
  box-shadow: var(--pk-btn-primary-shadow) !important;
}

/* Semantic toggles (paid/unpaid) – only shape */
body.pk-portal-page .btn-toggle {
  border-radius: var(--pk-btn-radius) !important;
  font-family: var(--pk-btn-font) !important;
  text-transform: none !important;
}

/* Dark mode */
html.pk-dark-mode body.pk-portal-subpage .btn-secondary,
html.pk-dark-mode body.pk-portal-page .btn-secondary,
html.pk-dark-mode body.pk-portal-hrac .external-link-button,
html.pk-dark-mode .pk-btn--outline {
  background: rgba(31, 170, 58, 0.16) !important;
  color: #86efac !important;
  border-color: rgba(143, 190, 99, 0.35) !important;
}
