
/* ===== Snack'n'Scout — Public ===== */
.sns-wrap *, .sns-wrap *::before, .sns-wrap *::after { box-sizing:border-box; }

.sns-wrap {
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    max-width: 900px; margin: 0 auto; padding: 0 16px 48px; color: #1a1a1a;
}

.sns-header-image { margin-bottom:24px; border-radius:14px; overflow:hidden; }
.sns-header-image img { width:100%; height:260px; object-fit:cover; display:block; }

.sns-description {
    background:#f0faf2; border-left:4px solid #2e7d32;
    border-radius:0 8px 8px 0; padding:16px 20px; margin-bottom:32px; line-height:1.6;
}

.sns-section-title { font-size:1.4rem; font-weight:700; color:#1b5e20; margin-bottom:20px; }

/* Empty */
.sns-empty { text-align:center; padding:48px 24px; background:#fafafa; border-radius:12px; border:2px dashed #ddd; }
.sns-empty-icon { font-size:3rem; display:block; margin-bottom:12px; }
.sns-empty p { color:#666; line-height:1.6; }

/* Cards grid */
.sns-menus-grid {
    display:grid; grid-template-columns:repeat(auto-fill, minmax(250px,1fr)); gap:20px;
}
.sns-menu-card {
    background:#fff; border:1px solid #e0e0e0; border-radius:14px; padding:20px;
    box-shadow:0 2px 10px rgba(0,0,0,.06); display:flex; flex-direction:column; gap:8px;
    transition:transform .15s, box-shadow .15s;
    overflow:hidden;
}
.sns-menu-card:hover { transform:translateY(-3px); box-shadow:0 6px 20px rgba(0,0,0,.1); }
.sns-card-disabled { opacity:.65; pointer-events:none; }

.sns-menu-name  { font-size:1.05rem; font-weight:700; color:#1b5e20; line-height:1.3; }
.sns-menu-date  { color:#555; font-size:.9rem; }
.sns-menu-prix  { color:#2e7d32; font-weight:700; font-size:1.05rem; }

/* Places jauge */
.sns-places-wrap { margin-top:4px; }
.sns-places-bar  { background:#e0e0e0; border-radius:99px; height:7px; overflow:hidden; }
.sns-places-fill { background:#4caf50; height:100%; border-radius:99px; transition:width .4s; }
.sns-bar-orange  { background:#ff9800; }
.sns-bar-red     { background:#ef5350; }
.sns-places-label { font-size:.82rem; color:#555; margin-top:4px; }

/* Cloture */
.sns-cloture-info { font-size:.82rem; color:#e65100; background:#fff3e0; padding:5px 10px; border-radius:6px; margin-top:2px; }

/* Bouton inscrire */
.sns-btn-inscrire {
    margin-top:auto; background:#2e7d32; color:#fff; border:none; border-radius:8px;
    padding:11px 16px; font-size:.95rem; font-weight:600; cursor:pointer; transition:background .2s;
}
.sns-btn-inscrire:hover:not(:disabled) { background:#1b5e20; }
.sns-btn-inscrire:disabled { background:#bdbdbd; cursor:not-allowed; }

/* Overlay */
#sns-overlay {
    display:none; position:fixed; inset:0; background:rgba(0,0,0,.6);
    z-index:99999; align-items:center; justify-content:center; padding:16px;
}
#sns-overlay.visible { display:flex; }

/* Modal */
#sns-modal {
    background:#fff; border-radius:18px; padding:32px; width:100%;
    max-width:580px; max-height:92vh; overflow-y:auto; position:relative;
    box-shadow:0 20px 60px rgba(0,0,0,.25);
}
#sns-modal h2 { margin:0 0 4px; font-size:1.25rem; color:#1b5e20; }
#sns-modal-subtitle { color:#666; font-size:.9rem; margin:0 0 8px; }
#sns-modal-places-info { font-size:.85rem; color:#555; margin-bottom:16px; min-height:20px; }

#sns-close-modal {
    position:absolute; top:14px; right:18px; background:none;
    border:none; font-size:1.8rem; cursor:pointer; color:#aaa; line-height:1;
}
#sns-close-modal:hover { color:#333; }

.sns-form-section { margin-bottom:22px; }
.sns-form-section h3 { font-size:1rem; font-weight:700; margin:0 0 10px; color:#333; }
.sns-hint-inline { color:#888; font-weight:400; font-size:.85rem; }
.sns-hint { color:#888; font-size:.85rem; margin:0 0 10px; }

/* Champs responsable */
.sns-inline-fields { display:flex; gap:10px; }
.sns-inline-fields input, #sns-resp-email {
    flex:1; padding:10px 12px; border:1.5px solid #ccc;
    border-radius:8px; font-size:.95rem; transition:border-color .2s; width:100%;
}
.sns-inline-fields input:focus, #sns-resp-email:focus { outline:none; border-color:#2e7d32; }

/* Bloc participant */
.sns-participant-block {
    display:flex; gap:8px; align-items:center; margin-bottom:10px;
    background:#f9fafb; border:1px solid #e8e8e8; border-radius:8px; padding:10px 12px; flex-wrap:wrap;
}
.sns-participant-block input, .sns-participant-block select {
    flex:1; min-width:90px; padding:8px 10px;
    border:1.5px solid #ccc; border-radius:6px; font-size:.9rem;
}
.sns-participant-block input:focus, .sns-participant-block select:focus { outline:none; border-color:#2e7d32; }
.sns-remove-p { background:none; border:none; font-size:1.3rem; cursor:pointer; color:#c62828; padding:0 4px; }

/* Bouton + */
.sns-btn-add {
    background:#e8f5e9; color:#2e7d32; border:2px dashed #81c784;
    border-radius:8px; padding:10px 18px; font-size:.95rem; font-weight:600;
    cursor:pointer; width:100%; transition:background .2s; margin-top:4px;
}
.sns-btn-add:hover { background:#c8e6c9; }

/* Engagement */
.sns-engagement-section { background:#fff3e0; border:1px solid #ffe0b2; border-radius:8px; padding:14px 16px; }
.sns-checkbox-label { display:flex; align-items:flex-start; gap:10px; cursor:pointer; line-height:1.5; }
.sns-checkbox-label input[type="checkbox"] { width:18px; height:18px; flex-shrink:0; margin-top:2px; accent-color:#2e7d32; }

/* Valider */
.sns-btn-valider {
    width:100%; background:#2e7d32; color:#fff; border:none; border-radius:10px;
    padding:14px; font-size:1.05rem; font-weight:700; cursor:pointer; margin-top:8px; transition:background .2s;
}
.sns-btn-valider:hover:not(:disabled) { background:#1b5e20; }
.sns-btn-valider:disabled { opacity:.6; cursor:not-allowed; }

/* Feedback */
#sns-feedback { margin-top:14px; padding:12px 16px; border-radius:8px; font-weight:600; display:none; line-height:1.5; }
#sns-feedback.success { background:#e8f5e9; color:#2e7d32; display:block; }
#sns-feedback.error   { background:#ffebee; color:#c62828; display:block; }
#sns-feedback.warning { background:#fff8e1; color:#e65100; display:block; }

@media(max-width:480px){
    .sns-inline-fields{flex-direction:column;}
    #sns-modal{padding:20px 16px;}
    .sns-participant-block{flex-direction:column;}
}

/* ===== Carousel ===== */
.sns-carousel {
    position: relative;
    border-radius: 10px 10px 0 0;
    overflow: hidden;
    background: #111;
    line-height: 0;
}
.sns-carousel-track {
    display: flex;
    transition: transform .35s ease;
}
.sns-carousel-slide {
    min-width: 100%;
}
.sns-carousel-slide img {
    width: 100%;
    height: 180px;
    object-fit: cover;
    display: block;
}
.sns-car-prev, .sns-car-next {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(0,0,0,.55);
    color: #fff;
    border: none;
    border-radius: 50%;
    width: 34px; height: 34px;
    font-size: 1.3rem;
    cursor: pointer;
    line-height: 34px;
    text-align: center;
    padding: 0;
    transition: background .2s;
    z-index: 2;
}
.sns-car-prev { left: 8px; }
.sns-car-next { right: 8px; }
.sns-car-prev:hover, .sns-car-next:hover { background: rgba(0,0,0,.8); }
.sns-car-counter {
    position: absolute;
    bottom: 8px; right: 10px;
    background: rgba(0,0,0,.6);
    color: #fff;
    font-size: .78rem;
    padding: 2px 8px;
    border-radius: 99px;
    line-height: 1.6;
}

/* Card body padding quand il y a un carousel */
.sns-carousel + .sns-card-body { border-radius: 0 0 12px 12px; }
.sns-card-body {
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    flex: 1;
}

/* Abonnement label */
.sns-menu-abo-label {
    font-size: .9rem;
    color: #1565c0;
    font-weight: 600;
    background: #e3f2fd;
    border-radius: 6px;
    padding: 4px 10px;
    display: inline-block;
}
