/* ============ Sevenafila – Voyages (public) ============ */
.sfa-voyages{--gap:1rem;--radius:16px;--shadow:0 6px 24px rgba(0,0,0,.08);--primary:#0d9488;--accent:#dc2626;--ink:#111827}
.sfa-voyages .sfa-header{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1rem}
.sfa-voyages h1{margin:0 auto;font-size:clamp(1.6rem,3vw,2rem);}
.sfa-voyages .sfa-sub{margin:0 auto;color:#475569}
.sfa-filters{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem;align-items:center}
.sfa-filters input{padding:.55rem .7rem;border:1px solid #e1e6ef;border-radius:10px;min-width:160px;background:#fff}
.sfa-btn{display:inline-block;padding:.6rem .9rem;border-radius:999px;border:1px solid var(--ink);background:var(--ink);color:#fff;text-decoration:none;cursor:pointer}
.sfa-btn.sfa-btn-outline{background:#fff;color:var(--ink)}
.sfa-btn.primary{background:var(--primary);border-color:var(--primary)}
.sfa-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:var(--gap)}
.sfa-card{grid-column:span 4;background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);display:flex;flex-direction:column}
.sfa-card-media{display:block;aspect-ratio:16/9;background:#f3f5f8}
.sfa-card-img{width:100%;height:100%;object-fit:cover;display:block}
.sfa-card-body{padding:1rem;display:flex;flex-direction:column;gap:.5rem}
.sfa-card-title{margin:0;font-size:1.1rem}
.sfa-meta{display:flex;flex-wrap:wrap;gap:.5rem;color:#4b5563;font-size:.95rem}
.sfa-bullet::before{content:"•";margin:0 .4rem;color:#cbd5e1}
.sfa-villes{color:#111827;font-weight:600;margin-bottom:.25rem}
.sfa-price{margin-top:.25rem;font-weight:700}
.sfa-actions{margin-top:.5rem;display:flex;gap:.5rem;flex-wrap:wrap}
.sfa-empty{padding:2rem;text-align:center;color:#6b7280}

.sfa-pagination{display:flex;gap:.5rem;justify-content:center;margin-top:1rem}
.sfa-pagination a{padding:.4rem .8rem;border:1px solid #e5e7eb;border-radius:10px;text-decoration:none;color:#111827}
.sfa-pagination a.current{background:#111827;color:#fff;border-color:#111827}

@media (max-width: 1024px){
  .sfa-card{grid-column:span 6}
}
@media (max-width: 640px){
  .sfa-card{grid-column:span 12}
  .sfa-filters input{min-width:120px}
}

/* ===== Détail ===== */
.sfa-detail .sfa-hero{width:100%;height:auto;display:block;border-radius:16px;box-shadow:var(--shadow);margin-bottom:1rem}
.sfa-title{margin:.5rem 0 1rem 0}
.sfa-detail-grid{display:grid;grid-template-columns:300px 1fr;gap:1rem}
.sfa-detail-meta{background:#fff;border-radius:16px;box-shadow:var(--shadow);padding:1rem;display:grid;gap:.5rem;height:max-content}
.sfa-detail-body{background:#fff;border-radius:16px;box-shadow:var(--shadow);padding:1rem}
.sfa-rich p{margin:.4rem 0}
@media (max-width: 900px){
  .sfa-detail-grid{grid-template-columns:1fr}
}
.sfa-cta{display:flex;gap:.6rem;margin-top:1rem;flex-wrap:wrap}

/* ===== Modal Toast ===== */
#sfa-modal-root{position:relative;z-index:9999}
.sfa-modal{position:fixed;inset:0;background:rgba(0,0,0,.5);display:flex;align-items:flex-start;justify-content:center;padding:2rem;overflow:auto}
.sfa-modal-card{max-width:920px;width:100%;background:#fff;border-radius:16px;box-shadow:var(--shadow);position:relative;border:2px solid #facc15}
.sfa-modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1rem 0 1rem}
.sfa-modal-title{margin:0;font-size:1.2rem}
.sfa-modal-close{border:none;background:#fff;cursor:pointer;font-size:1.2rem}
.sfa-modal-body{display:grid;grid-template-columns:2fr 1fr;gap:1rem;padding:1rem}
.sfa-modal-body .sfa-hero{border-radius:12px}
.sfa-info-box{border:1px solid #e2e8f0;border-radius:12px;padding:1rem;background:#fff}
.sfa-list{margin:.5rem 0 0 0;padding-left:1.25rem}
.sfa-check{color:#16a34a;margin-right:.25rem}
.sfa-x{color:#dc2626;margin-right:.25rem}
.sfa-field{display:grid;gap:.35rem;margin-top:.75rem}
.sfa-select{width:100%;padding:.6rem .7rem;border:1px solid #e5e7eb;border-radius:10px;background:#fff}
.sfa-price-line{margin-top:.75rem;font-weight:700}
.sfa-modal-footer{display:flex;justify-content:flex-end;gap:.5rem;padding:0 1rem 1rem 1rem}
.sfa-btn.red{background:#dc2626;border-color:#dc2626}

@media (max-width: 900px){
  .sfa-modal-body{grid-template-columns:1fr}
}
