:root{
  --bg: #0f1222;
  --fg: #e7e9f3;
  --muted: #a6abbd;
  --card: #171a2f;
  --line: #2b2f4a;
  --accent1: #7b2ff7;
  --accent2: #007bff;
  --accent3: #ff5f00;
  --grad: linear-gradient(90deg, var(--accent3), #ff9900, var(--accent2), var(--accent1));
}
* { box-sizing: border-box; }
.team-body{
  margin:0;
  font-family:'Poppins',system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,'Helvetica Neue',Arial,sans-serif;
  color: var(--fg);
  background: radial-gradient(1200px 600px at 20% 0%, #151836 0%, transparent 60%), var(--bg);
}

/* Header locale */
.team-header{
  position: sticky; top: 0; z-index: 5;
  display:flex; align-items:center; justify-content:space-between;
  padding: 14px 5vw;
  background: rgba(15,18,34,.7);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid #1f2340;
}
.team-brand{ display:flex; align-items:center; gap: 10px; color: var(--fg); font-weight: 700; }
.team-brand img{ width:42px; height:42px; border-radius:50%; box-shadow: 0 6px 20px rgba(0,0,0,.25); }
.team-actions{ display:flex; gap: 10px; align-items:center; }
.btn-ghost{
  appearance:none; border:1px solid #2b2f4a; background:#141734; color:var(--fg);
  padding:10px 12px; border-radius:10px; cursor:pointer; font-weight:700;
}
.btn-pill{
  background: var(--grad); color:#fff; padding:10px 16px; border-radius:999px; font-weight:800;
  box-shadow: 0 8px 24px rgba(0,0,0,.25);
}

/* Hero */
.team-hero{ position:relative; overflow:clip; padding: clamp(80px, 10vh, 160px) 5vw 70px; }
.hero-bg .grid{
  position:absolute; inset:0;
  --s: 50px;
  background:
    linear-gradient(transparent 95%, rgba(255,255,255,.08) 0) top/100% var(--s),
    linear-gradient(90deg, transparent 95%, rgba(255,255,255,.08) 0) left/var(--s) 100%;
  opacity:.15;
}
.orb{ position:absolute; width:36vmax; height:36vmax; border-radius:50%; filter: blur(40px); opacity:.35; animation: float 18s ease-in-out infinite; }
.o1{ background: radial-gradient(circle at 30% 30%, var(--accent3), transparent 60%); top:-14vmax; left:-10vmax; }
.o2{ background: radial-gradient(circle at 50% 50%, var(--accent2), transparent 60%); right:-12vmax; bottom:-16vmax; animation-delay:3s; }
.o3{ background: radial-gradient(circle at 60% 40%, var(--accent1), transparent 60%); right:16vmax; top:6vmax; animation-delay:6s; }

.hero-inner{ position:relative; z-index:1; text-align:center; }
.title{ font-size: clamp(32px, 5vw, 72px); line-height:1.05; margin: 0 0 10px; }
.stroke{ text-shadow: 0 2px 0 rgba(0,0,0,.2); }
.gradient{ background: var(--grad); -webkit-background-clip:text; -webkit-text-fill-color:transparent; }
.subtitle{ color: var(--muted); font-size: clamp(16px, 2.1vw, 22px); margin: 6px auto 18px; max-width: 900px; }

.hero-badges{ display:flex; gap:10px; flex-wrap:wrap; justify-content:center; margin: 10px 0 22px; }
.badge{
  background:#141734; border:1px solid #303557; color:#dfe2f8; font-weight:700;
  padding:8px 12px; border-radius:999px; box-shadow: 0 10px 24px rgba(0,0,0,.2);
}
.badge.pulsate{ animation: pulse 1.6s infinite; }

.hero-stats{ display:flex; gap:18px; justify-content:center; flex-wrap:wrap; }
.stat{ background:#141734; border:1px solid #2a2f52; border-radius:14px; padding:12px 18px; min-width:160px; text-align:center; }
.stat strong{ display:block; font-size: clamp(24px, 4.2vw, 40px); background:var(--grad); -webkit-background-clip:text; -webkit-text-fill-color:transparent; }
.stat span{ color:var(--muted); font-size:.95rem; }

/* Cards Team */
.section-pad{ padding: 60px 5vw; }
.team-grid{
  display:grid; gap: 22px;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}
.member-card{
  background: radial-gradient(120% 120% at 0% 0%, #1a1d3a 0%, #121531 60%);
  border:1px solid #2a2e53; border-radius:20px; overflow:hidden;
  box-shadow: 0 20px 60px rgba(0,0,0,.25);
  transform-style: preserve-3d; will-change: transform;
}
.member-card:hover{ box-shadow: 0 28px 80px rgba(0,0,0,.35); }
.card-media{ position:relative; overflow:hidden; }
.card-media img{ width:100%; height: 240px; object-fit: cover; display:block; }
.ribbon{
  position:absolute; left:12px; top:12px; padding:6px 10px; border-radius:999px;
  background: var(--grad); color:#fff; font-weight:800; font-size:.85rem;
  box-shadow: 0 10px 20px rgba(0,0,0,.3);
}
.ribbon-blue{ background: linear-gradient(90deg,#00a2ff,#4b6bff); }
.ribbon-purple{ background: linear-gradient(90deg,#a855f7,#7c3aed); }
.card-body{ padding: 18px; }
.card-body h3{ margin: 0 0 2px; font-size: 1.35rem; }
.role{ color: #c3c7de; margin: 0 0 8px; }
.chips{ display:flex; gap:8px; flex-wrap:wrap; margin: 8px 0 10px; }
.chips span{ background:#0f1224; border:1px solid #2a2f52; padding:6px 10px; border-radius:999px; font-size:.85rem; }
.bio{ color: var(--muted); min-height: 2.7em; }
.card-actions{ display:flex; gap:10px; flex-wrap:wrap; margin-top: 12px; }
.btn-line{ background: transparent; color:#b7c1ff; border:1px solid #3a3f6f; border-radius:10px; padding:10px 12px; font-weight:700; cursor:pointer; }
.btn-outline{ display:inline-flex; align-items:center; gap:8px; background: #0f1224; color:#eaeaff; border:1px solid #3a3f6f; border-radius:10px; padding:10px 12px; font-weight:700; }

/* Marquee */
.marquee{ position: relative; overflow:hidden; border-block:1px solid #23284a; background:#0e1123; }
.marquee .track{ white-space: nowrap; display: inline-block; padding: 16px 0; animation: slide 20s linear infinite; color: #d9dcfb; opacity:.9; }
.marquee .track span{ padding-right: 40px; }

/* ===== RECENSIONI ===== */
.reviews{ position: relative; }
.reviews-head{
  display:flex; align-items:center; justify-content:space-between; gap: 16px;
  flex-wrap: wrap; margin-bottom: 18px;
}
.reviews-title{ display:flex; align-items:center; gap: 10px; }
.g-logo{ width: 28px; height: 28px; }
.score{ display:flex; align-items:center; gap: 14px; flex-wrap: wrap; }
.stars{ display:inline-flex; gap: 4px; }
.stars svg{ width: 20px; height: 20px; }
.avg{ font-weight: 800; }
.count{ color: var(--muted); }
.view-gmaps{ color:#9ec5ff; text-decoration: underline; }

.reviews-carousel{
  display:grid; grid-auto-flow: column; grid-auto-columns: minmax(280px, 360px);
  gap: 14px; overflow:auto; padding-bottom: 6px; scroll-snap-type: x mandatory;
}
.review-card{
  background:#141734; border:1px solid #2a2f52; border-radius:16px; padding:14px;
  scroll-snap-align: start; position:relative; display:flex; flex-direction:column; gap:8px;
  box-shadow: 0 10px 26px rgba(0,0,0,.25);
}
.rev-head{ display:flex; align-items:center; gap: 10px; }
.rev-avatar{
  width: 38px; height: 38px; border-radius: 50%; background: linear-gradient(135deg,#2a2e53,#1a1d3a);
  display:grid; place-items:center; font-weight:800; color:#cdd3ff;
}
.rev-name{ font-weight:800; }
.rev-date{ color: var(--muted); font-size: .9rem; }
.rev-stars{ display:inline-flex; gap: 4px; }
.rev-text{ color:#d5d8ee; line-height:1.55; max-height: 7.2em; overflow: hidden; position:relative; }
.rev-text.more{ max-height:none; }
.readmore{ align-self:flex-start; background:transparent; color:#b7c1ff; border:1px solid #3a3f6f; border-radius: 999px; padding:6px 10px; font-weight:700; cursor:pointer; }

.reviews-carousel::-webkit-scrollbar{ height: 8px; }
.reviews-carousel::-webkit-scrollbar-thumb{ background:#2a2f52; border-radius:999px; }

/* Modal */
.modal{ position: fixed; inset: 0; display:none; place-items:center; background: rgba(5,6,12,.6); backdrop-filter: blur(8px); z-index: 50; }
.modal.open{ display:grid; }
.dialog{ width: min(680px, 92vw); background:#101330; border:1px solid #30345c; color:#e9ecff; border-radius: 16px; padding: 22px; box-shadow: 0 20px 80px rgba(0,0,0,.45); position: relative; }
.dialog h3{ margin: 0 0 8px; font-size: 1.6rem; }
.dialog p{ color:#c7cbe4; }
.close{ position:absolute; right: 18px; top: 12px; background: #171a38; border:1px solid #2f3462; color:#fff; width:34px; height:34px; border-radius:10px; cursor:pointer; }

/* Reveals / Animazioni */
.reveal{ opacity:0; transform: translateY(14px); transition: .6s ease; }
.reveal.in{ opacity:1; transform:none; }
@keyframes float { 0%,100%{transform: translateY(0)} 50%{transform: translateY(-16px)} }
@keyframes pulse { 0%,100%{ transform: scale(1); box-shadow:0 0 0 0 rgba(123,47,247,.0);} 50%{ transform: scale(1.06); box-shadow:0 0 0 10px rgba(123,47,247,.15);} }
@keyframes slide { 0%{ transform: translateX(0);} 100%{ transform: translateX(-50%);} }

/* Light mode (toggle) */
.light{
  --bg: #f6f7fb; --fg: #121328; --muted: #4b4f6a; --card: #ffffff; --line: #e7e9f1;
  background: radial-gradient(1200px 600px at 80% 0%, #ffffff 0%, transparent 60%), #f6f7fb;
}
.light .team-header{ background: rgba(255,255,255,.7); border-bottom-color:#e7e9f1;}
.light .member-card{ background: #ffffff; border-color:#e7e9f1; }
.light .card-body .chips span{ background:#f3f5fe; border-color:#e7e9f1; }
.light .review-card{ background:#fff; border-color:#e7e9f1; color:#23263f; }
.light .rev-text{ color:#2d3150; }
.light .faq-item{ background:#fff; border-color:#e7e9f1; }

/* Tilt overlay */
.member-card::before{
  content:""; position:absolute; inset:auto auto 0 0; width:60%; height:40%;
  background: radial-gradient(60% 60% at 20% 80%, rgba(255,255,255,.08), transparent 60%);
  pointer-events:none;
}

/* Responsive */
@media (max-width: 980px){
  .team-header{ padding: 12px 18px; }
  .team-brand span{ display:none; }
  .card-media img{ height: 220px; }
  .reviews-head{ flex-direction: column; align-items: flex-start; }
  .score{ gap: 10px; }
}
/* ===== RECENSIONI COMPATTE ===== */
.reviews-compact .reviews-head{
  display:flex; align-items:center; justify-content:space-between;
  gap:16px; flex-wrap:wrap;
}
.reviews-compact .reviews-title{ display:flex; align-items:center; gap:10px; }
.reviews-compact .g-logo{ width:28px; height:28px; }
.reviews-compact .score{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
.reviews-compact .stars svg{ width:22px; height:22px; }
.reviews-compact .avg{ font-weight:800; }
.reviews-compact .count a{ color:#9ec5ff; text-decoration: underline; }

/* Light mode */
.light .reviews-compact .count a{ color:#2b5fbf; }
