/* ══ 0 · TOKEN DEL MODULO — accento di sezione ══
   Un unico design serve Allestimenti e Servizi: la differenza è solo l'accento,
   pilotato dalla classe sul wrapper. Allestimenti = ciano, Servizi = blu (default). */
.bsa-wrap,.bsa-hero,.bsa-band{
  --bsa-accent:var(--bss-blue);
  --bsa-accent-soft:var(--bss-blue-soft);
  --bsa-accent-edge:var(--bss-blue-edge);
  --bsa-accent-glow:0 0 40px rgba(22,119,255,.22);
  --bsa-wa:#25d366;
  --bsa-wa-edge:rgba(37,211,102,.45);
}
.bsa-wrap--allestimenti,.bsa-hero--allestimenti,.bsa-band--allestimenti{
  --bsa-accent:var(--bss-cyan);
  --bsa-accent-soft:rgba(79,195,247,.16);
  --bsa-accent-edge:rgba(79,195,247,.45);
  --bsa-accent-glow:0 0 40px rgba(79,195,247,.20);
}

/* ══ 1 · BASE MODULO ══ */
.bsa-wrap{max-width:calc(1180px + 2*var(--bss-page-x));margin-inline:auto;padding:60px var(--bss-page-x) 72px;font-family:var(--bss-font-body);color:var(--bss-fg)}
.bsa-wrap,.bsa-wrap *,.bsa-wrap *::before,.bsa-wrap *::after,
.bsa-hero,.bsa-hero *,.bsa-hero *::before,.bsa-hero *::after{box-sizing:border-box}
.bsa-wrap :where(h1,h2,h3,h4,p,ul,ol,figure,figcaption),.bsa-hero :where(h1,h2,p){margin:0;padding:0}
.bsa-wrap ul{list-style:none}
.bsa-wrap :where(a),.bsa-hero :where(a){text-decoration:none;transition:color var(--bss-dur) var(--bss-ease)}
.bsa-wrap :where(a){color:var(--bss-cyan)}
.bsa-wrap :where(a:hover){color:var(--bss-ice)}
.bsa-hero :where(a){color:inherit}
.bsa-wrap :where(button),.bsa-hero :where(button){font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
.bsa-wrap :focus-visible,.bsa-hero :focus-visible{outline:2px solid var(--bss-blue);outline-offset:2px}
.bsa-icon{width:22px;height:22px;flex:none;display:block}
.bsa-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.bsa-cover{position:relative;overflow:hidden;background:var(--bss-bg-2)}
/* Immagine reale (produzione) */
.bsa-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .45s var(--bss-ease)}
/* Placeholder immagine (demo e fallback "immagine mancante") */
.bsa-ph{position:absolute;inset:0;display:grid;place-items:center;color:var(--bss-ice);transition:transform .45s var(--bss-ease)}
.bsa-ph::after{content:"";position:absolute;inset:0;background:radial-gradient(120% 85% at 72% -5%,rgba(79,195,247,.12),transparent 62%)}
.bsa-ph .bsa-icon{opacity:.16}
.bsa-ph--a{background:linear-gradient(150deg,#14273f,#081224)}
.bsa-ph--b{background:linear-gradient(150deg,#0e2438,#050f1d)}
.bsa-ph--c{background:linear-gradient(150deg,#122a44,#0a1526)}
.bsa-ph--d{background:linear-gradient(150deg,#0f2c3a,#081824)}
.bsa-ph--e{background:linear-gradient(150deg,#2a2118,#14100a)}
.bsa-ph--f{background:linear-gradient(150deg,#252031,#12101c)}
.bsa-ph--g{background:linear-gradient(150deg,#1d3050,#0c1830)}
.bsa-ph--h{background:linear-gradient(150deg,#182636,#0a121e)}
/* Bottoni condivisi del modulo */
.bsa-btn{display:inline-flex;align-items:center;gap:10px;padding:14px 22px;border-radius:14px;font-family:var(--bss-font-display);font-size:12.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;border:1px solid transparent;transition:transform var(--bss-dur) var(--bss-ease),background var(--bss-dur) var(--bss-ease),border-color var(--bss-dur) var(--bss-ease),box-shadow var(--bss-dur) var(--bss-ease),color var(--bss-dur) var(--bss-ease)}
.bsa-btn .bsa-icon{width:18px;height:18px}
.bsa-btn:hover{transform:translateY(-2px)}
.bsa-btn--wa{color:#04240f;background:var(--bsa-wa);border-color:var(--bsa-wa);box-shadow:0 14px 34px rgba(0,0,0,.34),0 0 26px rgba(37,211,102,.28)}
.bsa-btn--wa:hover{color:#04240f;background:#2ee06f}
.bsa-btn--primary{color:#fff;background:var(--bss-blue);border-color:var(--bss-blue);box-shadow:0 14px 34px rgba(0,0,0,.34),0 0 26px rgba(22,119,255,.30)}
.bsa-btn--primary:hover{color:#fff;background:var(--bss-blue-strong)}
.bsa-btn--ghost{color:var(--bss-fg-1);background:var(--bss-panel-2);border-color:var(--bss-border);backdrop-filter:blur(10px)}
.bsa-btn--ghost:hover{color:var(--bss-fg);border-color:var(--bsa-accent-edge);box-shadow:var(--bsa-accent-glow)}
/* Intestazione di sezione ricorrente (B) */
.bsa-eyebrow{font-family:var(--bss-font-display);font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--bss-fg-4)}
.bsa-sec{margin-top:64px}
.bsa-sec-head{display:flex;align-items:baseline;justify-content:space-between;gap:18px;flex-wrap:wrap;padding-bottom:18px;border-bottom:1px solid var(--bss-border);margin-bottom:24px}
.bsa-sec-tools{display:flex;align-items:center;gap:18px}
.bsa-sec-title{font-family:var(--bss-font-display);font-size:clamp(21px,2.2vw,28px);font-weight:700;letter-spacing:-.015em}
.bsa-sec-note{font-size:13px;color:var(--bss-fg-4)}
.bsa-sec-link{display:inline-flex;align-items:center;gap:7px;font-family:var(--bss-font-display);font-size:11.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--bsa-accent)}
.bsa-sec-link .bsa-icon{width:15px;height:15px;transition:transform var(--bss-dur) var(--bss-ease)}
.bsa-sec-link:hover .bsa-icon{transform:translateX(3px)}

/* ══ 2 · INTESTAZIONE PAGINA INDICE (Schermata A) ══ */
.bsa-head{max-width:780px}
.bsa-head .bsa-eyebrow{margin-bottom:14px}
.bsa-title{font-family:var(--bss-font-display);font-size:clamp(34px,4.6vw,54px);font-weight:700;letter-spacing:-.02em;line-height:1.08;text-wrap:balance}
.bsa-title-accent{color:var(--bsa-accent);text-shadow:0 0 30px var(--bsa-accent-edge)}
.bsa-lead{max-width:62ch;margin-top:18px;font-size:16px;line-height:1.65;color:var(--bss-fg-2);text-wrap:pretty}

/* ══ 3 · GRIGLIA DELLE CARD (Schermata A) — 3 → 2 → 1 ══ */
.bsa-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:40px}
.bsa-card{position:relative;display:flex;flex-direction:column;overflow:hidden;background:var(--bss-panel);border:1px solid var(--bss-border);border-radius:var(--bss-radius-xl);box-shadow:var(--bss-shadow-card);transition:transform var(--bss-dur) var(--bss-ease),border-color var(--bss-dur) var(--bss-ease),box-shadow var(--bss-dur) var(--bss-ease)}
.bsa-card-link{display:flex;flex-direction:column;height:100%;color:inherit}
.bsa-card-link:hover{color:inherit}
.bsa-card-link:focus-visible{outline:none}
.bsa-card .bsa-cover{aspect-ratio:16/10}
.bsa-card .bsa-ph .bsa-icon{width:40px;height:40px}
.bsa-card-body{display:grid;gap:9px;padding:20px 22px 22px}
.bsa-card-name{font-family:var(--bss-font-display);font-size:20px;font-weight:700;letter-spacing:-.01em;line-height:1.2;transition:transform var(--bss-dur) var(--bss-ease)}
.bsa-card-desc{font-size:14.5px;line-height:1.55;color:var(--bss-fg-3);text-wrap:pretty}
.bsa-card-more{display:inline-flex;align-items:center;gap:7px;margin-top:4px;font-family:var(--bss-font-display);font-size:11.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--bsa-accent)}
.bsa-card-more .bsa-icon{width:15px;height:15px;transition:transform var(--bss-dur) var(--bss-ease)}
@media (hover:hover){
  .bsa-card:hover{transform:translateY(-6px);border-color:var(--bsa-accent-edge);box-shadow:var(--bss-shadow-card),var(--bsa-accent-glow)}
  .bsa-card:hover :is(.bsa-ph,.bsa-img){transform:scale(1.05)}
  .bsa-card:hover .bsa-card-more .bsa-icon{transform:translateX(3px)}
}
.bsa-card:focus-within{border-color:var(--bsa-accent-edge);box-shadow:var(--bss-shadow-card),var(--bsa-accent-glow)}

/* ══ 4 · STATO VUOTO ══ */
.bsa-empty{margin-top:34px;padding:44px 20px;text-align:center;font-size:14.5px;color:var(--bss-fg-4);border:1px dashed rgba(255,255,255,.16);border-radius:var(--bss-radius-lg)}

/* ══ 5 · HERO CON VIDEO DI SFONDO (Schermata B) ══
   Il hero sta FUORI da .bsa-wrap: è full-bleed. Il poster resta sempre sotto al video
   e diventa l'unica immagine visibile negli stati is-static / reduced-motion. */
.bsa-hero{position:relative;isolation:isolate;display:flex;align-items:flex-end;min-height:clamp(440px,64vh,660px);overflow:hidden;font-family:var(--bss-font-body);color:var(--bss-fg);background:var(--bss-bg-2)}
.bsa-hero-media{position:absolute;inset:0;z-index:-2;overflow:hidden}
/* Ordine dei livelli dichiarato: l'immagine di sfondo sta SOTTO, il video sopra.
   Senza questi z-index il poster (che segue nel DOM) coprirebbe il video. */
.bsa-hero-video{position:absolute;inset:0;z-index:1;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .6s var(--bss-ease)}
.bsa-hero.is-video-ready .bsa-hero-video{opacity:1}
.bsa-hero.is-static .bsa-hero-video,.bsa-hero--static .bsa-hero-video{display:none}
/* Modalità immagine statica: nessun <video>, solo il media di sfondo (img reale o placeholder) */
.bsa-hero-poster{position:absolute;inset:0;z-index:0}
.bsa-hero-poster .bsa-icon{width:64px;height:64px}
.bsa-hero-shade{position:absolute;inset:0;z-index:-1;background:
  radial-gradient(120% 110% at 12% 100%,rgba(5,11,22,.92) 0%,rgba(5,11,22,.30) 58%,rgba(5,11,22,0) 78%),
  linear-gradient(180deg,rgba(5,11,22,.62) 0%,rgba(5,11,22,.10) 34%,rgba(5,11,22,.86) 100%),
  linear-gradient(0deg,var(--bss-bg) 0%,rgba(5,11,22,0) 22%)}
.bsa-hero-body{width:100%;max-width:calc(1180px + 2*var(--bss-page-x));margin-inline:auto;padding:110px var(--bss-page-x) 56px;display:grid;gap:16px;justify-items:start}
.bsa-hero-body .bsa-eyebrow{color:var(--bsa-accent);letter-spacing:.18em}
.bsa-hero-title{font-family:var(--bss-font-display);font-size:clamp(38px,6vw,72px);font-weight:700;letter-spacing:-.025em;line-height:1.04;text-wrap:balance}
.bsa-hero-desc{max-width:56ch;font-size:clamp(15.5px,1.35vw,18px);line-height:1.6;color:var(--bss-fg-1);text-wrap:pretty}
.bsa-hero-body .bsa-btn{margin-top:10px}

/* ══ 6 · DUE COLONNE: DESCRIZIONE + FAQ A STELLA (Schermata B) ══ */
.bsa-split{display:grid;grid-template-columns:1.15fr 1fr;gap:44px;align-items:start;padding-top:8px}
.bsa-body{display:grid;gap:16px;max-width:62ch;font-size:16px;line-height:1.72;color:var(--bss-fg-2);text-wrap:pretty}
.bsa-body h2{font-family:var(--bss-font-display);font-size:clamp(24px,2.6vw,32px);font-weight:700;letter-spacing:-.02em;line-height:1.15;color:var(--bss-fg);margin-bottom:4px}
.bsa-faq{background:var(--bss-panel);border:1px solid var(--bss-border);border-left:5px solid var(--bsa-accent);border-radius:var(--bss-radius-lg);padding:26px 26px 28px;box-shadow:var(--bss-shadow-card)}
.bsa-faq-title{font-family:var(--bss-font-display);font-size:17px;font-weight:700;letter-spacing:-.01em}
.bsa-faq-list{display:grid;gap:20px;margin-top:20px}
.bsa-faq-item{display:grid;grid-template-columns:22px 1fr;column-gap:13px;row-gap:6px}
/* Bullet FAQ: marchio Black Star (PNG bianco del logo). URL configurabile dal backend. */
.bsa-faq-star{grid-row:1/3;margin-top:2px;width:22px;height:22px;flex:none;display:block;object-fit:contain}
.bsa-faq-q{font-family:var(--bss-font-display);font-size:15.5px;font-weight:700;line-height:1.35;color:var(--bss-fg)}
.bsa-faq-a{font-size:14.5px;line-height:1.62;color:var(--bss-fg-3);text-wrap:pretty}

/* ══ 7 · REALIZZAZIONI DALLA GALLERY — slideshow orizzontale, massimo 8 album (Schermata B) ══ */
.bsa-slider{position:relative}
.bsa-works{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none;padding:2px 0 6px;touch-action:pan-y pinch-zoom}
.bsa-works::-webkit-scrollbar{display:none}
.bsa-nav{display:flex;gap:8px}
.bsa-nav-btn{display:grid;place-items:center;width:40px;height:40px;color:var(--bss-fg-1);background:var(--bss-panel);border:1px solid var(--bss-border);border-radius:var(--bss-radius-pill);cursor:pointer;transition:color var(--bss-dur) var(--bss-ease),border-color var(--bss-dur) var(--bss-ease),box-shadow var(--bss-dur) var(--bss-ease),opacity var(--bss-dur) var(--bss-ease)}
.bsa-nav-btn .bsa-icon{width:17px;height:17px}
.bsa-nav-btn--prev .bsa-icon{transform:rotate(180deg)}
.bsa-nav-btn:hover{color:var(--bss-fg);border-color:var(--bsa-accent-edge);box-shadow:var(--bsa-accent-glow)}
.bsa-nav-btn[disabled]{opacity:.35;pointer-events:none}
.bsa-nav[hidden]{display:none}
.bsa-work{position:relative;flex:0 0 calc((100% - 36px)/3);overflow:hidden;aspect-ratio:4/3;scroll-snap-align:start;background:var(--bss-panel);border:1px solid var(--bss-border);border-radius:var(--bss-radius-lg);box-shadow:var(--bss-shadow-card);transition:transform var(--bss-dur) var(--bss-ease),border-color var(--bss-dur) var(--bss-ease),box-shadow var(--bss-dur) var(--bss-ease)}
.bsa-work-link{display:block;height:100%;color:inherit}
.bsa-work-link:hover{color:inherit}
.bsa-work-link:focus-visible{outline:none}
.bsa-work .bsa-cover{position:absolute;inset:0}
.bsa-work .bsa-ph .bsa-icon{width:38px;height:38px}
.bsa-work-shade{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(5,11,22,0) 38%,rgba(5,11,22,.52) 66%,rgba(5,11,22,.94) 100%)}
.bsa-work-body{position:absolute;inset-inline:0;bottom:0;z-index:2;display:grid;gap:5px;padding:18px 20px;transition:transform var(--bss-dur) var(--bss-ease)}
.bsa-work-name{font-family:var(--bss-font-display);font-size:16.5px;font-weight:700;letter-spacing:-.01em;line-height:1.25}
.bsa-work-meta{font-size:12.5px;color:var(--bss-fg-3)}
@media (hover:hover){
  .bsa-work:hover{border-color:var(--bsa-accent-edge);box-shadow:var(--bss-shadow-card),var(--bsa-accent-glow)}
  .bsa-work:hover :is(.bsa-ph,.bsa-img){transform:scale(1.05)}
  .bsa-work:hover .bsa-work-body{transform:translateY(-4px)}
}
.bsa-work:focus-within{border-color:var(--bsa-accent-edge);box-shadow:var(--bss-shadow-card),var(--bsa-accent-glow)}

/* ══ 8 · ATTREZZATURE CONSIGLIATE (Schermata B) ══ */
.bsa-kit-list{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.bsa-kit-item{display:flex;align-items:center;gap:14px;padding:11px 12px;color:var(--bss-fg);background:var(--bss-panel);border:1px solid var(--bss-border);border-radius:var(--bss-radius-sm);transition:background var(--bss-dur) var(--bss-ease),border-color var(--bss-dur) var(--bss-ease),transform var(--bss-dur) var(--bss-ease)}
.bsa-kit-item:hover{color:var(--bss-fg);background:rgba(255,255,255,.05);border-color:var(--bsa-accent-edge);transform:translateY(-2px)}
.bsa-kit-thumb{position:relative;display:grid;place-items:center;width:56px;height:56px;flex:none;overflow:hidden;color:var(--bsa-accent);border:1px solid var(--bss-border);border-radius:10px}
.bsa-kit-thumb .bsa-icon{position:relative;z-index:1;width:22px;height:22px}
.bsa-kit-thumb .bsa-ph{position:absolute}
.bsa-kit-name{display:block;font-size:14.5px;font-weight:600;line-height:1.3}
.bsa-kit-sub{display:block;margin-top:3px;font-size:12.5px;line-height:1.35;color:var(--bss-fg-4)}
.bsa-kit-go{margin-left:auto;width:18px;height:18px;color:var(--bsa-accent);opacity:0;transform:translateX(-4px);transition:opacity var(--bss-dur) var(--bss-ease),transform var(--bss-dur) var(--bss-ease)}
.bsa-kit-item:hover .bsa-kit-go,.bsa-kit-item:focus-visible .bsa-kit-go{opacity:1;transform:translateX(0)}

/* ══ 9 · CALL TO ACTION FINALE (Schermata B) ══ */
.bsa-cta{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;margin-top:64px;padding:clamp(28px,3.4vw,46px);background:linear-gradient(180deg,var(--bss-panel) 0%,var(--bss-bg-2) 100%);border:1px solid var(--bss-border);border-radius:var(--bss-radius-xl);box-shadow:var(--bss-shadow-card)}
.bsa-cta-title{font-family:var(--bss-font-display);font-size:clamp(26px,3vw,36px);font-weight:700;letter-spacing:-.02em;line-height:1.12;text-wrap:balance}
.bsa-cta-title span{color:var(--bsa-accent);text-shadow:0 0 30px var(--bsa-accent-edge)}
.bsa-cta-text{max-width:52ch;margin-top:16px;font-size:15.5px;line-height:1.65;color:var(--bss-fg-2);text-wrap:pretty}
.bsa-cta-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
.bsa-contacts{display:grid;gap:2px;align-content:start}
.bsa-contact{display:flex;align-items:flex-start;gap:14px;padding:12px 12px;border:1px solid transparent;border-radius:var(--bss-radius-sm);color:var(--bss-fg);transition:background var(--bss-dur) var(--bss-ease),border-color var(--bss-dur) var(--bss-ease)}
a.bsa-contact:hover{color:var(--bss-fg);background:rgba(255,255,255,.05);border-color:var(--bss-border)}
.bsa-contact .bsa-icon{width:20px;height:20px;margin-top:2px;color:var(--bsa-accent)}
.bsa-contact-label{display:block;font-family:var(--bss-font-display);font-size:10.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--bss-fg-4)}
.bsa-contact-value{display:block;margin-top:3px;font-size:15px;font-weight:600;line-height:1.4}
.bsa-contact-note{display:block;margin-top:4px;font-size:12.5px;line-height:1.4;color:var(--bss-fg-4)}
.bsa-contact--wa .bsa-icon{color:var(--bsa-wa)}
.bsa-maps{display:inline-flex;align-items:center;gap:7px;margin:10px 0 0 12px;font-family:var(--bss-font-display);font-size:11.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--bsa-accent)}
.bsa-maps .bsa-icon{width:15px;height:15px;transition:transform var(--bss-dur) var(--bss-ease)}
.bsa-maps:hover .bsa-icon{transform:translateX(3px)}

/* ══ 10 · RESPONSIVE ══ */
@media (max-width:1024px){
  .bsa-grid{grid-template-columns:repeat(2,1fr)}
  .bsa-split{grid-template-columns:1fr .95fr;gap:32px}
  .bsa-work{flex-basis:calc((100% - 18px)/2)}
  .bsa-cta{grid-template-columns:1fr;gap:30px}
}
@media (max-width:900px){
  .bsa-split{grid-template-columns:1fr;gap:34px}
  .bsa-kit-list{grid-template-columns:1fr}
  .bsa-hero{min-height:clamp(400px,58vh,560px)}
  .bsa-hero-body{padding-top:88px}
}
@media (max-width:640px){
  .bsa-wrap{padding-top:44px;padding-bottom:56px}
  .bsa-grid{grid-template-columns:1fr;gap:16px;margin-top:28px}
  .bsa-card-body{padding:16px 18px 18px}
  .bsa-card-name{font-size:18px}
  .bsa-sec{margin-top:48px}
  .bsa-works{gap:14px}
  .bsa-work{flex-basis:84%}
  .bsa-faq{padding:20px 18px 22px}
  .bsa-faq-list{gap:18px}
  .bsa-hero-body{padding-bottom:56px;gap:13px}
  .bsa-cta{margin-top:48px;padding:24px 18px}
  .bsa-cta-actions .bsa-btn{flex:1 1 100%;justify-content:center}
}

/* ══ 11 · PREFERS-REDUCED-MOTION ══ */
@media (prefers-reduced-motion:reduce){
  .bsa-wrap *,.bsa-wrap *::before,.bsa-wrap *::after,
  .bsa-hero *,.bsa-hero *::before,.bsa-hero *::after{transition:none !important;animation:none !important}
}
