/* ==========================================================================
   Paid Memberships Pro pages (tpl-member.php, inc/pmpro.php): PMPro's own markup in
   our design system. Hero from pages.css. PMPro 3 styles through --pmpro--* variables,
   so most of the work is mapping them to our tokens.
   ========================================================================== */
.pmpro {
	--pa-navy: #0F3860; --pa-text: #334155; --pa-slate: #5F6B7D; --pa-line: #E2E8F0; --pa-bg: #F5F8FB;
	--pa-teal: #00A3B4; --pa-teal-700: #007784; --pa-teal-50: #E0F5F7;
	--pa-font-head: var(--wp--preset--font-family--commissioner); --pa-font-body: var(--wp--preset--font-family--noto-sans);
	--pmpro--color--accent: var(--pa-navy);
	--pmpro--color--contrast: var(--pa-text);
	--pmpro--color--border: #B9C7D6;
	--pmpro--color--base-2: var(--pa-bg);
	--pmpro--base--border-radius: 20px;
	--pmpro--btn--border-radius: 999px;
	--pmpro--btn--top-bottom-padding: 14px;
	--pmpro--btn--left-right-padding: 28px;
	--pmpro--box-shadow: 0 1px 2px rgba(15, 56, 96, .04), 0 8px 24px rgba(15, 56, 96, .06);
	color-scheme: light; /* the site has no dark theme */
	color: var(--pa-text);
	font-family: var(--pa-font-body);
}

/* page frame */
.pa-member { width: var(--theme-container-width, 90vw); max-width: 880px; margin: 40px auto 0; }
.pa-member > .pmpro, .pa-member .pmpro { margin: 0; }

/* sections, cards, titles */
.pmpro .pmpro_section { margin: 0 0 32px; }
.pmpro .pmpro_section_title { margin: 0 0 14px; color: var(--pa-navy); font: 700 24px/1.25 var(--pa-font-head); }
.pmpro .pmpro_card { border: 0; border-radius: 28px; background: #fff; box-shadow: inset 0 0 0 1.5px var(--pa-line), var(--pmpro--box-shadow); overflow: hidden; }
.pmpro .pmpro_card_title { color: var(--pa-navy); font-family: var(--pa-font-head); font-weight: 700; }
.pmpro .pmpro_card_actions { border-top: 1px solid var(--pa-line); background: var(--pa-bg); }
.pmpro .pmpro_card_actions a, .pmpro a:not(.pa-paymethod__opt) { color: var(--wp--preset--color--blue-700, #036FAE); font-weight: 600; }
.pmpro .pmpro_list_item_label, .pmpro .pmpro_form_label { color: var(--pa-navy); font: 600 14.5px/1.3 var(--pa-font-head); }

/* buttons */
.pmpro .pmpro_btn, .pmpro input[type="submit"].pmpro_btn, .pmpro #pmpro_btn-submit,
.pmpro .pmpro_login_wrap #wp-submit {
	border: 0; border-radius: 999px; background: var(--pa-navy); color: #fff;
	font: 600 16px/1.2 var(--pa-font-head); cursor: pointer; transition: background-color .15s;
}
.pmpro .pmpro_btn:hover, .pmpro #pmpro_btn-submit:hover, .pmpro .pmpro_login_wrap #wp-submit:hover { background: var(--wp--preset--color--navy-900, #0B2B4B); color: #fff; }
.pmpro .pmpro_btn:focus-visible, .pmpro #pmpro_btn-submit:focus-visible { outline: 3px solid var(--pa-teal); outline-offset: 2px; }
.pmpro .pmpro_btn.pmpro_btn-cancel, .pmpro .pmpro_btn-outline { background: #fff; color: var(--pa-navy); box-shadow: inset 0 0 0 1.5px var(--pa-navy); }

/* form fields (checkout, login, account details) */
.pmpro .pmpro_form_input, .pmpro input[type="text"], .pmpro input[type="email"], .pmpro input[type="password"], .pmpro select,
.pmpro .pmpro_login_wrap .input {
	min-height: 48px; padding: 10px 14px; border: 1.5px solid var(--pa-line); border-radius: 14px; background: #fff;
	color: var(--pa-navy); font: 16px var(--pa-font-body); box-shadow: none;
}
.pmpro .pmpro_form_input:focus, .pmpro input:focus, .pmpro select:focus { border-color: var(--pa-teal-700); outline: 0; box-shadow: 0 0 0 4px var(--pa-teal-50); }
.pmpro .pmpro_form_field-password-toggle button { color: var(--pa-teal-700); font-weight: 600; }

/* tables (receipts) and status tags */
.pmpro .pmpro_table th { color: var(--pa-slate); font: 600 13.5px var(--pa-font-head); }
.pmpro .pmpro_table td, .pmpro .pmpro_table th { border-color: var(--pa-line); }
.pmpro .pmpro_tag { border-radius: 999px; font: 600 12.5px/1.6 var(--pa-font-head); }
.pmpro .pmpro_tag-success { background: var(--pa-teal-50); border-color: var(--pa-teal-50); color: var(--pa-teal-700); }
.pmpro .pmpro_tag-alert { background: #FFEDD5; border-color: #FFEDD5; color: #C2410C; }

/* messages */
.pmpro .pmpro_message { border-radius: 16px; font-size: 15px; }

/* login */
.pmpro .pmpro_login_wrap { max-width: 480px; margin-inline: auto; }
.pmpro .pmpro_login_wrap .login-remember label { display: inline-flex; align-items: center; gap: 8px; }

/* «Γίνετε μέλος»: price card + benefits (pa_member_join_card) */
.pa-join { display: grid; grid-template-columns: minmax(260px, 340px) minmax(0, 1fr); gap: 0; border-radius: 28px; background: #fff; box-shadow: inset 0 0 0 1.5px var(--pa-line), 0 8px 24px rgba(15, 56, 96, .06); overflow: hidden; }
.pa-join__price { display: flex; flex-direction: column; gap: 14px; padding: 32px; background: linear-gradient(160deg, var(--pa-navy), #0B2B4B); color: #DDE7F1; }
.pa-join__level { margin: 0; color: #9CC9EA; font: 700 13px/1.4 var(--pa-font-head); letter-spacing: .06em; text-transform: uppercase; }
.pa-join__amount { display: flex; align-items: baseline; gap: 6px; margin: 0; }
.pa-join__amount b { color: #fff; font: 700 64px/1 var(--pa-font-head); font-variant-numeric: tabular-nums; }
.pa-join__amount span { color: #DDE7F1; font: 600 18px var(--pa-font-head); }
.pa-join__facts { display: flex; flex-direction: column; gap: 8px; margin: 0; padding: 0; list-style: none; font-size: 15px; line-height: 1.45; }
.pa-join__facts li { position: relative; padding-left: 24px; }
.pa-join__facts li::before { content: ""; position: absolute; left: 2px; top: .35em; width: 12px; height: 7px; border-left: 2.5px solid var(--pa-teal); border-bottom: 2.5px solid var(--pa-teal); transform: rotate(-45deg); }
.pa-join__price .wp-block-button { margin-top: auto; padding-top: 10px; }
.pa-join__price .wp-block-button__link { width: 100%; justify-content: center; }
.pa-join__state { margin: 0; color: #fff; font-weight: 600; }
.pa-join__how { margin: 0; color: #DDE7F1; font-size: 15px; line-height: 1.5; }
.pa-join__login { margin: 0; font-size: 14.5px; text-align: center; }
.pa-join__login a { color: #fff; font-weight: 600; }
.pa-join__benefits { padding: 32px 36px; font-size: 16px; line-height: 1.65; }
.pa-join .pa-join__benefits h2 { margin: 0 0 16px; color: var(--pa-navy); font: 700 22px/1.3 var(--pa-font-head); letter-spacing: 0; }
.pa-join__benefits ul { display: flex; flex-direction: column; gap: 10px; margin: 0; padding: 0; list-style: none; }
.pa-join__benefits li { position: relative; padding-left: 30px; }
.pa-join__benefits li::before { content: ""; position: absolute; left: 0; top: .2em; width: 20px; height: 20px; border-radius: 50%; background: var(--pa-teal-50); }
.pa-join__benefits li::after { content: ""; position: absolute; left: 6px; top: calc(.2em + 6px); width: 8px; height: 4px; border-left: 2px solid var(--pa-teal-700); border-bottom: 2px solid var(--pa-teal-700); transform: rotate(-45deg); }
.pa-join .pa-join__benefits p { margin: 18px 0 0; color: var(--pa-slate); font-size: 14.5px; }

/* «Τρόπος πληρωμής»: two selectable cards (paidiatroi-custom/inc/membership.php) */
.pa-paymethod { margin: 22px 0 0; }
.pa-paymethod__h { margin: 0 0 12px; color: var(--pa-navy); font: 700 17px/1.3 var(--pa-font-head); }
.pa-paymethod__opts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.pa-paymethod__opt {
	position: relative; display: grid; grid-template-columns: auto 1fr; align-items: start; gap: 14px;
	min-height: 96px; padding: 18px 46px 18px 18px; border-radius: 20px; background: #fff;
	box-shadow: inset 0 0 0 1.5px var(--pa-line); color: var(--pa-text); text-decoration: none;
	transition: box-shadow .15s, background-color .15s;
}
.pa-paymethod__opt:hover { box-shadow: inset 0 0 0 1.5px #B9C7D6; color: var(--pa-text); }
.pa-paymethod__opt:focus-visible { outline: 3px solid var(--pa-teal); outline-offset: 2px; }
.pa-paymethod__opt.is-on { background: var(--pa-teal-50); box-shadow: inset 0 0 0 2px var(--pa-teal-700); }
.pa-paymethod__ic { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 14px; background: var(--pa-bg); color: var(--pa-navy); }
.pa-paymethod__opt.is-on .pa-paymethod__ic { background: #fff; color: var(--pa-teal-700); }
.pa-paymethod__ic svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.pa-paymethod__txt { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.pa-paymethod__txt b { color: var(--pa-navy); font: 700 16.5px/1.3 var(--pa-font-head); }
.pa-paymethod__txt span { font-size: 14.5px; line-height: 1.5; }
/* the radio circle (top right) */
.pa-paymethod__radio { position: absolute; top: 18px; right: 16px; width: 22px; height: 22px; border-radius: 50%; box-shadow: inset 0 0 0 2px #B9C7D6; background: #fff; }
.pa-paymethod__opt.is-on .pa-paymethod__radio { box-shadow: inset 0 0 0 7px var(--pa-teal-700); }
.pa-paymethod__next { margin: 12px 0 0; color: var(--pa-slate); font-size: 14px; line-height: 1.5; }

@media (max-width: 799.98px) {
	.pa-join { grid-template-columns: minmax(0, 1fr); }
	.pa-join__price, .pa-join__benefits { padding: 24px 22px; }
	.pa-join__amount b { font-size: 52px; }
}
@media (max-width: 639.98px) {
	.pa-member { margin-top: 28px; }
	.pmpro .pmpro_card_content { padding: 22px 18px; }
	.pa-paymethod__opts { grid-template-columns: minmax(0, 1fr); }
	.pa-paymethod__opt { min-height: 0; padding: 16px 44px 16px 14px; gap: 12px; }
}
@media (prefers-reduced-motion: reduce) {
	.pa-paymethod__opt { transition: none; }
}

/* account: the hero already says «Ο λογαριασμός μου» */
.pmpro #pmpro_account-profile > .pmpro_section_title { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Π1 «Πίνακας μέλους» at the top of the account page (inc/pmpro.php, pa_member_dashboard()) */
.pa-mdash { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 0 0 28px; }
.pa-mdash__card { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; padding: 26px 28px; border-radius: 28px; background: #fff; box-shadow: inset 0 0 0 1.5px var(--pa-line), 0 8px 24px rgba(15, 56, 96, .06); }
.pa-mdash p { margin: 0; }
.pa-mdash__eyebrow { color: var(--pa-slate); font: 700 13px/1.4 var(--pa-font-head); letter-spacing: .06em; text-transform: uppercase; }
.pa-mdash__state { display: flex; align-items: center; gap: 10px; color: var(--pa-navy); font: 700 22px/1.25 var(--pa-font-head); }
.pa-mdash__dot { flex: none; width: 12px; height: 12px; border-radius: 50%; background: var(--pa-teal-700); box-shadow: 0 0 0 5px var(--pa-teal-50); }
.pa-mdash__status.is-warn .pa-mdash__dot, .pa-mdash__status.is-wait .pa-mdash__dot { background: var(--pa-orange-700); box-shadow: 0 0 0 5px var(--pa-orange-50); }
.pa-mdash__status.is-off .pa-mdash__dot { background: #94A3B8; box-shadow: 0 0 0 5px #F1F5F9; }
.pa-mdash__text { color: var(--pa-text); font-size: 15.5px; line-height: 1.6; }
.pa-mdash__text b { color: var(--pa-navy); }
.pa-mdash__pending { display: block; margin-top: 10px; padding: 10px 14px; border-radius: 16px; background: var(--pa-orange-50); color: var(--pa-orange-700); font-size: 14.5px; font-weight: 600; }
.pa-mdash__hint { color: var(--pa-slate); font-size: 13.5px; line-height: 1.5; }
.pa-mdash .wp-block-button { margin-top: auto; }
.pa-mdash__meter { display: flex; align-items: center; gap: 14px; width: 100%; }
.pa-mdash__pct { color: var(--pa-navy); font: 700 30px/1 var(--pa-font-head); font-variant-numeric: tabular-nums; }
.pa-mdash__bar { flex: 1; height: 10px; border-radius: 999px; background: var(--pa-bg); box-shadow: inset 0 0 0 1px var(--pa-line); overflow: hidden; }
.pa-mdash__bar i { display: block; height: 100%; border-radius: inherit; background: var(--pa-teal-700); }
.pa-mdash__checks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 16px; width: 100%; margin: 0; padding: 0; list-style: none; font-size: 15px; }
.pa-mdash__checks li { position: relative; padding-left: 28px; line-height: 1.45; }
.pa-mdash__checks li::before { content: ""; position: absolute; left: 0; top: .1em; width: 20px; height: 20px; border-radius: 50%; }
.pa-mdash__checks li.is-done::before { background: var(--pa-teal-50); }
.pa-mdash__checks li.is-done::after { content: ""; position: absolute; left: 6px; top: calc(.1em + 6px); width: 8px; height: 4px; border-left: 2px solid var(--pa-teal-700); border-bottom: 2px solid var(--pa-teal-700); transform: rotate(-45deg); }
.pa-mdash__checks li.is-todo { color: var(--pa-slate); }
.pa-mdash__checks li.is-todo::before { box-shadow: inset 0 0 0 2px #CBD5E1; }
.pa-mdash__links { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; margin-top: auto; padding-top: 4px; }
.pa-mdash__links .wp-block-button { margin: 0; }
.pa-mdash__view { color: var(--pa-blue-700); font-weight: 600; font-size: 15px; }
@media (max-width: 799.98px) {
	.pa-mdash { grid-template-columns: minmax(0, 1fr); }
	.pa-mdash__card { padding: 22px 20px; }
}

/* «Διαχείριση μελών» for the President ([pa_members_admin], inc/pmpro.php) */
.pa-mm { display: grid; gap: 20px; }
.pa-mm h2 { margin: 0 0 14px; color: var(--pa-navy); font: 700 22px/1.3 var(--pa-font-head); }
.pa-mm__card { padding: 26px 28px; border-radius: 28px; background: #fff; box-shadow: inset 0 0 0 1.5px var(--pa-line), 0 8px 24px rgba(15, 56, 96, .06); }
.pa-mm__notice { margin: 0; padding: 14px 18px; border-radius: 16px; font-weight: 600; }
.pa-mm__notice.is-ok { background: var(--pa-teal-50); color: var(--pa-teal-700); }
.pa-mm__notice.is-err { background: var(--pa-orange-50); color: var(--pa-orange-700); }
.pa-mm__stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
.pa-mm__stats a { display: flex; flex-direction: column; gap: 4px; height: 100%; padding: 18px 20px; border-radius: 20px; background: #fff; box-shadow: inset 0 0 0 1.5px var(--pa-line); color: var(--pa-slate); font-size: 14px; text-decoration: none; }
.pa-mm__stats a:hover, .pa-mm__stats a:focus-visible { box-shadow: inset 0 0 0 2px var(--pa-navy); }
.pa-mm__stats b { color: var(--pa-navy); font: 700 30px/1 var(--pa-font-head); font-variant-numeric: tabular-nums; }
.pa-mm__hint, .pa-mm__count, .pa-mm__empty { margin: 0 0 14px; color: var(--pa-slate); font-size: 14.5px; }
.pa-mm__scroll { overflow-x: auto; border-radius: 16px; box-shadow: inset 0 0 0 1px var(--pa-line); }
.pa-mm__scroll:focus-visible { outline: 2px solid var(--pa-navy); outline-offset: 2px; }
.pa-mm__table { width: 100%; min-width: 720px; margin: 0; border-collapse: collapse; font-size: 14.5px; }
.pa-mm__table th, .pa-mm__table td { padding: 12px 14px; border: 0; border-bottom: 1px solid var(--pa-line); text-align: left; vertical-align: top; }
.pa-mm__table thead th { background: var(--pa-bg); color: var(--pa-slate); font: 600 13px var(--pa-font-head); white-space: nowrap; }
.pa-mm__table tbody th { color: var(--pa-navy); font-weight: 600; }
.pa-mm__table tbody tr:last-child > * { border-bottom: 0; }
.pa-mm__sub { display: block; color: var(--pa-slate); font-size: 13px; font-weight: 400; }
a.pa-mm__sub { text-decoration: none; }
a.pa-mm__sub:hover { text-decoration: underline; }
.pa-mm__tag { display: inline-block; margin: 0 6px 4px 0; padding: 3px 10px; border-radius: 999px; font-size: 13px; font-weight: 600; white-space: nowrap; }
.pa-mm__tag.is-ok { background: var(--pa-teal-50); color: var(--pa-teal-700); }
.pa-mm__tag.is-warn, .pa-mm__tag.is-wait { background: var(--pa-orange-50); color: var(--pa-orange-700); }
.pa-mm__tag.is-off { background: #F1F5F9; color: var(--pa-slate); }
.pa-mm__btn { padding: 9px 18px; border: 0; border-radius: 999px; background: var(--pa-navy); color: #fff; font: 600 14px var(--pa-font-head); cursor: pointer; white-space: nowrap; }
.pa-mm__btn:hover { background: var(--pa-navy-900, #0B2B4B); }
.pa-mm__btn.is-line { background: #fff; color: var(--pa-navy); box-shadow: inset 0 0 0 1.5px var(--pa-navy); }
.pa-mm__btn:focus-visible { outline: 2px solid var(--pa-navy); outline-offset: 2px; }
.pa-mm__filter { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px; margin: 0 0 12px; }
.pa-mm__filter label { display: grid; gap: 4px; color: var(--pa-slate); font-size: 13px; font-weight: 600; }
.pa-mm__filter input, .pa-mm__filter select { min-height: 44px; padding: 8px 14px; border: 1.5px solid #B9C7D6; border-radius: 14px; background: #fff; color: var(--pa-text); font-size: 15px; }
.pa-mm__filter input { width: min(320px, 100%); }
.pa-mm__filter .pa-mm__btn { min-height: 44px; }
.pa-mm__pages { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 14px; }
.pa-mm__pages a, .pa-mm__pages span { min-width: 38px; padding: 7px 12px; border-radius: 999px; text-align: center; text-decoration: none; }
.pa-mm__pages a { box-shadow: inset 0 0 0 1.5px var(--pa-line); color: var(--pa-navy); }
.pa-mm__pages span { background: var(--pa-navy); color: #fff; }
.pa-mm__log { margin: 0 0 14px; padding: 0; list-style: none; font-size: 14.5px; }
.pa-mm__log li { padding: 8px 0; border-bottom: 1px solid var(--pa-line); }
.pa-mm__log time { color: var(--pa-slate); font-variant-numeric: tabular-nums; margin-right: 6px; }
.pa-mm__setup ol { margin: 0 0 14px; padding-left: 22px; }
.pa-mm__setup ol li { margin-bottom: 6px; }
.pa-mm__security summary { color: var(--pa-navy); font: 600 16px var(--pa-font-head); cursor: pointer; }
.pa-mm__security[open] summary { margin-bottom: 14px; }
@media (max-width: 799.98px) {
	.pa-mm__stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.pa-mm__card { padding: 20px 18px; border-radius: 24px; }
}
.pa-mm__deposit .is-wide { flex: 1 1 260px; }
.pa-mm__deposit .is-wide select, .pa-mm__deposit .is-wide input { width: 100%; }
.pa-mm__deposit input[type="number"] { width: 120px; }
.pa-mm__done { margin-top: 18px; padding: 18px 20px; border-radius: 20px; background: var(--pa-teal-50); color: var(--pa-teal-700); }
.pa-mm__done p { margin: 0 0 12px; }
.pa-mm__done-btns { display: flex; flex-wrap: wrap; gap: 10px; }
.pa-mm__done-btns a { text-decoration: none; }
/* «Ο λογαριασμός μου»: «Διαχείριση μελών» as an orange button on its own line (members-admin.php) */
.pmpro .pmpro_card_action_separator:has(+ .pa-mm-cta) { display: none; }
.pmpro .pa-mm-cta { display: block; margin-top: 14px; }
.pmpro .pmpro_card_actions a.pa-mm-cta__btn { display: inline-block; padding: 11px 24px; border-radius: 999px; background: var(--pa-orange-700, #C2410C); color: #fff; font: 600 15px var(--pa-font-head); text-decoration: none; }
.pmpro .pmpro_card_actions a.pa-mm-cta__btn:hover { background: #9a3412; color: #fff; }
.pmpro .pmpro_card_actions a.pa-mm-cta__btn:focus-visible { outline: 2px solid var(--pa-navy); outline-offset: 2px; }
