/* ============================================================
   16° CONVEGNO ASSOTTICA — Stili
   ============================================================ */
:root{
  --navy-900:#03244a;
  --navy-800:#073a6e;
  --navy-700:#0a4f93;
  --navy-600:#0e63b3;
  --blue-500:#1782d6;
  --blue-400:#37a0e8;
  --teal:#34cbb9;
  --teal-bright:#46e0cd;
  --orange:#f4a23b;
  --orange-soft:#f7b85f;
  --ink:#eaf4ff;
  --ink-dim:#a9c8e6;
  --ink-faint:#7ba0c6;
  --card:rgba(7,42,84,.55);
  --card-line:rgba(120,180,235,.22);
  --radius:18px;
  --shadow:0 24px 60px -24px rgba(0,8,24,.7);
  --maxw:1080px;
  --font-head:"Titillium Web",system-ui,sans-serif;
  --font-body:"Source Sans 3",system-ui,sans-serif;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--ink);
  background:#062a52;
  background-image:linear-gradient(180deg,rgba(3,24,52,.30),rgba(3,24,52,.62)),url("assets/sfondo.jpg");
  background-size:cover;
  background-attachment:fixed;
  background-position:center top;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
a{color:inherit;text-decoration:none;}
img{display:block;max-width:100%;}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;}

.wrap{max-width:var(--maxw);margin:0 auto;padding:0 18px;}

/* ===================== HEADER / BANNER ===================== */
.topbar{
  display:flex;align-items:center;justify-content:space-between;
  gap:16px;padding:14px 22px;
  background:linear-gradient(90deg,var(--navy-800),var(--navy-700));
  border-bottom:1px solid rgba(120,180,235,.25);
  position:sticky;top:0;z-index:40;
  backdrop-filter:blur(6px);
}
.topbar .brand{font-family:var(--font-head);font-weight:700;letter-spacing:.16em;font-size:13px;color:var(--ink-dim);}
.topbar .brand b{color:#fff;}
.topnav{display:flex;gap:6px;flex-wrap:wrap;}
.topnav a{
  font-family:var(--font-head);font-weight:600;font-size:13px;letter-spacing:.04em;
  padding:8px 10px;border-radius:999px;color:var(--ink-dim);transition:.18s;
  white-space:nowrap;
}
.topnav a:hover{color:#fff;background:rgba(120,180,235,.16);}
.topnav a.cta{background:var(--teal);color:#04253f;white-space:nowrap;}
.topnav a.cta:hover{background:var(--teal-bright);color:#04253f;}
.nav-toggle{
  display:none;flex-direction:column;gap:5px;
  width:44px;height:44px;align-items:center;justify-content:center;
  border-radius:11px;border:1px solid var(--card-line);background:rgba(120,180,235,.08);
}
.nav-toggle span{width:22px;height:2px;background:var(--ink);border-radius:2px;transition:.22s;}
.nav-toggle.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav-toggle.open span:nth-child(2){opacity:0;}
.nav-toggle.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

.banner{position:relative;}
.banner img{width:100%;height:auto;display:block;}

/* ===================== COUNTDOWN ===================== */
.countdown-sec{padding:46px 0 30px;text-align:center;}
.countdown-title{
  font-family:var(--font-head);font-weight:300;
  letter-spacing:.62em;font-size:clamp(22px,4vw,40px);
  color:var(--ink-dim);margin:0 0 26px;padding-left:.62em;
  text-transform:uppercase;
}
.flip-row{display:flex;gap:clamp(10px,2.4vw,26px);justify-content:center;flex-wrap:wrap;}
.flip{width:clamp(96px,20vw,150px);}
.flip-card{
  position:relative;border-radius:14px;overflow:hidden;
  background:linear-gradient(180deg,#1c7fd0,#0a4f93);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 18px 34px -18px rgba(0,10,30,.8);
  border:1px solid rgba(150,200,240,.3);
}
.flip-card::after{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:rgba(0,20,45,.45);}
.flip-card span{
  display:block;font-family:var(--font-head);font-weight:700;
  font-size:clamp(46px,10vw,84px);line-height:1.32;color:#fff;
  text-shadow:0 2px 6px rgba(0,10,30,.4);
  font-variant-numeric:tabular-nums;
}
.flip-label{
  margin-top:12px;font-family:var(--font-head);font-weight:600;
  letter-spacing:.22em;font-size:clamp(11px,1.6vw,14px);color:var(--ink-dim);
  text-transform:uppercase;
}

/* ===================== SECTION SHELL ===================== */
.panel{
  background:var(--card);
  border:1px solid var(--card-line);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  backdrop-filter:blur(10px);
  margin:0 0 30px;
  overflow:hidden;
}
.panel-head{
  display:flex;align-items:center;gap:14px;
  padding:20px 26px;
  background:linear-gradient(90deg,rgba(12,74,140,.85),rgba(8,50,98,.6));
  border-bottom:1px solid var(--card-line);
}
.panel-head .ph-ico{
  width:40px;height:40px;flex:none;display:grid;place-items:center;
  color:var(--teal-bright);
}
.panel-head .ph-ico svg{width:30px;height:30px;}
.panel-head h2{
  margin:0;font-family:var(--font-head);font-weight:700;
  font-size:clamp(19px,2.6vw,26px);letter-spacing:.03em;color:#fff;
  text-transform:uppercase;flex:1;
}
.moderates{display:flex;align-items:center;gap:18px;flex-wrap:wrap;justify-content:flex-end;}
.mod-person{display:flex;align-items:center;gap:10px;cursor:pointer;border-radius:10px;padding:4px 4px 4px 8px;transition:.16s;}
.mod-person:hover{background:rgba(120,180,235,.1);}
.moderates .mtxt{text-align:right;line-height:1.1;}
.moderates .mtxt small{display:block;font-family:var(--font-head);font-weight:600;letter-spacing:.16em;font-size:9.5px;color:var(--ink-faint);}
.moderates .mtxt b{font-weight:600;font-size:14px;color:var(--ink);}

/* ===================== TIMELINE ===================== */
.timeline{position:relative;padding:8px 0;}
.row{
  display:grid;
  grid-template-columns:118px 26px 48px minmax(0,1fr) auto 44px 34px;
  align-items:center;gap:6px 14px;
  padding:15px 26px;
  position:relative;
  transition:background .16s;
}
.row + .row{border-top:1px solid rgba(120,180,235,.10);}
.row:hover{background:rgba(120,180,235,.07);}
.row .time{
  font-family:var(--font-head);font-weight:700;font-size:14.5px;
  font-variant-numeric:tabular-nums;letter-spacing:.01em;color:#fff;white-space:nowrap;
}
/* spina timeline verticale */
.row .node{position:relative;align-self:stretch;}
.row .node::before{
  content:"";position:absolute;left:50%;top:-15px;bottom:-15px;width:2px;
  transform:translateX(-50%);
  background:linear-gradient(180deg,rgba(52,203,185,.85),rgba(52,203,185,.4));
}
.row .node::after{
  content:"";position:absolute;left:50%;top:50%;width:13px;height:13px;border-radius:50%;
  transform:translate(-50%,-50%);background:var(--teal-bright);z-index:1;
  box-shadow:0 0 0 4px rgba(52,203,185,.18),0 0 0 1px rgba(8,40,80,.7),0 0 10px rgba(70,224,205,.5);
}
.timeline .row:first-child .node::before{top:50%;}
.timeline .row:last-child .node::before{bottom:50%;}
.row.is-soft .node::after{background:var(--orange);box-shadow:0 0 0 4px rgba(244,162,59,.16),0 0 0 1px rgba(8,40,80,.7);}
.row.is-soft .node::before{background:linear-gradient(180deg,rgba(244,162,59,.7),rgba(52,203,185,.4));}
.row .ico{
  width:42px;height:42px;border-radius:11px;display:grid;place-items:center;
  background:rgba(120,180,235,.12);color:var(--teal-bright);
  border:1px solid rgba(120,180,235,.18);
}
.row .ico svg{width:24px;height:24px;}
.row .body{min-width:0;}
.row .title{
  font-family:var(--font-head);font-weight:600;font-size:15.5px;line-height:1.28;
  color:var(--ink);text-wrap:pretty;
}
.row .speakers-mini{display:flex;align-items:center;gap:5px;justify-self:end;}
.row .spk-names{font-size:13.5px;line-height:1.2;color:var(--ink-dim);white-space:nowrap;}
.avatar-stack{display:flex;}
.avatar-stack .av{margin-left:-12px;border:2px solid rgba(8,40,80,.9);}
.avatar-stack .av:first-child{margin-left:0;}
.row .go{
  width:34px;height:34px;border-radius:50%;flex:none;
  display:grid;place-items:center;
  background:linear-gradient(180deg,var(--blue-400),var(--navy-600));
  border:1px solid rgba(150,200,240,.4);
  box-shadow:0 4px 10px -4px rgba(0,10,30,.7);
  transition:.16s;
}
.row .go:hover{background:linear-gradient(180deg,var(--teal-bright),var(--teal));transform:translateY(-1px);}
.row .go svg{width:18px;height:18px;color:#fff;}

.row-logo-wrap{display:flex;align-items:center;justify-content:center;}
.row-logo-badge{
  height:36px;width:auto;
  background:#fff;border-radius:8px;padding:5px 8px;
  box-shadow:0 4px 12px -6px rgba(0,8,24,.5);
  display:block;
}
/* mobile: riadatta grid a 5+logo+go */
@media(max-width:640px){
  .row{
    grid-template-columns:22px 42px minmax(0,1fr) auto 34px;
    grid-template-areas:
      "node ico time logo go"
      "node ico title title go"
      "node ico spk spk go";
  }
  .row > :nth-child(6){grid-area:logo;}
  .row > :nth-child(5){grid-area:spk;}
  .row-logo-badge{height:28px;}
}
.row.is-soft .title{font-style:italic;font-weight:600;color:var(--orange-soft);}
.row.is-soft .ico{color:var(--orange-soft);background:rgba(244,162,59,.12);border-color:rgba(244,162,59,.22);}
.row .tbd{
  font-family:var(--font-head);font-weight:600;letter-spacing:.12em;font-size:12px;
  color:var(--ink-faint);justify-self:end;padding-right:6px;
}

/* box corsi */
.courses-box{
  margin:14px 26px 20px;padding:18px 22px;
  border-radius:14px;background:rgba(120,180,235,.08);
  border:1px solid rgba(120,180,235,.18);
  display:flex;gap:18px;align-items:flex-start;
}
.courses-box .cb-ico{color:var(--teal-bright);flex:none;}
.courses-box .cb-ico svg{width:30px;height:30px;}
.courses-box .cb-body{flex:1;min-width:0;}
.courses-box h4{margin:0 0 12px;font-family:var(--font-head);letter-spacing:.14em;font-size:13px;color:#fff;}
.course-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px;}
.course-li{
  display:flex;align-items:center;gap:14px;cursor:pointer;
  padding:11px 14px;border-radius:11px;background:rgba(8,40,80,.5);
  border:1px solid var(--card-line);transition:.16s;
}
.course-li:hover{background:rgba(120,180,235,.12);transform:translateX(2px);}
.course-li .cl-num{
  font-family:var(--font-head);font-weight:700;font-size:12px;letter-spacing:.08em;
  color:var(--teal-bright);background:rgba(52,203,185,.14);border:1px solid rgba(52,203,185,.28);
  padding:5px 10px;border-radius:999px;white-space:nowrap;flex:none;
}
.course-li .cl-main{flex:1;min-width:0;}
.course-li .cl-main b{display:block;font-family:var(--font-head);font-weight:600;font-size:15px;color:var(--ink);line-height:1.3;}
.course-li .cl-main small{font-size:12px;color:var(--ink-faint);}
.course-li .cl-logo{
  height:36px;width:auto;flex:none;
  background:#fff;border-radius:8px;padding:5px 8px;
  box-shadow:0 4px 12px -6px rgba(0,8,24,.5);
}
.course-li .go{width:30px;height:30px;flex:none;}
.course-li .go svg{width:16px;height:16px;}
@media(max-width:640px){
  .courses-box{margin:12px 16px 16px;padding:14px 14px;gap:12px;}
  .course-li{flex-wrap:wrap;gap:8px 12px;}
  .course-li .cl-main{flex-basis:calc(100% - 90px);}
}

/* ===================== ABSTRACT ===================== */
.abstract{position:relative;}
.abstract-inner{
  padding:42px 48px 46px;
  border-left:4px solid var(--teal);
  background:linear-gradient(110deg,rgba(12,74,140,.42),rgba(7,42,84,.25));
  text-align:justify;
}
.abstract-inner p{
  margin:0 0 14px;font-size:18px;line-height:1.65;color:var(--ink-dim);
  max-width:74ch;text-wrap:pretty;
}
.abstract-inner p b{color:var(--ink);font-weight:600;}
.abstract-inner .ab-lead{
  font-family:var(--font-head);font-weight:700;
  font-size:clamp(22px,3.2vw,30px);line-height:1.25;color:#fff;
  margin-bottom:18px;letter-spacing:.01em;
}
.abstract-inner .ab-close{
  font-family:var(--font-head);font-weight:600;font-size:clamp(18px,2.4vw,22px);
  color:var(--teal-bright);margin-top:20px;margin-bottom:0;
}
.ab-cta-wrap{margin-top:30px;}
.ab-cta{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--font-head);font-weight:700;font-size:18px;letter-spacing:.02em;
  color:#04253f;background:var(--teal);
  padding:16px 38px;border-radius:999px;
  box-shadow:0 14px 30px -12px rgba(52,203,185,.7),inset 0 1px 0 rgba(255,255,255,.35);
  transition:.18s;
}
.ab-cta:hover{background:var(--teal-bright);transform:translateY(-2px);box-shadow:0 18px 38px -12px rgba(52,203,185,.85),inset 0 1px 0 rgba(255,255,255,.35);}
.ab-cta::after{content:"→";font-size:20px;line-height:1;}
@media(max-width:640px){.ab-cta{width:100%;justify-content:center;font-size:17px;padding:16px 24px;}}
@media(max-width:640px){
  .abstract-inner{padding:28px 20px 30px;border-left-width:3px;}
  .abstract-inner p{font-size:16px;}
}

/* ===================== AVATAR ===================== */
.av{
  border-radius:50%;display:grid;place-items:center;flex:none;
  font-family:var(--font-head);font-weight:700;color:#fff;
  background-size:cover;background-position:center;overflow:hidden;
}
.av span{line-height:1;}

/* ===================== RELATORI GRID ===================== */
.speakers-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:6px 26px;
  padding:18px 26px 26px;
}
.spk-card{
  display:flex;align-items:center;gap:14px;
  padding:11px 12px;border-radius:12px;transition:.16s;cursor:pointer;
  border:1px solid transparent;
}
.spk-card:hover{background:rgba(120,180,235,.09);border-color:var(--card-line);}
.spk-card .av{width:48px;height:48px;font-size:17px;}
.spk-card .sc-name{flex:1;min-width:0;}
.spk-card .sc-name b{display:block;font-family:var(--font-head);font-weight:600;font-size:15.5px;color:var(--ink);}
.spk-card .sc-name small{display:block;font-size:12.5px;color:var(--ink-faint);line-height:1.2;}
.spk-card .go{width:30px;height:30px;}
.spk-card .go svg{width:16px;height:16px;}
@media(max-width:720px){.speakers-grid{grid-template-columns:1fr;}}

/* ===================== FOOTER ===================== */
.footer{
  background:linear-gradient(180deg,rgba(6,32,64,.4),rgba(3,20,42,.85));
  border-top:1px solid var(--card-line);
  margin-top:10px;
}
.info-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:24px;
  padding:40px 0 30px;
}
.info-item{display:flex;gap:14px;align-items:flex-start;}
.info-item .ii-ico{color:var(--teal-bright);flex:none;}
.info-item .ii-ico svg{width:30px;height:30px;}
.info-item h5{margin:0 0 6px;font-family:var(--font-head);font-weight:700;letter-spacing:.04em;font-size:16px;color:#fff;}
.info-item p{margin:0;font-size:14px;line-height:1.5;color:var(--ink-dim);}
@media(max-width:760px){.info-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:440px){.info-grid{grid-template-columns:1fr;}}

.sponsors{padding:26px 0 14px;border-top:1px solid rgba(120,180,235,.12);}
.sponsors p{text-align:center;font-family:var(--font-head);letter-spacing:.2em;font-size:11px;color:var(--ink-faint);margin:0 0 20px;}
.sponsor-row{display:flex;flex-wrap:wrap;gap:16px;justify-content:center;align-items:stretch;}
.sponsor-card{
  background:#fff;border-radius:12px;
  width:170px;height:78px;padding:14px 18px;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 8px 20px -10px rgba(0,8,24,.6);
}
.sponsor-card img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;}
@media(max-width:640px){
  .sponsor-row{gap:12px;}
  .sponsor-card{width:calc(50% - 6px);height:70px;padding:12px;}
}
.foot-legal{text-align:center;font-size:12px;color:var(--ink-faint);padding:20px 0 30px;line-height:1.6;}

/* ===================== SUBPAGE / DETAIL VIEW ===================== */
.view{display:none;}
.view.active{display:block;}
#view-detail{padding:30px 0 60px;}
.back-link{
  display:inline-flex;align-items:center;gap:8px;
  font-family:var(--font-head);font-weight:600;font-size:14px;color:var(--ink-dim);
  padding:9px 16px;border-radius:999px;border:1px solid var(--card-line);
  background:rgba(7,42,84,.5);margin-bottom:24px;transition:.16s;white-space:nowrap;
}
.back-link:hover{color:#fff;background:rgba(120,180,235,.14);}
.back-link svg{width:16px;height:16px;}

.detail-hero{
  display:flex;gap:20px;align-items:flex-start;
  padding:30px 32px;border-radius:var(--radius);
  background:linear-gradient(120deg,rgba(12,74,140,.8),rgba(7,42,84,.55));
  border:1px solid var(--card-line);box-shadow:var(--shadow);
}
.detail-hero .dh-ico{
  width:66px;height:66px;border-radius:16px;flex:none;display:grid;place-items:center;
  background:rgba(120,180,235,.14);border:1px solid rgba(120,180,235,.25);color:var(--teal-bright);
}
.detail-hero .dh-ico svg{width:38px;height:38px;}
.detail-hero .dh-meta{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:10px;}
.chip{
  font-family:var(--font-head);font-weight:600;font-size:12.5px;letter-spacing:.06em;
  padding:5px 12px;border-radius:999px;background:rgba(52,203,185,.16);
  color:var(--teal-bright);border:1px solid rgba(52,203,185,.3);white-space:nowrap;
}
.chip.day{background:rgba(120,180,235,.14);color:var(--ink-dim);border-color:var(--card-line);}
.detail-hero h1{
  margin:0;font-family:var(--font-head);font-weight:700;
  font-size:clamp(24px,4vw,36px);line-height:1.15;color:#fff;text-wrap:pretty;
}
.detail-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:24px;margin-top:24px;}
@media(max-width:780px){.detail-grid{grid-template-columns:1fr;}}
.detail-body{
  padding:28px 30px;border-radius:var(--radius);
  background:var(--card);border:1px solid var(--card-line);box-shadow:var(--shadow);
}
.detail-body h3{font-family:var(--font-head);font-weight:700;font-size:17px;letter-spacing:.04em;color:var(--teal-bright);margin:0 0 10px;text-transform:uppercase;}
.detail-body h3.obj-title{margin-top:26px;padding-top:22px;border-top:1px solid var(--card-line);}
.detail-body p{font-size:16px;line-height:1.7;color:var(--ink-dim);margin:0 0 18px;text-align:justify;}
.detail-body .placeholder{
  font-style:italic;color:var(--ink-faint);border-left:3px solid var(--teal);
  padding-left:14px;text-align:left;
}
.detail-body ul.objectives{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:12px;}
.detail-body ul.objectives li{
  position:relative;padding-left:30px;font-size:15.5px;line-height:1.6;color:var(--ink-dim);text-align:left;
}
.detail-body ul.objectives li::before{
  content:"";position:absolute;left:6px;top:9px;width:8px;height:8px;border-radius:50%;
  background:var(--teal-bright);box-shadow:0 0 0 4px rgba(52,203,185,.16);
}
.detail-body .course-cards{display:flex;flex-direction:column;gap:10px;margin-top:6px;}
.detail-body .course-card{
  display:flex;align-items:center;gap:14px;cursor:pointer;
  padding:14px 16px;border-radius:12px;background:rgba(120,180,235,.08);
  border:1px solid var(--card-line);transition:.16s;
}
.detail-body .course-card:hover{background:rgba(120,180,235,.14);transform:translateX(2px);}
.course-card .cc-num{
  font-family:var(--font-head);font-weight:700;font-size:12px;letter-spacing:.08em;
  color:var(--teal-bright);background:rgba(52,203,185,.14);border:1px solid rgba(52,203,185,.28);
  padding:5px 10px;border-radius:999px;white-space:nowrap;flex:none;
}
.course-card .cc-main{flex:1;min-width:0;}
.course-card .cc-main b{display:block;font-family:var(--font-head);font-weight:600;font-size:15.5px;color:var(--ink);line-height:1.3;}
.course-card .cc-tag{font-size:12px;color:var(--ink-faint);}
.course-card .cc-logo{
  height:40px;width:auto;flex:none;
  background:#fff;border-radius:9px;padding:6px 9px;
  box-shadow:0 4px 12px -6px rgba(0,8,24,.5);
}
.course-card .go{width:32px;height:32px;flex:none;}
.course-card .go svg{width:16px;height:16px;}
.detail-hero .dh-logo{
  flex:none;margin-left:auto;align-self:center;background:#fff;border-radius:12px;padding:12px 16px;
  display:flex;align-items:center;box-shadow:0 8px 22px -10px rgba(0,8,24,.55);
}
.detail-hero .dh-logo img{height:54px;width:auto;display:block;}
@media(max-width:640px){.detail-hero .dh-logo{padding:10px 12px;}.detail-hero .dh-logo img{height:42px;}}
.detail-hero .dh-sub{margin:8px 0 0;font-size:16px;line-height:1.5;color:var(--ink-dim);text-wrap:pretty;}

.detail-side{
  padding:24px 24px;border-radius:var(--radius);height:fit-content;
  background:var(--card);border:1px solid var(--card-line);box-shadow:var(--shadow);
}
.detail-side h3{font-family:var(--font-head);font-weight:700;font-size:14px;letter-spacing:.1em;color:var(--ink-faint);margin:0 0 16px;text-transform:uppercase;}
.side-spk{display:flex;align-items:center;gap:13px;padding:9px 6px;border-radius:11px;cursor:pointer;transition:.16s;}
.side-spk:hover{background:rgba(120,180,235,.1);}
.side-spk .av{width:46px;height:46px;font-size:16px;}
.side-spk b{display:block;font-family:var(--font-head);font-weight:600;font-size:15px;color:var(--ink);}
.side-spk small{display:block;font-size:12.5px;color:var(--ink-faint);line-height:1.2;}
.side-spk b{line-height:1.25;}

/* relatore singolo */
.speaker-detail{display:flex;gap:26px;align-items:flex-start;flex-wrap:wrap;
  padding:34px;border-radius:var(--radius);
  background:linear-gradient(120deg,rgba(12,74,140,.8),rgba(7,42,84,.55));
  border:1px solid var(--card-line);box-shadow:var(--shadow);}
.speaker-detail .av{width:130px;height:130px;font-size:42px;flex:none;}
.speaker-detail .sd-info{flex:1;min-width:240px;}
.speaker-detail h1{margin:0 0 4px;font-family:var(--font-head);font-weight:700;font-size:clamp(26px,4vw,38px);color:#fff;}
.speaker-detail .role{font-family:var(--font-head);font-weight:600;color:var(--teal-bright);font-size:16px;letter-spacing:.04em;margin-bottom:16px;}
.speaker-detail p{font-size:16px;line-height:1.7;color:var(--ink-dim);margin:0 0 8px;max-width:60ch;}
.speaker-sessions{margin-top:24px;}
.speaker-sessions h3{font-family:var(--font-head);font-weight:700;font-size:14px;letter-spacing:.1em;color:var(--ink-faint);text-transform:uppercase;margin:0 0 12px;}
.ss-item{display:flex;align-items:center;gap:14px;padding:12px 16px;border-radius:12px;background:var(--card);border:1px solid var(--card-line);cursor:pointer;transition:.16s;margin-bottom:8px;}
.ss-item:hover{background:rgba(120,180,235,.1);}
.ss-item .ss-time{font-family:var(--font-head);font-weight:700;color:#fff;font-variant-numeric:tabular-nums;white-space:nowrap;}
.ss-item .ss-t{flex:1;font-family:var(--font-head);font-weight:600;color:var(--ink);}
.ss-item .ss-day{font-size:12px;color:var(--ink-faint);}

/* ===================== RESPONSIVE (mobile) ===================== */
@media(max-width:960px){
  /* --- menu hamburger --- */
  .topbar{padding:12px 16px;flex-wrap:nowrap;}
  .topbar .brand{font-size:11px;letter-spacing:.1em;}
  .nav-toggle{display:flex;}
  .topnav{
    display:none;
    position:absolute;top:100%;right:12px;left:12px;
    flex-direction:column;gap:4px;flex-wrap:nowrap;
    background:var(--navy-800);border:1px solid var(--card-line);
    border-radius:14px;padding:10px;margin-top:8px;
    box-shadow:var(--shadow);
  }
  .topnav.open{display:flex;}
  .topnav a{padding:13px 16px;font-size:15px;border-radius:10px;}
  .topnav a.cta{text-align:center;}

  /* --- countdown su una sola riga --- */
  .countdown-sec{padding:34px 0 22px;}
  .countdown-title{letter-spacing:.3em;padding-left:.3em;margin-bottom:20px;}
  .flip-row{flex-wrap:nowrap;gap:7px;padding:0 4px;}
  .flip{width:auto;flex:1 1 0;min-width:0;}
  .flip-card span{font-size:clamp(28px,12vw,46px);line-height:1.3;}
  .flip-label{font-size:9.5px;letter-spacing:.1em;margin-top:8px;}

  /* --- timeline: descrizione sopra, relatori sotto --- */
  .panel-head{padding:16px 16px;flex-wrap:wrap;}
  .panel-head h2{flex:1 1 100%;}
  .moderates{justify-content:flex-start;gap:8px 16px;width:100%;}
  .mod-person{padding:4px;}
  .moderates .mtxt{text-align:left;}
  .row{
    grid-template-columns:22px 42px minmax(0,1fr) 34px;
    grid-template-areas:
      "node ico time go"
      "node ico title go"
      "node ico spk go";
    column-gap:12px;row-gap:8px;padding:15px 16px;
  }
  .row > :nth-child(1){grid-area:time;}
  .row > :nth-child(2){grid-area:node;}
  .row > :nth-child(3){grid-area:ico;align-self:start;}
  .row > :nth-child(4){grid-area:title;}
  .row > :nth-child(5){grid-area:spk;}
  .row > :nth-child(6){grid-area:go;}
  .row .ico{width:38px;height:38px;}
  .row .ico svg{width:21px;height:21px;}
  .row .speakers-mini{justify-self:start;flex-wrap:wrap;gap:8px;}
  .row .spk-names{text-align:left;max-width:none;}
  .row .tbd{justify-self:start;padding-right:0;}
  .courses-box{margin:12px 16px 16px;}

  /* --- dettaglio sessione --- */
  .detail-hero{padding:22px 18px;gap:14px;}
  .detail-hero .dh-ico{width:52px;height:52px;}
  .detail-hero .dh-ico svg{width:30px;height:30px;}
  .detail-body{padding:22px 18px;}
  .detail-side{padding:20px 16px;}

  /* --- dettaglio relatore: niente overflow --- */
  .speaker-detail{padding:22px 18px;gap:18px;}
  .speaker-detail .av{width:96px;height:96px;font-size:32px;}
  .speaker-detail .sd-info{min-width:0;}
  .speaker-detail p{font-size:15px;}
  .ss-item{flex-wrap:wrap;column-gap:12px;row-gap:4px;padding:12px 14px;}
  .ss-item .ss-time{order:1;}
  .ss-item .ss-day{order:2;margin-left:auto;}
  .ss-item .ss-t{order:3;flex-basis:100%;min-width:0;overflow-wrap:anywhere;}
}

/* ===================== HIGHLIGHT / NEWGEN PAGES ===================== */
.hl-intro{
  margin:22px 0 28px;padding:22px 28px;
  border-radius:var(--radius);
  background:linear-gradient(110deg,rgba(12,74,140,.42),rgba(7,42,84,.25));
  border:1px solid var(--card-line);
}
.hl-intro p{font-size:17px;line-height:1.7;color:var(--ink-dim);margin:0 0 12px;text-wrap:pretty;}
.hl-intro p:last-child{margin:0;}
.hl-intro b{color:var(--ink);}
.hl-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin-bottom:40px;}
.hl-card{
  display:flex;gap:18px;align-items:flex-start;
  padding:22px 22px;border-radius:var(--radius);
  background:var(--card);border:1px solid var(--card-line);
  box-shadow:var(--shadow);
}
.hl-card--wide{grid-column:1/-1;}
.hl-emoji{font-size:32px;line-height:1;flex:none;margin-top:2px;}
.hl-body{flex:1;min-width:0;}
.hl-body b{display:block;font-family:var(--font-head);font-weight:700;font-size:16px;color:#fff;line-height:1.3;margin-bottom:8px;}
.hl-body p{font-size:15px;line-height:1.65;color:var(--ink-dim);margin:0 0 10px;text-align:justify;}
.hl-body p:last-child{margin:0;}
.hl-when{display:block;font-family:var(--font-head);font-weight:600;font-size:12.5px;color:var(--teal-bright);letter-spacing:.04em;margin-bottom:8px;}
.hl-note{font-style:italic;color:var(--ink-faint);font-size:14px !important;}
.hl-note a{color:var(--teal-bright);text-decoration:underline;}
@media(max-width:720px){
  .hl-grid{grid-template-columns:1fr;}
  .hl-card--wide{grid-column:1;}
  .hl-intro{padding:18px 18px;}
}

/* ===================== COSTI E SERVIZI ===================== */
.price-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.price-card{
  position:relative;padding:28px 26px;border-radius:var(--radius);
  background:var(--card);border:1px solid var(--card-line);box-shadow:var(--shadow);
  display:flex;flex-direction:column;
}
.price-card--full{
  border-color:rgba(52,203,185,.45);
  background:linear-gradient(160deg,rgba(12,74,140,.55),rgba(7,42,84,.5));
}
.pc-badge{
  position:absolute;top:-12px;right:22px;
  font-family:var(--font-head);font-weight:700;font-size:11px;letter-spacing:.12em;text-transform:uppercase;
  color:#04253f;background:var(--teal);padding:6px 14px;border-radius:999px;
  box-shadow:0 8px 18px -8px rgba(52,203,185,.8);
}
.pc-name{font-family:var(--font-head);font-weight:700;font-size:20px;color:#fff;letter-spacing:.02em;}
.pc-price{
  font-family:var(--font-head);font-weight:700;font-size:38px;color:var(--teal-bright);
  margin:6px 0 18px;display:flex;align-items:baseline;gap:8px;
}
.pc-price small{font-size:14px;font-weight:600;color:var(--ink-faint);letter-spacing:.04em;}
.pc-list{list-style:none;margin:0;padding:18px 0 0;border-top:1px solid var(--card-line);display:flex;flex-direction:column;gap:11px;}
.pc-list li{display:flex;align-items:flex-start;gap:11px;font-size:15px;line-height:1.4;color:var(--ink-dim);}
.pc-list li svg{width:20px;height:20px;flex:none;margin-top:1px;}
.pc-list li.on svg{color:var(--teal-bright);}
.pc-list li.off{color:var(--ink-faint);opacity:.6;}
.pc-list li.off svg{color:var(--ink-faint);}
.pc-list li.off span{text-decoration:line-through;}

.svc-card{
  padding:24px 26px;border-radius:var(--radius);margin-bottom:18px;
  background:var(--card);border:1px solid var(--card-line);box-shadow:var(--shadow);
}
.svc-head{display:flex;align-items:center;gap:13px;margin-bottom:16px;}
.svc-ico{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;flex:none;
  background:rgba(120,180,235,.12);color:var(--teal-bright);border:1px solid rgba(120,180,235,.18);}
.svc-ico svg{width:24px;height:24px;}
.svc-head h4{margin:0;font-family:var(--font-head);font-weight:700;font-size:17px;color:#fff;}
.svc-rows{display:flex;flex-direction:column;}
.svc-row{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:12px 0;border-top:1px solid rgba(120,180,235,.1);
}
.svc-rows .svc-row:first-child{border-top:none;}
.svc-row span{font-size:15px;color:var(--ink-dim);}
.svc-row b{font-family:var(--font-head);font-weight:700;font-size:16px;color:#fff;white-space:nowrap;font-variant-numeric:tabular-nums;}
.svc-note{margin:14px 0 0;font-size:13.5px;font-style:italic;line-height:1.6;color:var(--ink-faint);}
.svc-gala .svc-row{border-top:none;padding-top:0;}
@media(max-width:720px){
  .price-grid{grid-template-columns:1fr;}
  .svc-row{flex-wrap:wrap;gap:2px 16px;}
}

/* ===================== ENTRANCE ===================== */
@media (prefers-reduced-motion:no-preference){
  .panel,.detail-hero,.speaker-detail{animation:rise .5s both;}
  @keyframes rise{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:none;}}
}
