/* La landing dell'iscrizione al Family Business Meeting 2026 (sito/templates/sito/eventi/
   family-business-meeting-2026-iscrizione.html). L'impianto della pagina di un corso Academy (academy/templates/
   academy/corso.html): hero scura con la trama, contenuti a sinistra con l'etichetta in corsivo e il titolo serif,
   la scheda bianca a destra con il bottone oro. Qui la scheda sale nella hero e resta ferma mentre si legge; sul
   telefono viene subito dopo il titolo. Caratteri del sito nuovo: Tobias per i titoli, Host Grotesk per il testo. */

.fbl { --navy: #003D62; --notte: #021B2E; --oro: #BE9A4E; --oro-chiaro: #D9BE7A; --testo: #3B4F61; --tenue: #5B6E7E;
       --linea: rgba(0, 61, 98, 0.12); --verde: #1E6B4A; --sabbia: #F6F3EC;
       --serif: 'Tobias', Georgia, 'Times New Roman', serif; --sans: 'Host Grotesk', system-ui, -apple-system, sans-serif;
       background: #fff; color: var(--testo); font-family: var(--sans);
       -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; overflow-x: clip; }
.fbl h1, .fbl h2, .fbl h3 { text-wrap: balance; }
.fbl p { text-wrap: pretty; }
.fbl-logo { height: 28px; width: auto; display: block; }

/* ── la barra dell'evento, come quella dell'Academy ── */
/* la testata del sito scorre via, come nell'Academy (Lorenzo, 20/10/2026: «facciamo come in Academy che con lo scroll
   scompare il menu in alto»): in alto resta solo la barra dell'evento, e la scheda si ferma sotto di lei. --fbl-testata
   resta a 0 (era l'altezza della testata quando stava ferma) */
.fbl { --fbl-testata: 0px; --fbl-sotto: 46px; }
.fbl > header { position: static !important; }
.fbl-sotto { position: sticky; top: var(--fbl-testata); z-index: 45; background: rgba(2, 27, 46, 0.94); backdrop-filter: saturate(150%) blur(12px);
             -webkit-backdrop-filter: saturate(150%) blur(12px); border-bottom: 1px solid rgba(217, 190, 122, 0.22); }
.fbl-sotto-riga { max-width: 1280px; margin: 0 auto; padding: 13px 40px; display: flex; align-items: center; gap: 26px; overflow-x: auto; scrollbar-width: none; }
.fbl-sotto-riga::-webkit-scrollbar { display: none; }
.fbl-sotto-nome { font-size: 11px; font-weight: 700; letter-spacing: 0.22em; text-transform: uppercase; color: var(--oro-chiaro); white-space: nowrap; }
.fbl-sotto-sep { flex: 0 0 auto; width: 1px; height: 16px; background: rgba(255, 255, 255, 0.2); }
.fbl-sotto a { font-size: 13.5px; font-weight: 600; color: rgba(255, 255, 255, 0.65); white-space: nowrap; }
.fbl-sotto a:hover { color: #fff; }

/* ── la hero ── */
.fbl-hero { position: relative; overflow: hidden; background: var(--notte); color: #fff; }
.fbl-hero-trama { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0.35; pointer-events: none; }
.fbl-hero::before { content: ""; position: absolute; inset: 0; background: linear-gradient(120deg, rgba(2, 27, 46, 0.96), rgba(2, 27, 46, 0.85)); }
/* la foto di Bologna in blu su blu (Lorenzo, 19/10/2026: «che faccia effetto wow»): la Torre degli Asinelli sale fra
   il titolo e la scheda a ogni larghezza (left: 3,5% + 108px la tiene 108px a destra del centro), il velo tiene
   leggibile il testo a sinistra e si apre sulla torre */
.fbl-hero--foto { background: var(--notte); }
.fbl-hero--foto::before { content: none; }
.fbl-hero-foto { position: absolute; top: 0; left: calc(3.5% + 108px); width: 100%; height: 100%; object-fit: cover;
                 object-position: center 4%; pointer-events: none; }
.fbl-hero--foto .fbl-hero-trama { opacity: 0.1; }
.fbl-hero--foto::after { content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(90deg, var(--notte) 0, rgba(2, 27, 46, 0.93) calc(50% - 290px), rgba(2, 27, 46, 0.45) calc(50% - 40px),
                              rgba(2, 27, 46, 0.05) calc(50% + 145px), rgba(2, 27, 46, 0.25) 100%),
              linear-gradient(0deg, rgba(2, 27, 46, 0.7), rgba(2, 27, 46, 0) 38%); }
.fbl-hero-in { position: relative; z-index: 1; max-width: 1280px; margin: 0 auto; padding: 56px 40px 88px;
               display: grid; grid-template-columns: 1.3fr 0.7fr; gap: 56px; min-height: 540px; }
.fbl-pillola { display: inline-block; font-size: 10.5px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--navy);
               background: var(--oro-chiaro); padding: 5px 14px; border-radius: 999px; }
.fbl-h1 { margin: 22px 0 18px; font: 400 clamp(38px, 4.4vw, 60px)/1.04 var(--serif); letter-spacing: -0.02em; color: #fff; }
.fbl-h1 em { display: block; margin-top: 8px; font-style: italic; font-size: 0.62em; line-height: 1.12; color: var(--oro-chiaro); }
/* il nome dell'evento sopra il titolo: in oro, maiuscolo, ben leggibile, con il filo d'oro davanti */
.fbl-h1-evento { display: flex; align-items: center; gap: 14px; margin-bottom: 18px; font: 700 clamp(17px, 1.6vw, 23px)/1.2 var(--sans);
                 letter-spacing: 0.16em; text-transform: uppercase; color: var(--oro-chiaro); }
.fbl-h1-evento::before { content: ""; flex: 0 0 auto; width: 36px; height: 2px; background: var(--oro); }
.fbl-lead { font-size: 18px; line-height: 1.6; color: rgba(255, 255, 255, 0.82); margin: 0 0 26px; max-width: 600px; }
.fbl-meta { list-style: none; margin: 0 0 26px; padding: 0; display: flex; flex-wrap: wrap; gap: 12px 24px; }
.fbl-meta li { display: flex; align-items: center; gap: 8px; font-size: 14px; color: rgba(255, 255, 255, 0.88); }
.fbl-meta svg { flex: none; }
.fbl-presenta { margin: 0; font-size: 13.5px; line-height: 1.6; color: rgba(255, 255, 255, 0.6); }
.fbl-presenta b { color: var(--oro-chiaro); font-weight: 600; margin-right: 4px; }
/* chi organizza e chi partecipa (Lorenzo, 19/10/2026) */
.fbl-promotori { margin: 0; display: grid; gap: 22px; padding-top: 22px; border-top: 1px solid rgba(255, 255, 255, 0.14); max-width: 720px; }
.fbl-promotori > div { display: grid; gap: 12px; }
.fbl-promotori dt { font-size: 10.5px; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oro-chiaro); }
.fbl-promotori dd { margin: 0; color: rgba(255, 255, 255, 0.86); }
/* i loghi in fila, alla stessa altezza ottica (--alto da fbm2026.LOGHI); chi non ha il logo, il nome in maiuscolo */
.fbl-loghi { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 36px; }
.fbl-loghi img { display: block; height: var(--alto, 28px); width: auto; opacity: 0.94; }
.fbl-logo-testo { font-size: 14px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: #fff; opacity: 0.9; }

/* ── la pagina: i contenuti a sinistra, la scheda a destra che sale nella hero ── */
.fbl-pagina { max-width: 1280px; margin: 0 auto; padding: 0 40px 88px; }
.fbl-griglia { display: grid; grid-template-columns: 1.3fr 0.7fr; grid-template-areas: "contenuti colonna"; gap: 56px; align-items: start; }
.fbl-contenuti { grid-area: contenuti; padding-top: 72px; min-width: 0; }
/* la scheda sale nella hero fino all'altezza della pillola (Lorenzo, 19/10/2026: «il box iscrizioni nella hero puoi
   metterlo anche più su»): --fbl-hero è l'altezza della hero misurata in fbm2026-iscrizione.js, 56px il suo margine
   alto; senza JavaScript resta a 470px dal fondo come prima */
.fbl-colonna { grid-area: colonna; position: relative; z-index: 5; margin-top: calc(56px - var(--fbl-hero, 526px)); scroll-margin-top: calc(var(--fbl-testata) + var(--fbl-sotto) + 8px); }
/* sul computer la scheda segue sempre lo scorrimento (Lorenzo, 19/10/2026: «il modulo laterale segua lo scroll»):
   è corta per stare nello schermo; se uno schermo molto basso o un messaggio d'errore la allungano, scorre al
   suo interno e il bottone resta raggiungibile */
@media (min-width: 1001px) {
  .fbl-colonna { position: sticky; top: calc(var(--fbl-testata) + var(--fbl-sotto) + 12px); max-height: calc(100vh - var(--fbl-testata) - var(--fbl-sotto) - 16px); overflow-y: auto; overscroll-behavior: contain;
                 scrollbar-width: thin; padding: 0 12px 8px; margin-left: -12px; margin-right: -12px; } /* l'ombra della scheda non si taglia */
  .fbl-dettagli { display: none; }          /* data, orario e sede li dice già la hero accanto */
  /* la hero è alta quanto basta a contenere tutta la scheda, con 40px di respiro sotto (--fbl-scheda-alta, misurata) */
  .fbl-hero-in { min-height: max(540px, calc(var(--fbl-scheda-alta, 0px) + 96px)); }
}
.fbl-scheda { scroll-margin-top: calc(var(--fbl-testata) + var(--fbl-sotto) + 8px); background: #fff; border: 1px solid rgba(0, 61, 98, 0.14); border-radius: 18px; padding: 22px 24px 18px;
              box-shadow: 0 30px 70px -40px rgba(0, 61, 98, 0.45); }
.fbl-sotto-scheda { font-size: 12.5px; line-height: 1.55; color: var(--tenue); margin: 14px 0 0; padding-top: 12px; text-align: center;
                    border-top: 1px solid rgba(0, 61, 98, 0.08); }
.fbl-sotto-scheda a { color: var(--navy); font-weight: 600; white-space: nowrap; }

/* la scheda: «Gratuito» al posto del prezzo, i crediti nel riquadro verde, il modulo, i dati della giornata */
.fbl-prezzo { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.fbl-prezzo-cifra { font: 400 28px/1 var(--serif); color: var(--navy); }
.fbl-prezzo-nota { font-size: 13px; color: var(--tenue); }
.fbl-verde { display: flex; align-items: center; gap: 8px; margin: 12px 0 0; padding: 9px 13px; background: rgba(30, 107, 74, 0.08); border-radius: 10px;
             font-size: 13px; font-weight: 600; color: var(--verde); }
.fbl-verde svg { flex: none; }
.fbl-data-arrivo { margin: 10px 0 0; padding: 9px 13px; background: rgba(190, 154, 78, 0.12); border-left: 3px solid var(--oro); border-radius: 10px;
                   font-size: 13px; line-height: 1.45; color: var(--navy); }
.fbl-data-arrivo b { font-weight: 700; }
.fbl-modulo { display: flex; flex-direction: column; gap: 10px; margin: 16px 0 0; }
.fbl-modulo fieldset { border: 0; padding: 0; margin: 0; min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.fbl-legenda { font-size: 11px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: #92722B; padding: 0; margin: 0 0 2px; }
.fbl-campi-2 { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 10px; }
.fbl-campo { display: flex; flex-direction: column; gap: 4px; }
.fbl-campo > span { font-size: 12.5px; font-weight: 600; color: var(--navy); }
/* 16px: iOS non ingrandisce la pagina al tocco */
.fbl-fld { width: 100%; min-height: 42px; padding: 9px 13px; border: 1px solid rgba(0, 61, 98, 0.22); border-radius: 10px;
           font: 400 16px/1.35 var(--sans); color: var(--navy); background: #fff; }
.fbl-fld:focus { outline: none; border-color: var(--navy); box-shadow: 0 0 0 3px rgba(0, 61, 98, 0.14); }
.fbl-consenso { display: flex; gap: 10px; align-items: flex-start; font-size: 12.5px; line-height: 1.5; color: var(--tenue); cursor: pointer; }
.fbl-consenso input { flex: none; width: 17px; height: 17px; margin: 1px 0 0; accent-color: var(--navy); }
.fbl-consenso a, .fbl-nota a, .fbl-scheda-testo a { color: var(--navy); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.fbl-scelta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; font-size: 14px; color: var(--tenue); margin: 0; }
.fbl-scelta b { font-weight: 600; color: var(--navy); }
.fbl-scelta button { border: 0; background: none; padding: 0; font: inherit; color: #92722B; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.fbl-scelta:has(b:empty) { display: none; }
.fbl-cta { display: inline-flex; align-items: center; justify-content: center; box-sizing: border-box; text-align: center; background: var(--oro); color: var(--navy) !important;
           font: 700 15px/1.2 var(--sans); padding: 15px 28px; border-radius: 999px; border: 0; cursor: pointer; transition: transform .2s ease, box-shadow .22s ease; }
.fbl-cta:hover { transform: translateY(-2px); box-shadow: 0 14px 30px -14px rgba(0, 61, 98, 0.55); }
.fbl-cta:focus-visible { outline: 2px solid var(--navy); outline-offset: 3px; }
.fbl-cta--pieno { display: flex; width: 100%; margin-top: 2px; padding-top: 14px; padding-bottom: 14px; }
.fbl-cta[disabled] { opacity: .75; cursor: progress; transform: none; }
.fbl-nota { font-size: 11.5px; line-height: 1.45; color: var(--tenue); margin: 0; }
select.fbl-fld { padding-right: 10px; cursor: pointer; }
.fbl-nota--wa { margin: -4px 0 0 27px; font-size: 11px; }      /* sotto la riga del consenso, allineata al testo */
.fbl-hp { position: absolute; left: -10000px; width: 1px; height: 1px; opacity: 0; }
.fbl-messaggio { margin: 0; padding: 11px 14px; border-radius: 10px; font-size: 13.5px; line-height: 1.45; background: rgba(30, 107, 74, 0.08); color: var(--verde); }
.fbl-messaggio--errore { background: #FBEDEA; color: #8A2A17; }
/* con JavaScript un passo alla volta; senza, uno sotto l'altro */
.fbl-dettagli { margin: 18px 0 0; border-top: 1px solid rgba(0, 61, 98, 0.1); }
.fbl-dettagli > div { display: flex; justify-content: space-between; gap: 16px; padding: 10px 0; border-bottom: 1px solid rgba(0, 61, 98, 0.08); }
.fbl-dettagli > div:last-child { border-bottom: 0; padding-bottom: 0; }
.fbl-dettagli dt { font-size: 13px; color: var(--tenue); }
.fbl-dettagli dd { margin: 0; font-size: 13px; font-weight: 600; color: var(--navy); text-align: right; }
.fbl-grazie { display: flex; flex-direction: column; gap: 12px; }
.fbl-grazie:focus { outline: none; }
.fbl-grazie .fbl-verde { margin: 0; align-self: flex-start; }
.fbl-scheda-titolo { margin: 4px 0 0; font: 400 28px/1.12 var(--serif); color: var(--navy); }
.fbl-scheda-testo { margin: 0; font-size: 14.5px; line-height: 1.55; color: var(--testo); }

/* ── i contenuti: etichetta in corsivo, titolo serif, come le sezioni dell'Academy ── */
.fbl-sezione + .fbl-sezione { margin-top: 64px; }
.fbl-sezione { scroll-margin-top: calc(var(--fbl-testata) + var(--fbl-sotto) + 8px); }
.fbl-etichetta { font: italic 400 15px/1.3 var(--serif); color: var(--tenue); margin-bottom: 14px; }
.fbl-h2 { font: 400 clamp(26px, 2.5vw, 34px)/1.12 var(--serif); letter-spacing: -0.01em; color: var(--navy); margin: 0 0 22px; }
.fbl-h2--piccolo { font-size: clamp(22px, 2.2vw, 28px); margin-bottom: 20px; }
.fbl-prosa { max-width: 720px; }
.fbl-prosa p { font-size: 16.5px; line-height: 1.7; color: #33475A; margin: 0 0 14px; }
.fbl-prosa-breve { font-size: 16px; line-height: 1.65; color: #33475A; margin: 0 0 18px; max-width: 720px; }
.fbl-spunte { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 16px 32px; }
.fbl-spunte li { position: relative; padding-left: 36px; font-size: 15.5px; line-height: 1.5; color: var(--testo); }
.fbl-spunte li::before { content: ""; position: absolute; left: 0; top: 0; width: 22px; height: 22px; border-radius: 50%; background: var(--verde)
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / 12px no-repeat; }

/* il programma: l'apertura in riga, poi le tre sessioni numerate come i moduli di un corso */
.fbl-apertura { list-style: none; margin: 0 0 8px; padding: 0 0 18px; display: flex; flex-direction: column; gap: 6px; border-bottom: 1px solid var(--linea); }
.fbl-apertura > li { display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 12px; font-size: 14.5px; line-height: 1.5; color: var(--tenue); }
.fbl-apertura-titolo { color: var(--navy); }
/* i saluti istituzionali: i tre nomi con il ruolo, nel riquadro sabbia dell'Agenda di Bologna */
.fbl-saluti { list-style: none; margin: 10px 0 4px; padding: 14px 16px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px 18px;
              background: var(--sabbia); border: 1px solid rgba(190, 154, 78, 0.28); border-left: 3px solid var(--oro); border-radius: 12px; }
.fbl-saluti > li { display: flex; align-items: flex-start; gap: 10px; }
.fbl-saluti .fbl-volto { width: 42px; height: 42px; font-size: 14px; background: #fff; box-shadow: 0 0 0 1px rgba(190, 154, 78, 0.35); }
.fbl-saluti .fbl-volto-nome { font-size: 16.5px; }
.fbl-saluti .fbl-volto-ruolo { font-size: 12px; color: #92722B; }
.fbl-apertura time, .fbl-voci time { font-weight: 700; color: var(--navy); font-variant-numeric: tabular-nums; }
.fbl-modulo-prog { border-bottom: 1px solid var(--linea); }
.fbl-modulo-prog > summary { list-style: none; cursor: pointer; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 22px; align-items: center; padding: 24px 0; }
.fbl-modulo-prog > summary::-webkit-details-marker { display: none; }
.fbl-num { font: 400 24px/1 var(--serif); color: var(--oro); min-width: 40px; }
.fbl-prog-titolo { display: block; font: 400 21px/1.2 var(--serif); color: var(--navy); margin: 0 0 5px; }
.fbl-prog-sotto { display: block; font-size: 13.5px; line-height: 1.5; color: var(--tenue); }
.fbl-prog-ora { display: flex; align-items: center; gap: 8px; font-size: 12.5px; color: var(--tenue); white-space: nowrap; }
.fbl-chev { display: inline-block; margin-left: 6px; font-size: 16px; color: var(--oro); line-height: 1; transition: transform .2s ease; }
.fbl-modulo-prog[open] .fbl-chev { transform: rotate(90deg); }
.fbl-voci { list-style: none; margin: 0 0 18px; padding: 0 0 0 62px; }
.fbl-voci > li { display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 12px; padding: 13px 0; border-top: 1px solid rgba(0, 61, 98, 0.07); }
.fbl-voci time { font-size: 13.5px; line-height: 22px; }
.fbl-fase { display: block; font-size: 10.5px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: #92722B; margin: 3px 0 6px; }
.fbl-voce-titolo { margin: 0; font: 400 17px/1.32 var(--serif); color: var(--navy); }
.fbl-voce-chi { margin: 5px 0 0; font-size: 13.5px; line-height: 1.5; color: var(--tenue); }
.fbl-conferma { font-size: 10px; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; color: #92722B; white-space: nowrap; }
.fbl-voce-pausa .fbl-voce-titolo { font: 600 13.5px/22px var(--sans); color: var(--tenue); }
/* la voce delle 12:15: al posto del titolo, il riquadro dell'Agenda di Bologna */
.fbl-voce-agenda { padding: 16px 0 18px !important; }

/* i relatori: il volto, il nome, il ruolo, come i docenti dell'Academy */
.fbl-volti { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 22px 28px; }
.fbl-volti li { display: flex; align-items: center; gap: 16px; }
.fbl-volto { flex: 0 0 auto; width: 58px; height: 58px; border-radius: 50%; background: #EAEEF1; overflow: hidden; display: flex; align-items: center; justify-content: center;
             font: 400 19px/1 var(--serif); color: var(--navy); letter-spacing: 0.02em; }
.fbl-volto img { width: 100%; height: 100%; object-fit: cover; display: block; }
.fbl-volto-nome { display: block; font: 400 19px/1.15 var(--serif); color: var(--navy); }
.fbl-volto-ruolo { display: block; font-size: 12.5px; line-height: 1.45; color: var(--tenue); margin-top: 4px; }

/* l'Agenda di Bologna, dentro il programma alle 12:15: il riquadro sabbia dell'Academy con il filo d'oro a
   sinistra, le cinque associazioni in fila come le voci del programma, chi sale sul palco e il ruolo */
.fbl-agenda { background: var(--sabbia); border: 1px solid rgba(190, 154, 78, 0.28); border-left: 3px solid var(--oro);
              border-radius: 12px; padding: 16px 20px 14px; }
.fbl-agenda .fbl-fase { margin-top: 0; }
.fbl-agenda-lead { margin: 4px 0 0; font: italic 400 15px/1.45 var(--serif); color: var(--tenue); }
.fbl-agenda-voci { list-style: none; margin: 12px 0 0; padding: 0; }
.fbl-agenda-voci > li { display: grid; grid-template-columns: 26px minmax(0, 1fr) minmax(0, auto); align-items: center; gap: 12px;
                        padding: 9px 0; border-top: 1px solid rgba(190, 154, 78, 0.22); }
.fbl-agenda-num { font: 400 14px/1 var(--serif); color: var(--oro); }
.fbl-agenda-ass { font: 400 17px/1.25 var(--serif); color: var(--navy); text-align: right; }
.fbl-agenda-chi { display: flex; align-items: center; gap: 10px; }
.fbl-agenda-chi b { display: block; font: 400 16.5px/1.2 var(--serif); color: var(--navy); }
.fbl-agenda-chi b + span { display: block; font-size: 12px; line-height: 1.35; color: #92722B; }
.fbl-volto--piccolo { width: 38px; height: 38px; font-size: 13px; background: #fff; box-shadow: 0 0 0 1px rgba(190, 154, 78, 0.35); }
.fbl-agenda-modera { margin: 8px 0 0; padding-top: 9px; border-top: 1px solid rgba(190, 154, 78, 0.22); font-size: 12.5px; color: var(--tenue); }
.fbl-agenda-modera b { font-weight: 600; color: var(--navy); }

/* a chi è rivolto: il riquadro sabbia dell'Academy */
.fbl-a-chi { background: var(--sabbia); border: 1px solid rgba(190, 154, 78, 0.25); border-radius: 18px; padding: 40px 42px; }
.fbl-profili { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 24px; }
.fbl-profili h3 { font: 400 19px/1.2 var(--serif); color: var(--navy); margin: 0 0 6px; }
.fbl-profili p { font-size: 13.5px; line-height: 1.55; color: #4A5E70; margin: 0; }

/* la sede */
.fbl-arrivare { margin: 0; max-width: 720px; border-top: 1px solid var(--linea); }
.fbl-arrivare > div { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 4px 18px; padding: 14px 0; border-bottom: 1px solid var(--linea); }
.fbl-arrivare dt { font-size: 13.5px; font-weight: 700; color: var(--navy); }
.fbl-arrivare dd { margin: 0; font-size: 14.5px; line-height: 1.55; color: var(--testo); }

/* le domande */
.fbl-domande details { border-top: 1px solid var(--linea); padding: 18px 0; }
.fbl-domande details:last-child { border-bottom: 1px solid var(--linea); }
.fbl-domande summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 16px;
                       font: 400 19px/1.25 var(--serif); color: var(--navy); }
.fbl-domande summary::-webkit-details-marker { display: none; }
.fbl-piu { flex: 0 0 auto; width: 28px; height: 28px; border-radius: 50%; border: 1px solid rgba(0, 61, 98, 0.25); display: inline-flex; align-items: center; justify-content: center;
           font: 400 18px/1 var(--sans); color: var(--oro); transition: transform .2s ease; }
.fbl-domande details[open] .fbl-piu { transform: rotate(45deg); }
.fbl-domande p { font-size: 15px; line-height: 1.65; color: #4A5E70; margin: 12px 0 0; max-width: 680px; }
.fbl-domande a { color: var(--navy); font-weight: 600; }

/* in fondo: l'ultimo invito */
/* in chiaro, come le sezioni editoriali del sito (#FCFAF4, il filo d'oro sopra): l'invito a sinistra, Bologna a destra */
.fbl-fondo { background: #FCFAF4; border-top: 1px solid rgba(202, 175, 117, 0.45); color: var(--testo); }
.fbl-fondo-in { max-width: 1280px; margin: 0 auto; padding: 96px 40px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
                gap: 72px; align-items: center; }
.fbl-fondo-occhiello { font-size: 11px; font-weight: 700; letter-spacing: 0.22em; text-transform: uppercase; color: var(--oro); }
.fbl-fondo-titolo { font: 400 clamp(38px, 4.2vw, 58px)/1.03 var(--serif); letter-spacing: -0.02em; color: var(--navy); margin: 14px 0 14px; }
.fbl-fondo-lead { font: italic 400 21px/1.35 var(--serif); color: var(--oro); margin: 0 0 30px; max-width: 520px; }
.fbl-fondo-dati { list-style: none; margin: 0 0 34px; padding: 24px 0 0; border-top: 1px solid var(--linea);
                  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 20px 32px; }
.fbl-fondo-dati li { display: flex; gap: 12px; align-items: flex-start; font-size: 15px; line-height: 1.45; color: var(--navy); }
.fbl-fondo-dati svg { flex: 0 0 auto; color: var(--oro); margin-top: 1px; }
.fbl-fondo-dati b { display: block; margin-bottom: 3px; font-size: 10.5px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--tenue); }
.fbl-intero { white-space: nowrap; }
.fbl-fondo-azioni { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 26px; }
.fbl-fondo .fbl-cta { padding-left: 34px; padding-right: 34px; }
.fbl-edizione { font-size: 14px; font-weight: 600; color: var(--navy); text-decoration: underline; text-decoration-color: rgba(0, 61, 98, 0.3);
                text-underline-offset: 4px; }
.fbl-edizione:hover { text-decoration-color: currentColor; }
.fbl-fondo-foto { position: relative; margin: 0; border-radius: 16px; overflow: hidden; aspect-ratio: 5 / 4; background: var(--notte);
                  box-shadow: 0 50px 90px -60px rgba(0, 61, 98, 0.75); }
.fbl-fondo-foto img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 62% 40%; }
.fbl-fondo-foto::after { content: ""; position: absolute; inset: 50% 0 0 0; background: linear-gradient(0deg, rgba(2, 27, 46, 0.85), rgba(2, 27, 46, 0)); }
.fbl-fondo-foto figcaption { position: absolute; z-index: 1; left: 22px; right: 22px; bottom: 16px; display: flex; flex-direction: column; gap: 4px; }
.fbl-fondo-luogo { font-size: 11px; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; color: rgba(255, 255, 255, 0.92); }
.fbl-fondo-credito { font-size: 11px; line-height: 1.4; color: rgba(255, 255, 255, 0.62); }
.fbl-fondo-credito a { color: inherit; text-decoration: underline; text-decoration-color: rgba(255, 255, 255, 0.35); text-underline-offset: 2px; }

/* la barra in basso: solo sul telefono, quando la scheda non si vede */
.fbl-barra { display: none; }

/* ── schermi stretti ── */
/* responsive.css dà a ogni <section> 16–20px di gutter con !important: qui il gutter lo danno già i contenitori */
@media (max-width: 940px) {
  .fbl section { padding-left: 0 !important; padding-right: 0 !important; }   /* <main> tiene il suo margine */
  .fbl .fbl-a-chi { padding: 28px 20px !important; }
}
@media (max-width: 1000px) {
  .fbl-hero-in { grid-template-columns: minmax(0, 1fr); min-height: 0; padding: 40px 24px 40px; }
  /* una colonna sola: la torre sta dietro il titolo, sotto un velo che scurisce scendendo verso il testo */
  .fbl-hero-foto { left: 0; object-position: 47% 12%; }
  .fbl-hero--foto::after { background: linear-gradient(180deg, rgba(2, 27, 46, 0.45) 0%, rgba(2, 27, 46, 0.78) 42%, rgba(2, 27, 46, 0.94) 100%); }
  .fbl-pagina { padding: 0 24px 64px; }
  /* la scheda prima dei contenuti, subito dopo la hero */
  .fbl-griglia { grid-template-columns: minmax(0, 1fr); grid-template-areas: "colonna" "contenuti"; gap: 0; }
  .fbl-colonna { margin-top: -24px; position: static; }
  .fbl-contenuti { padding-top: 56px; }
  .fbl-fondo-in { grid-template-columns: minmax(0, 1fr); gap: 40px; padding: 64px 24px; }
  .fbl-fondo-foto { aspect-ratio: 16 / 10; }
  .fbl-sotto-riga { padding: 12px 24px; gap: 20px; }
}
@media (max-width: 760px) {
  /* sul telefono la barra tiene solo le voci, tutte in vista: il nome lo dice la hero, l'invito la barra in basso */
  .fbl-sotto-riga { padding: 11px 20px; gap: 14px; justify-content: space-between; }
  .fbl-sotto-nome, .fbl-sotto-sep { display: none; }
  .fbl-hero-in { padding: 28px 20px 48px; }
  .fbl-pagina { padding: 0 16px 56px; }
  .fbl-fondo-in { padding: 52px 20px; gap: 32px; }
  .fbl-fondo-dati { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .fbl-fondo-lead { font-size: 19px; }
  .fbl-h1 { font-size: 36px; margin: 16px 0 12px; }
  .fbl-h1-evento { font-size: 15px; letter-spacing: 0.14em; gap: 10px; margin-bottom: 12px; }
  .fbl-h1-evento::before { width: 22px; }
  .fbl-lead { font-size: 16px; margin-bottom: 18px; }
  /* sul telefono la scheda arriva prima: data, orario e sede li dice già lei */
  .fbl-meta, .fbl-presenta { display: none; }
  .fbl-lead { margin-bottom: 14px; }
  .fbl-promotori { gap: 18px; padding-top: 18px; }
  .fbl-loghi { gap: 12px 22px; }
  .fbl-loghi img { height: calc(var(--alto, 28px) * 0.72); }
  .fbl-logo-testo { font-size: 12px; }
  .fbl-agenda-voci > li { grid-template-columns: 22px minmax(0, 1fr); gap: 6px 10px; }
  .fbl-agenda-chi, .fbl-agenda-ass { grid-column: 2; }      /* sul telefono la persona, sotto l'associazione */
  .fbl-agenda-ass { font-size: 15px; text-align: left; color: var(--tenue); }
  .fbl-saluti { grid-template-columns: minmax(0, 1fr); padding: 12px 14px; }
  .fbl-agenda { padding: 14px 14px 12px; }
    .fbl-scheda { padding: 22px 18px 18px; border-radius: 16px; }
  .fbl-spunte, .fbl-volti { grid-template-columns: minmax(0, 1fr); }
  .fbl-voci { padding-left: 0; }
  .fbl-modulo-prog > summary { grid-template-columns: auto minmax(0, 1fr); gap: 14px; }
  .fbl-prog-ora { grid-column: 2; }
  .fbl-arrivare > div { grid-template-columns: minmax(0, 1fr); }
  .fbl > footer { padding-bottom: 72px; }      /* la barra in basso non copre il piè */
  .fbl-barra { position: fixed; left: 0; right: 0; bottom: 0; z-index: 50; display: flex; align-items: center; gap: 10px;
               padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); background: rgba(255, 255, 255, 0.97);
               border-top: 1px solid #E5E5E5; box-shadow: 0 -10px 30px -18px rgba(0, 61, 98, 0.45);
               transform: translateY(110%); transition: transform .3s ease; }
  .fbl-barra.on { transform: none; }
  .fbl-barra .fbl-cta { flex: 1; min-height: 48px; padding: 12px 18px; font-size: 16px; }
  .fbl-barra-tel { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 50%; border: 1px solid #E5E5E5; color: var(--navy); }
}
@media (max-width: 340px) {
  .fbl-campi-2 { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
  .fbl-barra, }

/* Sul telefono, come nel resto del sito (Veronika, 20/10/2026): il testo a 16px dal bordo dello schermo, la
   misura di .fbl-pagina, senza altri rientri; le righe e i fondi dei riquadri (la scheda dell'iscrizione,
   «A chi è rivolto») da un bordo all'altro. Il riquadro dell'Agenda di Bologna resta nella colonna del
   programma, accanto all'orario. */
@media (max-width: 760px) {
  .fbl { --fbl-bordo: 16px; }
  .fbl-hero-in { padding-left: var(--fbl-bordo); padding-right: var(--fbl-bordo); }
  .fbl-fondo-in { padding-left: var(--fbl-bordo); padding-right: var(--fbl-bordo); }
  .fbl-sotto-riga { padding-left: var(--fbl-bordo); padding-right: var(--fbl-bordo); }
  .fbl-scheda, .fbl .fbl-a-chi, .fbl-promotori, .fbl-fondo-dati, .fbl-apertura, .fbl-voci > li, .fbl-modulo-prog,
  .fbl-domande details, .fbl-arrivare, .fbl-dettagli, .fbl-sotto-scheda {
    margin-left: calc(-1 * var(--fbl-bordo)); margin-right: calc(-1 * var(--fbl-bordo)); }
  .fbl-scheda, .fbl .fbl-a-chi, .fbl-promotori, .fbl-fondo-dati, .fbl-apertura, .fbl-voci > li, .fbl-modulo-prog > summary,
  .fbl-modulo-prog > :not(summary), .fbl-domande details, .fbl-arrivare > div, .fbl-dettagli > div, .fbl-sotto-scheda {
    padding-left: var(--fbl-bordo) !important; padding-right: var(--fbl-bordo) !important; }
  .fbl-scheda, .fbl .fbl-a-chi { border-left: 0; border-right: 0; border-radius: 0; }
}
