/* CPTA v1.10: membership visual system. All account and checkout logic belongs to PMPro. */
.site-topline .cpta-member-actions .cpta-signup-action{color:#fff!important;background:#1874b8!important;border-color:#1874b8!important}
.site-topline .cpta-member-actions .cpta-signup-action:hover,
.site-topline .cpta-member-actions .cpta-signup-action:focus-visible{color:#0d4979!important;background:#e3f3ff!important;border-color:#76b4df!important}
.cpta-portal-page{background:linear-gradient(180deg,#f1f7fe 0,#fff 260px);min-height:65vh;padding:52px 0 90px}
.cpta-portal-container{max-width:920px}
.cpta-portal-intro{text-align:center;margin-bottom:28px}
.cpta-portal-eyebrow{font-size:11px;letter-spacing:.15em;color:#1963a3;font-weight:800}
.cpta-portal-intro h1{font-size:clamp(28px,4vw,40px);color:#123f6d;margin:10px 0}
.cpta-portal-content{padding:32px;background:#fff;border:1px solid #dae8f5;border-radius:16px;box-shadow:0 16px 45px rgba(19,64,105,.08)}
.cpta-portal-content input:not([type=checkbox]):not([type=radio]):not([type=hidden]),
.cpta-portal-content select,.cpta-portal-content textarea{max-width:100%;border:1px solid #c7d8e8;border-radius:8px;background:#fff;padding:11px 13px;color:#172f49}
.cpta-portal-content input:focus-visible,.cpta-portal-content select:focus-visible{outline:2px solid #337fbd;outline-offset:2px}
.cpta-portal-content button,.cpta-portal-content input[type=submit],.cpta-portal-content .pmpro_btn{border-radius:8px;background:#125d9d;color:#fff;border:1px solid #125d9d;padding:12px 22px;text-decoration:none;font-weight:700;cursor:pointer}
.cpta-portal-content button:hover,.cpta-portal-content input[type=submit]:hover,.cpta-portal-content .pmpro_btn:hover{background:#0b436f;color:#fff}
.cpta-portal-content a:not(.pmpro_btn){color:#1266a6}
.cpta-auth-signup-prompt{margin-top:32px;border-top:1px solid #e0eaf4;padding-top:26px;text-align:center}
.cpta-auth-signup-prompt p{font-weight:600;color:#526b82;margin:0 0 14px}
.cpta-auth-signup-button{display:inline-block;border:1px solid #1266a6;border-radius:8px;padding:11px 20px;color:#1266a6!important;font-weight:700;text-decoration:none}
.cpta-auth-signup-button:hover{background:#edf7ff}
.cpta-portal-content #loginform{max-width:520px;margin:0 auto}
.cpta-portal-content #loginform p{margin-bottom:18px}
.cpta-portal-content #loginform label{font-weight:600;color:#284765}
.cpta-portal-content #loginform input[type=text],.cpta-portal-content #loginform input[type=password]{width:100%;box-sizing:border-box}
.cpta-member-plans #pmpro_levels,.cpta-member-plans .pmpro_levels{margin-top:20px}
@media(max-width:650px){.cpta-portal-page{padding:28px 0 50px}.cpta-portal-content{padding:20px 16px}.site-topline .cpta-member-actions{justify-content:flex-start}}

/* Sign Up account creation — separate from selecting a paid membership */
.cpta-registration{max-width:740px;margin-inline:auto}
.cpta-register-form{display:grid;gap:10px}
.cpta-register-form label{font-size:14px;font-weight:650;color:#153c64}
.cpta-register-form input{width:100%;border:1px solid #cbddeb;border-radius:9px;padding:13px;font:inherit}
.cpta-register-form button{border:0;cursor:pointer;margin-top:12px;max-width:100%}
.cpta-honeypot{position:absolute!important;left:-99999px!important;width:1px;height:1px;overflow:hidden}
.cpta-register-error{background:#fff0f0;color:#972b2b;border:1px solid #edc9c9;border-radius:8px;padding:12px;margin-bottom:20px}
.cpta-register-login{text-align:center;margin-top:18px}

/* Language pages not yet translated: do not redirect customers to Home. */
.cpta-languages .language-link.untranslated{opacity:.5;cursor:not-allowed;}

/* ================================================================
   CPTA member portal v2 — WooCommerce account + PMPro account
   Presentation only. Never changes checkout, payment, or membership.
   Remove OLD WooCommerce/My Account overrides from Additional CSS.
   ================================================================ */

/* Expand ONLY account pages; CPTA's regular pages retain theme width. */
body.woocommerce-account .container.content-page,
body:has(.pmpro_account) .container.content-page,
body:has(#pmpro_account) .container.content-page {
  width: min(1240px, calc(100% - 36px)) !important;
  max-width: 1240px !important;
  box-sizing: border-box;
  margin-inline: auto !important;
}
body.woocommerce-account .content-page > article,
body:has(.pmpro_account) .content-page > article,
body:has(#pmpro_account) .content-page > article,
body.woocommerce-account .content-page .entry-content,
body:has(.pmpro_account) .content-page .entry-content,
body:has(#pmpro_account) .content-page .entry-content {
  width: 100% !important;
  max-width: none !important;
  min-width: 0;
  box-sizing: border-box;
}
body.woocommerce-account #main-content,
body:has(.pmpro_account) #main-content,
body:has(#pmpro_account) #main-content {
  background: linear-gradient(180deg,#f1f7fd 0,#fff 330px);
  padding-block: 36px 76px;
}
body.woocommerce-account .content-page article > h1,
body:has(.pmpro_account) .content-page article > h1,
body:has(#pmpro_account) .content-page article > h1 {
  color: #123e6c;
  font-size: clamp(27px,3vw,38px);
  font-weight: 800;
  margin: 0 0 25px;
  letter-spacing: -.025em;
}

/* Apply the desktop layout ONLY when the navigation is present.
   This deliberately does not affect the login/register form. */
body.woocommerce-account .woocommerce:has(> .woocommerce-MyAccount-navigation) {
  display: grid !important;
  grid-template-columns: 246px minmax(0,1fr) !important;
  align-items: start;
  gap: 28px;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
}
body.woocommerce-account .woocommerce:has(> .woocommerce-MyAccount-navigation) > .woocommerce-MyAccount-navigation {
  float: none !important;
  display: block !important;
  position: relative;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  margin: 0 !important;
  box-sizing: border-box;
  background: #fff;
  border: 1px solid #dce7f2;
  border-radius: 17px;
  overflow: hidden;
  box-shadow: 0 12px 36px rgba(15,58,103,.08);
}
body.woocommerce-account .woocommerce-MyAccount-navigation ul {
  list-style: none !important;
  margin: 0 !important;
  padding: 12px !important;
}
body.woocommerce-account .woocommerce-MyAccount-navigation ul li {
  list-style: none !important;
  margin: 3px 0 !important;
  padding: 0 !important;
  border: 0 !important;
}
body.woocommerce-account .woocommerce-MyAccount-navigation ul li::before { content: none !important; }
body.woocommerce-account .woocommerce-MyAccount-navigation ul li a {
  display: block !important;
  border-radius: 10px;
  padding: 13px 15px !important;
  color: #244d73 !important;
  background: transparent;
  font-size: 14px;
  font-weight: 650;
  line-height: 1.4;
  white-space: normal;
  overflow-wrap: break-word;
  word-break: normal !important;
  text-decoration: none !important;
  transition: background .16s ease, color .16s ease;
}
body.woocommerce-account .woocommerce-MyAccount-navigation ul li a:hover,
body.woocommerce-account .woocommerce-MyAccount-navigation ul li a:focus-visible {
  background: #eaf4fd;
  color: #0e4e84 !important;
}
body.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a {
  background: #145d9c !important;
  color: #fff !important;
  box-shadow: 0 4px 12px rgba(20,93,156,.18);
}
body.woocommerce-account .woocommerce:has(> .woocommerce-MyAccount-navigation) > .woocommerce-MyAccount-content {
  float: none !important;
  display: block !important;
  min-width: 0 !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  box-sizing: border-box;
  padding: clamp(19px,3vw,36px) !important;
  background: #fff;
  border: 1px solid #dce7f2;
  border-radius: 18px;
  box-shadow: 0 12px 36px rgba(15,58,103,.07);
  overflow-x: auto;
}
body.woocommerce-account .woocommerce-MyAccount-content h2,
body.woocommerce-account .woocommerce-MyAccount-content h3 {
  color: #123e6c;
  font-weight: 750;
}
body.woocommerce-account .woocommerce-MyAccount-content p {
  line-height: 1.75;
  color: #385670;
}
/* Allow column widths to remain usable; scroll within the card on narrow screens. */
body.woocommerce-account .woocommerce-MyAccount-content table,
body.woocommerce-account .woocommerce-MyAccount-content table.shop_table {
  width: 100% !important;
  min-width: 610px;
  table-layout: auto !important;
  border-collapse: separate !important;
  border-spacing: 0;
  border: 1px solid #e0eaf4;
  border-radius: 12px;
  overflow: hidden;
}
body.woocommerce-account .woocommerce-MyAccount-content table th,
body.woocommerce-account .woocommerce-MyAccount-content table td {
  white-space: normal !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
  hyphens: none !important;
  vertical-align: middle;
  padding: 14px 16px !important;
  line-height: 1.5;
  border-bottom: 1px solid #e6eef7;
  text-align: left;
}
body.woocommerce-account .woocommerce-MyAccount-content table th {
  color: #174f83;
  background: #edf5fc;
  font-size: 13px;
  font-weight: 750;
}
body.woocommerce-account .woocommerce-MyAccount-content table td { color: #264962; }
body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-button,
body.woocommerce-account .woocommerce-MyAccount-content .button {
  background: #145d9c !important;
  color: #fff !important;
  border-radius: 9px !important;
  padding: 10px 16px !important;
  border: none !important;
  box-shadow: none !important;
  text-decoration: none !important;
}
body.woocommerce-account .woocommerce-MyAccount-content input.input-text,
body.woocommerce-account .woocommerce-MyAccount-content select,
body.woocommerce-account .woocommerce-MyAccount-content textarea {
  max-width: 100%;
  box-sizing: border-box;
  border: 1px solid #cbdcea;
  border-radius: 9px;
  padding: 11px 13px;
}
/* PMPro account blocks: compatible with multiple PMPro markup versions. */
body:has(.pmpro_account) #pmpro_account,
body:has(#pmpro_account) #pmpro_account,
body:has(.pmpro_account) .pmpro_account {
  max-width: 100%;
  min-width: 0;
}
body:has(#pmpro_account) #pmpro_account .pmpro_box,
body:has(#pmpro_account) #pmpro_account .pmpro_section,
body:has(.pmpro_account) .pmpro_account .pmpro_box,
body:has(.pmpro_account) .pmpro_account .pmpro_section {
  padding: 24px;
  border: 1px solid #dce7f2;
  border-radius: 15px;
  background: #fff;
  margin-bottom: 22px;
  box-shadow: 0 9px 26px rgba(15,58,103,.06);
}
body:has(#pmpro_account) #pmpro_account h2,
body:has(.pmpro_account) .pmpro_account h2 {
  color: #145d9c;
  font-size: 21px;
}
@media (max-width: 850px) {
  body.woocommerce-account .woocommerce:has(> .woocommerce-MyAccount-navigation) {
    grid-template-columns: 1fr !important;
    gap: 18px;
  }
  body.woocommerce-account .woocommerce-MyAccount-navigation ul {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
  }
  body.woocommerce-account .woocommerce-MyAccount-navigation ul li { margin: 0 !important; }
  body.woocommerce-account .woocommerce-MyAccount-navigation ul li a { padding: 11px 12px !important; }
}
@media (max-width: 600px) {
  body.woocommerce-account .container.content-page,
  body:has(.pmpro_account) .container.content-page,
  body:has(#pmpro_account) .container.content-page {
    width: calc(100% - 24px) !important;
  }
  body.woocommerce-account .woocommerce:has(> .woocommerce-MyAccount-navigation) > .woocommerce-MyAccount-content {
    padding: 17px !important;
  }
  body.woocommerce-account .woocommerce-MyAccount-content table { min-width: 560px; }
  body:has(#pmpro_account) #pmpro_account .pmpro_box,
  body:has(.pmpro_account) .pmpro_account .pmpro_box { padding: 17px; }
}
@media (prefers-reduced-motion: reduce) {
  body.woocommerce-account .woocommerce-MyAccount-navigation ul li a { transition: none; }
}
