/* SBM Segreteria — public shortcodes (sbm_calendar, sbm_courses, sbm_kits, sbm_next_variations).
   Deliberately does not set font-family or base text color: these embed inside an existing
   theme/Elementor page and should inherit its typography. --sbm-accent can be overridden per
   page (e.g. in an Elementor Custom CSS box: .sbm-public-courses{--sbm-accent:#123456}).
   v0.9.7: --sbm-ink now matches the site's own navy (#0F1F3D, used across the Elementor pages)
   instead of the previous generic dark grey, so a shortcode block reads as part of the same page
   rather than a plugin default. Everything else here is a light polish, same selectors as before. */
:root{
    --sbm-accent:#c2410c;
    --sbm-accent-soft:#fdf1ea;
    --sbm-accent-ink:#fff;
    --sbm-ink:#0F1F3D;
    --sbm-muted:#5f6b76;
    --sbm-line:#e3e7ea;
    --sbm-surface:#fff;
    --sbm-surface-soft:#f7f5f2;
}

.sbm-public-empty{color:var(--sbm-muted);font-style:italic;margin:0}
.sbm-public-eyebrow{display:inline-block;text-transform:uppercase;letter-spacing:.12em;font-size:.72em;font-weight:700;color:var(--sbm-accent)}

/* Calendar — list format (default) */
.sbm-public-calendar{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.sbm-calendar-card{display:flex;gap:14px;align-items:center;border:1px solid var(--sbm-line);border-left:4px solid var(--cat,var(--sbm-accent));border-radius:14px;padding:14px;background:var(--sbm-surface);transition:box-shadow .15s ease,transform .15s ease}
.sbm-calendar-card:hover{box-shadow:0 10px 24px rgba(15,31,61,.08);transform:translateY(-1px)}
.sbm-calendar-day{font-weight:800;min-width:74px;color:var(--sbm-ink)}
.sbm-calendar-main{display:flex;flex-direction:column;gap:2px}
.sbm-calendar-main span{font-size:1.05em;color:var(--sbm-ink)}
.sbm-calendar-main small{opacity:.68}
.sbm-calendar-exceptions{grid-column:1/-1;margin-top:16px;display:flex;flex-direction:column;gap:12px}
.sbm-calendar-exceptions h3{margin:0;font-size:1em;color:var(--sbm-ink)}

/* Calendar — weekly grid format (v1.7.2: stessa griglia a blocchi di wp-admin, vedi
   Support/CalendarGrid.php — il motore di disegno è condiviso, qui c'è solo la sua veste per il
   sito pubblico. Sola lettura: nessun blocco cliccabile, nessuna azione, niente elenco sedi.) */
.sbm-cal-week{display:flex;gap:20px;align-items:flex-start}
.sbm-cal-week.sbm-cal-week-public{flex-wrap:wrap}
.sbm-cal-legend{flex:0 0 160px;background:var(--sbm-surface-soft);border-radius:14px;padding:14px}
.sbm-cal-legend h3{margin:0 0 8px;font-size:.72em;text-transform:uppercase;letter-spacing:.04em;color:var(--sbm-muted)}
.sbm-cal-legend h3:not(:first-child){margin-top:16px}
.sbm-cal-legend-row{display:flex;align-items:center;gap:8px;font-size:.86em;padding:3px 0;color:var(--sbm-ink)}
.sbm-cal-legend-row-plain{padding-left:18px}
.sbm-cal-dot{width:10px;height:10px;border-radius:50%;flex:0 0 10px}
.sbm-cal-grid-wrap{flex:1;min-width:0;overflow-x:auto}
.sbm-cal-grid{display:flex;min-width:640px;border:1px solid var(--sbm-line);border-radius:14px;padding:12px}
.sbm-cal-time-col{position:relative;flex:0 0 48px;border-right:1px solid var(--sbm-line)}
.sbm-cal-hour{position:absolute;right:8px;transform:translateY(-50%);font-size:.72em;color:var(--sbm-muted);font-variant-numeric:tabular-nums}
.sbm-cal-day-col{flex:1;min-width:110px;border-right:1px solid var(--sbm-line)}
.sbm-cal-day-col:last-child{border-right:none}
.sbm-cal-day-head{text-align:center;font-size:.78em;font-weight:800;color:var(--sbm-ink);padding:0 0 8px;text-transform:uppercase;letter-spacing:.03em}
.sbm-cal-day-body{position:relative;background:var(--sbm-surface-soft);border-radius:8px;margin:0 3px}
.sbm-cal-hour-line{position:absolute;left:0;right:0;border-top:1px dashed var(--sbm-line)}
.sbm-cal-block{position:absolute;left:3px;right:3px;border-radius:8px;padding:5px 7px;color:#fff;overflow:hidden;box-shadow:0 1px 2px rgba(15,31,61,.18)}
.sbm-cal-block strong{display:block;font-size:.78em;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sbm-cal-block small{display:block;font-size:.68em;opacity:.92;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* Calendar — compact agenda format */
.sbm-calendar-agenda{display:flex;flex-direction:column;border:1px solid var(--sbm-line);border-radius:14px;padding:6px 14px;background:var(--sbm-surface)}
.sbm-agenda-row{display:grid;grid-template-columns:44px 10px 1fr auto;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--sbm-surface-soft)}
.sbm-agenda-row:last-child{border-bottom:none}
.sbm-agenda-day{font-size:.72em;font-weight:800;color:var(--sbm-muted);text-transform:uppercase}
.sbm-agenda-dot{width:9px;height:9px;border-radius:50%;background:var(--cat,var(--sbm-accent))}
.sbm-agenda-main{font-size:.92em;color:var(--sbm-ink)}
.sbm-agenda-main span{opacity:.68;font-weight:400}
.sbm-agenda-time{font-size:.86em;font-variant-numeric:tabular-nums;color:var(--sbm-ink);font-weight:800}

/* Courses (categories + courses, price, CTA) */
.sbm-public-courses{display:flex;flex-direction:column;gap:18px}
.sbm-public-courses-head{display:flex;flex-direction:column;gap:4px}
.sbm-public-courses-head p{margin:0;color:var(--sbm-ink)}
.sbm-course-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.sbm-course-card{display:flex;flex-direction:column;gap:10px;border:1px solid var(--sbm-line);border-radius:16px;padding:20px;background:var(--sbm-surface);transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}
.sbm-course-card:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(15,31,61,.10);border-color:transparent}
.sbm-course-card h3{margin:0;color:var(--sbm-ink)}
.sbm-course-card p{margin:0;color:var(--sbm-muted);font-size:.94em}
.sbm-course-badge{align-self:flex-start;display:inline-flex;align-items:center;border-radius:999px;padding:3px 10px;background:var(--sbm-surface-soft);color:var(--sbm-ink);font-size:.76em;font-weight:700}
.sbm-course-badge.is-muted{background:transparent;border:1px solid var(--sbm-line);font-weight:600}
.sbm-course-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}
.sbm-course-list li{padding:7px 10px;border-radius:8px;background:var(--sbm-surface-soft);font-size:.92em;color:var(--sbm-ink)}
.sbm-cta{margin-top:auto;align-self:flex-start;display:inline-flex;align-items:center;gap:6px;padding:11px 20px;border-radius:999px;background:var(--sbm-accent);color:var(--sbm-accent-ink)!important;font-weight:700;text-decoration:none!important;font-size:.92em;transition:filter .15s ease,transform .15s ease,box-shadow .15s ease}
.sbm-cta:hover{filter:brightness(1.08);transform:translateY(-1px);box-shadow:0 8px 18px rgba(194,65,12,.28)}
.sbm-cta:focus-visible{outline:2px solid var(--sbm-accent);outline-offset:3px}

/* v1.8.0 — categoria piena: bottone disattivato, o modulo lista d'attesa al suo posto */
.sbm-cta-disabled{margin-top:auto;align-self:flex-start;background:var(--sbm-surface-soft);color:var(--sbm-muted)!important;cursor:default}
.sbm-cta-disabled:hover{filter:none;transform:none;box-shadow:none}
.sbm-cta-outline{background:transparent;color:var(--sbm-accent)!important;border:1.5px solid var(--sbm-accent)}
.sbm-cta-outline:hover{background:var(--sbm-accent-soft);box-shadow:none;filter:none}
.sbm-waitlist{margin-top:auto;display:flex;flex-direction:column;gap:8px}
.sbm-waitlist-full{margin:0;align-self:flex-start;display:inline-flex;align-items:center;border-radius:999px;padding:3px 10px;background:var(--sbm-surface-soft);color:var(--sbm-muted);font-size:.76em;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.sbm-waitlist-form{display:flex;flex-direction:column;gap:8px}
.sbm-waitlist-form label{display:flex;flex-direction:column;gap:3px;font-size:.82em;color:var(--sbm-muted)}
.sbm-waitlist-form input{padding:8px 10px;border:1px solid var(--sbm-line);border-radius:8px;font:inherit;color:var(--sbm-ink)}
.sbm-waitlist-form input:focus-visible{outline:2px solid var(--sbm-accent);outline-offset:1px}
.sbm-waitlist-form button{align-self:flex-start}
.sbm-waitlist-msg{margin:0;font-size:.82em;color:var(--sbm-muted)}
.sbm-waitlist-msg.is-error{color:#b42318}
.sbm-waitlist-done{background:var(--sbm-accent-soft);color:var(--sbm-accent)}

/* Kits */
.sbm-public-kits{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}
.sbm-kit-card{border:1px solid var(--sbm-line);border-radius:16px;padding:20px;background:var(--sbm-surface);transition:box-shadow .15s ease,transform .15s ease}
.sbm-kit-card:hover{box-shadow:0 10px 24px rgba(15,31,61,.08);transform:translateY(-1px)}
.sbm-kit-card h3{margin:0 0 12px;color:var(--sbm-ink)}
.sbm-kit-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.sbm-kit-list li{display:flex;flex-direction:column;gap:3px;padding-bottom:10px;border-bottom:1px solid var(--sbm-line)}
.sbm-kit-list li:last-child{border-bottom:0;padding-bottom:0}
.sbm-kit-list strong{color:var(--sbm-ink)}
.sbm-kit-item-desc{color:var(--sbm-muted);font-size:.88em}

/* Next variations (compact strip/sidebar) */
.sbm-public-variations{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.sbm-public-variations li{display:flex;gap:12px;align-items:baseline;padding:10px 12px;border-radius:10px;background:var(--sbm-accent-soft)}
.sbm-public-variation-date{flex:0 0 auto;font-weight:800;color:var(--sbm-accent);min-width:38px}

@media(max-width:480px){.sbm-course-grid,.sbm-public-kits{grid-template-columns:1fr}}
