/* Runnymede Form Styles */
/* Cache buster: 2026-01-12-v3.1 */

.runnymede-form-wrapper {
	max-width: 1260px;
	margin: 2rem auto;
	padding: 32px;
	border: 1px solid #ccc;
	border-radius: 8px;
	font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
	font-size: 16px;
	color: #333;
}

.runnymede-form {
	background: #fff;
	border-radius: 8px;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
	padding: 2rem;
}

/* Sections */
.runnymede-section {
	margin-bottom: 2rem;
}

.runnymede-section:last-child {
	margin-bottom: 1rem;
}

.section-title {
	font-size: 1.5rem;
	font-weight: 600;
	margin: 0 0 1.5rem 0;
	color: #111;
	border-bottom: 2px solid #e5e7eb;
	padding-bottom: 0.75rem;
}

/* Membership Type Selector */
.membership-type-selector {
	text-align: center;
	margin-bottom: 2rem;
}

.membership-type-selector label {
	display: block;
	font-weight: 600;
	margin-bottom: 1rem;
	color: #111;
}

.selector-buttons {
	display: flex;
	gap: 1rem;
	justify-content: center;
	flex-wrap: wrap;
}

.membership-type-btn {
	padding: 0.75rem 1.5rem;
	border: 2px solid #d1d5db;
	background: #f9fafb;
	border-radius: 6px;
	font-weight: 600;
	font-size: 1rem;
	cursor: pointer;
	transition: all 0.3s ease;
	color: #6b7280;
}

.membership-type-btn:hover {
	border-color: #9ca3af;
	background: #f3f4f6;
}

.membership-type-btn[data-active] {
	border-color: #16a34a;
	background: #e7f6ea;
	color: #16a34a;
}

/* Form Fields */
.form-fields {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
	gap: 1.5rem 1rem;
}

.form-group {
	display: flex;
	flex-direction: column;
}

.form-group.conditional-field {
	display: none;
}

.form-group.conditional-field.active {
	display: flex;
}

.form-group label {
	font-weight: 600;
	margin-bottom: 0.5rem;
	color: #111;
	font-size: 0.95rem;
}

.form-group label .required {
	color: #ef4444;
	margin-left: 0.25rem;
}

.form-group input[type="text"],
.form-group input[type="email"],
.form-group input[type="tel"],
.form-group input[type="password"],
.form-group input[type="date"],
.form-group select,
.form-group textarea {
	padding: 0.75rem;
	border: 1px solid #d1d5db;
	border-radius: 6px;
	font-size: 1rem;
	font-family: inherit;
	transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

.form-group input[type="text"]:focus,
.form-group input[type="email"]:focus,
.form-group input[type="tel"]:focus,
.form-group input[type="password"]:focus,
.form-group input[type="date"]:focus,
.form-group select:focus,
.form-group textarea:focus {
	outline: none;
	border-color: #16a34a;
	box-shadow: 0 0 0 3px rgba(22, 163, 74, 0.1);
}

/* Ensure date input calendar picker is visible and clickable */
input[type="date"] {
	-webkit-appearance: textfield;
	appearance: textfield;
	cursor: pointer;
}

input[type="date"]::-webkit-calendar-picker-indicator {
	cursor: pointer;
	border-radius: 4px;
	margin-right: 2px;
	opacity: 1;
	filter: invert(0.8);
	width: 1.25rem;
	height: 1.25rem;
}

.form-group select {
	cursor: pointer;
	appearance: none;
	background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");
	background-repeat: no-repeat;
	background-position: right 0.75rem center;
	background-size: 1.5em 1.5em;
	padding-right: 2.5rem;
}

.form-group textarea {
	resize: vertical;
	min-height: 100px;
}

.form-group input[type="checkbox"] {
	width: 1.25rem;
	height: 1.25rem;
	cursor: pointer;
	accent-color: #16a34a;
}

/* Membership Section Visibility */
.membership-section {
	border: 1px solid #e5e7eb;
	border-radius: 8px;
	padding: 1.5rem;
	background: #f9fafb;
}

.membership-section[style*="display: none"] {
	display: none !important;
}

/* Full-width fields */
.form-group.form-street_address,
.form-group.form-apartment,
.form-group.form-organization_name,
.form-group.form-organization_email,
.form-group.form-contact_email,
.form-group.form-billing_address,
.form-group.form-custom_password {
	grid-column: 1 / -1;
}

/* Stripe fields */
.form-group.form-card_number,
.form-group.form-billing_address {
	grid-column: 1 / -1;
}

.form-group.form-expiration_date,
.form-group.form-security_code {
	grid-column: span 1;
}

/* Submit Button */
.runnymede-submit-btn {
	width: 100%;
	padding: 1rem;
	background: #16a34a;
	color: #fff;
	border: none;
	border-radius: 6px;
	font-size: 1.1rem;
	font-weight: 600;
	cursor: pointer;
	transition: background 0.3s ease;
	margin-top: 1rem;
}

.runnymede-submit-btn:hover {
	background: #15803d;
}

.runnymede-submit-btn:disabled {
	background: #d1d5db;
	cursor: not-allowed;
}

/* Responsive */
@media (max-width: 768px) {
	.runnymede-form {
		padding: 1.5rem;
	}

	.form-fields {
		grid-template-columns: 1fr;
	}

	.selector-buttons {
		flex-direction: column;
	}

	.membership-type-btn {
		width: 100%;
	}

	.section-title {
		font-size: 1.25rem;
	}
}

/* Loading/Error States */
.form-group.error input,
.form-group.error select,
.form-group.error textarea {
	border-color: #ef4444;
}

.form-group.error-message {
	color: #ef4444;
	font-size: 0.875rem;
	margin-top: 0.25rem;
}

/* Disable Chrome/Browser Autocomplete Dropdown */
/* Prevents browser's autocomplete overlay from appearing over Google Places suggestions */
input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
input:-webkit-autofill:active {
	-webkit-box-shadow: 0 0 0 30px white inset !important;
	box-shadow: 0 0 0 30px white inset !important;
	-webkit-text-fill-color: #333 !important;
}

/* Override autofill text color */
input:-webkit-autofill {
	-webkit-text-fill-color: #333 !important;
}

/* Hide browser-generated suggestion icons */
input::-webkit-contacts-auto-fill-button {
	display: none !important;
}

/* Suppress Chrome's saved values dropdown specifically */
input[autocomplete="new-password"]:-webkit-autofill {
	-webkit-box-shadow: 0 0 0 1000px white inset !important;
}

/* CRITICAL: Hide Chrome's native address autofill dropdown */
/* This targets the browser's internal autocomplete suggestions popup */
input:-webkit-autofill ~ * {
	-webkit-appearance: none !important;
}

/* Block pointer events on Chrome's autocomplete menu (the datalist that appears) */
datalist {
	display: none !important;
	pointer-events: none !important;
}

input::-webkit-contacts-auto-fill-button {
	display: none !important;
}

/* Force input to not show autocomplete suggestions at all */
input[type="text"],
input[type="search"] {
	/* Prevent WebKit autocomplete styles from applying */
	-webkit-autofill: none;
	-webkit-autofill-selected-background-color: transparent !important;
}

/* Most aggressive: hide any dropdown that appears over our input */
/* This uses a pseudo-element approach to block the dropdown visually */
input#search_address::before,
input#organization_search_address::before {
	content: '';
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	height: 500px;
	z-index: 999998;
	pointer-events: auto;
	background: transparent;
}

/* Google Places PAC container styling - ensure it appears above browser dropdown */
.pac-container {
	z-index: 999999 !important;
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2) !important;
}

.pac-item {
	padding: 0.5rem 0.75rem !important;
	line-height: 1.5 !important;
	cursor: pointer !important;
	font-size: 1rem !important;
}

.pac-item:hover,
.pac-item-selected {
	background-color: #e6f2ff !important;
}

.pac-item-query {
	color: #111 !important;
	font-weight: 500 !important;
}

.runnymede-form.loading .runnymede-submit-btn {
	opacity: 0.6;
	pointer-events: none;
}

/* Success Message */
.runnymede-message {
	padding: 1rem;
	border-radius: 6px;
	margin-bottom: 1.5rem;
	font-weight: 500;
}

.runnymede-message.success {
	background: #d1fae5;
	color: #065f46;
	border-left: 4px solid #10b981;
}

.runnymede-message.error {
	background: #fee2e2;
	color: #991b1b;
	border-left: 4px solid #ef4444;
}

/* Plan Tabs - Step 1: Basic Card Layout */
.plan-tabs {
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	gap: 0.75rem;
	margin-bottom: 1.5rem;
}

.plan-tab-button {
	padding: 0.75rem;
	border: 1px solid #ddd;
	background: white;
	border-radius: 6px;
	cursor: pointer;
	font-size: 0.8rem;
	text-align: center;
	display: flex;
	flex-direction: column;
	transition: all 0.3s ease;
	min-height: auto;
	width: 100%;
	box-sizing: border-box;
	overflow: hidden;
}

.plan-tab-button:hover {
	border-color: #0073aa;
	background-color: #f0f8ff;
	color: #0073aa;
}

/* Active Tab Styling */
.plan-tab-button.active {
	background-color: #0073aa;
	color: white;
	border-color: #0073aa;
	box-shadow: inset 0 0 0 1px rgba(0, 115, 170, 0.2);
}

.plan-tab-button.active .plan-tab-button-title {
	color: white;
	font-weight: 600;
}

.plan-tab-button.active .plan-tab-button-description {
	color: rgba(255, 255, 255, 0.95);
}

.plan-tab-button.active .plan-tab-button-price {
	color: white;
	font-weight: 600;
}

/* Plan Tab Text Styling */
.plan-tab-button-wrapper {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	height: 100%;
	justify-content: space-between;
	align-items: center;
	word-wrap: break-word;
	overflow-wrap: break-word;
	min-width: 0;
}

.plan-tab-button-title {
	font-weight: 600;
	font-size: 0.75rem;
	color: #666;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	line-height: 1.2;
}

.plan-tab-button.active .plan-tab-button-title {
	color: white;
	font-weight: 600;
}

.plan-tab-button-description {
	font-size: 0.7rem;
	color: #666 !important;
	line-height: 1.3;
	flex-grow: 1;
	display: block;
	word-wrap: break-word;
	overflow-wrap: break-word;
	white-space: normal;
	font-weight: 400;
}

.plan-tab-button-description.show {
	display: block;
}

.plan-tab-button.active .plan-tab-button-description {
	display: block;
	color: #fff !important;
}

.plan-tab-button-price {
	font-size: 0.8rem;
	font-weight: 600;
	color: #666;
	margin-top: 0.25rem;
}

.plan-tab-button.active .plan-tab-button-price {
	color: white;
}

/* Plan Tab Content Area */
.plan-tab-content-area {
	margin-bottom: 1.5rem;
	padding: 24px;
	background-color: #f9f9f9;
	border: 1px solid #ddd;
	border-radius: 8px;
}

.plan-tab-content {
	display: none;
}

.plan-tab-content.active {
	display: block;
	animation: fadeIn 0.3s ease-in;
}

/* Plan Fields Grid - 3 Columns */
.plan-fields-section {
	margin-bottom: 1.5rem;
}

.plan-fields-section h4 {
	font-size: 1.1rem;
	font-weight: 600;
	color: #333;
	margin: 0 0 1rem 0;
}

.plan-fields-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1rem;
	margin-bottom: 1rem;
}

.plan-description {
	background-color: #fff;
	border-left: 4px solid #0073aa;
	padding: 1rem .5rem;
	margin-bottom: 1.5rem;
	border-radius: 4px;
	font-size: 0.95rem;
	color: #333f;
	line-height: 1.5;
}

.plan-description p {
	margin: 0;
}

@keyframes fadeIn {
	from {
		opacity: 0;
	}
	to {
		opacity: 1;
	}
}

/* Responsive plan tabs */
@media (max-width: 1024px) {
	.plan-tabs {
		grid-template-columns: repeat(3, 1fr);
	}
	
	.plan-fields-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 768px) {
	.runnymede-form-wrapper .plan-tabs {
		display: flex !important;
		flex-direction: row !important;
		flex-wrap: nowrap !important;
		overflow-x: auto !important;
		gap: 0.75rem !important;
		scroll-snap-type: x mandatory;
		padding-bottom: 0.5rem;
		-webkit-overflow-scrolling: touch;
		grid-template-columns: none !important;
	}
	
	.runnymede-form-wrapper .plan-tab-button {
		flex: 0 0 60%;
		scroll-snap-align: start;
		text-align: left;
	}
	
	.runnymede-form-wrapper .plan-tab-button-wrapper {
		align-items: flex-start;
	}

	.runnymede-form-wrapper .plan-tab-button-description {
		display: -webkit-box;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 3;
		overflow: hidden;
	}
	
	.plan-fields-grid {
		grid-template-columns: 1fr;
	}
}

/* Grid Layout Classes */
.form-row-3-col {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	gap: 1rem;
	margin-bottom: 1rem;
}

.form-row-2-col {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem;
	margin-bottom: 1rem;
}

.form-row-full {
	display: grid;
	grid-template-columns: 1fr;
	margin-bottom: 1rem;
}

/* Membership Form Field Styles */
.membership-field {
	display: flex;
	flex-direction: column;
}

.membership-field label {
	display: block;
	margin-bottom: 0.5rem;
	font-weight: 600;
	color: #333;
}

.membership-field label span {
	color: red;
}

.membership-checkbox-field {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	margin: 1rem 0 1.25rem;
}

.membership-checkbox-field input[type="checkbox"] {
	width: 1.1rem;
	height: 1.1rem;
	cursor: pointer;
	accent-color: #16a34a;
}

.membership-checkbox-field label {
	margin: 0;
	font-weight: 700;
	color: #111827;
	font-size: 0.95rem;
}

.membership-checkbox-field {
	margin: 0 0 1.25rem;
}

.membership-checkbox-field input[type="checkbox"] {
	accent-color: #16a34a;
}

.membership-input,
.membership-field input,
.membership-field select,
.membership-field textarea {
	width: 100%;
	padding: 0.75rem;
	font-size: 1rem;
	border: 1px solid #ddd;
	border-radius: 4px;
	font-family: inherit;
	box-sizing: border-box;
	transition: border-color 0.3s ease;
}

.membership-input:focus,
.membership-field input:focus,
.membership-field select:focus,
.membership-field textarea:focus {
	outline: none;
	border-color: #16a34a;
	box-shadow: 0 0 0 3px rgba(22, 163, 74, 0.1);
}

.membership-input[readonly],
.membership-field input[readonly] {
	background-color: #f5f5f5;
}

/* Responsive for tablets and smaller */
@media (max-width: 768px) {
	.form-row-3-col {
		grid-template-columns: 1fr 1fr;
	}

	.form-row-2-col {
		grid-template-columns: 1fr;
	}
}

/* Responsive for mobile */
@media (max-width: 480px) {
	.form-row-3-col,
	.form-row-2-col {
		grid-template-columns: 1fr;
	}
}
/* Additional Membership Form Styles */
#membership-form {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}

#membership-form > h2 {
	margin-top: 0;
}

#membership-form > hr {
	border: none;
	border-top: 1px solid #ddd;
	margin: 0.5rem 0;
}

#individual-section h3,
#payment-section h3 {
	margin-top: 1.5rem;
	margin-bottom: 1rem;
	color: #333;
}

#payment-section > p {
	color: #666;
	margin-bottom: 1.5rem;
	font-size: 0.95rem;
}

#individual-section > p {
	margin-bottom: 1rem;
	color: #666;
	font-size: 0.95rem;
}

#card-errors {
	color: #fa755a;
	margin-bottom: 1rem;
	font-size: 0.9rem;
}

#membership-submit-btn {
	margin-top: 1.5rem;
	padding: 0.75rem;
	background-color: #0073aa;
	color: white;
	border: none;
	border-radius: 4px;
	cursor: pointer;
	font-size: 1rem;
	font-weight: 600;
	width: 100%;
	display: block !important;
	clear: both;
	position: relative;
	z-index: 10;
	transition: background-color 0.3s ease;
}

#membership-submit-btn:hover {
	background-color: #005a87;
}

#membership-submit-btn:disabled {
	background-color: #ccc;
	cursor: not-allowed;
}

/* Plan Descriptions Container */
.plan-descriptions {
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	gap: 1rem;
	margin-bottom: 2rem;
	background-color: #f5f5f5;
	padding: 1.5rem;
	border-radius: 8px;
}

.plan-description-card {
	padding: 1rem;
	background-color: white;
	border: 1px solid #ddd;
	border-radius: 6px;
	font-size: 0.85rem;
	line-height: 1.5;
	color: #333;
	display: flex;
	flex-direction: column;
	height: 100%;
}

.plan-description-card h4 {
	margin: 0 0 0.5rem 0;
	font-size: 0.95rem;
	color: #0073aa;
	font-weight: 700;
}

.plan-description-card p {
	margin: 0;
	flex-grow: 1;
}

.plan-description-card .price {
	font-weight: 700;
	color: #0073aa;
	margin-top: auto;
	padding-top: 0.5rem;
	border-top: 1px solid #eee;
}

@media (max-width: 1024px) {
	.plan-descriptions {
		grid-template-columns: 1fr 1fr;
	}
}

@media (max-width: 768px) {
	.plan-descriptions {
		grid-template-columns: 1fr;
		padding: 1rem;
	}

	.plan-description-card {
		font-size: 0.9rem;
	}

	.plan-description-card h4 {
		font-size: 1rem;
	}
}

/* Description Box Styles */
#description-box {
	background-color: #f0f8ff;
	border-left: 4px solid #0073aa;
	padding: 1rem;
	margin-bottom: 1.5rem;
	border-radius: 4px;
}

#description-title {
	font-weight: 700;
	color: #0073aa;
	margin-bottom: 0.5rem;
}

#description-text {
	color: #333;
	font-size: 0.95rem;
	line-height: 1.5;
}

/* Utility/Inline Styles - Now in CSS */
.runnymede-form-wrapper h2 {
	margin-top: 0;
}

.plan-tabs-container > label {
	display: block;
	margin-bottom: 1rem;
	font-weight: 600;
	font-size: 0.95rem;
}

.membership-field label {
	display: block;
	margin-bottom: 0.5rem;
	font-weight: 600;
}

.dropdown-relative {
	position: relative;
}

.clear-search-btn {
	position: absolute;
	right: 0.5rem;
	top: 50%;
	transform: translateY(-50%);
	background: none;
	border: none;
	padding: 0.5rem;
	cursor: pointer;
	color: #999;
	font-size: 1.2rem;
	display: none;
}

.clear-search-btn.visible {
	display: inline-block;
}

.law-school-dropdown {
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	background: white;
	border: 1px solid #ddd;
	border-top: none;
	border-radius: 0 0 4px 4px;
	max-height: 200px;
	overflow-y: auto;
	display: none;
	z-index: 1000;
}

.law-school-dropdown.active {
	display: block;
}

.membership-field.hidden {
	display: none;
}

#membership-form {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}

/* Section Headings */
#individual-section h3,
#payment-section h3 {
	margin-top: 1.5rem;
	margin-bottom: 1rem;
	color: #333;
}

/* Section intro text */
.section-intro {
	margin-bottom: 1rem;
	color: #666;
	font-size: 0.95rem;
}

/* Form dividers */
.form-divider {
	border: none;
	border-top: 1px solid #ddd;
	margin: 0.5rem 0;
}

/* Grid row layouts */
.form-row-3-col {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	gap: 1rem;
}

.form-row-2-col {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem;
}

.form-row-full {
	display: grid;
	grid-template-columns: 1fr;
}

/* Login fields */
.login-field {
	margin-bottom: 1rem;
}

.login-field small {
	color: #666;
	display: block;
	margin-top: 0.25rem;
}

/* Student type field */
.student-type-field {
	margin-bottom: 1.5rem;
}

/* Stripe elements styling */
.stripe-element {
	padding: 0.75rem;
	font-size: 1rem;
	border: 1px solid #ddd;
	border-radius: 4px;
	background-color: white;
}

.stripe-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem;
	margin-bottom: 1rem;
}

.card-errors {
	color: #fa755a;
	margin-bottom: 1rem;
	font-size: 0.9rem;
}

.billing-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem;
	margin-bottom: 1rem;
}

/* Submit button */
.submit-button {
	margin-top: 1.5rem;
	padding: 0.75rem;
	background-color: #0073aa;
	color: white;
	border: none;
	border-radius: 4px;
	cursor: pointer;
	font-size: 1rem;
	font-weight: 600;
	transition: background-color 0.3s ease;
}

.submit-button:hover {
	background-color: #005a87;
}

.submit-button:disabled {
	background-color: #999;
	cursor: not-allowed;
}

/* Dropdown styling */
.dropdown-option {
	padding: 0.75rem;
	border-bottom: 1px solid #eee;
	cursor: pointer;
	transition: background-color 0.2s;
}

.dropdown-option:hover {
	background-color: #f0f8ff;
}

.dropdown-no-results {
	padding: 0.75rem;
	color: #666;
	font-size: 0.9rem;
}

/* Responsive design for grid rows */
@media (max-width: 1024px) {
	.form-row-3-col {
		grid-template-columns: 1fr 1fr;
	}
	
	.billing-row {
		grid-template-columns: 1fr;
	}
	
	.stripe-row {
		grid-template-columns: 1fr;
	}
}

/* New class definitions for recently refactored markup */
.form-label {
	display: block;
	margin-bottom: 0.5rem;
	font-weight: 600;
}

.clear-search-btn-styled {
	position: absolute;
	right: 0.5rem;
	top: 50%;
	transform: translateY(-50%);
	background: none;
	border: none;
	padding: 0.5rem;
	cursor: pointer;
	color: #999;
	font-size: 1.2rem;
	display: none;
}

.clear-search-btn-styled.visible {
	display: inline-block;
}

.dropdown-menu {
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	background: white;
	border: 1px solid #ddd;
	border-top: none;
	border-radius: 0 0 4px 4px;
	max-height: 200px;
	overflow-y: auto;
	display: none;
	z-index: 1000;
}

.dropdown-menu.active {
	display: block;
}

.hidden {
	display: none !important;
}

.plan-grid-2col {
	display: grid !important;
	grid-template-columns: repeat(2, 1fr) !important;
	gap: 1.5rem 1rem !important;
	margin-bottom: 1rem !important;
}

/* Override display for hidden even with grid/flex - MUST come after .plan-grid-2col */
.hidden.plan-grid-2col,
.plan-grid-2col.hidden {
	display: none !important;
}

.plan-grid-2col .membership-field {
	display: block !important;
	grid-column: auto !important;
}

/* Desktop - ensure 2 columns */
@media (min-width: 769px) {
	.plan-grid-2col {
		grid-template-columns: repeat(2, 1fr) !important;
	}
}

.required-asterisk {
	color: red;
}

.optional-text {
	color: #999;
}

.membership-field-large {
	margin-bottom: 1.5rem;
}

.section-heading {
	margin-top: 1.5rem;
	margin-bottom: 1rem;
	color: #333;
}

.form-help-text {
	color: #666;
	display: block;
	margin-top: 0.25rem;
}

.form-divider-large {
	border: none;
	border-top: 1px solid #ddd;
	margin: 1.5rem 0;
}

.payment-section-heading {
	margin-top: 0;
	margin-bottom: 1rem;
	color: #333;
}

.payment-section-intro {
	color: #666;
	margin-bottom: 1.5rem;
	font-size: 0.95rem;
}

/* JavaScript-generated dropdown options */
.dropdown-option-rendered {
	padding: 0.75rem;
	border-bottom: 1px solid #eee;
	cursor: pointer;
	transition: background-color 0.2s;
}

.dropdown-option-rendered:hover {
	background-color: #f0f8ff;
}

.dropdown-no-results-text {
	padding: 0.75rem;
	color: #666;
	font-size: 0.9rem;
}

@media (max-width: 1024px) {
	.form-row-3-col {
		grid-template-columns: 1fr 1fr;
	}
	
	.billing-row {
		grid-template-columns: 1fr;
	}
	
	.stripe-row {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 768px) {
	.form-row-3-col,
	.form-row-2-col,
	.billing-row,
	.stripe-row {
		grid-template-columns: 1fr;
	}
	
	#individual-section h3,
	#payment-section h3 {
		font-size: 1.3rem;
	}
}

/* Loading Spinner Modal */
.membership-loading-modal {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background-color: rgba(0, 0, 0, 0.5);
	display: none;
	align-items: center;
	justify-content: center;
	z-index: 9999;
}

.membership-loading-modal[style*="display: flex"],
.membership-loading-modal.show {
	display: flex !important;
}

.membership-loading-content {
	background-color: #ffffff;
	border-radius: 12px;
	padding: 3rem 2rem;
	box-shadow: 0 10px 40px rgba(0, 0, 0, 0.2);
	text-align: center;
	animation: slideUp 0.3s ease-out;
}

@keyframes slideUp {
	from {
		opacity: 0;
		transform: translateY(20px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.membership-spinner {
	width: 60px;
	height: 60px;
	margin: 0 auto 1.5rem;
	border: 4px solid #f0f0f0;
	border-top: 4px solid #0073aa;
	border-radius: 50%;
	animation: spin 1s linear infinite;
}

@keyframes spin {
	0% {
		transform: rotate(0deg);
	}
	100% {
		transform: rotate(360deg);
	}
}

.membership-loading-text {
	font-size: 1.25rem;
	font-weight: 600;
	color: #111;
	margin: 0;
	letter-spacing: 0.5px;
}

/* Responsive Design - Mobile Portrait */
@media (max-width: 768px) {
	.runnymede-form-wrapper {
		max-width: 100%;
		margin: 1rem auto;
		padding: 16px;
	}

	.runnymede-form {
		padding: 1rem !important;
	}

	/* Target grid divs with plan-grid-2col class */
	.plan-grid-2col {
		grid-template-columns: 1fr !important;
	}

	/* Stack flex containers vertically */
	.membership-field > div[style*="display: flex"] {
		flex-direction: column !important;
		align-items: stretch !important;
	}

	/* Full width for flex items */
	div[style*="flex: 1"],
	input[style*="flex: 1"] {
		flex: 1 !important;
		width: 100% !important;
	}

	/* Form rows */
	.form-row-2-col,
	.form-row-3-col {
		grid-template-columns: 1fr !important;
	}

	.membership-field {
		margin-bottom: 1rem;
		grid-column: auto !important;
	}

	.section-title {
		font-size: 1.25rem;
		margin-bottom: 1rem;
	}

	.plan-tabs {
		flex-direction: row;
		flex-wrap: nowrap;
		overflow-x: auto;
		gap: 0.75rem;
		scroll-snap-type: x mandatory;
		padding-bottom: 0.5rem;
		-webkit-overflow-scrolling: touch;
	}

	.plan-tab-btn {
		border-radius: 4px 4px 0 0;
		width: 100%;
	}

	.plan-tab-button {
		flex: 0 0 85%;
		scroll-snap-align: start;
		text-align: left;
	}

	.plan-tab-button-wrapper {
		align-items: flex-start;
	}

	.plan-tab-button-description {
		display: -webkit-box;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 3;
		overflow: hidden;
	}
}
