/**
 * GWEVA Plugin Totum — Front-end stylesheet
 *
 * Direction visuelle : chaud, feutre, premium, apaisant.
 *
 * Palette :
 *   --gweva-primary     : #3b2f2a  (brun anthracite)
 *   --gweva-gold        : #c9a96e  (dore miel)
 *   --gweva-gold-hover  : #b8944f  (dore soutenu)
 *   --gweva-bg          : #faf6f1  (ivoire chaud)
 *   --gweva-surface     : #fffdf9  (creme)
 *   --gweva-border      : #e8dfd4  (sable)
 *   --gweva-text        : #3b2f2a  (brun profond)
 *   --gweva-text-light  : #8a7e74  (taupe)
 */

/* =========================================================================
   0. Custom properties
   ========================================================================= */

.gweva-wrap,
.gweva-login-step {
	--gweva-primary:     #3b2f2a;
	--gweva-primary-rgb: 59, 47, 42;
	--gweva-gold:        #c9a96e;
	--gweva-gold-hover:  #b8944f;
	--gweva-gold-light:  #f5eed8;
	--gweva-bg:          #faf6f1;
	--gweva-surface:     #fffdf9;
	--gweva-border:      #e8dfd4;
	--gweva-border-soft: #f0e9df;
	--gweva-text:        #3b2f2a;
	--gweva-text-light:  #8a7e74;
	--gweva-radius:      10px;
	--gweva-radius-sm:   6px;
	--gweva-shadow:      0 2px 12px rgba(59, 47, 42, 0.06);
	--gweva-shadow-lg:   0 4px 24px rgba(59, 47, 42, 0.08);

	/* Messages — tons chauds integres */
	--gweva-success:     #5a7a5e;
	--gweva-success-bg:  #f2f6f0;
	--gweva-success-border: #c5d6c0;
	--gweva-warning:     #a07838;
	--gweva-warning-bg:  #fdf6ea;
	--gweva-warning-border: #e5d4a8;
	--gweva-error:       #9e5454;
	--gweva-error-bg:    #fcf2f0;
	--gweva-error-border: #e0c4be;
	--gweva-info:        #6b8a99;
	--gweva-info-bg:     #f1f5f7;
	--gweva-info-border: #c8d8df;
}

/* =========================================================================
   1. Base wrapper
   ========================================================================= */

.gweva-wrap,
.gweva-login-step {
	margin: 0 auto;
	padding: 36px 0;
	color: var(--gweva-text);
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
}

/* =========================================================================
   2. Typography
   ========================================================================= */

.gweva-title {
	font-size: 1.6rem;
	font-weight: 400;
	color: var(--gweva-primary);
	margin: 0 0 10px;
	line-height: 1.3;
	letter-spacing: -0.01em;
}

.gweva-subtitle {
	font-size: 1.15rem;
	font-weight: 400;
	color: var(--gweva-text);
	margin: 0 0 20px;
}

.gweva-text {
	font-size: 0.94rem;
	color: var(--gweva-text);
	margin: 0 0 16px;
	line-height: 1.7;
}

.gweva-help {
	display: block;
	font-size: 0.82rem;
	color: var(--gweva-text-light);
	margin-top: 6px;
	line-height: 1.55;
}

/* =========================================================================
   3. Buttons
   ========================================================================= */

.gweva-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	padding: 13px 30px;
	font-family: inherit;
	font-size: 0.9rem;
	font-weight: 600;
	line-height: 1.4;
	text-decoration: none;
	border: 1.5px solid transparent;
	border-radius: var(--gweva-radius);
	cursor: pointer;
	transition: all 0.25s ease;
	letter-spacing: 0.01em;
}

.gweva-btn:focus-visible {
	outline: 2px solid var(--gweva-gold);
	outline-offset: 2px;
}

/* Primary — dore miel, texte brun fonce */
.gweva-btn--primary {
	background-color: var(--gweva-gold);
	color: var(--gweva-primary);
	border-color: var(--gweva-gold);
	box-shadow: 0 1px 4px rgba(201, 169, 110, 0.25);
}

.gweva-btn--primary:hover {
	background-color: var(--gweva-gold-hover);
	border-color: var(--gweva-gold-hover);
	color: #ffffff;
	box-shadow: 0 2px 8px rgba(184, 148, 79, 0.3);
}

/* Secondary — outline sable elegant */
.gweva-btn--secondary {
	background-color: transparent;
	color: var(--gweva-primary);
	border-color: var(--gweva-border);
}

.gweva-btn--secondary:hover {
	border-color: var(--gweva-gold);
	background-color: var(--gweva-gold-light);
	color: var(--gweva-primary);
}

/* Small */
.gweva-btn--small {
	padding: 8px 18px;
	font-size: 0.82rem;
	border-radius: var(--gweva-radius-sm);
}

/* =========================================================================
   4. Form elements
   ========================================================================= */

.gweva-form {
	margin: 0;
}

.gweva-field {
	margin-bottom: 22px;
}

.gweva-label {
	display: block;
	font-size: 0.88rem;
	font-weight: 600;
	color: var(--gweva-text);
	margin-bottom: 8px;
}

.gweva-label span[aria-hidden] {
	color: var(--gweva-error);
	font-weight: 400;
}

.gweva-input,
.gweva-textarea {
	display: block;
	width: 100%;
	padding: 12px 16px!important;
	font-family: inherit;
	font-size: 0.92rem;
	color: var(--gweva-text)!important;
	background-color: var(--gweva-surface)!important;
	border: 1px solid var(--gweva-border)!important;
	border-radius: var(--gweva-radius)!important;
	transition: border-color 0.25s ease, box-shadow 0.25s ease;
	box-sizing: border-box;
}

.gweva-input::placeholder,
.gweva-textarea::placeholder {
	color: var(--gweva-text-light);
	opacity: 0.7;
}

.gweva-input:focus,
.gweva-textarea:focus {
	outline: none;
	border-color: var(--gweva-gold);
	box-shadow: 0 0 0 3px rgba(201, 169, 110, 0.15);
}

.gweva-textarea {
	min-height: 170px;
	resize: vertical;
	line-height: 1.65;
}

.gweva-submit {
	margin-top: 26px;
}

/* =========================================================================
   5. Messages (success, error, warning, info)
   ========================================================================= */

.gweva-message {
	padding: 18px 22px;
	border-radius: var(--gweva-radius);
	margin-bottom: 24px;
	font-size: 0.92rem;
	line-height: 1.65;
	border: 1px solid transparent;
	border-left: 4px solid transparent;
}

.gweva-message p {
	margin: 0 0 6px;
}

.gweva-message p:last-child {
	margin-bottom: 0;
}

.gweva-message--success {
	background-color: var(--gweva-success-bg);
	border-color: var(--gweva-success-border);
	border-left-color: var(--gweva-success);
	color: #3d5a40;
}

.gweva-message--error {
	background-color: var(--gweva-error-bg);
	border-color: var(--gweva-error-border);
	border-left-color: var(--gweva-error);
	color: #6e3a3a;
}

.gweva-message--warning {
	background-color: var(--gweva-warning-bg);
	border-color: var(--gweva-warning-border);
	border-left-color: var(--gweva-warning);
	color: #6e5228;
}

.gweva-message--info {
	background-color: var(--gweva-info-bg);
	border-color: var(--gweva-info-border);
	border-left-color: var(--gweva-info);
	color: #4a6570;
}

/* =========================================================================
   6. Formulaire de demande
   ========================================================================= */

.gweva-form-wrap {
	background-color: var(--gweva-surface);
	border: 1px solid var(--gweva-border);
	border-radius: var(--gweva-radius);
	padding: 36px;
	box-shadow: var(--gweva-shadow);
}

/* =========================================================================
   7. Identity step
   ========================================================================= */

.gweva-identity-step {
	text-align: center;
}

.gweva-identity-step__intro {
	font-size: 1.05rem;
	margin-bottom: 28px;
}

.gweva-identity-step__error {
	text-align: left;
}

.gweva-identity-choices {
	display: flex;
	flex-direction: column;
	gap: 12px;
	max-width: 400px;
	margin: 0 auto;
}

.gweva-identity-choices__btn {
	width: 100%;
}

/* =========================================================================
   8. Email step
   ========================================================================= */

.gweva-email-step {
	background-color: var(--gweva-surface);
	border: 1px solid var(--gweva-border);
	border-radius: var(--gweva-radius);
	padding: 36px;
	box-shadow: var(--gweva-shadow);
}

.gweva-email-step__intro {
	margin-bottom: 20px;
}

/* =========================================================================
   9. Payment step
   ========================================================================= */

.gweva-payment-step {
	text-align: center;
}

.gweva-payment-step__intro {
	text-align: left;
}

.gweva-payment-step__submit {
	margin-top: 28px;
}

/* =========================================================================
   10. Confirmation & pending states
   ========================================================================= */

.gweva-confirmation,
.gweva-pending {
	text-align: center;
}

.gweva-confirmation .gweva-message,
.gweva-pending .gweva-message {
	text-align: left;
}

.gweva-confirmation__actions {
	margin-top: 28px;
}

/* =========================================================================
   11. Login step (magic link in tunnel)
   ========================================================================= */

.gweva-login-step {
	background-color: var(--gweva-surface);
	border: 1px solid var(--gweva-border);
	border-radius: var(--gweva-radius);
	padding: 36px;
	box-shadow: var(--gweva-shadow);
}

/* =========================================================================
   12. Followup — Guest (magic login form)
   ========================================================================= */

.gweva-followup--guest {
	background-color: var(--gweva-surface);
	border: 1px solid var(--gweva-border);
	border-radius: var(--gweva-radius);
	padding: 36px;
	box-shadow: var(--gweva-shadow);
}

.gweva-followup__intro {
	margin-bottom: 20px;
}

/* =========================================================================
   13. Followup — List
   ========================================================================= */

.gweva-followup__welcome {
	margin-bottom: 6px;
}

.gweva-followup__subtitle {
	margin-bottom: 24px;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--gweva-border);
}

/* Table wrapper */
.gweva-followup__table-wrapper {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	background-color: var(--gweva-surface);
	border: 1px solid var(--gweva-border);
	border-radius: var(--gweva-radius);
	box-shadow: var(--gweva-shadow);
}

/* Table */
.gweva-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.88rem;
}

.gweva-table__head {
	background-color: var(--gweva-bg);
}

.gweva-table__row--head .gweva-table__cell {
	font-weight: 600;
	color: var(--gweva-text-light);
	text-transform: uppercase;
	font-size: 0.72rem;
	letter-spacing: 0.06em;
	padding: 12px 16px;
	border-bottom: 1px solid var(--gweva-border);
	white-space: nowrap;
}

.gweva-table__body .gweva-table__row {
	border-bottom: 1px solid var(--gweva-border-soft);
	transition: background-color 0.2s ease;
}

.gweva-table__body .gweva-table__row:last-child {
	border-bottom: none;
}

.gweva-table__body .gweva-table__row:hover {
	background-color: var(--gweva-bg);
}

.gweva-table__body .gweva-table__cell {
	padding: 14px 16px;
	vertical-align: middle;
}

/* Column specifics */
.gweva-table__cell--ref {
	white-space: nowrap;
	font-weight: 600;
	color: var(--gweva-primary);
}

.gweva-table__cell--date {
	white-space: nowrap;
	color: var(--gweva-text-light);
	font-size: 0.85rem;
}

.gweva-followup__date,
.gweva-followup__heure {
	display: block;
}

.gweva-followup__heure {
	font-size: 0.78rem;
	opacity: 0.8;
}

.gweva-table__cell--excerpt {
	min-width: 180px;
	color: var(--gweva-text);
}

.gweva-table__cell--status {
	white-space: normal;
}

.gweva-table__cell--actions {
	white-space: nowrap;
}

/* Actions in table */
.gweva-followup__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
}

.gweva-followup__actions--center {
	justify-content: center;
	margin-top: 28px;
}

.gweva-followup__actions--detail {
	margin-top: 28px;
}

/* Processing hint */
.gweva-followup__processing-hint {
	display: block;
	font-size: 0.75rem;
	color: var(--gweva-text-light);
	font-style: italic;
	margin-top: 4px;
}

/* =========================================================================
   14. Status badges
   ========================================================================= */

.gweva-status {
	display: inline-block;
	padding: 4px 12px;
	font-size: 0.76rem;
	font-weight: 600;
	border-radius: 20px;
	line-height: 1.5;
	white-space: normal;
	letter-spacing: 0.01em;
}

/* Brouillon — neutre sable */
.gweva-status--draft {
	background-color: #f0ebe4;
	color: #8a7e74;
}

/* En attente email — ambre doux */
.gweva-status--pending {
	background-color: #fdf6ea;
	color: #a07838;
}

/* Attente paiement — ambre doux */
.gweva-status--awaiting-payment {
	background-color: #fdf6ea;
	color: #a07838;
}

/* Confirmation paiement — bleu gris */
.gweva-status--confirming {
	background-color: #f1f5f7;
	color: #6b8a99;
}

/* En file — bleu gris */
.gweva-status--queued {
	background-color: #f1f5f7;
	color: #6b8a99;
}

/* En traitement — bleu gris */
.gweva-status--processing {
	background-color: #f1f5f7;
	color: #6b8a99;
}

/* Termine — sauge */
.gweva-status--completed {
	background-color: #f2f6f0;
	color: #5a7a5e;
}

/* Echoue — terre rosee */
.gweva-status--failed {
	background-color: #fcf2f0;
	color: #9e5454;
}

/* =========================================================================
   15. Followup — Detail
   ========================================================================= */

/* Nav / back */
.gweva-followup__nav {
	margin-bottom: 28px;
}

.gweva-followup__back-link {
	font-size: 0.88rem;
}

/* Header */
.gweva-followup__header {
	display: flex;
	align-items: center;
	gap: 16px;
	flex-wrap: wrap;
	margin-bottom: 28px;
	padding-bottom: 18px;
	border-bottom: 1px solid var(--gweva-border);
}

.gweva-followup__header .gweva-title {
	margin-bottom: 0;
}

.gweva-followup__header-status {
	flex-shrink: 0;
}

/* Meta */
.gweva-followup__meta {
	display: flex;
	gap: 36px;
	flex-wrap: wrap;
	margin-bottom: 32px;
	padding: 18px 24px;
	background-color: var(--gweva-bg);
	border: 1px solid var(--gweva-border-soft);
	border-radius: var(--gweva-radius);
}

.gweva-followup__meta-item {
	display: flex;
	flex-direction: column;
	gap: 3px;
}

.gweva-followup__meta-label {
	font-size: 0.72rem;
	font-weight: 600;
	color: var(--gweva-text-light);
	text-transform: uppercase;
	letter-spacing: 0.06em;
}

.gweva-followup__meta-value {
	font-size: 0.92rem;
	color: var(--gweva-text);
}

/* Sections */
.gweva-followup__section {
	margin-bottom: 32px;
}

.gweva-followup__section-title {
	margin-bottom: 14px;
	padding-bottom: 10px;
	border-bottom: 1px solid var(--gweva-border);
}

/* Demande text */
.gweva-followup__demande-text {
	background-color: var(--gweva-bg);
	padding: 22px;
	border-radius: var(--gweva-radius);
	border: 1px solid var(--gweva-border-soft);
	white-space: pre-wrap;
	font-size: 0.92rem;
	line-height: 1.7;
}

/* Response author (intervenant) */
.gweva-followup__response-author {
	font-size: 0.88rem;
	color: var(--gweva-text-light);
	margin: 0 0 12px;
	font-style: italic;
}

/* Response content */
.gweva-followup__response-content {
	background-color: var(--gweva-surface);
	padding: 28px;
	border-radius: var(--gweva-radius);
	border: 1px solid var(--gweva-border);
	box-shadow: var(--gweva-shadow);
	font-size: 0.92rem;
	line-height: 1.75;
}

.gweva-followup__response-content h1,
.gweva-followup__response-content h2,
.gweva-followup__response-content h3,
.gweva-followup__response-content h4 {
	color: var(--gweva-primary);
	font-weight: 400;
	margin: 1.5em 0 0.6em;
	line-height: 1.3;
}

.gweva-followup__response-content h1:first-child,
.gweva-followup__response-content h2:first-child,
.gweva-followup__response-content h3:first-child {
	margin-top: 0;
}

.gweva-followup__response-content h2 { font-size: 1.3rem; }
.gweva-followup__response-content h3 { font-size: 1.12rem; }
.gweva-followup__response-content h4 { font-size: 1rem; font-weight: 600; }

.gweva-followup__response-content p {
	margin: 0 0 14px;
}

.gweva-followup__response-content ul,
.gweva-followup__response-content ol {
	margin: 0 0 16px;
	padding-left: 24px;
}

.gweva-followup__response-content li {
	margin-bottom: 6px;
}

.gweva-followup__response-content strong {
	font-weight: 600;
	color: var(--gweva-primary);
}

/* Thread de conversation (1er echange + tours additionnels) */
.gweva-followup__section--thread {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.gweva-thread__bubble {
	background-color: var(--gweva-surface);
	padding: 20px 24px;
	border-radius: var(--gweva-radius);
	border: 1px solid var(--gweva-border);
	box-shadow: var(--gweva-shadow);
}

.gweva-thread__bubble--user {
	background-color: var(--gweva-bg);
	border-color: var(--gweva-border);
	margin-left: 0;
	margin-right: 10%;
}

.gweva-thread__bubble--assistant {
	margin-left: 10%;
	margin-right: 0;
	border-color: var(--gweva-gold);
}

.gweva-thread__bubble-meta {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	margin-bottom: 10px;
	font-size: 0.82rem;
}

.gweva-thread__author {
	font-weight: 600;
	color: var(--gweva-gold-hover);
}

.gweva-thread__bubble--user .gweva-thread__author {
	color: var(--gweva-primary);
}

.gweva-thread__date {
	color: var(--gweva-text-light);
	font-style: italic;
}

.gweva-thread__bubble-content {
	font-size: 0.92rem;
	line-height: 1.65;
}

.gweva-thread__bubble-content p {
	margin: 0 0 12px;
}

.gweva-thread__bubble-content p:last-child {
	margin-bottom: 0;
}

.gweva-thread__bubble-content h2,
.gweva-thread__bubble-content h3,
.gweva-thread__bubble-content h4 {
	color: var(--gweva-primary);
	font-weight: 400;
	margin: 1.2em 0 0.5em;
	line-height: 1.3;
}

.gweva-thread__bubble-content h2:first-child,
.gweva-thread__bubble-content h3:first-child {
	margin-top: 0;
}

.gweva-thread__bubble-content ul,
.gweva-thread__bubble-content ol {
	margin: 0 0 12px;
	padding-left: 22px;
}

/* Consentement CGV / Politique de Confidentialite (formulaire principal + reply) */
.gweva-form__consent {
	margin: 12px 0;
}

.gweva-consent-label {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	cursor: pointer;
	font-size: 0.85rem;
	line-height: 1.5;
	color: var(--gweva-text-light);
	font-weight: 400;
}

.gweva-consent-label input[type="checkbox"] {
	margin-top: 3px;
	flex-shrink: 0;
	cursor: pointer;
}

.gweva-consent-text {
	flex: 1;
}

.gweva-consent-text a {
	color: var(--gweva-gold-hover);
	text-decoration: underline;
}

.gweva-consent-text a:hover {
	color: var(--gweva-primary);
}

/* Formulaire de reponse (tour additionnel) */
.gweva-followup__section--reply {
	margin-top: 12px;
}

.gweva-followup__reply-textarea {
	width: 100%;
	resize: vertical;
	min-height: 120px;
}

.gweva-followup__section--reply-closed {
	margin-top: 12px;
	padding: 18px 22px;
	background: var(--gweva-bg);
	border-left: 3px solid var(--gweva-border);
	border-radius: 4px;
}

.gweva-followup__closed-notice {
	margin: 0;
	font-size: 1.08rem;
	font-weight: 600;
	line-height: 1.5;
	color: var(--gweva-primary);
}

@media screen and (max-width: 600px) {
	.gweva-thread__bubble--user,
	.gweva-thread__bubble--assistant {
		margin-left: 0;
		margin-right: 0;
	}

	.gweva-thread__bubble-meta {
		flex-direction: column;
		gap: 2px;
	}
}

/* Payment retry form in detail */
.gweva-followup__payment-form {
	margin: 0;
}

/* =========================================================================
   16. Logout
   ========================================================================= */

.gweva-logout {
	padding: 0;
}

.gweva-logout__form {
	display: inline-block;
}

/* =========================================================================
   17. Intervenants — selection step
   ========================================================================= */

.gweva-intervenants-step__title {
	text-align: center;
	margin-bottom: 6px;
}

.gweva-intervenants-step__intro {
	text-align: center;
	color: var(--gweva-text-light);
	margin-bottom: 32px;
}

/* Grid (flex pour centrer naturellement quand peu de cards) */
.gweva-intervenants-grid {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 20px;
}

/* Card */
.gweva-intervenant-card {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	background-color: var(--gweva-surface);
	border: 1px solid var(--gweva-border);
	border-radius: var(--gweva-radius);
	padding: 28px 22px 22px;
	box-shadow: var(--gweva-shadow);
	transition: border-color 0.25s ease, box-shadow 0.25s ease;
	flex: 0 1 260px;
	box-sizing: border-box;
}

/* Pastille de disponibilite */
.gweva-intervenant-card__dot {
	position: absolute;
	top: 12px;
	right: 12px;
	width: 10px;
	height: 10px;
	border-radius: 50%;
	z-index: 1;
}

.gweva-intervenant-card__dot--on {
	background-color: var(--gweva-success);
	box-shadow: 0 0 0 3px var(--gweva-success-bg);
}

.gweva-intervenant-card__dot--off {
	background-color: #ff0000;
	box-shadow: 0 0 0 3px #ffe0e0;
}

.gweva-intervenant-card:hover {
	border-color: var(--gweva-gold);
	box-shadow: var(--gweva-shadow-lg);
}

.gweva-intervenant-card--indisponible {
	opacity: 0.75;
}

.gweva-intervenant-card--indisponible:hover {
	opacity: 1;
}

.gweva-intervenant-card--vedette {
	border-color: var(--gweva-gold);
}

/* Photo — portrait rectangulaire */
.gweva-intervenant-card__photo {
	max-width: unset!important;
	width: 100%;
	aspect-ratio: 3 / 4;
	object-fit: cover;
	border-radius: var(--gweva-radius) var(--gweva-radius) 0 0;
	margin: -28px -22px 16px -22px;
	width: calc(100% + 44px);
}

.gweva-intervenant-card__photo--placeholder {
	background-color: var(--gweva-bg);
	border-radius: var(--gweva-radius) var(--gweva-radius) 0 0;
}

/* Body */
.gweva-intervenant-card__body {
	flex: 1;
	margin-bottom: 16px;
}

.gweva-intervenant-card__name {
	font-size: 1.05rem;
	font-weight: 400;
	color: var(--gweva-primary);
	margin: 0 0 4px;
}

.gweva-intervenant-card__specialite {
	font-size: 0.82rem;
	font-weight: 600;
	color: var(--gweva-gold-hover);
	margin: 0 0 10px;
	letter-spacing: 0.02em;
}

.gweva-intervenant-card__presentation {
	font-size: 0.85rem;
	color: var(--gweva-text-light);
	margin: 0 0 12px;
	line-height: 1.55;
}

/* Badges */
.gweva-intervenant-card__badges {
	display: flex;
	justify-content: center;
	gap: 6px;
	flex-wrap: wrap;
}

.gweva-badge {
	display: inline-block;
	padding: 3px 10px;
	font-size: 0.72rem;
	font-weight: 600;
	border-radius: 20px;
	letter-spacing: 0.02em;
}

.gweva-badge--disponible {
	background-color: var(--gweva-success-bg);
	color: var(--gweva-success);
	border: 1px solid var(--gweva-success-border);
}

.gweva-badge--indisponible {
	background-color: #f0ebe4;
	color: var(--gweva-text-light);
	border: 1px solid var(--gweva-border);
}

.gweva-badge--vedette {
	background-color: var(--gweva-warning-bg);
	color: var(--gweva-warning);
	border: 1px solid var(--gweva-warning-border);
}

/* Horaires resume (indisponible) */
.gweva-intervenant-card__horaires {
	font-size: 0.75rem;
	color: var(--gweva-text-light);
	margin: 8px 0 0;
	line-height: 1.45;
}

/* Card form */
.gweva-intervenant-card__form {
	margin: 0;
	width: 100%;
}

.gweva-intervenant-card__btn {
	width: 100%;
}

.gweva-intervenant-card__btn:disabled {
	opacity: 0.5;
	cursor: not-allowed;
	pointer-events: none;
}

/* =========================================================================
   18. Intervenant context (in form)
   ========================================================================= */

.gweva-intervenant-context {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 20px;
	margin-bottom: 24px;
	background-color: var(--gweva-bg);
	border: 1px solid var(--gweva-border-soft);
	border-radius: var(--gweva-radius);
}

.gweva-intervenant-context__photo {
	width: 64px;
	height: 64px;
	border-radius: var(--gweva-radius-sm);
	object-fit: cover;
	flex-shrink: 0;
	border: 1px solid var(--gweva-border);
}

.gweva-intervenant-context__info {
	flex: 1;
	min-width: 0;
}

.gweva-intervenant-context__name {
	font-size: 1rem;
	color: var(--gweva-primary);
	margin: 0 0 2px;
}

.gweva-intervenant-context__specialite {
	font-size: 0.82rem;
	font-weight: 600;
	color: var(--gweva-gold-hover);
	margin: 0 0 4px;
}

.gweva-intervenant-context__presentation {
	font-size: 0.82rem;
	color: var(--gweva-text-light);
	margin: 0 0 6px;
	line-height: 1.5;
}

.gweva-intervenant-context__change {
	flex-shrink: 0;
	font-size: 0.82rem;
	color: var(--gweva-text-light);
	text-decoration: underline;
	transition: color 0.2s ease;
}

.gweva-intervenant-context__change:hover {
	color: var(--gweva-gold-hover);
}

/* =========================================================================
   19. Name fields (prenom / nom utilisateur)
   ========================================================================= */

.gweva-name-fields {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
	margin-bottom: 22px;
}

/* =========================================================================
   20. Micro-bloc edition prenom / nom utilisateur
   ========================================================================= */

.gweva-user-name-editor {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
	margin-bottom: 16px;
	font-size: 0.88rem;
}

.gweva-user-name-editor__display {
	font-weight: 600;
	color: var(--gweva-text);
}

.gweva-user-name-editor__details {
	display: inline;
}

.gweva-user-name-editor__toggle {
	cursor: pointer;
	font-size: 0.8rem;
	color: var(--gweva-text-light);
	text-decoration: underline;
	list-style: none;
}

.gweva-user-name-editor__toggle::-webkit-details-marker {
	display: none;
}

.gweva-user-name-editor__toggle:hover {
	color: var(--gweva-gold-hover);
}

.gweva-user-name-editor__form {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
	margin-top: 8px;
	width: 100%;
}

.gweva-user-name-editor__fields {
	display: flex;
	gap: 8px;
	flex: 1;
}

.gweva-user-name-editor__input {
	padding: 8px 12px;
	font-size: 0.85rem;
	min-width: 0;
	flex: 1;
}

.gweva-user-name-editor__toggle--saved {
	font-size: 0.8rem;
	color: var(--gweva-success);
	cursor: default;
	text-decoration: none;
}

/* =========================================================================
   21. Google placeholder
   ========================================================================= */

.gweva-placeholder--google {
	text-align: center;
}

/* =========================================================================
   18. Responsive
   ========================================================================= */

@media screen and (max-width: 768px) {

	.gweva-wrap,
	.gweva-login-step {
		padding: 24px 0;
	}

	.gweva-form-wrap,
	.gweva-email-step,
	.gweva-login-step,
	.gweva-followup--guest {
		padding: 28px 22px;
	}

	.gweva-intervenants-grid {
		grid-template-columns: 1fr;
	}

	.gweva-intervenant-context {
		flex-direction: column;
		text-align: center;
		gap: 12px;
	}

	.gweva-intervenant-context__change {
		align-self: center;
	}

	.gweva-name-fields {
		grid-template-columns: 1fr;
		gap: 12px;
	}

	.gweva-title {
		font-size: 1.35rem;
	}

	/* Responsive table : cards empilees */
	.gweva-followup__table-wrapper {
		background: none;
		border: none;
		box-shadow: none;
	}

	.gweva-table__head {
		display: none;
	}

	.gweva-table,
	.gweva-table__body,
	.gweva-table__row {
		display: block;
	}

	.gweva-table__body .gweva-table__row {
		padding: 18px 20px;
		margin-bottom: 12px;
		border: 1px solid var(--gweva-border);
		border-radius: var(--gweva-radius);
		background-color: var(--gweva-surface);
		box-shadow: var(--gweva-shadow);
	}

	.gweva-table__body .gweva-table__row:hover {
		background-color: var(--gweva-surface);
		box-shadow: var(--gweva-shadow-lg);
	}

	.gweva-table__body .gweva-table__cell {
		display: flex;
		justify-content: space-between;
		align-items: flex-start;
		padding: 4px 0;
		border: none;
	}

	.gweva-table__body .gweva-table__cell::before {
		content: attr(data-label);
		font-weight: 600;
		font-size: 0.72rem;
		color: var(--gweva-text-light);
		text-transform: uppercase;
		letter-spacing: 0.05em;
		flex-shrink: 0;
		margin-right: 12px;
		padding-top: 2px;
	}

	.gweva-table__cell--excerpt {
		min-width: 0;
	}

	.gweva-table__cell--actions {
		flex-direction: column;
		align-items: flex-end;
		padding-top: 10px !important;
	}

	.gweva-table__cell--actions::before {
		display: none;
	}

	.gweva-followup__actions {
		width: 100%;
		justify-content: flex-end;
	}

	/* Detail meta stack */
	.gweva-followup__meta {
		flex-direction: column;
		gap: 12px;
		padding: 16px 20px;
	}

	.gweva-followup__header {
		flex-direction: column;
		align-items: flex-start;
		gap: 10px;
	}

	/* Response content padding */
	.gweva-followup__response-content {
		padding: 20px;
	}

	.gweva-followup__demande-text {
		padding: 18px;
	}
}

/* =========================================================================
   Team showcase — [gweva_intervenants]
   ========================================================================= */

.gweva-team__title {
	text-align: center;
	margin-bottom: 32px;
}

.gweva-team__grid {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 36px 40px;
	margin: 0 auto;
}

.gweva-team__member {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	width: calc((100% - 40px * (var(--gweva-team-cols, 3) - 1)) / var(--gweva-team-cols, 3));
	min-width: 140px;
	box-sizing: border-box;
}

.gweva-team__member--link {
	color: inherit;
	text-decoration: none;
	transition: transform 0.25s ease;
}

.gweva-team__member--link:hover {
	transform: translateY(-2px);
	text-decoration: none;
}

.gweva-team__member--indispo {
	opacity: 0.7;
	cursor: default;
}

.gweva-team__member--indispo .gweva-team__photo {
	filter: grayscale(0.3);
}

.gweva-team__photo-wrap {
	position: relative;
	display: block;
	width: 100%;
	max-width: 200px;
	margin: 0 auto 14px;
}

.gweva-team__photo {
	width: 100%;
	max-width: 200px;
	aspect-ratio: 1 / 1;
	height: auto;
	border-radius: 50%;
	object-fit: cover;
	border: 3px solid var(--gweva-gold);
	box-shadow: 0 4px 16px rgba(59, 47, 42, 0.10);
	display: block;
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.gweva-team__photo-wrap:hover .gweva-team__photo,
.gweva-team__member--link:hover .gweva-team__photo {
	transform: scale(1.05);
	box-shadow: 0 6px 24px rgba(59, 47, 42, 0.14);
}

.gweva-team__photo--placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: var(--gweva-bg);
	border: 3px solid var(--gweva-gold);
}

/* Pastille de disponibilite */
.gweva-team__dot {
	position: absolute;
	bottom: 6px;
	right: 6px;
	width: 16px;
	height: 16px;
	border-radius: 50%;
	border: 2.5px solid var(--gweva-surface);
	z-index: 1;
}

.gweva-team__dot--green {
	background-color: var(--gweva-success);
	box-shadow: 0 0 0 2px var(--gweva-success-bg);
}

.gweva-team__dot--orange {
	background-color: #ff0000;
	box-shadow: 0 0 0 2px #ffe0e0;
}

.gweva-team__dot--grey {
	background-color: #d98a3d;
	box-shadow: 0 0 0 2px #fbedda;
}

.gweva-team__initials {
	font-size: 1.4rem;
	color: var(--gweva-gold-hover);
	letter-spacing: 0.05em;
}

.gweva-team__name {
	font-size: 1.05rem;
	font-weight: 400;
	color: var(--gweva-primary);
	margin: 0 0 4px;
}

.gweva-team__specialite {
	font-size: 0.82rem;
	font-weight: 600;
	color: var(--gweva-gold-hover);
	margin: 0;
	letter-spacing: 0.02em;
}

.gweva-team__horaires {
	font-size: 0.75rem;
	color: var(--gweva-text-light);
	margin: 6px 0 0;
	line-height: 1.45;
}

/* Responsive team grid */
@media screen and (max-width: 768px) {
	.gweva-team__member {
		width: calc((100% - 40px) / 2);
	}
}

@media screen and (max-width: 480px) {
	.gweva-team__member {
		width: 100%;
	}

	.gweva-team__photo {
		width: 200px;
		height: 200px;
	}
}

@media screen and (max-width: 480px) {

	.gweva-btn {
		padding: 11px 22px;
		font-size: 0.88rem;
	}

	.gweva-btn--small {
		padding: 7px 14px;
		font-size: 0.78rem;
	}

	.gweva-form-wrap,
	.gweva-email-step,
	.gweva-login-step,
	.gweva-followup--guest {
		padding: 22px 18px;
	}

	.gweva-followup__response-content,
	.gweva-followup__demande-text {
		padding: 16px;
	}

	.gweva-table__body .gweva-table__row {
		padding: 16px;
	}
}
