/**
 * AC Member Frontend Style Guide Compliance.
 * Standard definitions based on styleguide.md.
 */

@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;600;700;800&family=Amiko:wght@400;600;700&display=swap');

:root {
	--ac-primary: #2E6741;
	--ac-primary-hover: #224d30;
	--ac-success: #4CAF50;
	--ac-text: #1C2421;
	--ac-text-muted: #555555;
	--ac-bg-neutral: #F5F7F6;
	--ac-border: #E0E4E2;
	--ac-white: #FFFFFF;
	
	--ac-font-primary: 'Montserrat', sans-serif;
	--ac-font-secondary: 'Amiko', sans-serif;
}

/* Base Widget Card */
.ac-member-widget {
	font-family: var(--ac-font-secondary);
	color: var(--ac-text);
	background: var(--ac-white);
	border: 1px solid var(--ac-border);
	border-radius: 10px;
	padding: 30px;
	box-shadow: 0 4px 15px rgba(28, 36, 33, 0.05);
	max-width: 700px;
	margin: 0 auto;
}

.ac-member-widget h2, 
.ac-member-widget h3 {
	font-family: var(--ac-font-primary);
	font-weight: 700;
	color: var(--ac-primary);
	margin-top: 0;
	margin-bottom: 20px;
}

.ac-member-eyebrow {
	font-family: var(--ac-font-primary);
	font-weight: 700;
	font-size: 11px;
	color: #8A9490;
	text-transform: uppercase;
	letter-spacing: 1px;
	display: block;
	margin-bottom: 8px;
}

/* Forms & Inputs styling */
.ac-member-form-group {
	margin-bottom: 20px;
}

.ac-member-form-group label {
	display: block;
	font-family: var(--ac-font-primary);
	font-weight: 700;
	margin-bottom: 8px;
	font-size: 13px;
	color: var(--ac-text);
}

.ac-member-form-group input[type="text"],
.ac-member-form-group input[type="email"],
.ac-member-form-group input[type="password"],
.ac-member-form-group input[type="date"],
.ac-member-form-group select,
.ac-member-form-group textarea {
	width: 100%;
	padding: 12px 15px;
	border: 1px solid var(--ac-border);
	border-radius: 6px;
	font-family: var(--ac-font-secondary);
	font-size: 15px;
	color: var(--ac-text);
	box-sizing: border-box;
	transition: border-color 0.3s ease, box-shadow 0.3s ease;
	background-color: var(--ac-white);
}

.ac-member-form-group input:focus,
.ac-member-form-group select:focus,
.ac-member-form-group textarea:focus {
	border-color: var(--ac-primary);
	outline: none;
	box-shadow: 0 0 0 1px var(--ac-primary);
}

/* Buttons compliance */
.ac-member-widget .ac-member-btn,
.ac-member-widget button.ac-member-btn,
.ac-member-widget input[type="submit"].ac-member-btn {
	display: inline-block !important;
	width: 100% !important;
	padding: 14px 20px !important;
	background-color: var(--ac-primary) !important;
	color: var(--ac-white) !important;
	border: none !important;
	border-radius: 6px !important;
	font-family: var(--ac-font-primary) !important;
	font-weight: 700 !important;
	font-size: 14px !important;
	text-align: center !important;
	cursor: pointer !important;
	text-transform: uppercase !important;
	transition: background-color 0.3s ease, transform 0.2s ease, box-shadow 0.2s ease !important;
	text-decoration: none !important;
	box-sizing: border-box !important;
}

.ac-member-widget .ac-member-btn:hover,
.ac-member-widget button.ac-member-btn:hover,
.ac-member-widget input[type="submit"].ac-member-btn:hover {
	background-color: var(--ac-primary-hover) !important;
	color: var(--ac-white) !important;
	transform: translateY(-2px) !important;
	box-shadow: 0 4px 10px rgba(46, 103, 65, 0.2) !important;
	text-decoration: none !important;
}

.ac-member-widget .ac-member-btn:active,
.ac-member-widget button.ac-member-btn:active,
.ac-member-widget input[type="submit"].ac-member-btn:active {
	transform: translateY(0) !important;
}

/* DSGVO Cancellation Button specificity */
.ac-member-widget .ac-member-cancel-btn {
	background-color: #d32f2f !important;
}

.ac-member-widget .ac-member-cancel-btn:hover {
	background-color: #b71c1c !important;
	box-shadow: 0 4px 10px rgba(211, 47, 47, 0.2) !important;
}

/* Alert Boxes */
.ac-member-alert {
	padding: 12px 15px;
	border-radius: 6px;
	margin-bottom: 20px;
	font-weight: 600;
	font-size: 14px;
	display: none;
}

.ac-member-alert-success {
	background-color: #E8F5E9;
	color: #2E7D32;
	border: 1px solid #C8E6C9;
}

.ac-member-alert-error {
	background-color: #FFEBEE;
	color: #C62828;
	border: 1px solid #FFCDD2;
}

/* Onboarding step wizard layout */
.ac-onboarding-steps {
	display: flex;
	justify-content: space-between;
	position: relative;
	margin-bottom: 40px;
}

.ac-onboarding-steps::before {
	content: '';
	position: absolute;
	top: 20px;
	left: 10%;
	right: 10%;
	height: 2px;
	background: var(--ac-border);
	z-index: 1;
}

.ac-onboarding-step-indicator {
	display: flex;
	flex-direction: column;
	align-items: center;
	position: relative;
	z-index: 2;
	flex: 1;
	text-align: center;
	font-family: var(--ac-font-primary);
	font-weight: 700;
	font-size: 11px;
	color: #8A9490;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	text-decoration: none;
}

.ac-onboarding-step-indicator .step-num {
	width: 40px;
	height: 40px;
	line-height: 36px;
	border-radius: 50%;
	background: var(--ac-white);
	border: 2px solid var(--ac-border);
	font-family: var(--ac-font-primary);
	font-weight: 700;
	font-size: 16px;
	color: #8A9490;
	text-align: center;
	margin-bottom: 8px;
	transition: all 0.3s ease;
	box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.ac-onboarding-step-indicator.active {
	color: var(--ac-primary);
}

.ac-onboarding-step-indicator.active .step-num {
	border-color: var(--ac-primary);
	background: var(--ac-primary);
	color: var(--ac-white);
	box-shadow: 0 4px 10px rgba(46, 103, 65, 0.2);
}

.ac-onboarding-step-indicator.completed .step-num {
	border-color: var(--ac-success);
	background: var(--ac-success);
	color: var(--ac-white);
}

/* Fade Transitions between wizard steps */
.ac-onboarding-step-panel {
	display: none;
	opacity: 0;
	transform: translateY(15px);
	transition: opacity 0.4s ease, transform 0.4s ease;
}

.ac-onboarding-step-panel.active {
	display: block;
	opacity: 1;
	transform: translateY(0);
}

/* Pricing cards design grid */
.ac-pricing-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 20px;
	margin-bottom: 30px;
}

.ac-pricing-card {
	background: var(--ac-white);
	border: 2px solid var(--ac-border);
	border-radius: 10px;
	padding: 25px 20px;
	text-align: center;
	cursor: pointer;
	position: relative;
	transition: all 0.3s ease;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	box-shadow: 0 4px 10px rgba(28, 36, 33, 0.02);
}

.ac-pricing-card:hover {
	border-color: var(--ac-primary);
	transform: translateY(-5px);
	box-shadow: 0 8px 20px rgba(46, 103, 65, 0.08);
}

.ac-pricing-card.selected {
	border-color: var(--ac-primary);
	background: #F4F8F5;
	box-shadow: 0 8px 25px rgba(46, 103, 65, 0.12);
}

.ac-pricing-card-title {
	font-family: var(--ac-font-primary);
	font-weight: 700;
	font-size: 13px;
	color: var(--ac-primary);
	margin-bottom: 10px;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

.ac-pricing-card-price {
	font-family: var(--ac-font-primary);
	font-weight: 800;
	font-size: 28px;
	color: var(--ac-text);
	margin: 15px 0;
}

.ac-pricing-card-price span {
	font-size: 13px;
	font-weight: 600;
	color: #8A9490;
}

.ac-pricing-card-features {
	font-size: 12px;
	color: var(--ac-text-muted);
	line-height: 1.5;
	margin-bottom: 15px;
	list-style: none;
	padding: 0;
}

.ac-pricing-card-features li {
	margin-bottom: 6px;
}

/* Payment Gateway cards grid */
.ac-payment-options-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 15px;
	margin-bottom: 25px;
}

.ac-payment-option-card {
	border: 2px solid var(--ac-border);
	border-radius: 8px;
	padding: 20px;
	text-align: center;
	cursor: pointer;
	font-family: var(--ac-font-primary);
	font-weight: 700;
	transition: all 0.3s ease;
	background-color: var(--ac-white);
}

.ac-payment-option-card:hover {
	border-color: var(--ac-primary);
	transform: translateY(-2px);
}

.ac-payment-option-card.selected {
	border-color: var(--ac-primary);
	background-color: #F4F8F5;
	box-shadow: 0 4px 12px rgba(46, 103, 65, 0.08);
}

/* Summary Box */
.ac-summary-box {
	background: var(--ac-bg-neutral);
	border: 1px solid var(--ac-border);
	border-radius: 8px;
	padding: 20px;
	margin-bottom: 25px;
	font-size: 14px;
	line-height: 1.6;
}

.ac-summary-box h4 {
	margin-top: 0;
	margin-bottom: 12px;
	font-family: var(--ac-font-primary);
	font-weight: 700;
	color: var(--ac-primary);
	border-bottom: 1px solid var(--ac-border);
	padding-bottom: 6px;
}

.ac-summary-row {
	display: flex;
	justify-content: space-between;
	margin-bottom: 8px;
}

.ac-summary-row:last-child {
	margin-bottom: 0;
}

/* Dashboard tiles */
.ac-dashboard-tiles-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 15px;
	margin-top: 25px;
}

.ac-dashboard-tile {
	border: 1px solid var(--ac-border);
	border-radius: 8px;
	padding: 20px;
	text-align: center;
	text-decoration: none;
	color: var(--ac-text);
	transition: all 0.3s ease;
	background: var(--ac-white);
	box-shadow: 0 4px 10px rgba(0,0,0,0.02);
}

.ac-dashboard-tile:hover {
	border-color: var(--ac-primary);
	transform: translateY(-4px);
	box-shadow: 0 8px 20px rgba(46, 103, 65, 0.08);
}

.ac-dashboard-tile-icon {
	font-size: 28px;
	color: var(--ac-primary);
	margin-bottom: 10px;
}

.ac-dashboard-tile-title {
	font-family: var(--ac-font-primary);
	font-weight: 700;
	font-size: 14px;
	display: block;
}

/* Align Phosphor Icons with Text baseline */
.ac-member-widget .ph {
	vertical-align: middle !important;
	position: relative;
	top: -1.5px;
	margin-right: 4px;
	display: inline-block;
}

/* Make sure headers/titles are aligned with nested icons */
.ac-member-widget h2,
.ac-member-widget h3,
.ac-member-widget h4 {
	display: flex;
	align-items: center;
}

/* Responsive fixes for mobile (step wizard & pricing grid) */
@media (max-width: 580px) {
	.ac-onboarding-steps {
		margin-bottom: 25px;
	}
	.ac-onboarding-steps::before {
		top: 18px !important;
		left: 12% !important;
		right: 12% !important;
	}
	.ac-onboarding-step-indicator span {
		display: none !important;
	}
	.ac-onboarding-step-indicator .step-num {
		width: 36px !important;
		height: 36px !important;
		line-height: 32px !important;
		font-size: 14px !important;
		margin-bottom: 0 !important;
	}
	.ac-pricing-grid {
		grid-template-columns: 1fr !important;
		gap: 15px !important;
	}
	.ac-pricing-card {
		padding: 20px 15px !important;
	}
}

/* Invoices Table styling */
.ac-invoices-table {
	width: 100% !important;
	border-collapse: separate !important;
	border-spacing: 0 !important;
	margin: 20px 0 !important;
	font-size: 13px !important;
	border: 1px solid var(--ac-border) !important;
	border-radius: 8px !important;
	overflow: hidden !important;
	box-shadow: 0 4px 10px rgba(0, 0, 0, 0.01) !important;
}

.ac-invoices-table th {
	background-color: #FAFBFB !important;
	color: var(--ac-text) !important;
	font-family: var(--ac-font-primary) !important;
	font-weight: 700 !important;
	text-transform: uppercase !important;
	font-size: 11px !important;
	letter-spacing: 0.5px !important;
	padding: 14px 16px !important;
	border-bottom: 2px solid var(--ac-border) !important;
	text-align: left !important;
}

.ac-invoices-table th:first-child {
	border-top-left-radius: 8px !important;
}

.ac-invoices-table th:last-child {
	border-top-right-radius: 8px !important;
}

.ac-invoices-table td {
	padding: 14px 16px !important;
	border-bottom: 1px solid var(--ac-border) !important;
	vertical-align: middle !important;
	color: var(--ac-text) !important;
	transition: background-color 0.2s ease !important;
	text-align: left !important;
}

.ac-invoices-table tr:last-child td {
	border-bottom: none !important;
}

.ac-invoices-table tr:last-child td:first-child {
	border-bottom-left-radius: 8px !important;
}

.ac-invoices-table tr:last-child td:last-child {
	border-bottom-right-radius: 8px !important;
}

.ac-invoices-table tr:hover td {
	background-color: rgba(46, 103, 65, 0.02) !important;
}

/* Status Badge inside Table */
.ac-status-badge {
	display: inline-flex !important;
	align-items: center !important;
	padding: 4px 10px !important;
	border-radius: 50px !important;
	font-size: 10px !important;
	font-weight: 700 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.3px !important;
	line-height: 1 !important;
}

.ac-status-badge.completed {
	background-color: #E8F5E9 !important;
	color: #2E7D32 !important;
	border: 1px solid #C8E6C9 !important;
}

.ac-status-badge.pending {
	background-color: #FFF3E0 !important;
	color: #EF6C00 !important;
	border: 1px solid #FFE0B2 !important;
}

.ac-status-badge.failed {
	background-color: #FFEBEE !important;
	color: #C62828 !important;
	border: 1px solid #FFCDD2 !important;
}

/* PDF Download button inside Table */
.ac-pdf-download-btn {
	display: inline-flex !important;
	align-items: center !important;
	background-color: #FAFBFB !important;
	border: 1px solid var(--ac-border) !important;
	padding: 6px 14px !important;
	border-radius: 6px !important;
	color: var(--ac-text) !important;
	text-decoration: none !important;
	font-weight: 700 !important;
	font-size: 11px !important;
	text-transform: uppercase !important;
	letter-spacing: 0.3px !important;
	transition: all 0.2s ease !important;
	line-height: 1.2 !important;
}

.ac-pdf-download-btn:hover {
	background-color: var(--ac-primary) !important;
	border-color: var(--ac-primary) !important;
	color: var(--ac-white) !important;
	box-shadow: 0 4px 10px rgba(46, 103, 65, 0.15) !important;
}

/* Universal table-to-grid card layout transformations */
.ac-invoices-table thead {
	display: none !important;
}

.ac-invoices-table, 
.ac-invoices-table tbody, 
.ac-invoices-table tr, 
.ac-invoices-table td {
	display: block !important;
	width: 100% !important;
	box-sizing: border-box !important;
}

.ac-invoices-table {
	border: none !important;
	background: transparent !important;
	box-shadow: none !important;
	margin: 10px 0 !important;
}

.ac-invoices-table tr {
	background: #FFFFFF !important;
	border: 1px solid var(--ac-border) !important;
	border-radius: 8px !important;
	padding: 16px !important;
	margin-bottom: 16px !important;
	box-shadow: 0 4px 10px rgba(0, 0, 0, 0.02) !important;
	position: relative !important;
}

.ac-invoices-table tr:hover td {
	background-color: transparent !important;
}

.ac-invoices-table td {
	padding: 10px 0 !important;
	border: none !important;
	border-bottom: 1px dashed rgba(0, 0, 0, 0.08) !important;
	display: flex !important;
	justify-content: space-between !important;
	align-items: center !important;
	font-size: 13px !important;
	text-align: right !important;
}

.ac-invoices-table td:last-child {
	border-bottom: none !important;
	padding-bottom: 0 !important;
	margin-bottom: 0 !important;
}

.ac-invoices-table td:first-child {
	padding-top: 0 !important;
}

.ac-invoices-table td::before {
	content: attr(data-label) !important;
	font-weight: 700 !important;
	color: var(--ac-text-muted) !important;
	text-align: left !important;
	font-family: var(--ac-font-primary) !important;
	text-transform: uppercase !important;
	font-size: 10px !important;
	letter-spacing: 0.5px !important;
}

/* Remove alternating row cell backgrounds from theme/Elementor defaults */
.ac-invoices-table tbody>tr:nth-child(odd)>td, 
.ac-invoices-table tbody>tr:nth-child(odd)>th,
.ac-invoices-table tbody>tr>td {
	background-color: transparent !important;
}
