/* Reservation publique - prefixe rsv-. Theme emerald par defaut (variables locales). */
:root{
  --primary:#10b981;--primary-dark:#059669;--primary-light:#34d399;--primary-rgb:16,185,129;
}
*{box-sizing:border-box}
body{margin:0;font-family:'Outfit',-apple-system,Segoe UI,Roboto,sans-serif;color:#0f172a;background:#f8fafc}
.rsv-wrap{max-width:980px;margin:0 auto;padding:16px}

.rsv-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;background:#fff;border:1px solid #e2e8f0;border-radius:16px;padding:12px 14px;margin-bottom:14px}
.rsv-nav{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.rsv-nav-btn{width:36px;height:36px;border-radius:10px;border:1.5px solid #e2e8f0;background:#fff;color:#64748b;cursor:pointer}
.rsv-nav-btn:hover{border-color:var(--primary);color:var(--primary)}
.rsv-today{padding:8px 14px;border-radius:10px;border:1.5px solid #e2e8f0;background:#fff;color:#0f172a;font-weight:600;cursor:pointer}
.rsv-period{font-weight:600;color:#475569;font-size:14px}

.rsv-seg{display:flex;gap:4px;padding:4px;background:#f1f5f9;border-radius:12px}
.rsv-seg button{border:none;background:transparent;padding:8px 14px;border-radius:9px;font-weight:600;font-size:13px;color:#64748b;cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.rsv-seg button.on{background:#fff;color:var(--primary-dark);box-shadow:0 1px 4px rgba(0,0,0,.08)}

/* Carte evenement */
.rsv-card{border:1px solid #eef2f7;border-left:4px solid var(--rsv-card-color,var(--primary));border-radius:12px;background:#fff;padding:12px 14px;margin-bottom:10px}
.rsv-card-time{font-size:12px;font-weight:700;color:#64748b}
.rsv-card-title{font-size:16px;font-weight:600;margin:2px 0 8px}
.rsv-card-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:12.5px;color:#64748b}
.rsv-chip{color:#fff;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600}
.rsv-badge{display:inline-flex;align-items:center;gap:5px;background:#f1f5f9;border-radius:999px;padding:3px 10px}
.rsv-meta-item{display:inline-flex;align-items:center;gap:5px}
.rsv-card-desc{margin-top:8px;font-size:13px;color:#475569;line-height:1.5}

/* Vue liste */
.rsv-day{margin-bottom:18px}
.rsv-day-head{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#94a3b8;margin:0 0 10px;padding-bottom:6px;border-bottom:1px solid #eef2f7}

/* Vue planning (colonnes par jour) */
.rsv-week{display:grid;grid-template-columns:repeat(7,minmax(150px,1fr));gap:10px;overflow-x:auto}
.rsv-week-col{min-width:150px}
.rsv-week-day{font-size:12.5px;font-weight:700;color:#475569;text-align:center;padding:8px 4px;background:#fff;border:1px solid #eef2f7;border-radius:10px;margin-bottom:8px}
.rsv-week-body .rsv-card{padding:9px 10px}
.rsv-week-empty{text-align:center;color:#cbd5e1}

/* Etats vides */
.rsv-empty{text-align:center;color:#94a3b8;padding:48px 20px}
.rsv-empty i{font-size:32px;display:block;margin-bottom:12px;color:#cbd5e1}
.rsv-unavailable{padding:80px 20px}

/* En-tete (branding centre + Equimondo) */
.rsv-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;padding:0 2px}
.rsv-header-centre{display:flex;align-items:center;gap:9px;font-family:'Fraunces',serif;font-size:20px;font-weight:700;color:#0f172a}
.rsv-header-centre i{color:var(--primary)}
.rsv-header-brand{font-weight:700;font-size:13px;color:var(--primary-dark);text-decoration:none;background:rgba(var(--primary-rgb),.1);padding:5px 12px;border-radius:999px}
.rsv-header-brand:hover{background:rgba(var(--primary-rgb),.18)}

/* Footer backlink Equimondo */
.rsv-footer{margin-top:22px;padding:16px 0 8px;text-align:center;font-size:13px;color:#94a3b8;border-top:1px solid #eef2f7}
.rsv-footer a{color:var(--primary-dark);font-weight:700;text-decoration:none}
.rsv-footer a:hover{text-decoration:underline}

/* Carte cliquable */
.rsv-card{cursor:pointer;transition:transform .12s ease,box-shadow .12s ease}
.rsv-card:hover{transform:translateY(-1px);box-shadow:0 6px 18px rgba(15,23,42,.08)}
.rsv-card:focus-visible{outline:2px solid var(--primary);outline-offset:2px}

/* Modal fiche evenement (backdrop clair, cf. convention overlay) */
.rsv-modal{position:fixed;inset:0;display:none;align-items:center;justify-content:center;z-index:1000;padding:16px}
.rsv-modal.on{display:flex}
.rsv-modal-backdrop{position:absolute;inset:0;background:rgba(255,255,255,.55);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}
.rsv-modal-card{position:relative;background:#fff;border-radius:20px;max-width:560px;width:100%;max-height:90vh;overflow:auto;box-shadow:0 24px 60px rgba(15,23,42,.22)}
.rsv-modal-close{position:absolute;top:12px;right:12px;width:38px;height:38px;border:none;border-radius:11px;background:#f1f5f9;color:#475569;cursor:pointer;z-index:2}
.rsv-modal-close:hover{background:#e2e8f0}

/* Contenu fiche */
.rsv-fiche-head{padding:26px 24px 18px;border-bottom:1px solid #eef2f7;border-top:4px solid var(--rsv-card-color,var(--primary));border-radius:20px 20px 0 0}
.rsv-fiche-title{font-family:'Fraunces',serif;font-size:24px;font-weight:700;margin:10px 0 6px;color:#0f172a}
.rsv-fiche-when{font-size:14px;color:#64748b;font-weight:600}
.rsv-fiche-body{padding:18px 24px 26px}
.rsv-fiche-row{display:flex;justify-content:space-between;gap:14px;padding:10px 0;border-bottom:1px solid #f5f7fa}
.rsv-fiche-label{color:#94a3b8;font-size:13px;display:inline-flex;align-items:center;gap:7px}
.rsv-fiche-value{font-weight:600;text-align:right;color:#0f172a}
.rsv-fiche-desc{margin-top:14px;font-size:14px;line-height:1.6;color:#475569;background:#f8fafc;border-radius:12px;padding:14px}

/* Landing (sans cle) */
.rsv-landing{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:linear-gradient(160deg,#f0fdf9,#f8fafc 60%)}
.rsv-landing-card{max-width:560px;text-align:center;background:#fff;border:1px solid #e2e8f0;border-radius:24px;padding:48px 34px;box-shadow:0 24px 60px rgba(15,23,42,.08)}
.rsv-landing-logo{width:84px;height:84px;border-radius:50%;margin:0 auto 22px;display:flex;align-items:center;justify-content:center;font-size:38px;color:#fff;background:linear-gradient(135deg,var(--primary-light),var(--primary-dark))}
.rsv-landing-title{font-family:'Fraunces',serif;font-size:28px;font-weight:700;color:#0f172a;margin:0 0 14px;line-height:1.25}
.rsv-landing-text{font-size:16px;line-height:1.6;color:#475569;margin:0 0 28px}
.rsv-landing-cta{display:inline-flex;align-items:center;gap:9px;background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;text-decoration:none;font-weight:700;font-size:16px;padding:14px 28px;border-radius:14px;box-shadow:0 10px 24px rgba(var(--primary-rgb),.35);transition:transform .15s ease}
.rsv-landing-cta:hover{transform:translateY(-2px)}

/* Bouton "Reserver" dans la fiche */
.rsv-resa-zone{margin-top:18px;padding-top:16px;border-top:1px solid #eef2f7}
.rsv-resa-btn{width:100%;display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:14px;border:none;border-radius:14px;font-weight:700;font-size:16px;color:#fff;cursor:pointer;background:linear-gradient(135deg,var(--primary),var(--primary-dark));box-shadow:0 10px 24px rgba(var(--primary-rgb),.35);transition:transform .15s ease}
.rsv-resa-btn:hover{transform:translateY(-2px)}
.rsv-resa-full{margin-top:18px;padding:12px;text-align:center;border-radius:12px;background:#fef2f2;color:#b91c1c;font-weight:600}
.rsv-resa-off{margin-top:18px;padding:12px;text-align:center;border-radius:12px;background:#f1f5f9;color:#475569;font-weight:600}

/* Feature 14a : stages - bloc "A partir de <prix>" + choix de duree */
.rsv-stage-from{margin-top:18px;display:flex;align-items:baseline;gap:10px;justify-content:center;padding:14px;border-radius:14px;background:rgba(var(--primary-rgb),.07);border:1px solid rgba(var(--primary-rgb),.18)}
.rsv-stage-from-label{font-size:14px;font-weight:600;color:#475569}
.rsv-stage-from-price{font-family:'Fraunces',serif;font-size:26px;font-weight:700;color:var(--primary-dark)}
.rsv-duree{display:flex;align-items:center;gap:12px;padding:14px;border:1.5px solid #eef2f7;border-radius:14px;margin-bottom:10px;cursor:pointer;font-weight:600;transition:border-color .15s ease,background .15s ease}
.rsv-duree:has(input:checked){border-color:var(--primary);background:rgba(var(--primary-rgb),.06)}
.rsv-duree input{width:20px;height:20px;accent-color:var(--primary)}
.rsv-duree-label{flex:1;color:#0f172a}
.rsv-duree-price{font-family:'Fraunces',serif;font-size:18px;font-weight:700;color:var(--primary-dark)}

/* Assistant de reservation */
.rsv-resa{padding:24px}
.rsv-resa-h3{font-family:'Fraunces',serif;font-size:21px;font-weight:700;margin:0 0 16px;color:#0f172a;display:flex;align-items:center;gap:9px}
.rsv-resa-h3 i{color:var(--primary)}
.rsv-resa-intro{color:#64748b;font-size:14px;margin:0 0 16px}
.rsv-field{display:block;margin-bottom:14px}
.rsv-field>span,.rsv-field-label{display:block;font-size:13px;font-weight:600;color:#475569;margin-bottom:6px}
.rsv-field-label{margin-top:6px}
.rsv-resa input[type=text],.rsv-resa input[type=email],.rsv-resa input[type=tel],.rsv-resa select{width:100%;padding:11px 12px;border:1.5px solid #e2e8f0;border-radius:11px;font-size:15px;font-family:inherit;background:#fff}
.rsv-resa input:focus,.rsv-resa select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(var(--primary-rgb),.12)}
.rsv-rider{border:1px solid #eef2f7;border-radius:14px;padding:14px;margin-bottom:12px;background:#f8fafc}
.rsv-rider-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.rsv-rider-grid3{display:grid;grid-template-columns:1fr 1.4fr 1fr;gap:10px}
.rsv-guardian{margin-top:12px;padding-top:12px;border-top:1px dashed #cbd5e1}
.rsv-guardian .rsv-field-label i{color:var(--primary)}
.rsv-check{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1.5px solid #eef2f7;border-radius:12px;margin-bottom:9px;cursor:pointer;font-weight:600}
.rsv-check input{width:20px;height:20px;accent-color:var(--primary)}
/* Ligne refusée : on estompe le nom, la case et le prix -- JAMAIS le motif. Les
   deux opacités (.rsv-check.off et .rsv-member.off) se multipliaient : la ligne
   tombait à 30 %, et « Plus de place » ne se lisait plus. */
.rsv-check.off{cursor:not-allowed;background:#f8fafc}
.rsv-check.off > :not(.rsv-check-tag){opacity:.55}
.rsv-check-tag{margin-left:auto;font-style:normal;font-size:12px;font-weight:600;color:#94a3b8;background:#f1f5f9;padding:3px 9px;border-radius:999px}
.rsv-check.off .rsv-check-tag{color:#475569;text-align:right}
/* L'attribut hidden doit gagner sur le display d'une classe : sinon
   l'avertissement « personne de coché » s'afficherait d'office. */
.rsv-resa [hidden]{display:none !important}
/* Stage : bloc membre (case + selecteur de duree propre) */
.rsv-member{margin-bottom:9px;border:1.5px solid #eef2f7;border-radius:14px;overflow:hidden;transition:border-color .15s ease,background .15s ease}
.rsv-member:has(input[type=checkbox]:checked){border-color:var(--primary);background:rgba(var(--primary-rgb),.05)}
.rsv-member.off{background:#f8fafc}
.rsv-member .rsv-check{border:none;border-radius:0;margin-bottom:0}
.rsv-member-duree{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:0 14px 12px;animation:rsvFade .15s ease}
.rsv-member-duree-lbl{font-size:13px;font-weight:600;color:#64748b}
.rsv-member-duree-lbl i{color:var(--primary);margin-right:4px}
.rsv-rider-duree{margin-top:12px}
.rsv-duree-sel{flex:1;min-width:150px;padding:10px 12px;border:1.5px solid #e2e8f0;border-radius:12px;font-size:15px;font-weight:600;color:#0f172a;background:#fff;cursor:pointer}
.rsv-duree-sel:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(var(--primary-rgb),.12)}
.rsv-duree-sel:disabled{opacity:.5;cursor:not-allowed;background:#f8fafc}
@keyframes rsvFade{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.rsv-btn-primary{width:100%;margin-top:8px;padding:14px;border:none;border-radius:14px;font-weight:700;font-size:16px;color:#fff;cursor:pointer;background:linear-gradient(135deg,var(--primary),var(--primary-dark));box-shadow:0 8px 20px rgba(var(--primary-rgb),.3)}
.rsv-btn-primary:hover{filter:brightness(1.03)}
.rsv-btn-ghost{width:100%;margin:4px 0 14px;padding:11px;border:1.5px dashed var(--primary);border-radius:12px;background:rgba(var(--primary-rgb),.06);color:var(--primary-dark);font-weight:600;cursor:pointer}
.rsv-resa-result{text-align:center;padding:40px 24px}
.rsv-resa-ico{font-size:52px;margin-bottom:14px}
.rsv-resa-ico.ok{color:var(--primary)}
.rsv-resa-ico.ko{color:#ef4444}
.rsv-resa-msg{font-size:17px;font-weight:600;color:#0f172a;margin:0}
.rsv-resa-warn{margin-top:10px;font-size:13px;color:#b45309}

@media (max-width:640px){
  .rsv-wrap{padding:10px}
  .rsv-toolbar{padding:10px}
  .rsv-week{grid-template-columns:1fr} /* mobile : colonnes empilees, pleine largeur */
  .rsv-week-col{min-width:0}
  .rsv-fiche-value{max-width:60%}
  .rsv-landing-card{padding:34px 22px}
  .rsv-rider-grid{grid-template-columns:1fr}
}
