/* ============================================================
   CONCEPT 2 — LINGUAGGIO DELLE FORME — VERSIONE SCURA
   Stessa identica logica del concept originale (angoli morbidi +
   ombra diffusa colorata per gli artisti, angoli netti + ombra dura
   per i fornitori) ma applicata su un impianto grafico dark, con
   superfici scure per le card invece che bianche.
   ============================================================ */

:root{
  --dk-bg: #12141C;
  --dk-bg-alt: #0D0F16;
  --dk-surface: #1B1E2A;
  --dk-surface-2: #20232F;
  --dk-border: #2C3040;
  --dk-text: #EDEEF3;
  --dk-text-dim: #9A9FB0;
}

body{ background:var(--dk-bg) !important; color:var(--dk-text) !important; }
.site-header{ background:rgba(18,20,28,.94) !important; border-bottom:1px solid var(--dk-border) !important; }
.brand-logo-img{ filter:brightness(0) invert(1); }
@media (min-width:1151px){ .audience-switch--mobile{ display:none; } }
.dk-brand-logo{ height:48px; width:auto; display:block; }
.dk-brand-logo--footer{ height:64px; }
.brand--dark-theme{ display:flex; align-items:center; }
.main-nav a{ color:var(--dk-text-dim) !important; }
.main-nav a:hover{ color:#fff !important; }
.audience-switch{ background:var(--dk-surface) !important; }
.switch-opt{ color:var(--dk-text-dim) !important; }
.nav-toggle span{ background:var(--dk-text) !important; }

.section, .section--opportunita, .strip{ background:var(--dk-bg) !important; background-image:none !important; }
.section--dark{ background:var(--dk-bg-alt) !important; }
h1, h2, h3, h4{ color:var(--dk-text) !important; }
p, li{ color:var(--dk-text-dim) !important; }
.lede, .lede--light{ color:var(--dk-text-dim) !important; }
.dual-line{ background:var(--dk-border) !important; }

/* cards: dark surface, but keep concept-2's shape+shadow language intact */
.problem-card, .support-card, .offer-card, .opportunity-panel,
.brand-accent-card, .contact-form-card, .mascot-badge, .io-item, .opp-offer{
  background:var(--dk-surface) !important;
  color:var(--dk-text) !important;
}
.io-item span{ color:var(--dk-text) !important; }
.problem-card h3, .support-card h3, .offer-card h4{ color:var(--dk-text) !important; }
.problem-card p, .support-card p{ color:var(--dk-text-dim) !important; }

/* re-tune concept-2 shadows so they read well against a dark backdrop */
body[data-audience="artisti"]{ --card-shadow: 0 20px 44px -10px rgba(228,54,44,.45); }
body[data-audience="fornitori"]{ --card-shadow: 6px 6px 0 0 rgba(91,157,255,.9); }
.problem-card, .support-card, .offer-card{
  border:1px solid var(--dk-border) !important;
}
body[data-audience="fornitori"] .problem-card,
body[data-audience="fornitori"] .support-card,
body[data-audience="fornitori"] .offer-card{
  border-color:var(--blue) !important;
}

.btn-ghost{ color:var(--dk-text) !important; }
.btn-ghost:hover{ background:var(--dk-surface-2) !important; }
.role-strip{ background:var(--dk-bg-alt) !important; }
.support-card svg, .problem-card svg{ filter:brightness(1.3); }

.contact-form-card input, .contact-form-card select, .contact-form-card textarea{
  background:var(--dk-surface-2) !important; border:1px solid var(--dk-border) !important; color:var(--dk-text) !important;
}
.contact-form label{ color:var(--dk-text-dim) !important; }
.opp-offer-label{ color:var(--dk-text-dim) !important; }
.site-footer{ background:var(--dk-bg-alt) !important; }
@media (max-width:1150px){
  .main-nav{ background:var(--dk-bg) !important; border-left:1px solid var(--dk-border); }
  .main-nav a{ color:var(--dk-text) !important; }
}
.pill, .tag-pill{ background:var(--dk-surface) !important; color:var(--dk-text) !important; border-color:var(--dk-border) !important; }

/* ============ THEME TOGGLE ============ */
.theme-toggle{
  width:36px; height:36px; border-radius:50%;
  background:var(--dk-surface); border:1.5px solid var(--dk-border);
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; font-size:1.1rem; line-height:1;
  transition:background .2s, border-color .2s, transform .2s;
}
.theme-toggle:hover{ border-color:#fff; transform:translateY(-1px); }

/* ============ LIGHT MODE OVERRIDES ============ */
body.light-mode{ background:#FBFAF5 !important; color:#131A2B !important; }
body.light-mode .site-header{ background:rgba(251,250,245,.95) !important; border-bottom-color:#e0ddd4 !important; }
body.light-mode .dk-brand-logo--footer{ filter:brightness(0); }
.dk-brand-logo--light-only{ display:none; }
body.light-mode .dk-brand-logo--dark-only{ display:none; }
body.light-mode .dk-brand-logo--light-only{ display:block; }
body.light-mode .main-nav a{ color:#555 !important; }
body.light-mode .main-nav a:hover{ color:var(--accent, var(--red)) !important; }
body.light-mode .audience-switch{ background:#f0ede5 !important; }
body.light-mode .switch-opt{ color:#777 !important; }
body.light-mode .switch-opt.is-active{ color:#fff !important; }
body.light-mode .nav-toggle span{ background:#131A2B !important; }
body.light-mode .theme-toggle{ background:#f0ede5; border-color:#d8d6ce; }

body.light-mode .section, body.light-mode .section--opportunita{
  background:#FBFAF5 !important; background-image:none !important;
}
body.light-mode .section--dark{ background:#f0ede5 !important; }
body.light-mode h1, body.light-mode h2, body.light-mode h3, body.light-mode h4{ color:#131A2B !important; }
body.light-mode p, body.light-mode li, body.light-mode .lede{ color:#555 !important; }
body.light-mode .kicker{ color:var(--accent, var(--red)) !important; }

body.light-mode .problem-card, body.light-mode .support-card,
body.light-mode .offer-card,
body.light-mode .opportunity-panel, body.light-mode .io-item,
body.light-mode .opp-offer, body.light-mode .contact-form-card{
  background:#fff !important; color:#131A2B !important;
}
body.light-mode .problem-card h3, body.light-mode .problem-card h4,
body.light-mode .support-card h3, body.light-mode .offer-card h4{ color:#131A2B !important; }
body.light-mode .problem-card p, body.light-mode .support-card p{ color:#555 !important; }
body.light-mode .io-item span{ color:#131A2B !important; }

body.light-mode .contact-form-card input,
body.light-mode .contact-form-card select,
body.light-mode .contact-form-card textarea{
  background:#f8f7f2 !important; border-color:#d8d6ce !important; color:#131A2B !important;
}
body.light-mode .contact-form label{ color:#555 !important; }
body.light-mode .site-footer{ background:#f0ede5 !important; }
body.light-mode .role-strip{ background:#f0ede5 !important; }
body.light-mode .role-strip span{ color:#555 !important; }
body.light-mode .members-tab{ background:#fff !important; color:#555 !important; border-color:#d8d6ce !important; }
body.light-mode .members-tab.is-active{ color:#131A2B !important; border-color:#131A2B !important; }

/* ============ LIGHT MODE FIXES ============ */
body.light-mode .brand-accent-card{ background:#f0ede5 !important; }
body.light-mode .brand-accent-card h4,
body.light-mode .brand-accent-card p{ color:#131A2B !important; }
body.light-mode .opportunity-panel{
  background:#f8f7f2 !important; color:#131A2B !important;
}
body.light-mode .opportunity-panel h3,
body.light-mode .opportunity-panel h4{ color:#131A2B !important; }
body.light-mode .opportunity-panel p,
body.light-mode .opportunity-panel li{ color:#555 !important; }
body.light-mode .opp-offer{ background:#f0ede5 !important; }
body.light-mode .opp-offer-label{ color:#555 !important; }
body.light-mode .section--dark{
  background:#f0ede5 !important;
}
body.light-mode .section--dark h2,
body.light-mode .section--dark h3{ color:#131A2B !important; }
body.light-mode .section--dark p,
body.light-mode .section--dark li{ color:#555 !important; }
body.light-mode .section--dark .kicker{ color:var(--accent, var(--red)) !important; }
body.light-mode #contatti{ background:#FBFAF5 !important; }
body.light-mode .dual-card{ background:#fff !important; }
body.light-mode .dual-card p{ color:#555 !important; }
body.light-mode .carousel-arrow{ background:#fff !important; border-color:#d8d6ce !important; color:#131A2B !important; }
body.light-mode .member-modal-card{ background:#fff !important; }
body.light-mode .member-modal-card h4{ color:#131A2B !important; }
body.light-mode .member-modal-bio{ color:#555 !important; }
body.light-mode .footer-nav a{ color:#555 !important; }
body.light-mode .footer-legal{ color:#888 !important; }

/* ============ LIGHT MODE FIX: HERO ============
   The hero always sits on the same dark video + scrim, in both themes —
   it never lightens like the other sections. The generic light-mode
   h1/lede rule above was turning the hero title and subtitle near-black,
   making them unreadable against the still-dark hero background. */
body.light-mode .hero-title-lines,
body.light-mode .hero-title-lines .title-line,
body.light-mode .hero-sub{ color:#fff !important; }
body.light-mode .hero-title-lines .accent{ color:var(--red) !important; }

/* ============ LIGHT MODE FIX: CONTATTI INFO ROWS ============
   Same issue: these labels/values were styled white-on-dark only,
   with no light-mode variant, so they nearly disappeared once the
   Contatti section background switched to light cream. */
body.light-mode .info-row span{ color:rgba(19,26,43,.5) !important; }
body.light-mode .info-row a, body.light-mode .info-row p{ color:#131A2B !important; }

/* ============ LIGHT MODE FIX: FOOTER AUDIENCE LINK ============ */
body.light-mode .footer-audience-link{ color:rgba(19,26,43,.45) !important; }
body.light-mode .footer-audience-link:hover{ color:rgba(19,26,43,.8) !important; }

/* ============ ORBIT VISUAL LEGEND (theme-aware, like info-row) ============ */
.orbit-legend-item{ color:var(--dk-text-dim) !important; }
body.light-mode .orbit-legend-item{ color:#555 !important; }
@media (max-width:1150px){
  body.light-mode .main-nav{ background:#FBFAF5 !important; border-left-color:#e0ddd4 !important; }
  body.light-mode .main-nav a{ color:#131A2B !important; }
}
