/* ============================================================
   EVENTI TORINO v2.1 – Frontend Styles
   ============================================================ */

:root {
    --et-primary:   #8B1A1A;
    --et-primary-d: #6a1212;
    --et-accent:    #D4AF37;
    --et-dark:      #1a1a2e;
    --et-gray:      #6c757d;
    --et-light:     #f8f7f5;
    --et-border:    #e2ddd8;
    --et-radius:    12px;
    --et-shadow:    0 2px 14px rgba(0,0,0,.07);
    --et-shadow-h:  0 8px 28px rgba(0,0,0,.13);
    --et-font:      -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    --et-trans:     .2s ease;
}

/* ============================================================
   TOOLBAR
   ============================================================ */

.et-toolbar {
    background: #fff;
    border: 1px solid var(--et-border);
    border-radius: var(--et-radius);
    box-shadow: var(--et-shadow);
    padding: 16px 20px;
    margin-bottom: 24px;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

/* CTA sopra la toolbar */
.et-cta-wrapper {
    margin-bottom: 14px;
    display: flex;
    justify-content: flex-end;
}

.et-cta-aggiungi {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 22px;
    background: var(--et-primary);
    color: #fff !important;
    border-radius: 9px;
    font-family: var(--et-font);
    font-size: 14px;
    font-weight: 700;
    text-decoration: none !important;
    transition: var(--et-trans);
    box-shadow: 0 4px 14px rgba(139,26,26,.28);
    white-space: nowrap;
    letter-spacing: .01em;
}
.et-cta-aggiungi:hover {
    background: var(--et-primary-d);
    transform: translateY(-2px);
    box-shadow: 0 6px 18px rgba(139,26,26,.36);
    color: #fff !important;
}

.et-filters-wrap {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    gap: 14px 22px;
}

.et-filter-group {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.et-filter-label {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-family: var(--et-font);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: var(--et-gray);
    white-space: nowrap;
    min-width: 80px;
}

/* DATE inline */
.et-date-form {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

/* PERIODO: campi data */
.et-date-fields {
    display: flex;
    align-items: stretch;
    gap: 8px;
    flex-wrap: wrap;
}

.et-filter-date .et-date-field,
.et-date-field {
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    gap: 2px !important;
    background: #fff !important;
    border: 1.5px solid #d9d5cf !important;
    border-radius: 9px !important;
    padding: 6px 12px !important;
    min-height: 48px !important;
    height: auto !important;
    width: 122px;
    box-sizing: border-box !important;
    cursor: pointer !important;
    position: relative !important;
    transition: border-color var(--et-trans), box-shadow var(--et-trans);
}
.et-date-field:focus-within {
    border-color: var(--et-primary) !important;
    box-shadow: 0 0 0 3px rgba(139,26,26,.08);
}

.et-date-field-label {
    font-size: 10px !important;
    font-weight: 700 !important;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: #a0a0a0 !important;
    line-height: 1 !important;
    margin: 0 !important;
    pointer-events: none;
}

.et-date-inp {
    border: none !important;
    background: transparent !important;
    font-family: var(--et-font) !important;
    font-size: 14px !important;
    color: var(--et-dark) !important;
    padding: 0 !important;
    margin: 0 !important;
    height: 22px !important;
    min-height: 0 !important;
    max-height: 24px !important;
    line-height: 22px !important;
    width: 100% !important;
    min-width: 0 !important;
    outline: none !important;
    box-shadow: none !important;
    cursor: pointer;
}
.et-date-inp::-webkit-calendar-picker-indicator {
    opacity: .7;
    cursor: pointer;
    margin-left: 2px;
}

.et-date-clear {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 0 14px;
    min-height: 48px;
    font-family: var(--et-font);
    font-size: 12.5px;
    font-weight: 600;
    color: var(--et-primary);
    background: rgba(139,26,26,.08);
    border-radius: 9px;
    text-decoration: none !important;
    transition: var(--et-trans);
    white-space: nowrap;
}
.et-date-clear svg { flex-shrink: 0; }
.et-date-clear:hover { background: var(--et-primary); color: #fff; }

/* PILLS categorie */
.et-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.et-pill {
    display: inline-flex;
    align-items: center;
    padding: 6px 14px;
    border-radius: 999px;
    font-family: var(--et-font);
    font-size: 13px;
    font-weight: 600;
    color: var(--et-gray);
    background: var(--et-light);
    border: 1.5px solid var(--et-border);
    text-decoration: none !important;
    transition: var(--et-trans);
    white-space: nowrap;
}
.et-pill:hover { color: var(--et-primary); border-color: var(--et-primary); background: #fff; }
.et-pill.active { background: var(--et-primary); color: #fff !important; border-color: var(--et-primary); }

/* SELECT categoria (menu a tendina) */
.et-cat-form { display: flex; align-items: center; gap: 8px; flex: 1; min-width: 0; }
.et-cat-select-wrap { position: relative; display: inline-flex; width: 100%; max-width: 320px; }
.et-cat-select {
    -webkit-appearance: none; -moz-appearance: none; appearance: none;
    width: 100%;
    padding: 10px 40px 10px 14px;
    border: 1.5px solid var(--et-border);
    border-radius: 8px;
    background-color: var(--et-light);
    background-image: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20width%3D'14'%20height%3D'14'%20viewBox%3D'0%200%2024%2024'%20fill%3D'none'%20stroke%3D'%23888'%20stroke-width%3D'2.5'%3E%3Cpolyline%20points%3D'6%209%2012%2015%2018%209'%2F%3E%3C%2Fsvg%3E");
    background-repeat: no-repeat;
    background-position: right 13px center;
    font-family: var(--et-font);
    font-size: 14px; font-weight: 600;
    color: var(--et-dark);
    cursor: pointer;
    transition: border-color var(--et-trans), background-color var(--et-trans);
}
.et-cat-select:hover { border-color: var(--et-primary); background-color: #fff; }
.et-cat-select:focus { outline: none; border-color: var(--et-primary); background-color: #fff; box-shadow: 0 0 0 3px rgba(139,26,26,.1); }
.et-cat-go {
    padding: 9px 14px; border: none; border-radius: 8px;
    background: var(--et-primary); color: #fff; font-weight: 700; cursor: pointer;
}

/* SEGMENTED ingresso */
.et-segmented {
    display: inline-flex;
    background: var(--et-light);
    border: 1.5px solid var(--et-border);
    border-radius: 8px;
    padding: 3px;
    gap: 2px;
}
.et-seg-btn {
    display: inline-flex;
    align-items: center;
    padding: 6px 14px;
    border-radius: 6px;
    font-family: var(--et-font);
    font-size: 13px;
    font-weight: 600;
    color: #666;
    text-decoration: none !important;
    transition: var(--et-trans);
    white-space: nowrap;
}
.et-seg-btn:hover { color: var(--et-primary); }
.et-seg-btn.active { background: #fff; color: var(--et-primary) !important; box-shadow: 0 1px 4px rgba(0,0,0,.1); }

/* Reset */
.et-reset-btn {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 6px 12px;
    font-family: var(--et-font);
    font-size: 12px;
    font-weight: 600;
    color: var(--et-gray);
    border: 1.5px solid var(--et-border);
    border-radius: 7px;
    text-decoration: none !important;
    transition: var(--et-trans);
    white-space: nowrap;
    background: #fff;
}
.et-reset-btn:hover { color: var(--et-primary); border-color: var(--et-primary); }

/* Contatore */
.et-results-count { font-size: 13px; color: var(--et-gray); margin-bottom: 16px; font-style: italic; }

/* ============================================================
   GRIGLIA EVENTI
   ============================================================ */

.et-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(290px, 1fr));
    gap: 24px;
}

/* ============================================================
   CARD
   ============================================================ */

.et-card {
    background: #fff;
    border-radius: var(--et-radius);
    box-shadow: var(--et-shadow);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: transform var(--et-trans), box-shadow var(--et-trans);
    border: 1px solid var(--et-border);
}
.et-card:hover { transform: translateY(-4px); box-shadow: var(--et-shadow-h); }

.et-card-img-link { display:block; position:relative; overflow:hidden; aspect-ratio:16/9; text-decoration:none; }
.et-card-img { width:100%; height:100%; object-fit:cover; transition:transform .4s ease; display:block; }
.et-card:hover .et-card-img { transform:scale(1.04); }
.et-card-img-placeholder { background:linear-gradient(135deg, var(--et-primary) 0%, var(--et-primary-d) 100%); display:flex; align-items:center; justify-content:center; font-size:50px; color:rgba(255,255,255,.2); height:100%; }

.et-card-badges { position:absolute; top:10px; left:10px; display:flex; gap:5px; flex-wrap:wrap; }
.et-badge { display:inline-block; padding:4px 10px; border-radius:999px; font-size:11px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; }
.badge-oggi    { background:var(--et-accent); color:var(--et-dark); }
.badge-weekend { background:rgba(255,255,255,.9); color:var(--et-primary); }
.badge-gratis  { background:#1a7a4a; color:#fff; }

.et-card-body { padding:18px 20px 20px; display:flex; flex-direction:column; flex:1; }
.et-card-cat  { font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--et-primary); margin-bottom:7px; display:block; }
.et-card-title { font-size:16px; font-weight:700; line-height:1.3; margin:0 0 10px; color:var(--et-dark); }
.et-card-title a { color:inherit; text-decoration:none; transition:color var(--et-trans); }
.et-card-title a:hover { color:var(--et-primary); }
.et-card-meta { display:flex; flex-wrap:wrap; gap:5px 10px; margin-bottom:10px; font-size:12px; color:var(--et-gray); }
.et-meta-item { display:flex; align-items:center; gap:4px; }
.et-meta-full  { width:100%; }
.et-card-excerpt { font-size:13px; color:#555; line-height:1.6; flex:1; margin-bottom:14px; overflow:hidden; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; }
.et-card-footer { display:flex; align-items:center; justify-content:space-between; padding-top:12px; border-top:1px solid var(--et-border); gap:8px; }
.et-prezzo-gratis { color:#1a7a4a; font-weight:700; font-size:13px; }
.et-prezzo-val    { color:var(--et-primary); font-weight:700; font-size:14px; }
.et-card-actions  { display:flex; gap:7px; }

.et-btn-primary, .et-btn-secondary {
    display:inline-flex; align-items:center;
    padding:7px 14px; border-radius:7px;
    font-family:var(--et-font); font-size:13px; font-weight:600;
    text-decoration:none !important; transition:var(--et-trans); cursor:pointer;
}
.et-btn-primary  { background:var(--et-primary); color:#fff !important; }
.et-btn-primary:hover  { background:var(--et-primary-d); }
.et-btn-secondary { background:var(--et-light); color:var(--et-dark) !important; border:1px solid var(--et-border); }
.et-btn-secondary:hover { background:var(--et-border); }

/* URL visibile ma NON cliccabile nella lista (opzione "url_testo") */
.et-list-url-testo {
    display:inline-flex; align-items:center; gap:6px;
    padding:7px 14px; border-radius:7px;
    font-family:var(--et-font); font-size:13px; font-weight:500;
    color:var(--et-muted, #888);
    background:var(--et-light); border:1px solid var(--et-border);
    max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
    cursor:default; user-select:all;
}
.et-list-url-testo svg { flex-shrink:0; opacity:.55; }

.et-no-eventi { text-align:center; padding:60px 20px; color:var(--et-gray); }
.et-no-eventi-icon { font-size:48px; margin-bottom:12px; }
.et-no-eventi p { font-size:16px; margin-bottom:16px; }

/* ============================================================
   SINGOLO EVENTO
   ============================================================ */

.et-single { font-family:var(--et-font); }

.et-cats-inline { display:flex; gap:7px; flex-wrap:wrap; margin-bottom:16px; }
.et-single-cat {
    display:inline-block;
    background:var(--et-primary); color:#fff;
    font-size:11px; font-weight:700; letter-spacing:.06em;
    text-transform:uppercase; padding:4px 12px; border-radius:999px;
}
.et-cat-location { background:var(--et-dark); }

.et-single-infobox {
    display:grid;
    grid-template-columns:repeat(auto-fill, minmax(160px, 1fr));
    gap:12px;
    background:var(--et-light);
    border-radius:var(--et-radius);
    padding:18px;
    margin-bottom:22px;
    border:1px solid var(--et-border);
}
.et-info-item { display:flex; align-items:flex-start; gap:10px; }
.et-info-icon {
    width:34px; height:34px;
    background:var(--et-primary); color:#fff;
    border-radius:8px; display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.et-info-label { font-size:10px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; color:var(--et-gray); margin-bottom:3px; }
.et-info-value { font-size:14px; font-weight:600; color:var(--et-dark); line-height:1.3; }
.et-prezzo-badge-gratis { background:#1a7a4a; color:#fff; padding:3px 10px; border-radius:999px; font-size:12px; }
.et-prezzo-badge-paid   { background:var(--et-primary); color:#fff; padding:3px 10px; border-radius:999px; font-size:12px; }

.et-single-cta { margin-bottom:22px; }
.et-btn-cta {
    display:inline-flex; align-items:center; gap:8px;
    padding:12px 22px; background:var(--et-primary); color:#fff !important;
    border-radius:9px; font-family:var(--et-font); font-size:14px; font-weight:700;
    text-decoration:none !important; transition:var(--et-trans);
    box-shadow:0 3px 10px rgba(139,26,26,.25);
}
.et-btn-cta:hover { background:var(--et-primary-d); transform:translateY(-1px); box-shadow:0 5px 14px rgba(139,26,26,.32); }

/* URL visibile ma non cliccabile */
.et-url-testo {
    display:inline-flex; align-items:center; gap:7px;
    font-size:13px; color:#666; font-family:var(--et-font);
    background:#f5f5f5; border:1px solid #e0e0e0;
    border-radius:7px; padding:9px 14px;
    word-break:break-all; cursor:default;
    user-select:text;
}
.et-url-testo svg { flex-shrink:0; opacity:.5; }

.et-single-content { line-height:1.85; font-size:16px; color:#333; margin-bottom:28px; }

.et-single-gallery { margin-bottom:28px; }
.et-gallery-title { font-size:16px; font-weight:700; color:var(--et-dark); margin-bottom:12px; padding-bottom:8px; border-bottom:2px solid var(--et-border); }
.et-gallery-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(140px, 1fr)); gap:8px; }
.et-gallery-item img { width:100%; height:140px; object-fit:cover; border-radius:8px; transition:transform var(--et-trans); display:block; }
.et-gallery-item img:hover { transform:scale(1.04); }

.et-single-nav { display:flex; justify-content:space-between; gap:12px; margin-top:32px; padding-top:20px; border-top:1px solid var(--et-border); }
.et-single-nav a { flex:1; padding:10px 14px; border-radius:9px; border:1px solid var(--et-border); color:var(--et-dark) !important; text-decoration:none !important; font-family:var(--et-font); font-size:13px; font-weight:600; transition:var(--et-trans); display:flex; align-items:center; gap:6px; overflow:hidden; }
.et-single-nav a:hover { border-color:var(--et-primary); color:var(--et-primary) !important; background:var(--et-light); }
.et-nav-next { justify-content:flex-end; text-align:right; }

/* ============================================================
   FORM MULTI-STEP
   ============================================================ */

.et-form-wrapper {
    min-height: 200px; max-width:680px; margin:0 auto; font-family:var(--et-font); }

.et-progress { margin-bottom:28px; }
.et-progress-bar { height:3px; background:var(--et-border); border-radius:2px; margin-bottom:12px; overflow:hidden; }
.et-progress-fill { height:100%; background:linear-gradient(90deg, var(--et-primary), var(--et-accent)); border-radius:2px; transition:width .4s ease; width:33.33%; }
.et-steps-labels { display:flex; justify-content:space-between; }
.et-step-label { font-size:12px; font-weight:600; color:var(--et-gray); letter-spacing:.04em; transition:color var(--et-trans); }
.et-step-label.active { color:var(--et-primary); }

.et-step { display:none; background:#fff; border-radius:var(--et-radius); padding:32px; box-shadow:var(--et-shadow); border:1px solid var(--et-border); animation:et-fadein .25s ease; }
.et-step.active { display:block; }
@keyframes et-fadein { from{opacity:0;transform:translateY(8px)} to{opacity:1;transform:translateY(0)} }

.et-step-header { text-align:center; margin-bottom:24px; }
.et-step-icon   { font-size:36px; margin-bottom:8px; }
.et-step-header h3 { font-size:18px; font-weight:800; color:var(--et-dark); margin:0 0 4px; }
.et-step-header p  { color:var(--et-gray); font-size:13px; margin:0; }

.et-field { margin-bottom:18px; }
.et-field label { display:block; font-size:13px; font-weight:700; color:#333; margin-bottom:6px; font-family:var(--et-font); }
.et-optional { font-weight:400; color:var(--et-gray); font-size:12px; }
.req { color:var(--et-primary); }

.et-field input[type="text"],
.et-field input[type="email"],
.et-field input[type="url"],
.et-field input[type="date"],
.et-field input[type="time"],
.et-field select,
.et-field textarea {
    width:100% !important; padding:10px 13px !important;
    border:1.5px solid var(--et-border) !important; border-radius:8px !important;
    font-size:14px !important; color:var(--et-dark) !important; background:#fff !important;
    transition:border-color var(--et-trans), box-shadow var(--et-trans) !important;
    box-sizing:border-box !important; font-family:var(--et-font) !important;
    box-shadow:none !important;
}
.et-field input:focus, .et-field select:focus, .et-field textarea:focus {
    outline:none !important; border-color:var(--et-primary) !important;
    box-shadow:0 0 0 3px rgba(139,26,26,.1) !important;
}
.et-field textarea { resize:vertical; min-height:120px; line-height:1.6; }
.et-field small { display:block; margin-top:4px; font-size:12px; color:var(--et-gray); }

.et-row { display:grid; grid-template-columns:1fr 1fr; gap:14px; }

/* Toggle prezzo – refatto per non interferire con il tema */
.et-prezzo-row { margin-bottom:10px; }
.et-toggle-label {
    display:inline-flex !important;
    align-items:center !important;
    gap:10px !important;
    cursor:pointer !important;
    user-select:none;
    font-family:var(--et-font);
    font-weight:600;
    font-size:14px;
    color:var(--et-dark);
}
/* Nascondi l'input nativo completamente */
.et-toggle-label input[type="checkbox"] {
    position:absolute !important;
    opacity:0 !important;
    width:0 !important;
    height:0 !important;
    pointer-events:none !important;
}
/* Track */
.et-toggle-track {
    position:relative;
    display:inline-block;
    width:42px;
    height:24px;
    background:var(--et-border);
    border-radius:999px;
    transition:background var(--et-trans);
    flex-shrink:0;
}
/* Thumb */
.et-toggle-thumb {
    position:absolute;
    top:3px; left:3px;
    width:18px; height:18px;
    background:#fff;
    border-radius:50%;
    transition:transform var(--et-trans);
    box-shadow:0 1px 4px rgba(0,0,0,.2);
    pointer-events:none;
}
/* Checked state via JS (aggiunge classe .is-on al track) */
.et-toggle-track.is-on { background:#1a7a4a; }
.et-toggle-track.is-on .et-toggle-thumb { transform:translateX(18px); }

.et-toggle-text { line-height:1; }

.et-prezzo-input-wrap { margin-top:10px; }
.et-input-euro { position:relative; display:flex; align-items:center; }
.et-euro-sym { position:absolute; left:13px; color:var(--et-gray); font-weight:700; font-size:15px; pointer-events:none; z-index:1; }
.et-field .et-input-euro input[type="text"],
.et-input-euro input { padding-left:34px !important; }

/* Upload */
.et-upload-area { border:2px dashed var(--et-border); border-radius:10px; transition:border-color var(--et-trans),background var(--et-trans); overflow:hidden; cursor:pointer; position:relative; }
.et-upload-area:hover, .et-upload-area.dragover { border-color:var(--et-primary); background:rgba(139,26,26,.03); }
.et-upload-area input[type="file"] { position:absolute; inset:0; opacity:0; cursor:pointer; width:100%; height:100%; }
.et-upload-placeholder { padding:22px; text-align:center; pointer-events:none; }
.et-upload-icon { font-size:30px; margin-bottom:6px; display:block; }
.et-upload-placeholder p { margin:0 0 4px; font-size:14px; font-weight:600; color:#444; }
.et-upload-placeholder small { color:var(--et-gray); font-size:12px; }
.et-preview-grid { display:flex; flex-wrap:wrap; gap:8px; padding:10px; }
.et-preview-item { position:relative; width:72px; height:72px; border-radius:7px; overflow:hidden; }
.et-preview-item img { width:100%; height:100%; object-fit:cover; }
.et-preview-remove { position:absolute; top:3px; right:3px; width:18px; height:18px; background:rgba(0,0,0,.65); color:#fff; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:10px; cursor:pointer; border:none; font-family:sans-serif; }

/* Privacy step 3 */
.et-privacy-note { display:flex; gap:14px; align-items:flex-start; background:#f0f7ff; border-radius:10px; padding:15px; margin-bottom:16px; border:1px solid #c8dff5; }
.et-privacy-note-icon { font-size:20px; flex-shrink:0; margin-top:1px; }
.et-privacy-note strong { display:block; font-size:13px; color:#1a3a5c; margin-bottom:4px; }
.et-privacy-note p { margin:0 0 6px; font-size:13px; color:#3a5a7c; line-height:1.5; }
.et-privacy-note p:last-child { margin-bottom:0; }
.et-verify-hint { font-size:12px !important; background:rgba(139,26,26,.06); border-radius:6px; padding:8px 10px; color:#555 !important; }

.et-field-privacy { margin-top:4px; }
.et-privacy-check-label { display:flex !important; align-items:flex-start !important; gap:10px !important; cursor:pointer !important; font-weight:normal !important; font-size:13px !important; color:#444 !important; line-height:1.5 !important; }
.et-privacy-check-label input[type="checkbox"] { width:16px !important; height:16px !important; margin-top:2px !important; flex-shrink:0 !important; accent-color:var(--et-primary) !important; cursor:pointer !important; }
.et-privacy-check-label a { color:var(--et-primary) !important; text-decoration:underline !important; }

/* Nav step */
.et-nav { display:flex; justify-content:space-between; align-items:center; margin-top:22px; padding-top:16px; border-top:1px solid var(--et-border); gap:10px; }
.et-btn-next, .et-btn-prev, .et-btn-submit {
    display:inline-flex; align-items:center; gap:6px;
    padding:11px 22px; border-radius:8px; font-size:14px; font-weight:700;
    border:none; cursor:pointer; transition:var(--et-trans); font-family:var(--et-font);
}
.et-btn-next, .et-btn-submit { background:var(--et-primary); color:#fff; margin-left:auto; }
.et-btn-next:hover, .et-btn-submit:hover { background:var(--et-primary-d); }
.et-btn-prev { background:var(--et-light); color:var(--et-dark); border:1px solid var(--et-border); }
.et-btn-prev:hover { background:var(--et-border); }
.et-btn-submit:disabled { background:#ccc; cursor:not-allowed; }

/* Spinner inline nel pulsante */
.et-spinner {
    display:inline-block;
    width:14px; height:14px;
    border:2px solid rgba(255,255,255,.4);
    border-top-color:#fff;
    border-radius:50%;
    animation:et-spin .7s linear infinite;
    vertical-align:middle;
    margin-right:4px;
}
@keyframes et-spin { to { transform:rotate(360deg); } }

/* Stato "invio in corso" */
.et-btn-submit.et-submit-loading {
    background:#888;
    cursor:not-allowed;
}

/* Stato "inviato con successo" */
.et-btn-submit.et-submit-done {
    background:#27ae60;
    cursor:default;
    opacity:.9;
}

/* Messaggi */
#et-message { margin-top:18px; }
.et-msg-success { background:#d4f7e2; border:1px solid #a8e6c0; color:#1a5c36; padding:16px 20px; border-radius:10px; font-weight:600; font-size:14px; line-height:1.5; }
.et-msg-error   { background:#fde8e8; border:1px solid #f5b8b8; color:#7a1a1a; padding:16px 20px; border-radius:10px; font-weight:600; font-size:14px; }
.et-msg-loading { background:var(--et-light); border:1px solid var(--et-border); color:var(--et-gray); padding:16px 20px; border-radius:10px; font-size:14px; }

/* Messaggio finale post-invio (form nascosto) */
.et-msg-success-final {
    display:flex; flex-direction:column; align-items:center;
    text-align:center; padding:40px 30px; gap:12px;
    font-weight:normal;
}
.et-msg-success-icon {
    width:56px; height:56px; border-radius:50%;
    background:#1a5c36; color:#fff;
    display:flex; align-items:center; justify-content:center;
    font-size:28px; font-weight:700; flex-shrink:0;
}
.et-msg-success-final strong { font-size:18px; color:#1a5c36; }
.et-msg-success-final p { margin:0; font-size:14px; color:#3a7a56; font-weight:normal; max-width:380px; line-height:1.6; }

/* Riquadro "conferma email" dentro il messaggio di successo */
.et-confirm-callout {
    display:flex; gap:12px; align-items:flex-start; text-align:left;
    background:#fff; border:1px solid #f3c9c9; border-left:4px solid #8B1A1A;
    border-radius:10px; padding:14px 16px; margin-top:6px;
    max-width:440px; width:100%;
}
.et-confirm-callout-icon { font-size:20px; line-height:1.2; flex-shrink:0; margin-top:1px; }
.et-confirm-callout-body { min-width:0; }
.et-confirm-callout strong { display:block; font-size:14px; color:#8B1A1A; margin-bottom:3px; }
.et-confirm-callout p { margin:0; font-size:13px; color:#7a3535; line-height:1.5; }

/* Avviso "dovrai confermare la tua email" nel form (prima della privacy) */
.et-confirm-notice {
    display:flex; gap:12px; align-items:flex-start;
    background:#fdf0f0; border:1px solid #f3c9c9; border-left:4px solid #8B1A1A;
    border-radius:10px; padding:14px 16px; margin:0 0 16px;
}
.et-confirm-notice-icon { font-size:20px; flex-shrink:0; margin-top:1px; }
.et-confirm-notice strong { display:block; font-size:13px; color:#8B1A1A; margin-bottom:4px; }
.et-confirm-notice p { margin:0; font-size:13px; color:#7a3535; line-height:1.5; }

/* ============================================================
   RESPONSIVE
   ============================================================ */

@media (max-width:768px) {
    .et-toolbar { padding:14px; }
    .et-filters-wrap { flex-direction:column; align-items:stretch; gap:12px; }
    .et-filter-group { flex-direction:column; align-items:flex-start; gap:6px; width:100%; }
    .et-filter-label { min-width:unset; }
    .et-cta-aggiungi { width:100%; justify-content:center; }
    .et-date-form { width:100%; }
    .et-date-fields { width:100%; display:grid; grid-template-columns:1fr 1fr; gap:8px; }
    .et-date-field { width:auto !important; min-width:0 !important; }
    .et-date-clear { grid-column:1 / -1; justify-content:center; min-height:42px; }
    .et-segmented { width:100%; }
    .et-seg-btn { flex:1; justify-content:center; }
    /* Categoria a tendina a tutta larghezza */
    .et-cat-form { width:100%; }
    .et-cat-select-wrap { max-width:100%; }
    .et-row { grid-template-columns:1fr; }
    .et-step { padding:20px 16px; }
    .et-grid { grid-template-columns:1fr; }
    .et-single-infobox { grid-template-columns:1fr; }
    .et-single-nav { flex-direction:column; }
    .et-single-nav a { justify-content:center; text-align:center; }
}

/* ============================================================
   SHORTCODE SIDEBAR [eventi_sidebar]
   ============================================================ */

.et-sidebar-list {
    display: flex;
    flex-direction: column;
    gap: 0;
    max-width: 100%;
    overflow: hidden;
}

.et-sidebar-item {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 10px 0;
    border-bottom: 1px solid var(--et-border);
    text-decoration: none !important;
    transition: opacity var(--et-trans);
}

.et-sidebar-item:last-child {
    border-bottom: none;
}

.et-sidebar-item:hover {
    opacity: .78;
    text-decoration: none !important;
}

/* Immagine quadrata */
.et-sidebar-img {
    width: 64px;
    height: 64px;
    flex-shrink: 0;
    border-radius: 8px;
    overflow: hidden;
}

.et-sidebar-thumb {
    width: 64px !important;
    height: 64px !important;
    object-fit: cover !important;
    display: block;
    border-radius: 8px;
}

.et-sidebar-thumb-placeholder {
    width: 64px;
    height: 64px;
    background: var(--et-light);
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--et-gray);
    border: 1px solid var(--et-border);
}

/* Info testo */
.et-sidebar-info {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding-top: 2px;
}

.et-sidebar-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center;
}

.et-sidebar-date,
.et-sidebar-place {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    font-size: 11px;
    font-weight: 600;
    color: var(--et-gray);
    font-family: var(--et-font);
    white-space: nowrap;
    line-height: 1.3;
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
}
.et-sidebar-place svg { flex-shrink: 0; }
/* Il nome città non deve mai sbordare: tronca con … */
.et-sidebar-place-txt {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
}

.et-sidebar-date { color: var(--et-primary); }

.et-sidebar-title {
    font-size: 13px;
    font-weight: 700;
    color: var(--et-dark);
    font-family: var(--et-font);
    line-height: 1.35;
    overflow: hidden;
    overflow-wrap: anywhere;
    word-break: break-word;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.et-sidebar-empty {
    font-size: 13px;
    color: var(--et-gray);
    font-style: italic;
    margin: 0;
    padding: 8px 0;
}

/* ================================================================
   VISTA LISTA EVENTI
================================================================ */
.et-lista {
    display: flex;
    flex-direction: column;
    gap: 20px;
    margin-top: 8px;
}

.et-lista .et-list-item {
    display: flex !important;
    flex-direction: row !important;
    gap: 0;
    background: #fff;
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 2px 12px rgba(0,0,0,.07);
    border: 1px solid #f0f0f0;
    transition: box-shadow .22s ease, transform .22s ease;
    min-height: 200px;
}
.et-lista .et-list-item:hover {
    box-shadow: 0 8px 28px rgba(139,26,26,.13);
    transform: translateY(-2px);
}

/* Immagine sinistra */
.et-list-img-wrap {
    position: relative;
    flex-shrink: 0;
    width: 240px;
    min-height: 200px;
    display: block !important;
    overflow: hidden;
    text-decoration: none;
    background: #f5e8e8;
}
.et-lista .et-list-item .et-list-img-wrap img.et-list-img,
.et-lista .et-list-item .et-list-img-wrap .et-list-img {
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    max-height: none !important;
    object-fit: cover !important;
    display: block !important;
    transition: transform .35s ease;
    border-radius: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}
.et-list-item:hover .et-list-img { transform: scale(1.04); }

.et-list-img-placeholder {
    width: 100%;
    height: 100%;
    min-height: 200px;
    background: linear-gradient(135deg, #f5e8e8 0%, #ecdada 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 48px;
}

/* Badge data sovrapposto */
.et-list-date-badge {
    position: absolute;
    top: 14px;
    left: 14px;
    background: #8B1A1A;
    color: #fff;
    border-radius: 9px;
    padding: 6px 10px;
    text-align: center;
    min-width: 44px;
    box-shadow: 0 2px 8px rgba(0,0,0,.25);
    line-height: 1;
}
.et-list-date-day {
    display: block;
    font-size: 20px;
    font-weight: 800;
    font-family: var(--et-font);
}
.et-list-date-mon {
    display: block;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .05em;
    margin-top: 2px;
    opacity: .85;
}

/* Badge oggi/weekend */
.et-list-overlay-badge {
    position: absolute;
    bottom: 12px;
    left: 12px;
    font-size: 11px;
    font-weight: 700;
    padding: 4px 10px;
    border-radius: 20px;
    text-transform: uppercase;
    letter-spacing: .04em;
}
.et-list-overlay-badge.badge-oggi    { background: #e74c3c; color: #fff; }
.et-list-overlay-badge.badge-weekend { background: #f39c12; color: #fff; }

/* Corpo destra */
.et-list-body {
    flex: 1;
    padding: 22px 24px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    min-width: 0;
}

.et-list-top {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}
.et-list-cat {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: #8B1A1A;
    background: #fdf0f0;
    border: 1px solid #f5c6c6;
    padding: 3px 10px;
    border-radius: 20px;
}
.et-list-cat-gratis { color: #1a5c36; background: #edfaf3; border-color: #b2e8cc; }
.et-list-cat-paid   { color: #7a4f00; background: #fff8ec; border-color: #ffd88a; }

.et-list-title {
    margin: 0;
    font-size: 19px;
    font-weight: 800;
    font-family: var(--et-font);
    line-height: 1.3;
    color: var(--et-dark);
}
.et-list-title a {
    color: inherit;
    text-decoration: none;
    transition: color .18s;
}
.et-list-title a:hover { color: #8B1A1A; }

.et-list-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 18px;
}
.et-list-meta-item {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 12.5px;
    color: var(--et-gray);
}
.et-list-meta-item svg { flex-shrink: 0; opacity: .6; }

.et-list-excerpt {
    font-size: 13.5px;
    color: #555;
    line-height: 1.6;
    flex: 1;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.et-list-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 4px;
}

/* Responsive lista */
@media (max-width: 640px) {
    /* Su mobile: immagine piccola a sinistra, testo a destra */
    .et-lista .et-list-item {
        display: flex !important;
        flex-direction: row !important;
        min-height: 110px !important;
        align-items: stretch !important;
    }
    .et-lista .et-list-item .et-list-img-wrap {
        width: 110px !important;
        min-width: 110px !important;
        max-width: 110px !important;
        height: auto !important;
        min-height: 110px !important;
        flex-shrink: 0 !important;
    }
    .et-lista .et-list-item .et-list-img-wrap img.et-list-img,
    .et-lista .et-list-item .et-list-img-wrap .et-list-img {
        width: 110px !important;
        height: 100% !important;
        min-height: 110px !important;
        object-fit: cover !important;
    }
    .et-lista .et-list-item .et-list-img-placeholder {
        min-height: 110px !important;
        width: 110px !important;
    }
    .et-lista .et-list-item .et-list-body {
        flex: 1 !important;
        padding: 10px 12px !important;
        display: flex !important;
        flex-direction: column !important;
        gap: 6px !important;
        min-width: 0 !important;
        overflow: hidden !important;
    }
    .et-list-title { font-size: 14px !important; }
    .et-list-date-badge { top: 6px; left: 6px; padding: 4px 7px; }
    .et-list-date-day { font-size: 15px; }
    .et-list-date-mon { font-size: 9px; }
    .et-list-excerpt { display: none; }
    .et-list-meta { gap: 4px 10px; }
    .et-list-meta-item { font-size: 11px; }
    .et-list-actions { gap: 6px; margin-top: 2px; }
    .et-list-actions .et-btn-primary { font-size: 12px; padding: 7px 12px; }
    .et-list-actions .et-btn-secondary { font-size: 12px; padding: 7px 12px; }
}


/* ================================================================
   AUTOCOMPLETE INDIRIZZO
================================================================ */
.et-autocomplete-wrap {
    position: relative;
}

.et-autocomplete-list {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: #fff;
    border: 1px solid var(--et-border);
    border-top: none;
    border-radius: 0 0 10px 10px;
    box-shadow: 0 8px 24px rgba(0,0,0,.12);
    list-style: none;
    margin: 0;
    padding: 4px 0;
    z-index: 9999;
    max-height: 260px;
    overflow-y: auto;
    display: none;
}
.et-ac-item {
    padding: 10px 14px;
    font-size: 13px;
    color: var(--et-dark);
    cursor: pointer;
    border-bottom: 1px solid #f5f5f5;
    line-height: 1.4;
    transition: background .12s;
}
.et-ac-item:last-child { border-bottom: none; }
.et-ac-item:hover { background: #fdf0f0; color: #8B1A1A; }
.et-ac-empty {
    padding: 10px 14px;
    font-size: 13px;
    color: var(--et-gray);
    font-style: italic;
}
.et-optional {
    font-size: 11px;
    color: var(--et-gray);
    font-weight: 400;
}


/* ================================================================
   MAPPA LEAFLET — singolo evento
================================================================ */
.et-map-wrap {
    margin: 24px 0;
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 3px 14px rgba(0,0,0,.10);
    border: 1px solid var(--et-border);
}

.et-map {
    width: 100%;
    height: 320px;
}

/* Pin personalizzato */
.et-map-pin {
    background: none !important;
    border: none !important;
}

.et-map-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 14px 18px;
    background: #fff;
    border-top: 1px solid #eee;
    flex-wrap: wrap;
}
.et-map-footer-addr {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 13px;
    color: #555;
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.et-map-footer-addr svg { flex-shrink: 0; opacity: .6; }
.et-btn-raggiungi {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 11px 20px;
    background: #8B1A1A;
    color: #fff !important;
    font-family: var(--et-font);
    font-size: 14px;
    font-weight: 700;
    text-decoration: none !important;
    transition: background .18s, transform .15s;
    border-radius: 10px;
    white-space: nowrap;
    box-shadow: 0 3px 10px rgba(139,26,26,.30);
    flex-shrink: 0;
}
.et-btn-raggiungi:hover {
    background: #6a1212;
    transform: translateY(-1px);
    box-shadow: 0 5px 16px rgba(139,26,26,.38);
}

/* Badge quartiere affianco al luogo */
.et-quartiere-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 11px;
    font-weight: 600;
    color: #8B1A1A;
    background: #fdf0f0;
    border: 1px solid #f5c6c6;
    padding: 3px 8px;
    border-radius: 20px;
    margin-left: 8px;
    white-space: nowrap;
    vertical-align: middle;
}
.et-quartiere-badge svg { flex-shrink: 0; }

/* ── OVERRIDE TEMA: forza layout orizzontale lista eventi ── */
article.et-list-item,
.et-lista article.et-list-item,
body .et-lista .et-list-item {
    display: flex !important;
    flex-direction: row !important;
    align-items: stretch !important;
    float: none !important;
}

/* Quartiere sotto mappa */
.et-quartiere-row {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 13.5px;
    color: #555;
    margin: 12px 0 20px;
    padding: 10px 14px;
    background: #fdf0f0;
    border-radius: 8px;
    border-left: 3px solid #8B1A1A;
}
.et-quartiere-row svg { flex-shrink: 0; color: #8B1A1A; }

