/* Public website practitioner access, 4 October 2026. Uses the existing login route. */
body .ps-site-header .ps-header-topline {
  display: flex; align-items: center; justify-content: space-between;
  flex: 1 0 100%; gap: 16px; width: 100%; min-width: 0;
}
body a.ps-practitioner-login {
  box-sizing: border-box; display: inline-flex; align-items: center;
  justify-content: center; gap: 10px; min-height: 48px;
  padding: 12px 20px; background: #542184; color: #fff;
  border: 2px solid #542184; border-radius: 10px;
  font: 700 16px/1.35 Arial, Helvetica, sans-serif;
  text-align: center; text-decoration: none; white-space: normal;
  flex-shrink: 0;
}
body a.ps-practitioner-login:hover { background: #341357; border-color: #341357; color: #fff; }
body .membership-home-actions > a.ps-practitioner-login { color: #fff; }
body a.ps-practitioner-login:focus-visible {
  outline: 3px solid #b26800; outline-offset: 4px;
}
body .hero .ps-practitioner-returning {
  display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px;
  margin: 20px 0 0; color: #fff; font: 16px/1.5 Arial, Helvetica, sans-serif;
}
body .hero .ps-practitioner-returning > span { color: #fff; }
body .hero .ps-practitioner-returning > a {
  box-sizing: border-box; display: inline-flex; align-items: center; justify-content: center;
  gap: 10px; min-height: 48px; padding: 10px 16px;
  color: #fff; border: 2px solid #fff; border-radius: 10px;
  background: transparent; font: 700 16px/1.35 Arial, Helvetica, sans-serif;
  text-decoration: none;
}
body .hero .ps-practitioner-returning > a:hover { background: #fff; color: #341357; }
body .hero .ps-practitioner-returning > a:focus-visible { outline: 3px solid #ffdf81; outline-offset: 4px; }
@media (max-width: 640px) {
  body .ps-site-header .ps-header-topline { flex-direction: column; align-items: stretch; gap: 12px; }
  body .ps-site-header .ps-header-topline .ps-site-brand { align-self: flex-start; }
  body .ps-site-header .ps-header-topline .ps-practitioner-login { width: 100%; }
  body .hero .ps-practitioner-returning { align-items: stretch; flex-direction: column; }
  body .hero .ps-practitioner-returning > a { width: 100%; }
}
@media (forced-colors: active) {
  body a.ps-practitioner-login, body .hero .ps-practitioner-returning > a { border-color: ButtonText; }
}
@media print {
  .ps-practitioner-login, .ps-practitioner-returning { display: none !important; }
}

/* Clear routes for returning and new practitioners. */
body .ps-access-panel {
  box-sizing: border-box; width: 100%; max-width: 1200px;
  margin: 24px auto; padding: 22px 24px; border: 1px solid #d8c5e6;
  border-radius: 14px; background: #f5eef9; color: #341357;
  font: 16px/1.55 Arial, Helvetica, sans-serif; text-align: left;
}
body .ps-access-panel > p { margin: 0 0 12px; color: #341357; font: 16px/1.55 Arial, Helvetica, sans-serif; }
body .ps-access-panel > .ps-access-title { font-weight: 700; font-size: 20px; }
body .ps-access-panel .ps-access-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 12px 20px; margin: 16px 0 8px; }
body .ps-access-panel a { color: #542184; text-decoration: underline; text-underline-offset: 3px; }
body .ps-access-panel .ps-access-actions > span { color: #341357; font: 16px/1.55 Arial, Helvetica, sans-serif; }
body .ps-access-panel a.ps-practitioner-login { color: #fff; text-decoration: none; }
body .ps-access-panel a.ps-practitioner-login:hover { background: #341357; border-color: #341357; }
body .ps-access-panel .ps-access-help { display: block; margin-bottom: 4px; }
body .ps-access-panel .ps-access-help a { display: inline-flex; align-items: center; min-height: 44px; }
body .ps-access-panel .ps-access-note { font-size: 14px; margin-bottom: 0; color: #5e526a; }
body .ps-access-panel a:focus-visible, body .ps-access-card-actions a:focus-visible { outline: 3px solid #b26800; outline-offset: 4px; }
body .ps-access-card-actions { display: grid; gap: 10px; margin-top: 16px; }
body .ps-access-card-actions > a { display: flex; align-items: center; justify-content: center; box-sizing: border-box; min-height: 48px; }
body .ps-contact-access-header { display: flex; flex-wrap: wrap; gap: 14px; }
body .ps-contact-access-header .ps-header-topline { display: flex; align-items: center; justify-content: space-between; gap: 16px; width: 100%; min-width: 0; }
body .ps-contact-access-header .back { margin-left: auto; }
@media (max-width: 640px) {
  body .ps-access-panel { margin: 20px auto; padding: 18px; }
  body .ps-access-panel .ps-access-actions { flex-direction: column; align-items: stretch; }
  body .ps-access-panel .ps-access-actions > .ps-practitioner-login { width: 100%; }
  body .ps-contact-access-header .ps-header-topline { flex-direction: column; align-items: stretch; gap: 12px; }
  body .ps-contact-access-header .ps-header-topline .brand { align-self: flex-start; }
  body .ps-contact-access-header .ps-header-topline .ps-practitioner-login { width: 100%; }
}
@media print { .ps-access-panel, .ps-access-card-actions { display: none !important; } }

body .ps-access-panel .ps-access-actions > span > a { display: inline-flex; align-items: center; min-height: 44px; }
body .ps-contact-access-header a.ps-practitioner-login { border-color: #fff; }
