/* ChessClubDirectory — styles publics (charte ChessDZ) */
:root {
	--ccd-wood:      #4A3526;
	--ccd-wood-soft: #5c422f;
	--ccd-parch:     #F4E8CE;
	--ccd-parch-2:   #faf3e2;
	--ccd-navy:      #1F3A5F;
	--ccd-gold:      #C9A227;
	--ccd-gold-soft: #e3c766;
	--ccd-line:      #e7dcc4;
	--ccd-ink:       #2a2117;
}

.ccd-directory {
	margin: 1.8em 0;
	font-family: "Georgia", "DejaVu Serif", serif;
}

/* ---- Tableau ---- */
.ccd-table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	font-size: 15px;
	color: var(--ccd-ink);
	background: #fff;
	border: 1px solid var(--ccd-line);
	border-radius: 14px;
	overflow: hidden;
	box-shadow: 0 10px 30px -12px rgba(74, 53, 38, .35);
}

/* En-tête bois + filet doré */
.ccd-table thead th {
	background: linear-gradient(180deg, var(--ccd-wood-soft) 0%, var(--ccd-wood) 100%);
	color: var(--ccd-parch);
	font-family: "Georgia", "DejaVu Serif", serif;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	font-size: 12.5px;
	text-align: left;
	padding: 15px 18px;
	border-bottom: 3px solid var(--ccd-gold);
	white-space: nowrap;
}
.ccd-table thead th:first-child { padding-left: 22px; }

.ccd-table tbody td {
	padding: 14px 18px;
	border-bottom: 1px solid var(--ccd-line);
	text-align: left;
	vertical-align: middle;
}
.ccd-table tbody td:first-child {
	padding-left: 22px;
	font-weight: 700;
	color: var(--ccd-navy);
}

/* Lignes alternées parchemin + survol */
.ccd-table tbody tr:nth-child(odd)  { background: #ffffff; }
.ccd-table tbody tr:nth-child(even) { background: var(--ccd-parch-2); }
.ccd-table tbody tr {
	transition: background .18s ease, box-shadow .18s ease;
}
.ccd-table tbody tr:hover {
	background: var(--ccd-parch);
	box-shadow: inset 4px 0 0 var(--ccd-gold);
}
.ccd-table tbody tr:last-child td { border-bottom: 0; }

.ccd-muted { color: #b0a487; }

/* ---- Message vide ---- */
.ccd-empty p {
	font-family: "Georgia", "DejaVu Serif", serif;
	padding: 16px 20px;
	background: var(--ccd-parch-2);
	border: 1px solid var(--ccd-line);
	border-left: 4px solid var(--ccd-gold);
	border-radius: 10px;
	color: var(--ccd-wood);
}

/* ---- Formulaire public (carte assortie au tableau) ---- */
.ccd-form-public { margin: 1.8em 0; max-width: 600px; font-family: "Georgia", "DejaVu Serif", serif; }

.ccd-card {
	background: #fff;
	border: 1px solid var(--ccd-line);
	border-radius: 14px;
	overflow: hidden;
	box-shadow: 0 10px 30px -12px rgba(74, 53, 38, .35);
}

/* Bandeau bois + filet doré (comme l'en-tête du tableau) */
.ccd-card__head {
	background: linear-gradient(180deg, var(--ccd-wood-soft) 0%, var(--ccd-wood) 100%);
	border-bottom: 3px solid var(--ccd-gold);
	padding: 20px 24px 18px;
	color: var(--ccd-parch);
	position: relative;
}
.ccd-card__icon {
	font-size: 26px;
	line-height: 1;
	color: var(--ccd-gold-soft);
	display: inline-block;
	margin-bottom: 6px;
}
.ccd-card__title {
	margin: 0;
	font-family: "Georgia", "DejaVu Serif", serif;
	font-size: 20px;
	font-weight: 700;
	letter-spacing: .02em;
	color: var(--ccd-parch);
}
.ccd-card__sub {
	margin: 4px 0 0;
	font-size: 13.5px;
	color: #d9c9a8;
	font-style: italic;
}

.ccd-card__body { padding: 22px 24px 24px; background: var(--ccd-parch-2); }

/* Grille des champs : 2 colonnes, certains pleine largeur */
.ccd-form-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px 18px;
}
.ccd-field { margin: 0; display: flex; flex-direction: column; }
.ccd-field--full { grid-column: 1 / -1; }
.ccd-form-grid label { font-weight: 700; margin-bottom: 6px; color: var(--ccd-wood); font-size: 14px; }
.ccd-form-grid input,
.ccd-form-grid select,
.ccd-form-grid textarea {
	padding: 11px 13px;
	border: 1px solid var(--ccd-line);
	border-radius: 9px;
	font-size: 15px;
	font-family: inherit;
	background: #fff;
	color: var(--ccd-ink);
	transition: border-color .15s ease, box-shadow .15s ease;
}
.ccd-form-grid input::placeholder,
.ccd-form-grid textarea::placeholder { color: #b8ad90; }
.ccd-form-grid input:focus,
.ccd-form-grid select:focus,
.ccd-form-grid textarea:focus {
	outline: none;
	border-color: var(--ccd-gold);
	box-shadow: 0 0 0 3px rgba(201, 162, 39, .22);
}
.ccd-req { color: #b32d2e; }

.ccd-actions {
	flex-direction: row;
	align-items: center;
	gap: 14px;
	flex-wrap: wrap;
	margin-top: 4px;
}
.ccd-note { font-size: 13px; color: #7a6c52; font-style: italic; }

.ccd-btn {
	background: linear-gradient(180deg, var(--ccd-wood-soft) 0%, var(--ccd-wood) 100%);
	color: var(--ccd-parch);
	border: 0;
	padding: 12px 24px;
	border-radius: 9px;
	cursor: pointer;
	font-size: 15px;
	font-weight: 700;
	letter-spacing: .02em;
	font-family: inherit;
	box-shadow: 0 4px 12px -4px rgba(74, 53, 38, .5);
	transition: transform .12s ease, box-shadow .15s ease;
}
.ccd-btn:hover { box-shadow: 0 6px 16px -4px rgba(74, 53, 38, .6); transform: translateY(-1px); }
.ccd-btn:active { transform: translateY(0); }

@media (max-width: 520px) {
	.ccd-form-grid { grid-template-columns: 1fr; }
}

.ccd-alert { padding: 13px 18px; border-radius: 10px; margin-bottom: 18px; font-family: "Georgia", "DejaVu Serif", serif; }
.ccd-alert--ok  { background: #e6f4ea; color: #1e7e34; border: 1px solid #bfe3c9; }
.ccd-alert--err { background: #fdecea; color: #b32d2e; border: 1px solid #f3c6c2; }

/* Champ piège : masqué visuellement et aux lecteurs d'écran */
.ccd-hp { position: absolute; left: -9999px; height: 0; overflow: hidden; }

/* ---- Responsive : tableau en fiches sur mobile ----
   Règles renforcées (!important + sélecteurs forts) pour passer au-dessus
   des styles de tableau imposés par le thème ou Elementor. Libellé au-dessus
   de chaque valeur : robuste pour les longues adresses, lisible sur petit écran. */
@media screen and (max-width: 767px) {
	.ccd-directory .ccd-table,
	.ccd-directory .ccd-table tbody,
	.ccd-directory .ccd-table tr,
	.ccd-directory .ccd-table td {
		display: block !important;
		width: auto !important;
		max-width: 100% !important;
	}
	.ccd-directory .ccd-table {
		border: 0 !important;
		box-shadow: none !important;
		background: transparent !important;
		border-radius: 0 !important;
	}
	.ccd-directory .ccd-table thead { display: none !important; }

	.ccd-directory .ccd-table tbody tr {
		margin: 0 0 14px 0 !important;
		padding: 4px 2px !important;
		border: 1px solid var(--ccd-line) !important;
		border-top: 3px solid var(--ccd-gold) !important;
		border-radius: 12px !important;
		background: #fff !important;
		box-shadow: 0 6px 18px -10px rgba(74, 53, 38, .4) !important;
		overflow: hidden !important;
	}

	.ccd-directory .ccd-table tbody td {
		padding: 9px 16px !important;
		border: 0 !important;
		border-bottom: 1px solid #f0e7d2 !important;
		text-align: left !important;
		white-space: normal !important;
		word-break: break-word !important;
		color: #2a2117 !important;
		font-size: 15px !important;
	}
	.ccd-directory .ccd-table tbody tr td:last-child { border-bottom: 0 !important; }

	.ccd-directory .ccd-table tbody td::before {
		content: attr(data-label);
		display: block !important;
		margin-bottom: 2px !important;
		font-weight: 700 !important;
		text-transform: uppercase !important;
		font-size: 10.5px !important;
		letter-spacing: .05em !important;
		color: var(--ccd-wood) !important;
	}

	.ccd-directory .ccd-table tbody td:first-child {
		font-size: 16.5px !important;
		font-weight: 700 !important;
		color: var(--ccd-navy) !important;
	}
}

/* ---- Nom de club cliquable (lien facultatif) ---- */
.ccd-table .ccd-club-link {
	color: var(--ccd-navy);
	font-weight: 700;
	text-decoration: none;
	border-bottom: 1px solid var(--ccd-gold-soft);
	transition: color .18s ease, border-color .18s ease;
}
.ccd-table .ccd-club-link:hover,
.ccd-table .ccd-club-link:focus {
	color: var(--ccd-wood);
	border-bottom-color: var(--ccd-gold);
}
.ccd-table .ccd-club-link:focus-visible {
	outline: 2px solid var(--ccd-gold);
	outline-offset: 2px;
	border-radius: 2px;
}
.ccd-table .ccd-ext {
	font-size: .8em;
	margin-left: 4px;
	color: var(--ccd-gold);
	border-bottom: 0;
}
