/*
 * Pagelab Suite brand layer — v0.3.3
 * Scoped to Pagelab components. Never changes site-wide Elementor buttons.
 * Deliberately loaded after Pagelab module styles; strong scoped declarations
 * win over Elementor/global theme button colors, even when !important is used.
 */
:is(.plv, .pls-modal, .pls-portal, .pls-ap-portal, .pls-ap-standalone, .pls-cart-fab, .wrap.pls-admin) {
  --plb-violet: #7069fb;
  --plb-blue: #58b7fa;
  --plb-violet-hover: #8079ff;
  --plb-blue-hover: #76c7ff;
  --plb-gradient: linear-gradient(105deg, var(--plb-violet) 0%, var(--plb-blue) 100%);
  --plb-gradient-hover: linear-gradient(105deg, var(--plb-violet-hover) 0%, var(--plb-blue-hover) 100%);
  --plb-focus: #a6c8ff;
  --plb-radius: 10px;
}

/* ===== PAGELAB LIVE: step rail and navigation ===== */
.plv.plv .plv-rail button.plv-rail-step {
  -webkit-appearance: none !important;
  appearance: none !important;
  width: 100% !important;
  min-height: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 15px !important;
  padding: 19px 13px !important;
  background: transparent !important;
  background-image: none !important;
  color: #b0bfd7 !important;
  border: 1px solid transparent !important;
  border-radius: 13px !important;
  box-shadow: none !important;
  text-align: left !important;
  text-transform: none !important;
  letter-spacing: normal !important;
  font: inherit !important;
  opacity: 1;
}
.plv.plv .plv-rail button.plv-rail-step:not(:disabled):hover {
  background: rgba(105, 123, 226, .12) !important;
  border-color: rgba(125, 151, 233, .4) !important;
  color: #edf3ff !important;
}
.plv.plv .plv-rail button.plv-rail-step.is-active,
.plv.plv .plv-rail button.plv-rail-step.is-active:hover {
  background: #1a263b !important;
  border-color: #4d638f !important;
  color: #f6f8ff !important;
}
.plv.plv .plv-rail button.plv-rail-step.is-active b {
  background: var(--plb-gradient) !important;
  border-color: transparent !important;
  color: white !important;
}
.plv.plv .plv-rail button.plv-rail-step:disabled:not(.is-active) {
  background: transparent !important;
  border-color: rgba(68, 85, 119, .24) !important;
  color: #93a2bd !important;
  opacity: .65 !important;
  cursor: not-allowed !important;
}
.plv.plv .plv-rail button.plv-rail-step b {
  color: inherit !important;
  border-color: #3c4d69 !important;
  background: rgba(24, 34, 55, .65);
}
.plv.plv .plv-rail button.plv-rail-step strong {color: inherit !important;}
.plv.plv .plv-rail button.plv-rail-step small {color: #9aaecb !important;}

/* LIVE main action buttons: back is a quiet secondary action. */
.plv.plv .plv-footer button.plv-button,
.plv.plv a.plv-button {
  -webkit-appearance: none !important;
  appearance: none !important;
  display: inline-flex !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 8px !important;
  min-height: 45px !important;
  padding: 12px 20px !important;
  background: #202d46 !important;
  background-image: none !important;
  border: 1px solid #425478 !important;
  border-radius: var(--plb-radius) !important;
  box-shadow: none !important;
  color: #ebf2ff !important;
  font-size: 13px !important;
  font-weight: 750 !important;
  line-height: 1.3 !important;
  text-transform: none !important;
  letter-spacing: normal !important;
  text-decoration: none !important;
  cursor: pointer !important;
}
.plv.plv .plv-footer button.plv-button:not(.plv-primary):hover {
  background: #2a3b5c !important;
  border-color: #6480bb !important;
  color: #fff !important;
}
.plv.plv .plv-footer button.plv-button.plv-primary,
.plv.plv a.plv-button.plv-primary {
  background: var(--plb-gradient) !important;
  background-image: var(--plb-gradient) !important;
  border-color: transparent !important;
  color: #fff !important;
  box-shadow: 0 8px 26px rgba(81, 113, 235, .14) !important;
}
.plv.plv .plv-footer button.plv-button.plv-primary:hover,
.plv.plv a.plv-button.plv-primary:hover {
  background: var(--plb-gradient-hover) !important;
  background-image: var(--plb-gradient-hover) !important;
  color: white !important;
  box-shadow: 0 10px 28px rgba(81, 113, 235, .24) !important;
}
.plv.plv .plv-footer button.plv-button:disabled {
  opacity: .58 !important;
  cursor: not-allowed !important;
  box-shadow: none !important;
}
/* LIVE categories are dark accordion rows, not theme-colored CTAs. */
.plv.plv .plv-category button.plv-category-toggle {
  -webkit-appearance: none !important;
  appearance: none !important;
  display: flex !important;
  justify-content: flex-start !important;
  align-items: center !important;
  width: 100% !important;
  background: transparent !important;
  background-image: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  color: #f6f8ff !important;
  text-align: left !important;
  font: inherit !important;
  text-transform: none !important;
  letter-spacing: normal !important;
  padding: 20px 19px !important;
}
.plv.plv .plv-category button.plv-category-toggle:hover {
  background: rgba(110, 137, 225, .11) !important;
}
.plv.plv .plv-category button.plv-category-toggle .plv-category-copy strong,
.plv.plv .plv-category button.plv-category-toggle .plv-category-copy small {color: inherit;}
/* Discrete controls (preview toggle, optional AI action) */
.plv.plv .plv-preview-options button {
  background: transparent !important;
  background-image: none !important;
  border: 0 !important;
  border-radius: 7px !important;
  box-shadow: none !important;
  color: #c0cbe1 !important;
  padding: 9px 13px !important;
  font-size: 12px !important;
  text-transform: none !important;
}
.plv.plv .plv-preview-options button:hover,
.plv.plv .plv-preview-options button.is-active {
  background: #2a3b5e !important;
  color: white !important;
}
.plv.plv button.plv-button-quiet {
  background: #253454 !important;
  background-image: none !important;
  color: #edf3ff !important;
  border: 1px solid #475e8c !important;
  border-radius: 9px !important;
  box-shadow: none !important;
  text-transform: none !important;
  padding: 11px 15px !important;
  font-size: 12px !important;
}
.plv.plv button.plv-button-quiet:hover:not(:disabled) {
  background: #314575 !important;
  color: #fff !important;
}
.plv.plv button.plv-button-quiet:disabled {opacity: .48 !important;cursor: not-allowed !important;}
/* Keep LIVE's pretend website design styles intact, including its palette choice. */
.plv.plv .plv-demo .plv-demo-nav button {
  background: transparent !important;
  background-image: none !important;
  border: 1px solid currentColor !important;
  color: inherit !important;
  box-shadow: none !important;
}
.plv.plv .plv-demo .plv-demo-hero button {
  background: var(--demo-accent) !important;
  background-image: none !important;
  color: white !important;
  border: 0 !important;
  box-shadow: none !important;
}
/* Accessible focus and inputs, independent of Elementor global colors. */
.plv.plv button:focus-visible, .plv.plv a:focus-visible {
  outline: 3px solid var(--plb-focus) !important;
  outline-offset: 3px !important;
}
.plv.plv :is(input,textarea,select):focus-visible {
  border-color: #9aa9ff !important;
  outline: 2px solid rgba(111, 128, 250, .55) !important;
  outline-offset: 2px !important;
}
.plv.plv input[type="checkbox"] {accent-color: var(--plb-violet) !important;}
/* Only real validation errors use an amber status treatment; no theme-red CTA. */
.plv.plv .plv-error {
  background: rgba(178, 111, 29, .16) !important;
  border-color: rgba(241, 174, 85, .42) !important;
  color: #ffe2b2 !important;
}

/* ===== SERVICE POPUPS, LOGIN AND PROJECT CART ===== */
.pls-modal.pls-modal button.pls-btn,
.pls-modal.pls-modal a.pls-btn {
  -webkit-appearance: none !important;
  appearance: none !important;
  background: #283552 !important;
  background-image: none !important;
  border: 1px solid #43577e !important;
  border-radius: var(--plb-radius) !important;
  box-shadow: none !important;
  color: #edf3ff !important;
  font-size: 13px !important;
  font-weight: 750 !important;
  text-decoration: none !important;
  text-transform: none !important;
  letter-spacing: normal !important;
  padding: 13px 18px !important;
}
.pls-modal.pls-modal button.pls-btn:hover,
.pls-modal.pls-modal a.pls-btn:hover {
  background: #34456d !important;
  border-color: #6b84ba !important;
  color: white !important;
}
.pls-modal.pls-modal .pls-btn.pls-primary,
.pls-modal.pls-modal .pls-btn[type="submit"].pls-primary {
  background: var(--plb-gradient) !important;
  background-image: var(--plb-gradient) !important;
  border-color: transparent !important;
  color: #fff !important;
}
.pls-modal.pls-modal .pls-btn.pls-primary:hover {
  background: var(--plb-gradient-hover) !important;
  background-image: var(--plb-gradient-hover) !important;
}
/* Keep the add-to-cart action secondary (even when next to submit). */
.pls-modal.pls-modal .pls-btn.pls-add-cart {
  background: #2a3154 !important;
  border: 1px solid #5a659c !important;
  color: #edf0ff !important;
}
.pls-modal.pls-modal .pls-btn.pls-add-cart:hover {background: #394573 !important;}
.pls-modal.pls-modal button.pls-close {
  background: #1b2539 !important;
  background-image: none !important;
  border: 1px solid #435172 !important;
  color: #f1f5ff !important;
  box-shadow: none !important;
  border-radius: 50% !important;
  padding: 0 !important;
  width: 36px !important;
  height: 36px !important;
  min-height: 0 !important;
}
.pls-modal.pls-modal button.pls-text-button,
.pls-modal.pls-modal button.pls-cart-text,
.pls-modal.pls-modal button.pls-cart-remove {
  background: transparent !important;
  background-image: none !important;
  border: 0 !important;
  box-shadow: none !important;
  color: #a7c7ff !important;
  text-decoration: underline !important;
  text-underline-offset: 3px;
}
.pls-modal.pls-modal button:focus-visible,
.pls-modal.pls-modal a:focus-visible {
  outline: 3px solid var(--plb-focus) !important;
  outline-offset: 3px !important;
}
.pls-modal.pls-modal input[type="checkbox"],
.pls-modal.pls-modal input[type="radio"] {accent-color: var(--plb-violet) !important;}
.pls-cart-fab.pls-cart-fab {
  background: var(--plb-gradient) !important;
  background-image: var(--plb-gradient) !important;
  border-color: rgba(171, 183, 255, .5) !important;
  color: #fff !important;
}
.pls-cart-fab.pls-cart-fab:hover {
  background: var(--plb-gradient-hover) !important;
  background-image: var(--plb-gradient-hover) !important;
}

/* ===== CUSTOMER PORTAL (works in BOTH light and dark modes) ===== */
.pls-portal.pls-portal .pls-portal-nav a.active,
.pls-portal.pls-portal .pls-portal-nav a:hover {
  background: var(--plb-gradient) !important;
  background-image: var(--plb-gradient) !important;
  color: white !important;
}
.pls-portal.pls-portal button.pls-btn.pls-primary,
.pls-portal.pls-portal a.pls-btn.pls-primary,
.pls-portal.pls-portal .pls-login-form input#wp-submit {
  background: var(--plb-gradient) !important;
  background-image: var(--plb-gradient) !important;
  border: 1px solid transparent !important;
  color: #fff !important;
  border-radius: var(--plb-radius) !important;
  box-shadow: none !important;
  padding: 12px 18px !important;
  font-size: 13px !important;
  font-weight: 750 !important;
  text-transform: none !important;
}
.pls-portal.pls-portal button.pls-btn.pls-primary:hover,
.pls-portal.pls-portal a.pls-btn.pls-primary:hover,
.pls-portal.pls-portal .pls-login-form input#wp-submit:hover {
  background: var(--plb-gradient-hover) !important;
  background-image: var(--plb-gradient-hover) !important;
}
.pls-portal.pls-portal button.pls-btn:not(.pls-primary),
.pls-portal.pls-portal a.pls-btn:not(.pls-primary),
.pls-portal.pls-portal button.pls-theme-toggle,
.pls-portal.pls-portal a.pls-portal-logout {
  background: var(--pl-card) !important;
  background-image: none !important;
  border: 1px solid var(--pl-border) !important;
  color: var(--pl-txt) !important;
  box-shadow: none !important;
  border-radius: var(--plb-radius) !important;
  text-transform: none !important;
}
.pls-portal.pls-portal button.pls-theme-toggle:hover,
.pls-portal.pls-portal a.pls-portal-logout:hover,
.pls-portal.pls-portal :is(button,a).pls-btn:not(.pls-primary):hover {
  border-color: #8594ec !important;
  box-shadow: 0 0 0 2px rgba(104, 119, 243, .10) !important;
}
.pls-portal.pls-portal :is(button,a,input):focus-visible {
  outline: 3px solid #769fff !important;
  outline-offset: 3px !important;
}

/* ===== AUTOPILOT (light and dark themes remain intact) ===== */
:is(.pls-ap-portal,.pls-ap-standalone).pls-ap-portal .pls-ap-btn:not(.pls-ap-secondary),
.pls-ap-standalone.pls-ap-standalone .pls-ap-btn:not(.pls-ap-secondary) {
  background: var(--plb-gradient) !important;
  background-image: var(--plb-gradient) !important;
  border: 1px solid transparent !important;
  color: #fff !important;
  border-radius: var(--plb-radius) !important;
  text-transform: none !important;
  box-shadow: none !important;
}
:is(.pls-ap-portal,.pls-ap-standalone).pls-ap-portal .pls-ap-btn.pls-ap-secondary,
.pls-ap-standalone.pls-ap-standalone .pls-ap-btn.pls-ap-secondary {
  background: var(--ap-soft) !important;
  background-image: none !important;
  color: var(--ap-text) !important;
  border: 1px solid var(--ap-border) !important;
  box-shadow: none !important;
}
:is(.pls-ap-portal,.pls-ap-standalone) .pls-ap-btn:focus-visible {
  outline: 3px solid var(--plb-focus) !important;
  outline-offset: 3px !important;
}
/* No accidental hidden-but-still-clickable controls. */
:is(.plv,.pls-modal,.pls-portal,.pls-ap-portal,.pls-ap-standalone) [hidden] {display: none !important;}

/* ===== WORDPRESS PAGELAB ADMIN ONLY ===== */
.wrap.pls-admin .button.button-primary,
.wrap.pls-admin .button-primary,
.pls-builder .button.button-primary {
  background: var(--plb-gradient,linear-gradient(105deg,#7069fb,#58b7fa)) !important;
  background-image: var(--plb-gradient,linear-gradient(105deg,#7069fb,#58b7fa)) !important;
  color: #fff !important;
  border-color: transparent !important;
  text-shadow: none !important;
  box-shadow: none !important;
}

@media(max-width: 1380px) {
  .plv.plv .plv-rail button.plv-rail-step {padding:14px 6px!important;gap:9px!important;}
}
@media(max-width: 740px) {
  .plv.plv .plv-rail button.plv-rail-step {padding:11px 6px!important;gap:6px!important;justify-content:center!important;}
  .plv.plv .plv-category button.plv-category-toggle {padding:15px 12px!important;gap:10px!important;}
}
@media(prefers-reduced-motion: reduce) {
  :is(.plv,.pls-modal,.pls-portal,.pls-ap-portal,.pls-ap-standalone) :is(button,a) {
    transition: none !important;
  }
}
