/* Fabrica Content Payments - Paywall Styles */
/* Note: shared.css is enqueued separately */

/* ============================================
   Paywall Block
   ============================================ */
.fcp-paywall {
	margin: 24px 0;
	padding: 24px;
	background: #fff;
	border: 1px solid var(--fcp-border);
	border-radius: var(--fcp-radius);
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
	font-family: sans-serif;
}
.fcp-paywall__login-section {
		margin-bottom: 24px;
	}
.fcp-paywall__prompt {
		margin: 0 0 16px 0;
		font-size: 20px;
		font-weight: 600;
		color: var(--fcp-text);
		text-align: center;
	}
.fcp-paywall__status {
		margin: 0 0 16px 0;
		font-size: 14px;
		color: var(--fcp-text-muted);
	}
.fcp-paywall__login-form {
		display: flex;
		flex-wrap: wrap;
		gap: 12px;
		justify-content: center;
	}
.fcp-paywall__login-form input {
			flex: 1;
			min-width: 150px;
			padding: 12px;
			font-family: inherit;
			font-size: 16px;
			border: 2px solid var(--fcp-border);
			border-radius: var(--fcp-radius-sm);
			box-sizing: border-box;
			transition: border-color 0.2s;
		}
.fcp-paywall__login-form input:focus {
				border-color: var(--fcp-primary);
				outline: none;
			}
.fcp-paywall__section {
		margin: 20px 0;
	}
.fcp-paywall__section-title {
		margin: 0 0 12px 0;
		font-size: 14px;
		font-weight: 600;
		color: var(--fcp-text-muted);
		text-transform: uppercase;
		letter-spacing: 0.5px;
		text-align: center;
	}
.fcp-paywall__actions {
		display: grid;
		grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
		gap: 10px;
	}
/* Option buttons use shared .fcp-option-btn styles */
.fcp-paywall__submit {
		display: block;
		padding: 14px 24px;
		margin: 0 auto;
		font-family: inherit;
		font-size: 16px;
		font-weight: 600;
		color: #fff;
		background: var(--fcp-success);
		border: none;
		border-radius: var(--fcp-radius-sm);
		cursor: pointer;
		transition: background 0.2s, opacity 0.2s;
	}
.fcp-paywall__submit:hover:not(:disabled) {
			background: var(--fcp-success-hover);
		}
.fcp-paywall__submit:disabled {
			opacity: 0.6;
			cursor: not-allowed;
		}
.fcp-paywall__checkout {
		padding-top: 20px;
		border-top: 1px solid var(--fcp-border);
	}
.fcp-paywall__form-row {
		margin-bottom: 16px;
	}
.fcp-paywall__form-row label {
			display: block;
			font-size: 13px;
			font-weight: 500;
			color: #333;
			margin-bottom: 6px;
		}
.fcp-paywall__form-row input[type="email"],
		.fcp-paywall__form-row input[type="text"],
		.fcp-paywall__form-row input[type="password"] {
			width: 100%;
			padding: 12px;
			font-family: inherit;
			font-size: 16px;
			border: 2px solid var(--fcp-border);
			border-radius: var(--fcp-radius-sm);
			box-sizing: border-box;
			transition: border-color 0.2s;
		}
.fcp-paywall__form-row input[type="email"]:focus, .fcp-paywall__form-row input[type="text"]:focus, .fcp-paywall__form-row input[type="password"]:focus {
				border-color: var(--fcp-primary);
				outline: none;
			}
.fcp-paywall__card-element {
		padding: 14px 12px;
		border: 2px solid var(--fcp-border);
		border-radius: var(--fcp-radius-sm);
		background: #fff;
		transition: border-color 0.2s;
	}
.fcp-paywall__card-element.StripeElement--focus {
			border-color: var(--fcp-primary);
		}
.fcp-paywall__notice {
		padding: 12px 16px;
		margin-bottom: 16px;
		font-size: 13px;
		line-height: 1.5;
		border-radius: var(--fcp-radius-sm);
	}
.fcp-paywall__notice p {
			margin: 0;
		}
.fcp-paywall__notice--warning {
			background: var(--fcp-warning-bg);
			border: 1px solid var(--fcp-warning-border);
			color: var(--fcp-warning-text);
		}
.fcp-paywall__notice--info {
			background: var(--fcp-info-bg, #e7f3ff);
			border: 1px solid var(--fcp-info-border, #b3d7ff);
			color: var(--fcp-info-text, #004085);
		}
/* Checkout form (injected by JS) */
.fcp-paywall__form {
		margin-top: 20px;
	}
.fcp-paywall__form-row-group {
		display: flex;
		gap: 12px;
		margin-bottom: 16px;
	}
.fcp-paywall__form-row-group .fcp-paywall__form-row {
			flex: 1;
			margin-bottom: 0;
		}
.fcp-paywall__selected-amount {
		font-size: 24px;
		font-weight: 700;
		color: var(--fcp-success);
		text-align: center;
		margin-bottom: 12px;
	}
.fcp-paywall__summary {
		margin-bottom: 20px;
		text-align: center;
		font-size: 14px;
		color: var(--fcp-text-muted);
	}
.fcp-paywall__summary p {
			margin: 0;
		}
.fcp-paywall__summary strong {
			color: var(--fcp-text);
		}
.fcp-paywall__loading {
		padding: 20px;
		text-align: center;
		color: var(--fcp-text-muted);
		font-size: 14px;
	}
.fcp-paywall__spinner {
		display: inline-block;
		width: 16px;
		height: 16px;
		border: 2px solid rgba(255, 255, 255, 0.3);
		border-top-color: #fff;
		border-radius: 50%;
		animation: fcp-spin 0.8s linear infinite;
	}

@keyframes fcp-spin {
	to {
		transform: rotate(360deg);
	}
}

/* Accessible visually-hidden text (WP fallback) */
.screen-reader-text {
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	width: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
}

/* ============================================
   Account Block/Shortcode
   ============================================ */
.fcp-account {
	margin: 24px auto;
	padding: 24px;
	background: #fff;
	border: 1px solid var(--fcp-border);
	border-radius: var(--fcp-radius);
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}
.fcp-account__heading {
		margin: 0 0 20px 0;
		font-size: 20px;
		font-weight: 600;
		color: var(--fcp-text);
		text-align: center;
	}
.fcp-account__login-form .fcp-account__field {
			margin-bottom: 16px;
		}
.fcp-account__login-form .fcp-account__field label {
				display: block;
				font-size: 13px;
				font-weight: 500;
				color: #333;
				margin-bottom: 6px;
			}
.fcp-account__login-form .fcp-account__field input {
				width: 100%;
				padding: 12px;
				font-family: inherit;
				font-size: 16px;
				border: 2px solid var(--fcp-border);
				border-radius: var(--fcp-radius-sm);
				box-sizing: border-box;
				transition: border-color 0.2s;
			}
.fcp-account__login-form .fcp-account__field input:focus {
					border-color: var(--fcp-primary);
					outline: none;
				}
.fcp-account__actions {
		margin-top: 16px;
	}
.fcp-account__button {
		display: inline-block;
		padding: 14px 24px;
		font-family: inherit;
		font-size: 16px;
		font-weight: 600;
		line-height: 1;
		text-align: center;
		text-decoration: none;
		background: var(--fcp-primary);
		color: #fff;
		border: none;
		border-radius: var(--fcp-radius-sm);
		cursor: pointer;
		transition: background-color 0.2s;
	}
.fcp-account__button:hover,
		.fcp-account__button:focus {
			background: var(--fcp-primary-hover);
			color: #fff;
		}
.fcp-account__button--primary {
			width: 100%;
		}
.fcp-account__message {
		padding: 12px 16px;
		margin-top: 16px;
		font-size: 14px;
		background: #fff;
		border: 1px solid var(--fcp-border);
		border-radius: var(--fcp-radius-sm);
	}
.fcp-account__message--error {
			background: var(--fcp-error-bg);
			border-color: var(--fcp-error-border);
			color: var(--fcp-error-text);
		}
.fcp-account__message[hidden] {
			display: none;
		}
.fcp-account__reset-link {
		margin-top: 20px;
		text-align: center;
		font-size: 14px;
	}
.fcp-account__reset-link a {
			color: var(--fcp-primary);
			text-decoration: none;
		}
.fcp-account__reset-link a:hover {
				text-decoration: underline;
			}
/* Logged in view */
.fcp-account__header {
		margin-bottom: 20px;
		padding-bottom: 16px;
		border-bottom: 1px solid var(--fcp-border);
	}
.fcp-account__user {
		margin: 0;
		font-size: 16px;
		text-align: center;
		color: var(--fcp-text);
	}
.fcp-account__subscription {
		margin-bottom: 20px;
		padding: 16px;
		background: var(--fcp-bg-light);
		border: 1px solid var(--fcp-border);
		border-radius: var(--fcp-radius-sm);
		text-align: center;
	}
.fcp-account__status {
		margin: 0 0 12px 0;
		font-size: 14px;
	}
.fcp-account__status--active {
			color: var(--fcp-success);
			font-weight: 600;
		}
.fcp-account__entitlements {
		margin-bottom: 20px;
	}
.fcp-account__section-heading {
		margin: 0 0 12px 0;
		font-size: 14px;
		font-weight: 600;
		color: var(--fcp-text);
	}
.fcp-account__section {
		margin-bottom: 12px;
		padding: 16px;
		background: var(--fcp-bg-light);
		border: 1px solid var(--fcp-border);
		border-radius: var(--fcp-radius-sm);
	}
.fcp-account__section h5 {
			margin: 0 0 8px 0;
			font-size: 13px;
			font-weight: 500;
			color: var(--fcp-text-muted);
		}
.fcp-account__list {
		margin: 0;
		padding: 0;
		list-style: none;
	}
.fcp-account__list li {
			padding: 4px 0;
			font-size: 14px;
		}
.fcp-account__list li a {
				color: var(--fcp-primary);
				text-decoration: none;
			}
.fcp-account__list li a:hover {
					text-decoration: underline;
				}
.fcp-account__empty {
		color: var(--fcp-text-muted);
		font-size: 14px;
		font-style: italic;
		text-align: center;
	}
/* Contributions section */
.fcp-account__contributions {
		margin-bottom: 20px;
	}
.fcp-account__campaign {
		margin-bottom: 16px;
		padding: 12px 16px;
		background: var(--fcp-bg-light);
		border: 1px solid var(--fcp-border);
		border-radius: var(--fcp-radius-sm);
	}
.fcp-account__campaign-title {
		margin: 0 0 8px 0;
		font-size: 14px;
		font-weight: 600;
		color: var(--fcp-text);
	}
.fcp-account__contribution-amount {
		font-weight: 600;
		color: var(--fcp-success);
		margin-right: 8px;
	}
.fcp-account__contribution-date {
		color: var(--fcp-text-muted);
		font-size: 13px;
	}
.fcp-account__contribution-tier {
		color: var(--fcp-text-muted);
		font-size: 13px;
		font-style: italic;
		margin-left: 4px;
	}
.fcp-account__access-note {
		color: var(--fcp-text-muted);
		font-size: 12px;
		margin-left: 8px;
	}
.fcp-account__expiry {
		color: var(--fcp-text-muted);
		font-size: 12px;
		margin-left: 8px;
	}
.fcp-account__expiry--expired {
			color: var(--fcp-error-text);
		}
.fcp-account__item--expired a {
		color: var(--fcp-text-muted);
	}
.fcp-account__footer {
		display: flex;
		justify-content: center;
		gap: 24px;
		margin-top: 20px;
		padding-top: 16px;
		border-top: 1px solid var(--fcp-border);
	}
.fcp-account__link {
		color: var(--fcp-text-muted);
		font-size: 14px;
		text-decoration: none;
	}
.fcp-account__link:hover {
			color: var(--fcp-primary);
			text-decoration: underline;
		}

