/* FGT Members - minimal starter styles for login/profile
	 Updated to leverage theme CSS variables so the members UI
	 aligns visually with the main site theme (colors, buttons, spacing).
*/
.fgt-login-page {
	max-width: 480px;
	margin: 28px auto;
	padding: 18px;
	border: 1px solid var(--fgt-accent);
	background: var(--fgt-white);
	border-radius: 6px;
	box-shadow: 0 1px 4px rgba(0,0,0,0.05);
}
.fgt-login-page h2 {
	margin-top: 0;
	color: var(--fgt-primary-color);
}
.fgt-login-form .regular-text {
	width: 100%;
	padding: 8px;
	border: 1px solid rgba(0,0,0,0.08);
	border-radius: 4px;
}
/* Use the theme button styles where possible; keep local specificity to avoid leaking styles */
.fgt-login-form .button {
	background: var(--fgt-primary-color);
	color: var(--fgt-white);
	border: none;
	padding: 8px 14px;
	border-radius: 4px;
}

/* Center the login heading and the login actions */
.fgt-login-page h2 { text-align: center; }
.fgt-login-instructions { text-align: center; }
.fgt-login-actions { text-align: center; margin-top: 1rem; }
.fgt-login-actions .fgt-turnstile-wrap { display: block; margin: 0 auto 0.75rem; max-width: 360px; }
.fgt-login-actions p { margin: 0; }
.fgt-login-actions .button { display: inline-block; }
.fgt-member-profile {
	max-width: 1160px;
	margin: 22px auto;
	padding: 24px;
	background: var(--fgt-white);
	border: 1px solid rgba(0,0,0,0.06);
	border-radius: 6px;
}
.fgt-member-profile h2 {
	color: var(--fgt-primary-color);
}
.fgt-member-profile .button {
	background: var(--fgt-primary-color);
	color: var(--fgt-white);
}
.fgt-member-profile .notice {
	margin-bottom: 12px;
}

/* Registration / profile form rows: label on left, input on right */
.fgt-member-register, .fgt-member-profile form {
	max-width: 760px;
	margin: 0 auto;
}

/* Ensure action buttons in the member register/edit form have consistent sizing
   across anchor and button elements so Cancel and Save match visually. */
.fgt-member-register .button,
.fgt-member-register a.button,
.fgt-member-register button.button,
.fgt-member-register input[type="submit"].button {
	/* Force anchor/button/submit to be visually identical inside the form */
	display: inline-block !important;
	-webkit-appearance: none !important;
	appearance: none !important;
	padding: 10px 20px !important;
	border-radius: 6px !important;
	border: none !important;
	background: var(--fgt-primary-color) !important;
	color: var(--fgt-white) !important;
	text-decoration: none !important;
	font-weight: 600 !important;
	min-width: 140px !important;
	box-sizing: border-box !important;
	text-align: center !important;
	line-height: 1.1 !important;
	vertical-align: middle !important;
	cursor: pointer !important;
}
.fgt-member-register .button + .button { margin-left: 12px !important; }

/* Ensure the anchor variant doesn't get underlined by theme CSS */
.fgt-member-register a.button { text-decoration: none !important; }

/* Small accessibility tweak: ensure focus outline is visible */
.fgt-member-register .button:focus { outline: 3px solid rgba(43,124,255,0.14); outline-offset: 2px; }
.fgt-member-register .fgt-form-row,
.fgt-member-profile .fgt-form-row {
	display: flex;
	align-items: center;
	margin-bottom: 0.75rem;
}
.fgt-membership-request .fgt-form-row {
	display: flex;
	align-items: center;
	margin-bottom: 1.5rem;
}
.fgt-form-label {
	width: 180px;
	flex: 0 0 180px;
	padding-right: 12px;
	color: var(--fgt-black);
}
/* More specific selector for request form labels to override profile view styles */
.fgt-membership-request .fgt-form-label {
	width: 220px;
	flex: 0 0 220px;
}
.fgt-form-field {
	flex: 1 1 auto;
}
.fgt-form-field .regular-text, .fgt-form-field select {
	width: 100%;
	padding: 8px;
	border: 1px solid rgba(0,0,0,0.12); /* slightly stronger */
	border-radius: 4px;
	transition: box-shadow 0.12s ease, border-color 0.12s ease;
}

.fgt-form-field .regular-text:focus, .fgt-form-field select:focus {
	outline: none;
	border-color: var(--fgt-accent, #2b7cff);
	box-shadow: 0 0 0 3px rgba(43,124,255,0.06);
}

/* Make the input container positioning context for inline icons */
.fgt-form-field { position: relative; }
.fgt-form-field .regular-text { padding-right: 2.2em; }
.fgt-validate-icon {
	position: absolute;
	right: 10px;
	top: 50%;
	transform: translateY(-50%);
	display: inline-block;
	width: 1.1em;
	height: 1.1em;
	background-repeat: no-repeat;
	background-position: center;
}
.fgt-form-actions { margin-top: 1rem; }

@media (max-width: 640px) {
	.fgt-form-row { flex-direction: column; align-items: stretch; }
	.fgt-form-label { width: auto; flex: none; padding-right: 0; margin-bottom: .25rem; }
}

/* Inline field error styling for registration form */
.fgt-field-error {
	color: #b00;
	font-size: 0.95rem;
	margin-top: 0.25rem;
}
.fgt-form-field input.invalid, .fgt-form-field select.invalid { border-color: #b00; box-shadow: 0 0 0 2px rgba(176,0,0,0.05); }

/* Validation icon (inline) */
.fgt-validate-icon.ok { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%2322aa44'><path d='M9 16.2l-3.5-3.5-1.4 1.4L9 19 20 8l-1.4-1.4z'/></svg>"); }
.fgt-validate-icon.err { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23b00'><path d='M11.001 10h2v5h-2zM11 16h2v2h-2zM12 2C6.486 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.514 2 12 2z'/></svg>"); }
.fgt-validate-icon.ok { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%2322aa44'><path d='M9 16.2l-3.5-3.5-1.4 1.4L9 19 20 8l-1.4-1.4z'/></svg>"); }
.fgt-validate-icon.err { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23b00'><path d='M11.001 10h2v5h-2zM11 16h2v2h-2zM12 2C6.486 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.514 2 12 2z'/></svg>"); }

.fgt-form-field .regular-text[aria-invalid='true'] { border-color: #b00; }
.fgt-form-actions .button[disabled] { opacity: 0.6; cursor: not-allowed; }

/* Readonly email field styling */
.fgt-form-field input[readonly] {
	background-color: #f5f5f5;
	color: #666;
	cursor: not-allowed;
	border-color: #ddd;
}
.fgt-form-field input[readonly]:focus {
	outline: none;
	box-shadow: none;
}

.fgt-small-select { max-width: 160px; width: 160px; min-width: 120px; box-sizing: border-box; }
@media (max-width: 640px) {
	.fgt-small-select { width: 100%; max-width: none; }
}

/* Register page heading */
.fgt-register-page { padding-top: 18px; }
.fgt-register-page h2 { margin-top: 0; color: var(--fgt-primary-color); text-align: center; }
.fgt-register-page p.fgt-register-intro { margin-top: 0.5rem; margin-bottom: 1.25rem; color: var(--fgt-muted-color, #666); text-align: center; }

/* Register success message styling */
.fgt-register-success {
	text-align: center;
	margin-bottom: 3rem;
	padding-bottom: 2rem;
}
.fgt-register-success h2 {
	margin-bottom: 1.5rem;
}
.fgt-register-success .notice {
	text-align: center;
	max-width: 600px;
	margin: 0 auto;
	padding: 1rem 1.5rem;
}

/* Edit view: provide parity with the register view but use new selectors so we
	do not alter or rely on the registration-specific classes. These styles
	ensure `/member-profile/?show=edit` renders the same layout as register. */
.fgt-edit-view .entry-title,
.fgt-edit-view .page-title,
.fgt-edit-view h1.entry-title,
.fgt-edit-view .post-title,
.fgt-edit-view .page-header h1,
.fgt-edit-view .site-main h1 { display: none !important; }

/* Container sizing like the register form */
.fgt-member-edit { max-width: 760px; margin: 0 auto; }

/* Form row layout parity with registration */
.fgt-member-edit .fgt-form-row { display: flex; align-items: center; margin-bottom: 0.75rem; }
.fgt-member-edit .fgt-form-label { width: 180px; flex: 0 0 180px; padding-right: 12px; color: var(--fgt-black); }
.fgt-member-edit .fgt-form-field { flex: 1 1 auto; }
.fgt-member-edit .fgt-form-field .regular-text,
.fgt-member-edit .fgt-form-field select { width: 100%; padding: 8px; border: 1px solid rgba(0,0,0,0.12); border-radius: 4px; box-sizing: border-box; }

/* Keep validation icon behavior for edit form (same as registration) */
.fgt-member-edit .fgt-validate-icon { position: absolute; right: 10px; top: 50%; transform: translateY(-50%); display: inline-block; width: 1.1em; height: 1.1em; background-repeat: no-repeat; background-position: center; }

/* Buttons: keep sizing/spacing but allow the theme's .button color/background
	to control visual appearance so they match the front-page Contact Us button. */
.fgt-member-edit .button,
.fgt-member-edit a.button,
.fgt-member-edit button.button,
.fgt-member-edit input[type="submit"].button {
	 display: inline-block;
	 padding: 10px 20px;
	 border-radius: 6px;
	 border: none;
	 text-decoration: none;
	 font-weight: 600;
	 min-width: 140px;
	 box-sizing: border-box;
	 text-align: center;
	 line-height: 1.1;
	 vertical-align: middle;
	 cursor: pointer;
}
.fgt-member-edit .button + .button { margin-left: 12px; }


/* Lost-password form centering */
.fgt-lostpw-hint { text-align: center; color: var(--fgt-muted-color, #666); margin-bottom: 0.75rem; }
.fgt-lostpw-form { max-width: 420px; margin: 0 auto; text-align: center; }
.fgt-lostpw-form label { display: block; text-align: left; margin-bottom: 0.25rem; }
.fgt-lostpw-form .regular-text { width: 100%; margin: 0 auto 0.75rem; }
.fgt-lostpw-form .button { display: inline-block; }

/* Improved lost-password page styling to match registration page */
.fgt-lostpw-page {
	max-width: 760px;
	margin: 28px auto;
	padding: 22px 26px;
	background: var(--fgt-white);
	border: 1px solid rgba(0,0,0,0.06);
	border-radius: 8px;
	box-shadow: 0 1px 6px rgba(0,0,0,0.04);
	text-align: center;
}
.fgt-lostpw-page h2 {
	margin-top: 0;
	color: var(--fgt-primary-color);
	font-size: 1.8rem;
	line-height: 1.05;
}
.fgt-lostpw-hint {
	max-width: 720px;
	margin: 0.5rem auto 1.25rem;
	color: var(--fgt-muted-color, #666);
}
.fgt-lostpw-form {
	max-width: 560px;
	margin: 0 auto;
	text-align: left;
}
.fgt-lostpw-form label { display: block; margin-bottom: 0.35rem; color: #444; }
.fgt-lostpw-form .regular-text {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid rgba(0,0,0,0.12);
	border-radius: 6px;
	box-sizing: border-box;
}
.fgt-lostpw-form .button {
	display: block;
	margin: 1rem auto 0;
	background: var(--fgt-primary-color);
	color: var(--fgt-white);
	border: none;
	padding: 12px 28px;
	border-radius: 8px;
	font-weight: 600;
	text-align: center;
}

@media (max-width: 640px) {
	.fgt-lostpw-page { padding: 16px; }
	.fgt-lostpw-page h2 { font-size: 1.3rem; }
	.fgt-lostpw-form { max-width: 100%; }
}

/* Lost username page styling - matches lost password page */
.fgt-lostusername-page {
	max-width: 760px;
	margin: 28px auto;
	padding: 22px 26px;
	background: var(--fgt-white);
	border: 1px solid rgba(0,0,0,0.06);
	border-radius: 8px;
	box-shadow: 0 1px 6px rgba(0,0,0,0.04);
	text-align: center;
}
.fgt-lostusername-page h2 {
	margin-top: 0;
	color: var(--fgt-primary-color);
	font-size: 1.8rem;
	line-height: 1.05;
}
.fgt-lostusername-hint {
	max-width: 720px;
	margin: 0.5rem auto 1.25rem;
	color: var(--fgt-muted-color, #666);
}
.fgt-lostusername-form {
	max-width: 560px;
	margin: 0 auto;
	text-align: left;
}
.fgt-lostusername-form label { display: block; margin-bottom: 0.35rem; color: #444; }
.fgt-lostusername-form .regular-text {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid rgba(0,0,0,0.12);
	border-radius: 6px;
	box-sizing: border-box;
}
.fgt-lostusername-form .button {
	display: block;
	margin: 1rem auto 0;
	background: var(--fgt-primary-color);
	color: var(--fgt-white);
	border: none;
	padding: 12px 28px;
	border-radius: 8px;
	font-weight: 600;
	text-align: center;
}

@media (max-width: 640px) {
	.fgt-lostusername-page { padding: 16px; }
	.fgt-lostusername-page h2 { font-size: 1.3rem; }
	.fgt-lostusername-form { max-width: 100%; }
}

/* Reset form centering and styling */
.fgt-reset-page {
	/* Mirror lost-password page card look */
	max-width: 760px;
	margin: 28px auto;
	padding: 22px 26px;
	background: var(--fgt-white);
	border: 1px solid rgba(0,0,0,0.06);
	border-radius: 8px;
	box-shadow: 0 1px 6px rgba(0,0,0,0.04);
	text-align: center;
}
.fgt-reset-page h2 {
	margin-top: 0;
	color: var(--fgt-primary-color);
	font-size: 1.8rem;
	line-height: 1.05;
}
.fgt-reset-form {
	max-width: 560px;
	margin: 0 auto;
	text-align: left;
}
.fgt-reset-row { margin-bottom: 0.75rem; }
.fgt-reset-form label { display: block; margin-bottom: 0.35rem; color: #444; }
.fgt-reset-form .regular-text {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid rgba(0,0,0,0.12);
	border-radius: 6px;
	box-sizing: border-box;
}
.fgt-reset-errors { margin-top: 0.5rem; }
.fgt-reset-form .button {
	display: block;
	margin: 1rem auto 0;
	background: var(--fgt-primary-color);
	color: var(--fgt-white);
	border: none;
	padding: 12px 28px;
	border-radius: 8px;
	font-weight: 600;
	text-align: center;
}

/* Messages shown on the login/reset views (centered and spaced) */
.fgt-member-messages { max-width: 760px; margin: 0 auto 1rem; padding-top: 16px; text-align: center; }
.fgt-member-messages .notice { display: inline-block; text-align: center; width: auto; max-width: 680px; }
/* Center success notices specifically (used after profile save) */
.fgt-member-messages .notice.notice-success {
	display: inline-block;
	text-align: center;
	width: auto;
	padding: 10px 18px;
}
@media (max-width: 640px) {
	.fgt-member-messages .notice.notice-success { width: 100%; }
}
@media (max-width: 640px) {
	.fgt-member-messages .notice { width: 100%; }
}

/* Ensure any messages/errors printed inside the branded login container are centered */
.fgt-login-page .message,
.fgt-login-page .error,
.fgt-login-page .success,
.fgt-login-page .notice,
.fgt-login-page #login_error,
.fgt-login-page .login .message {
	text-align: center !important;
	margin: 0 auto 1rem !important;
	display: block !important;
	width: 100% !important;
	box-sizing: border-box !important;
}

/* Links or buttons inside messages should be centered */
.fgt-login-page .message a,
.fgt-login-page .error a,
.fgt-login-page .notice a {
	display: inline-block;
	margin: 0.25rem auto 0 !important;
}

/* Poor data quality warning styling */
.fgt-poor-data-warning {
	background-color: #fff3cd !important;
	border-left: 4px solid #f0ad4e !important;
	color: #856404 !important;
	padding: 1rem !important;
	margin-bottom: 1.5rem !important;
	border-radius: 4px;
}

.fgt-poor-data-warning p {
	margin: 0 !important;
}

.fgt-poor-data-warning a {
	color: #664d03 !important;
	text-decoration: underline !important;
	font-weight: 600 !important;
}

.fgt-poor-data-warning a:hover {
	color: #523e02 !important;
}

/* Reauth message styling inside the branded login card */
.fgt-login-page .fgt-reauth-message {
	text-align: center;
	margin: 0 0 1rem;
	padding: 0.5em 1em;
	border-radius: 4px;
	color: var(--fgt-black, #111);
	font-weight: 600;
}

/* When rendering member views (register, login, reset, request), hide the theme page title to avoid duplicates */
.fgt-register-view .entry-title,
.fgt-register-view .page-title,
.fgt-register-view h1.entry-title,
.fgt-register-view .post-title,
.fgt-login-view .entry-title,
.fgt-login-view .page-title,
.fgt-login-view h1.entry-title,
.fgt-login-view .post-title,
.fgt-reset-view .entry-title,
.fgt-reset-view .page-title,
.fgt-reset-view h1.entry-title,
.fgt-reset-view .post-title,
.fgt-request-view .entry-title,
.fgt-request-view .page-title,
.fgt-request-view h1.entry-title,
.fgt-request-view .post-title { display: none !important; }

/* Fallback selectors: some themes render a plain h1 or page header without
	the common .entry-title class. Hide plain h1/page header inside the
	document for members pages to avoid duplicate headings. */
.fgt-register-view h1,
.fgt-login-view h1,
.fgt-reset-view h1,
.fgt-request-view h1,
body.fgt-profile-page h1,
body.fgt-profile-page .page-header h1,
body.fgt-profile-page .entry-header h1,
body.fgt-profile-page .site-main h1,
.fgt-profile-view h1 { display: none !important; }

/* Profile view: hide the big WP page title and center profile container */
.fgt-profile-view ~ .entry-header .entry-title, .fgt-profile-view .entry-header .entry-title { display: none !important; }
/* When we mark the body, hide the theme page title/header reliably */
body.fgt-profile-page .entry-header .entry-title,
body.fgt-profile-page .page-title,
.fgt-profile-view .fgt-profile-layout { max-width: 980px; margin: 18px auto; }
/* Extra high-specificity selectors to cover a range of theme title containers */
body.fgt-profile-page[data-fgt-profile='1'] .entry-header .entry-title,
body.fgt-profile-page[data-fgt-profile='1'] .post-title,
body.fgt-profile-page[data-fgt-profile='1'] .page-title,
body.fgt-profile-page[data-fgt-profile='1'] .page-header .page-title,
body.fgt-profile-page[data-fgt-profile='1'] .site-main .entry-title,
body.fgt-profile-page[data-fgt-profile='1'] h1.entry-title { display: none !important; }
.fgt-profile-view .fgt-profile-layout { max-width: 980px; margin: 18px auto; }
.fgt-profile-view .fgt-profile-layout { max-width: 1160px; margin: 18px auto; }
.fgt-profile-top { display: flex; gap: 20px; align-items: flex-start; }
.fgt-profile-heading-wrap { width: 100%; text-align: center; margin-bottom: 8px; }
.fgt-profile-heading { margin: 0 0 8px 0; font-size: 1.6rem; }
.fgt-profile-left { flex: 1 1 68%; }
.fgt-profile-right { flex: 0 0 360px; }
.fgt-section-title { color: var(--fgt-primary-color); margin-top: 0; }
.fgt-profile-rows { margin-top: 10px; }
.fgt-profile-row { display: flex; padding: 12px 0; border-bottom: 1px solid rgba(0,0,0,0.04); }
.fgt-form-label { width: 140px; font-weight: 600; color: #666; }
.fgt-form-value { flex: 1; color: #222; }
.fgt-profile-actions-right { text-align: right; margin-top: 12px; }
.fgt-profile-edit-form { display: none; }
/* When the profile container is in editing state, show the edit form and hide static rows. */
.fgt-member-profile.editing .fgt-profile-edit-form { display: block !important; }
.fgt-member-profile.editing .fgt-profile-rows { display: none !important; }

/* Handicaps box - green border box matching original design */
.fgt-handicaps-box {
	border: 1.5px solid var(--fgt-primary-color, #377A00);
	background: var(--fgt-white, #fff);
	border-radius: 8px;
	padding: 1.25rem 1.5rem;
	min-height: 260px;
	display: flex;
	flex-direction: column;
	box-shadow: 0 2px 16px rgba(0,0,0,0.10);
}
.fgt-handicaps-box h4 { 
	margin: 0 0 1rem 0; 
	text-align: center; 
	color: var(--fgt-primary-color); 
	padding-top: 4px; 
}
.fgt-handicaps-inner { 
	flex: 1; 
	display: flex; 
	flex-direction: column;
}
.fgt-handicap-row {
	display: flex;
	padding: 10px 0;
	border-bottom: 1px solid rgba(0,0,0,0.06);
}
.fgt-handicap-row:last-child {
	border-bottom: none;
}
.fgt-hcp-label {
	width: 160px;
	font-weight: 600;
	color: #555;
	font-size: 14px;
}
.fgt-hcp-value {
	flex: 1;
	color: #222;
	font-size: 14px;
	text-align: right;
}
.fgt-main-handicap .fgt-hcp-label {
	font-weight: 700;
	color: #333;
}
.fgt-main-handicap.fgt-custom-hcp {
	margin-top: 12px;
}
.fgt-sub-handicap + .fgt-main-handicap.fgt-custom-hcp {
	padding-top: 12px;
	border-top: 1px solid rgba(0,0,0,0.06);
}
.fgt-main-handicap.fgt-custom-hcp:last-child {
	margin-bottom: 12px;
}
.fgt-sub-handicap {
	margin: 0 -1.5rem;
	padding: 6px 1.5rem;
	border-bottom: none;
}
.fgt-sub-handicap .fgt-hcp-label {
	font-weight: 500;
	color: #666;
	font-size: 12px;
	width: 200px;
}
.fgt-sub-handicap .fgt-hcp-value {
	font-size: 12px;
}
.fgt-indent {
	padding-left: 16px;
	position: relative;
}
.fgt-indent:before {
	content: "↳";
	position: absolute;
	left: 0;
	top: 0;
	color: #999;
	font-size: 14px;
}
.fgt-percentage {
	color: #666;
	font-size: 0.9em;
	font-weight: 500;
}
.fgt-no-data {
	color: #999;
	font-style: italic;
	font-weight: normal;
}
.fgt-section-break { border: 0; height: 1px; background: rgba(0,0,0,0.06); margin: 18px 0; }
.fgt-membership-details { padding: 8px 0; }
.fgt-membership-items { display:flex; gap: 18px; flex-wrap:wrap; justify-content: space-between; }
.fgt-membership-item { padding: 8px 12px; border-radius: 6px; flex: 1 1 0; text-align: center; }
.fgt-purchase-list { margin-top: 12px; }
.fgt-payments-table { width: 100%; border-collapse: collapse; }
.fgt-payments-table thead th { text-align: center; padding: 8px;  }
.fgt-payments-table tbody td { text-align: center; padding: 8px; border-top: 1px solid rgba(0,0,0,0.04); }
.fgt-empty { color: #666; padding: 12px; }

@media (max-width: 820px) {
	.fgt-profile-top { flex-direction: column; }
	.fgt-profile-right { width: 100%; }
	.fgt-form-label { width: 140px; }
}

/* Small spinner for inline save actions */
.fgt-save-spinner{
	display: inline-block;
	width: 1em;
	height: 1em;
	vertical-align: text-bottom;
	margin-left: 0.5em;
	border-radius: 50%;
	border: 2px solid transparent;
	border-top-color: var(--fgt-accent, #2b7cff);
	animation: fgt-spin 0.8s linear infinite;
}
.fgt-save-spinner.hidden{ display: none; }
@keyframes fgt-spin{ to { transform: rotate(360deg); } }

/* Payment logs table styling (moved from inline styles in PaymentLogs.php).
	 Admin-specific styles belong in an admin-only stylesheet. */

/* Profile heading spacing and responsive sizing (moved from template inline styles) */
.fgt-profile-heading-wrap { text-align: center; margin-top: 18px; margin-bottom: 24px; }
.fgt-profile-heading { margin: 0; font-size: 1.6rem; line-height: 1.05; }
@media (max-width: 800px) {
	.fgt-profile-heading { font-size: 1.4rem; }
	.fgt-profile-heading-wrap { margin-top: 8px; margin-bottom: 16px; }
}

/* ========================================================================
 * Membership Request Form Styles (migrated from request-form.css and inline styles)
 * ======================================================================== */
.fgt-membership-request {
	max-width: 960px;
	margin: 0 auto;
	padding: 2em 1em;
}
.fgt-membership-request h2 {
	text-align: center;
	color: var(--fgt-primary-color);
	margin-bottom: 1em;
}
#fgt-request-stage-1 {
	text-align: center;
}
.fgt-request-intro {
	text-align: center;
	margin: 0 auto 2em;
	max-width: 600px;
}
.fgt-request-options {
	display: flex;
	flex-wrap: wrap;
	gap: 2em;
	justify-content: center;
	margin: 0 auto;
}
.fgt-request-option {
	flex: 1 1 300px;
	min-width: 280px;
	max-width: 400px;
	cursor: pointer;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.fgt-request-option:hover {
	transform: translateY(-4px);
	box-shadow: 0 4px 20px rgba(0,0,0,0.15);
}
.fgt-option-content {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1em;
}
.fgt-pdf-icon,
.fgt-form-icon {
	color: var(--fgt-primary-color);
	margin: 0.5em 0;
}
.fgt-request-option p {
	margin: 0 0 1em;
	color: #666;
	min-height: 3em;
}
.fgt-request-option .button {
	margin-top: auto;
}
#fgt-request-stage-2 {
	max-width: 760px;
	margin: 0 auto;
	text-align: left;
}
.fgt-form-actions {
	display: flex;
	gap: 1em;
	justify-content: flex-end;
	margin-top: 2em;
	padding-top: 1em;
	border-top: 1px solid rgba(0,0,0,0.1);
}

/* Request form responsive adjustments */
@media (max-width: 640px) {
	.fgt-request-options {
		flex-direction: column;
		align-items: center;
	}
	.fgt-request-option {
		max-width: none;
		width: 100%;
	}
}
@media (max-width: 480px) {
	.fgt-profile-heading { font-size: 1.2rem; }
}

/* Contact preferences checkboxes styling */
.fgt-contact-preferences {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	margin-top: 4px;
}
.fgt-checkbox-label {
	display: flex;
	align-items: center;
	cursor: pointer;
	-webkit-user-select: none;
	user-select: none;
}
.fgt-checkbox-label input[type="checkbox"] {
	margin: 0 8px 0 0;
	width: 18px;
	height: 18px;
	cursor: pointer;
}
.fgt-checkbox-label span {
	font-size: 15px;
	color: var(--fgt-black);
}

/* Membership CTA and Renewal Button Styling */
.fgt-membership-cta {
	margin-top: 1.5rem;
	padding: 1.5rem;
	background: #f9f9f9;
	border: 1px solid #e0e0e0;
	border-radius: 8px;
	text-align: center;
}

.fgt-renewal-cta {
	background: #f0f7ff;
	border-color: var(--fgt-primary-color);
}

.fgt-membership-cta .button {
	font-size: 1.05em;
	padding: 12px 28px;
	min-width: 180px;
}

.fgt-renewal-cta .description {
	max-width: 400px;
	margin-left: auto;
	margin-right: auto;
}
