/*
 * Le portail reprend les variables CSS exposées par le thème Lawhere
 * (--wdtPrimaryColor, --wdtSecondaryColor, --wdtTertiaryColor, etc.),
 * définies dynamiquement sur :root selon les réglages du Customizer.
 * Des valeurs de repli (palette Lawhere par défaut) sont fournies pour
 * que le portail reste présentable même si un autre thème est actif.
 */
.tremvi-ca-portal {
	--tremvi-primary: var(--wdtPrimaryColor, #A69D84);
	--tremvi-primary-rgb: var(--wdtPrimaryColorRgb, 166, 157, 132);
	--tremvi-secondary: var(--wdtSecondaryColor, #2A2E31);
	--tremvi-tertiary: var(--wdtTertiaryColor, #F4F5EF);
	--tremvi-text: var(--wdtBodyTxtColor, #222222);
	--tremvi-heading: var(--wdtHeadAltColor, #2A2E31);
	--tremvi-accent-text: var(--wdtAccentTxtColor, #ffffff);
	--tremvi-border: var(--wdtBorderColor, #e2e0da);
	--tremvi-font-body: var(--wdtFontTypo_Base, "DM Sans", sans-serif);
	--tremvi-font-heading: var(--wdtFontTypo_Alt, "prata", serif);
	--tremvi-radius: var(--wdtRadius_2X, 5px);
	--tremvi-btn-padding: var(--wdtPadding_Btn, 16px 35px);
	--tremvi-transition: var(--wdtBaseTransition, all 0.3s linear 0s);

	max-width: 900px;
	margin: 0 auto;
	font-family: var(--tremvi-font-body);
	color: var(--tremvi-text);
}
.tremvi-ca-portal h2,
.tremvi-ca-portal h3,
.tremvi-ca-portal h4 {
	font-family: var(--tremvi-font-heading);
	color: var(--tremvi-heading);
	font-weight: 400;
}
.tremvi-ca-portal-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 1.5em;
	flex-wrap: wrap;
	gap: 1em;
}
.tremvi-ca-tabs {
	display: flex;
	gap: 0.25em;
	border-bottom: 2px solid var(--tremvi-border);
	margin-bottom: 1.8em;
	flex-wrap: wrap;
}
.tremvi-tab-btn {
	background: none;
	border: none;
	padding: 0.9em 1.3em;
	cursor: pointer;
	font-weight: 500;
	font-family: var(--tremvi-font-body);
	text-transform: uppercase;
	letter-spacing: 0.5px;
	font-size: 0.85em;
	color: var(--tremvi-text);
	border-bottom: 2px solid transparent;
	transition: var(--tremvi-transition);
	margin-bottom: -2px;
}
.tremvi-tab-btn:hover {
	color: var(--tremvi-primary);
}
.tremvi-tab-btn.active {
	color: var(--tremvi-primary);
	border-bottom-color: var(--tremvi-primary);
}

.tremvi-ca-form .tremvi-field,
.tremvi-ca-form .tremvi-field-row {
	margin-bottom: 1.2em;
}
.tremvi-ca-form label {
	display: block;
	font-weight: 500;
	margin-bottom: 0.4em;
	font-size: 0.92em;
	color: var(--tremvi-heading);
}
.tremvi-ca-form input[type="text"],
.tremvi-ca-form input[type="email"],
.tremvi-ca-form input[type="tel"],
.tremvi-ca-form input[type="password"],
.tremvi-ca-form select,
.tremvi-ca-form textarea {
	width: 100%;
	padding: 0.75em 0.9em;
	border: 1px solid var(--tremvi-border);
	border-radius: var(--tremvi-radius);
	box-sizing: border-box;
	font-family: var(--tremvi-font-body);
	color: var(--tremvi-text);
	background: #fff;
	transition: var(--tremvi-transition);
}
.tremvi-ca-form input:focus,
.tremvi-ca-form select:focus,
.tremvi-ca-form textarea:focus {
	outline: none;
	border-color: var(--tremvi-primary);
}
.tremvi-field-row {
	display: flex;
	gap: 1em;
	flex-wrap: wrap;
}
.tremvi-field-row > span {
	flex: 1;
	min-width: 200px;
}

.tremvi-btn {
	display: inline-block;
	padding: var(--tremvi-btn-padding);
	border-radius: var(--tremvi-radius);
	border: 1px solid var(--tremvi-secondary);
	cursor: pointer;
	font-family: var(--tremvi-font-body);
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 1px;
	font-size: 0.85em;
	line-height: 1;
	text-decoration: none;
	transition: var(--tremvi-transition);
}
.tremvi-btn-primary {
	background: var(--tremvi-secondary);
	border-color: var(--tremvi-secondary);
	color: var(--tremvi-accent-text);
}
.tremvi-btn-primary:hover {
	background: var(--tremvi-primary);
	border-color: var(--tremvi-primary);
	color: var(--tremvi-accent-text);
}
.tremvi-btn-primary:disabled {
	opacity: 0.6;
	cursor: not-allowed;
}
.tremvi-btn-secondary {
	background: transparent;
	border-color: var(--tremvi-border);
	color: var(--tremvi-text);
}
.tremvi-btn-secondary:hover {
	border-color: var(--tremvi-primary);
	color: var(--tremvi-primary);
}

.tremvi-form-feedback {
	margin: 0.9em 0;
	font-weight: 500;
	font-size: 0.92em;
}
.tremvi-feedback-success { color: #2a7a3b; }
.tremvi-feedback-error { color: #b3261e; }

.tremvi-ca-table {
	width: 100%;
	border-collapse: collapse;
}
.tremvi-ca-table th {
	text-align: left;
	padding: 0.8em 0.9em;
	background: var(--tremvi-tertiary);
	font-family: var(--tremvi-font-heading);
	font-weight: 400;
	color: var(--tremvi-heading);
	border-bottom: 1px solid var(--tremvi-border);
}
.tremvi-ca-table td {
	text-align: left;
	padding: 0.8em 0.9em;
	border-bottom: 1px solid var(--tremvi-border);
}

.tremvi-badge {
	display: inline-block;
	padding: 0.3em 0.9em;
	border-radius: var(--tremvi-radius);
	font-size: 0.78em;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.4px;
	background: var(--tremvi-tertiary);
	color: var(--tremvi-heading);
}
.tremvi-badge-nouvelle { background: rgba(var(--tremvi-primary-rgb), 0.15); color: var(--tremvi-heading); }
.tremvi-badge-en_cours { background: #fff3cd; color: #7a5b00; }
.tremvi-badge-acceptee { background: #d4edda; color: #1e6b32; }
.tremvi-badge-rejetee { background: #f8d7da; color: #7a1f22; }

.tremvi-ca-facture-card {
	border: 1px solid var(--tremvi-border);
	border-radius: var(--tremvi-radius);
	padding: 1.3em 1.5em;
	margin-bottom: 1.3em;
	background: var(--tremvi-tertiary);
}
.tremvi-ca-facture-infos {
	display: flex;
	align-items: center;
	gap: 1em;
	margin-bottom: 1.2em;
	flex-wrap: wrap;
}
.tremvi-ca-facture-infos strong {
	font-family: var(--tremvi-font-heading);
	font-weight: 400;
	color: var(--tremvi-heading);
}
.tremvi-ca-facture-montant {
	font-weight: 700;
	color: var(--tremvi-primary);
	font-size: 1.15em;
}
.tremvi-ca-facture-card .tremvi-ca-form {
	margin: 0;
}

.tremvi-rdv-creneaux {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5em;
	margin-top: 0.4em;
}
.tremvi-rdv-creneau-btn {
	border: 1px solid var(--tremvi-border);
	background: #fff;
	border-radius: var(--tremvi-radius);
	padding: 0.5em 1em;
	cursor: pointer;
	font-family: var(--tremvi-font-body);
	font-size: 0.9em;
	transition: var(--tremvi-transition);
}
.tremvi-rdv-creneau-btn:hover {
	border-color: var(--tremvi-primary);
}
.tremvi-rdv-creneau-btn.active {
	background: var(--tremvi-secondary);
	border-color: var(--tremvi-secondary);
	color: var(--tremvi-accent-text);
}

.tremvi-rdv-tarif-apercu {
	background: var(--tremvi-tertiary);
	border-radius: var(--tremvi-radius);
	padding: 0.7em 1em;
	font-weight: 600;
	color: var(--tremvi-heading);
	margin-top: 0.5em;
}
.tremvi-rdv-aucun-creneau {
	font-style: italic;
	opacity: 0.7;
}
