/* =============================================================
   Salon GPRV — styles des formulaires et popups
   Chargé en contexte WordPress via wp_enqueue_style()
   et en standalone via communs/head.php
   ============================================================= */

/* ── Formulaire coordonnées ── */
.coord-card { max-width:1200px; margin:1.5rem auto; padding:1.5rem; background:rgba(255,255,255,0.05); border-radius:10px; }
.coord-card h1 { text-align:center !important; display:block !important; width:100% !important; margin-bottom:1.25rem; }
.coord-section { margin-bottom:1.25rem; }
.coord-section-title { text-align:center; font-weight:bold; padding:0.4rem 0; margin-bottom:0.75rem; border-bottom:1px solid rgba(255,255,255,0.15); color:#ddd; font-size:1rem; }
.coord-row { display:flex; align-items:center; gap:0.6rem; margin-bottom:0.5rem; flex-wrap:wrap; }
.coord-row > label:first-child { flex:0 0 185px; text-align:right; color:#ddd; font-size:0.9rem; }
.coord-row input[type="text"],
.coord-row input[type="email"],
.coord-row input[type="tel"],
.coord-row input[type="password"],
.coord-row select { flex:1; min-width:0; padding:6px 10px; border-radius:4px; border:1px solid #aaa !important; background:#fff !important; color:#111 !important; font-size:0.9rem; box-sizing:border-box; }
.coord-row .req { color:#f87171; font-size:0.85rem; flex-shrink:0; }
.coord-2col { display:grid; grid-template-columns:1fr 1fr; gap:0.5rem; flex:1; min-width:0; }
.coord-name-group { display:flex; gap:0.4rem; flex:1; min-width:0; }
.coord-name-group select { flex:0 0 80px; }
.coord-name-group input { flex:1; min-width:0; }
.coord-num-grid { display:grid; grid-template-columns:1fr 1fr; gap:0.5rem 1rem; margin:0.5rem 0; }
.coord-num-item { display:flex; align-items:center; gap:0.5rem; }
.coord-num-item label { flex:0 0 50px; text-align:right; color:#ddd; font-size:0.85rem; }
.coord-num-item input { flex:1; padding:5px 8px; border-radius:4px; border:1px solid #aaa !important; background:#fff !important; color:#111 !important; font-size:0.85rem; box-sizing:border-box; }
.coord-radio-section { display:flex; align-items:center; gap:0.75rem; flex-wrap:wrap; padding:0.4rem 0; }
.coord-radio-section .coord-radio-label { flex:0 0 185px; text-align:right; color:#ddd; font-size:0.9rem; }
.coord-radio-section .coord-radio-options { display:flex; gap:1.5rem; flex-wrap:wrap; }
.coord-radio-section label { display:flex; align-items:center; gap:0.4rem; color:#ddd; cursor:pointer; }
.coord-checkbox-row { display:flex; align-items:flex-start; gap:0.75rem; padding:0.4rem 0; }
.coord-checkbox-row input[type="checkbox"] { margin-top:3px; flex-shrink:0; width:18px; height:18px; cursor:pointer; }
.coord-checkbox-row .coord-checkbox-text { color:#ddd; font-size:0.9rem; line-height:1.4; }
.coord-submit { text-align:center; padding:1rem 0; }
.coord-status { text-align:center; padding:0.5rem; margin-bottom:0.75rem; font-weight:bold; }
.coord-error { color:#f87171; }
.coord-info { color:#93c5fd; }

/* ── Distinctions ── */
.coord-distinctions { display:flex; gap:1rem; flex-wrap:wrap; justify-content:center; }
.coord-distinction-group { flex:1; min-width:90px; }
.coord-distinction-group-title { text-align:center; font-weight:bold; color:#93c5fd; font-size:0.85rem; margin-bottom:0.4rem; padding-bottom:0.2rem; border-bottom:1px solid rgba(255,255,255,0.15); }
.coord-distinction-group label { display:flex; align-items:center; gap:0.35rem; color:#ddd; font-size:0.82rem; padding:0.1rem 0; cursor:pointer; white-space:nowrap; }
.coord-distinction-group input[type="checkbox"] { width:14px; height:14px; flex-shrink:0; cursor:pointer; }

/* ── Responsive formulaire coordonnées ── */
/* Tablette (768–1024px) : réduire légèrement les labels */
@media (max-width:1024px) {
    .coord-row > label:first-child { flex:0 0 155px; font-size:.85rem; }
    .coord-radio-section .coord-radio-label { flex:0 0 155px; font-size:.85rem; }
    .coord-card { padding:1rem; }
}
/* Mobile (<768px) : labels pleine largeur, grilles en colonne */
@media (max-width:768px) {
    .coord-row > label:first-child { flex:0 0 100%; text-align:left; }
    .coord-radio-section .coord-radio-label { flex:0 0 100%; text-align:left; }
    .coord-num-grid { grid-template-columns:1fr; }
    .coord-2col { grid-template-columns:1fr; }
}
/* Petit mobile (<480px) : padding réduit */
@media (max-width:480px) {
    .coord-card { padding:.75rem .5rem; }
    .coord-distinctions { flex-direction:column; }
}

/* ── Formulaire contact ── */
.contact-card { max-width:1200px; margin:2rem auto; background:rgba(255,255,255,0.07); border-radius:10px; padding:2rem; }
.contact-card h1 { text-align:center !important; margin-bottom:1.5rem; font-size:1.5rem; color:#fff !important; }
.contact-notice { padding:0.75rem 1rem; border-radius:6px; margin-bottom:1rem; text-align:center; font-weight:bold; }
.contact-notice.ok  { background:#166534; color:#bbf7d0; }
.contact-notice.nok { background:#7f1d1d; color:#fecaca; }
.contact-notice.info { background:#1e3a5f; color:#bfdbfe; }
.contact-captcha { display:flex; align-items:center; justify-content:center; gap:1rem; flex-wrap:wrap; margin-bottom:1rem; }
.contact-captcha img { border-radius:4px; height:40px; }
.contact-captcha input[type="text"] { width:100px; padding:6px 10px; border-radius:4px; border:1px solid #aaa; font-size:1rem; }
.contact-fields { display:flex; flex-direction:column; gap:0.75rem; margin-bottom:1.25rem; }
.contact-row { display:flex; align-items:center; gap:0.75rem; }
.contact-row label { flex:0 0 140px; text-align:right; color:#ddd; font-size:0.9rem; }
.contact-row input,
.contact-row textarea { flex:1; padding:7px 10px; border-radius:4px; border:1px solid #aaa; background:#fff; color:#111; font-size:0.95rem; }
.contact-row textarea { min-height:100px; resize:vertical; }
.contact-submit { text-align:center; }
/* ── Responsive formulaire contact ── */
@media (max-width:768px) {
    .contact-card { padding:1.25rem 1rem; margin:1rem auto; }
    .contact-row { flex-direction:column; align-items:flex-start; gap:0.3rem; }
    .contact-row label { flex:0 0 auto; text-align:left; }
    .contact-row input,
    .contact-row textarea { width:100%; box-sizing:border-box; }
    .contact-captcha { flex-direction:column; align-items:center; gap:0.6rem; }
}
@media (max-width:480px) {
    .contact-card { padding:1rem 0.75rem; }
    .contact-card h1 { font-size:1.2rem; }
}

/* ── Popups modales ── */
.modal-overlay-validation { position:fixed; top:0; left:0; width:100%; height:100%; background-color:rgba(0,0,0,0.6); z-index:9998; display:none; }

.modal-popup-validation,
.modal-popup-auteur-rt,
.modal-popup-club { position:fixed; top:50%; left:50%; transform:translate(-50%,-50%); background-color:#fff; color:#222; padding:30px 40px; border-radius:10px; box-shadow:0 4px 20px rgba(0,0,0,0.5); z-index:9999; max-width:90vw; min-width:min(450px,90vw); text-align:center; display:none; }
.modal-popup-club { max-width:min(700px,95vw); min-width:min(500px,90vw); max-height:80vh; overflow-y:auto; }

.modal-popup-validation h2 { color:var(--gprv-error, #cc0000) !important; margin-top:0; margin-bottom:20px; }
.modal-popup-auteur-rt h2  { color:var(--gprv-error, #cc0000) !important; margin-top:0; margin-bottom:20px; }
.modal-popup-club h2       { color:var(--gprv-error, #cc0000) !important; margin-top:0; margin-bottom:20px; }

.modal-popup-validation .validation-info { background-color:var(--gprv-error-bg, #fff5f5); padding:15px; border-radius:5px; margin-bottom:20px; border:1px solid #ffcccc; }
.modal-popup-validation .validation-info p,
.modal-popup-auteur-rt .auteur-info p { margin:8px 0; color:#333; }
.modal-popup-auteur-rt .auteur-info { background-color:var(--gprv-error-bg, #fff5f5); padding:15px; border-radius:5px; margin-bottom:20px; border:1px solid #ffcccc; }
.modal-popup-auteur-rt .auteur-info strong,
.modal-popup-validation .validation-info strong { color:var(--gprv-error, #cc0000); }
.modal-popup-auteur-rt .message { margin-bottom:20px; color:#333; line-height:1.5; }

.modal-popup-club .question    { font-weight:bold; margin-bottom:20px; color:#333; }
.modal-popup-club .clubs-list  { background-color:#f5f5f5; padding:15px; border-radius:5px; margin-bottom:20px; text-align:left; max-height:300px; overflow-y:auto; }
.modal-popup-club .club-option { display:flex; align-items:center; gap:0.5rem; flex-wrap:wrap; padding:10px; margin-bottom:8px; background-color:#fff; border-radius:5px; border:1px solid #ddd; cursor:pointer; transition:background-color 0.2s; }
.modal-popup-club .club-option:hover { background-color:#e8f4fd; }
.modal-popup-club .club-option input[type="radio"] { flex-shrink:0; transform:scale(1.2); }
.modal-popup-club .club-option label  { cursor:pointer; color:#222; flex-shrink:0; }
.modal-popup-club .club-option .club-name    { font-weight:bold; color:#333; }
.modal-popup-club .club-option .club-details { font-size:0.9em; color:#666; }
.modal-popup-club .buttons { display:flex; justify-content:center; gap:15px; flex-wrap:wrap; margin-top:20px; }
.modal-popup-club .btn-rattacher { padding:12px 25px; background-color:var(--gprv-success, #4CAF50); color:#fff; border:none; border-radius:5px; cursor:pointer; font-size:14px; font-weight:bold; }
.modal-popup-club .btn-rattacher:hover { background-color:#45a049; }
.modal-popup-club .btn-nouveau  { padding:12px 25px; background-color:var(--gprv-accent, #2196F3); color:#fff; border:none; border-radius:5px; cursor:pointer; font-size:14px; font-weight:bold; }
.modal-popup-club .btn-nouveau:hover  { background-color:var(--gprv-accent-dark, #1976D2); }

.modal-popup-validation .btn-confirmer,
.modal-popup-auteur-rt .btn-confirmer { padding:12px 35px; background-color:var(--gprv-error, #cc0000); color:#fff; border:none; border-radius:5px; cursor:pointer; font-size:14px; font-weight:bold; }
.modal-popup-validation .btn-confirmer:hover,
.modal-popup-auteur-rt .btn-confirmer:hover { background-color:#aa0000; }

.field-error   { border:2px solid #cc0000 !important; background-color:#fff5f5 !important; }
.field-success { border:2px solid #4CAF50 !important; }

/* ── Page photos ── */
.photos-page { max-width:1200px; margin:0 auto; padding:1rem; }
.photos-page h1 { margin-bottom:0.5rem; text-align:center !important; display:block !important; width:100% !important; }
.author-header { font-weight:300; margin-bottom:1rem; opacity:0.85; text-align:center; }
.info-box { padding:0.75rem 1rem; background:rgba(59,130,246,0.1); margin-bottom:1.5rem; border-radius:4px; line-height:1.6; text-align:center; }
.info-box img { vertical-align:middle; margin-right:2px; }
.section-block { margin-bottom:2.5rem; }
.section-title { margin-bottom:1rem; text-align:center; }
.photos-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; }
@media (max-width:1024px) { .photos-grid { grid-template-columns:repeat(3,1fr); } }
@media (max-width:768px)  { .photos-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:480px)  { .photos-grid { grid-template-columns:1fr; } }
.photo-card { background:rgba(255,255,255,0.05); border:1px solid rgba(255,255,255,0.1); border-radius:8px; padding:1rem; }
.photo-num { font-size:0.75rem; font-weight:700; color:#3b82f6; background:rgba(59,130,246,0.15); padding:0.15rem 0.4rem; border-radius:4px; }
.photo-status-ok { color:#22c55e; font-size:0.85rem; }
.photo-status-error { color:#ef4444; font-size:0.8rem; }
.photo-thumb-area { height:160px; display:flex; align-items:center; justify-content:center; background:rgba(0,0,0,0.2); border-radius:6px; overflow:hidden; margin:0.5rem 0; }
.photo-thumb-area img { max-width:1200px; max-height:100%; object-fit:contain; }
.photo-thumb-placeholder { width:100%; height:100%; display:flex; align-items:center; justify-content:center; border:2px dashed rgba(255,255,255,0.15); border-radius:6px; color:rgba(255,255,255,0.3); font-size:1.5rem; }
.photo-title-input { width:100%; box-sizing:border-box; background:transparent; border:1px solid rgba(255,255,255,0.2); color:inherit; padding:0.4rem; border-radius:4px; font-size:0.85rem; margin-top:0.25rem; }
.photo-title-input:focus { border-color:#3b82f6; outline:none; }
.photo-title-input[readonly] { opacity:0.6; }
.photo-upload-area { margin-top:0.5rem; text-align:center; }
.btn-upload { background:#3b82f6; color:#fff; padding:0.4rem 0.8rem; border-radius:4px; cursor:pointer; display:inline-block; font-size:0.85rem; border:none; text-decoration:none; }
.btn-upload:hover { background:#2563eb; }
.photo-result { margin-top:0.5rem; font-size:0.85rem; line-height:1.6; text-align:center; }
.photo-result img { vertical-align:middle; }

/* ── Tableaux de données communs ── */
.salon-table-card {
	background:var(--gprv-table-bg, #fff); border:1px solid var(--gprv-table-border, #dde3ec); border-radius:8px;
	margin-bottom:1rem; overflow:hidden;
}
.salon-table-scroll { overflow-x:auto; }
.salon-table-head {
	display:grid; gap:0;
	background:var(--gprv-table-head-bg, #e8edf5);
	font-size:.78rem; font-weight:700; color:var(--gprv-table-head-text, #4a6fa5);
	border-bottom:1px solid var(--gprv-table-border, #dde3ec);
}
.salon-table-head > span {
	padding:.45rem .5rem;
	border-right:1px solid #b8c4d8;
}
.salon-table-head > span:last-child { border-right:none; }
.salon-table-row {
	display:grid; gap:0;
	border-bottom:1px solid #b8c4d8;
	align-items:stretch;
	font-size:.85rem;
	background:var(--gprv-table-bg, #fff);
	color:var(--gprv-table-text, #333) !important;
}
.salon-table-row > span {
	display:flex; align-items:center;
	padding:.4rem .5rem;
	border-right:1px solid #b8c4d8;
	color:var(--gprv-table-text, #333) !important;
}
.salon-table-row > span:last-child { border-right:none; }
.salon-table-row:last-child { border-bottom:none; }
.salon-table-row:nth-child(even) { background:var(--gprv-table-alt-bg, #f4f7fb); }
.salon-table-row:nth-child(even) > span { color:var(--gprv-table-text, #333) !important; }
.salon-table-author-break {
	background:#d0d8e8; padding:.4rem .75rem;
	font-weight:700; font-size:.88rem; color:#1a1a2e;
	text-align:center; border-bottom:1px solid #c5cfe0;
}
.salon-table-section-break {
	background:var(--gprv-table-head-bg, #e8edf5); padding:.35rem .75rem;
	font-weight:700; font-size:.78rem; color:var(--gprv-table-head-text, #4a6fa5);
	text-align:center; border-bottom:1px solid #d0d8e8;
}
.salon-cell-center  { text-align:center; }
.salon-cell-score   { font-weight:700; text-align:center; }
.salon-cell-icons   { white-space:nowrap; }
.salon-cell-admis   { font-weight:700; color:#1a5e20; }
.salon-cell-expose  { font-weight:700; color:#1a3faa; }

/* ── Responsive tableaux communs ── */
/* Tablette : police et padding légèrement réduits */
@media (max-width:1024px) {
    .salon-table-head > span { padding:.4rem .35rem; font-size:.74rem; }
    .salon-table-row > span  { padding:.35rem .35rem; font-size:.82rem; }
    .salon-table-author-break { font-size:.84rem; }
}
/* Mobile : police et padding minimum, scroll horizontal actif */
@media (max-width:768px) {
    .salon-table-head > span { padding:.3rem .25rem; font-size:.70rem; }
    .salon-table-row > span  { padding:.3rem .25rem; font-size:.78rem; }
    .salon-table-section-break { font-size:.74rem; padding:.3rem .5rem; }
    .salon-table-author-break  { font-size:.80rem; padding:.35rem .5rem; }
}

/* ── Lightbox ── */
.photo-lightbox { display:none; position:fixed; inset:0; background:rgba(0,0,0,0.85); z-index:9999; align-items:center; justify-content:center; }
.photo-lightbox.active { display:flex; }
.photo-lightbox img { max-width:90vw; max-height:90vh; object-fit:contain; border-radius:4px; }
.photo-lightbox-close { position:absolute; top:1rem; right:1.25rem; background:none; border:none; color:#fff; font-size:2.5rem; cursor:pointer; line-height:1; }
.photo-lightbox-close:hover { color:#ccc; }

/* ── Login card (login.php + login_consultation.php) ── */
.lc-wrap { max-width:1200px; margin:0 auto; padding:0 1rem 2rem; }
.lc-wrap h1,
#salon-wp-wrapper .lc-wrap h1 { text-align:center !important; margin-bottom:1.5rem; }
.lc-card {
    background:#fff; border:1px solid #dde3ec; border-radius:8px;
    max-width:480px; margin:0 auto; padding:1.5rem 2rem;
    box-shadow:0 2px 8px rgba(0,0,0,.06);
    color:#333;
}
.lc-field { margin-bottom:1rem; }
.lc-field label { display:block; margin-bottom:.35rem; font-size:.9rem; color:#444; }
.lc-field input[type="email"],
.lc-field input[type="password"],
.lc-field input[type="text"] {
    width:100%; box-sizing:border-box;
    padding:.5rem .75rem; border:1px solid #c8d0dc; border-radius:4px;
    font-size:1rem;
}
.lc-select { margin-bottom:1.25rem; }
.lc-select label { display:block; margin-bottom:.35rem; font-size:.9rem; color:#444; }
.lc-actions { text-align:center; margin-top:1.25rem; }
.lc-msg-error   { color:red;    margin-top:.75rem; text-align:center; }
.lc-msg-warning { color:orange; margin-top:.75rem; text-align:center; }
.lc-msg-success { color:#166534; margin-top:.75rem; text-align:center; }
.lc-divider { margin:1rem 0; border:none; border-top:1px solid #dde3ec; }
@media (max-width:480px) {
    .lc-card { padding:1rem; }
}

/* ── Calcul des frais ── */
.frais-wrap { max-width:1200px; margin:0 auto; padding:0 1rem 2rem; }
.frais-wrap h1 { text-align:center !important; margin-bottom:1.5rem; }
.frais-card { background:#fff; border:1px solid #dde3ec; border-radius:8px; padding:1rem 1.25rem; margin-bottom:1rem; }
.frais-card-header { font-weight:700; font-size:1.05rem; color:#000; text-align:center; padding-bottom:.5rem; border-bottom:2px solid #e8edf5; margin-bottom:.75rem; }
.frais-section-title { font-weight:600; font-size:.9rem; color:#000; text-transform:uppercase; letter-spacing:.04em; margin:.75rem 0 .4rem; }
.frais-author { display:flex; flex-wrap:wrap; align-items:center; gap:.4rem .75rem; padding:.5rem .25rem; border-bottom:1px solid #f0f3f7; }
.frais-author:last-child { border-bottom:none; }
.frais-author-name { font-weight:600; flex:0 0 auto; min-width:160px; }
.frais-author-fees { flex:1; color:#000; }
.frais-author-cat { color:#000; }
.frais-author-payee { font-size:.8rem; font-weight:700; color:#1a7a4a; background:#e6f4ee; border-radius:4px; padding:2px 8px; white-space:nowrap; }
.frais-note { font-size:.88rem; color:#000; text-align:center; padding:.4rem 0; }
.frais-total-card { background:#f0f5ff; border:1px solid #c5d5f0; border-radius:8px; padding:1rem 1.25rem; margin:1rem 0; }
.frais-total-row { display:flex; justify-content:space-between; align-items:center; padding:.35rem 0; border-bottom:1px solid #dbe5f5; font-size:.97rem; color:#000; }
.frais-total-row:last-child { border-bottom:none; }
.frais-total-grand { font-weight:700; font-size:1.1rem; color:#000; margin-top:.25rem; }
.frais-rib { display:block; text-align:center; margin:.75rem 0; }
.frais-paypal-block { background:#fff; border:1px solid #dde3ec; border-radius:8px; padding:1rem; margin:.75rem 0; text-align:center; }
.frais-paypal-label { font-weight:600; margin-bottom:.75rem; color:#000; text-align:center; }
.frais-card-separator { text-align:center; color:#000; font-size:.8rem; margin:.6rem 0; display:flex; align-items:center; gap:.5rem; }
.frais-card-separator::before, .frais-card-separator::after { content:''; flex:1; height:1px; background:#dde3ec; }
.frais-card-form-inner { display:grid; gap:.5rem; max-width:300px; margin:0 auto; }
.frais-card-field-row { display:grid; grid-template-columns:1fr 1fr; gap:.5rem; }
.frais-card-field-host { border:1px solid #ccc; border-radius:6px; background:#fff; height:44px; overflow:hidden; }
.frais-card-name-input { width:100%; padding:0 12px; height:44px; border:1px solid #ccc; border-radius:6px; font-size:14px; box-sizing:border-box; outline:none; }
.frais-card-name-input:focus { border-color:#4a6fa5; }
.frais-card-pay-btn { width:100%; margin-top:.25rem; }
.frais-paid-banner { background:#e6f4ee; border:1px solid #a8d5bb; border-radius:8px; padding:1rem; text-align:center; font-weight:700; color:#1a7a4a; font-size:1.05rem; margin-top:1rem; }
.frais-submit-row { text-align:center; margin:1rem 0; }
@media (max-width:768px) { .frais-author-name { min-width:120px; } .frais-card { padding:.75rem 1rem; } .frais-wrap { padding:0 .75rem 1.5rem; } }
@media (max-width:480px) { .frais-author { flex-direction:column; align-items:flex-start; gap:.2rem; } .frais-author-name { min-width:0; } .frais-total-row { flex-direction:column; align-items:flex-start; gap:.15rem; } }
