:root{
  --bg:#fbfeff;
  --text:#1d252c;
  --muted:#79818c;
  --line:#dceff6;
  --accent:#0aa3d5;
  --important: #fd0001;
  --card:#f7f8fa;
  --max:1100px;
  --radius:14px;
  --shadow: 0 8px 20px rgba(10,163,213,0.06);
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}

body{
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
  background:var(--bg);
  color:var(--text);
  line-height:1.55;
}

a{color:var(--accent); text-decoration:none}
a:hover{text-decoration:underline}

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

/* Topbar */
.topbar{
  border-bottom:1px solid var(--line);
  background:#fff;
  position:sticky;
  top:0;
  z-index:50;
}
.topbar-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:14px 0;
}
.brand{
  display:flex;
  align-items:center;
  gap:14px;
  min-width:260px;
}
.brand img{height:44px; width:auto}
.brand .titleblock{display:flex; flex-direction:column}
.brand .titleblock strong{font-size:14px; letter-spacing:.2px}
.brand .titleblock span{font-size:12px; color:var(--muted)}

.nav{
  display:flex;
  gap:14px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.nav a{
  font-size:14px;
  padding:8px 10px;
  border-radius:10px;
  color:var(--text);
}
.nav a.active,
.nav a:hover{
  background:rgba(10,163,213,.10);
  text-decoration:none;
}

/* Sections */
.section{padding:28px 0 44px}

/* HERO (inside container, no overflow) */
.hero{
  margin-bottom:18px;
}
.hero-image{
  position: relative;          /* necessario */
  min-height:360px;

  background-image:
          linear-gradient(rgba(0,0,0,0.20), rgba(0,0,0,0.05)),
          url("lisboah3.jpeg");
  background-size:cover;
  background-position:center;

  border-radius:18px;
  overflow:hidden;
  border:1px solid var(--line);
}

/* Box white → light-blue */
.hero-box{
  position: absolute;
  left:10px;     /* distanza dal bordo sinistro */
  bottom: 10px;   /* distanza dal bordo inferiore */

  background: linear-gradient(
          180deg,
          rgba(255,255,255,0.97),
          rgba(225,245,252,0.97)
  );
  padding: 22px 26px;
  border-radius:18px;
  max-width:560px;

  box-shadow: 0 14px 36px rgba(0,0,0,0.22);
}

/* più largo così "EWG Retail Operations" resta su una riga */
.hero-box--narrow{ max-width: 600px; }

/* forza esattamente 2 righe di titolo */
.hero-title-line{
  display:block;
  white-space: nowrap;
}

.hero-box h1{
  margin:0 0 10px;
  font-size:40px;
  line-height:1.05;
  color:var(--accent);
}

.hero-meta{
  font-size:15px;
  color:var(--text);
  display:flex;
  gap:18px;
  flex-wrap:wrap;
}
.hero-meta--stack{display:block}

/* Cards */
/*.card{*/
/*  background:var(--card);*/
/*  border:1px solid var(--line);*/
/*  border-radius:var(--radius);*/
/*  box-shadow:var(--shadow);*/
/*  padding:18px;*/
/*}*/
.card{
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: 18px;
}
.card h2{margin:0 0 10px; font-size:18px}
.card p{margin:0 0 10px; color:var(--text)}
.card ul{margin:0; padding-left:18px; color:var(--text)}
.card li{margin:6px 0}

.small{font-size:13px; color:var(--muted)}

/* Softer, blue-tinted sections */
/*.card-soft{*/
/*  background: linear-gradient(180deg, rgba(10,163,213,.10), rgba(10,163,213,.04));*/
/*}*/

/* Cards mostly white, very light blue hint */
.card-soft{
  background: linear-gradient(
          180deg,
          #ffffff 0%,
          rgba(10,163,213,0.06) 100%
  );
}
.venue-photo{
  max-width: 340px;      /* larghezza ex colonna destra */
  margin: 14px auto;
  border-radius:12px;
  overflow:hidden;
  border:1px solid var(--line);
}

.venue-split{
  display:grid;
  grid-template-columns: 340px 1fr;   /* foto fissa + mappa flessibile */
  gap:16px;
  align-items:start;
}

.venue-photo img{
  width:100%;
  height:auto;
  display:block;
}



/* Notice */
/*.notice{*/
/*  border-left:4px solid var(--accent);*/
/*  background:rgba(10,163,213,.08);*/
/*  padding:12px 12px;*/
/*  border-radius:12px;*/
/*  color:var(--muted);*/
/*  font-size:14px;*/
/*}*/

.notice{
  border-left:4px solid var(--accent);
  background: rgba(10,163,213,0.07);
  padding:12px;
  border-radius:12px;
  color: var(--text);
  font-size:14px;
}

/* Two-column layout */
.layout{
  display:grid;
  grid-template-columns: 1fr 340px;
  gap:18px;
  align-items:start;
}

/* Sidebar */
.sidebar{
  position: sticky;
  top: 90px;
}
.sidebar-offset{
  margin-top:90px; /* pushes Contact/Sponsors lower */
}
.sep{
  border:0;
  border-top:1px solid var(--line);
  margin:14px 0;
}
.contact-block{
  color: var(--muted);
  font-size: 14px;
  line-height: 1.45;
}
.contact-line{ margin: 2px 0; }
.contact-block strong{ color: var(--text); }

/* Sponsors */
.sponsor-stack{
  display:flex;
  flex-direction:column;
  gap:12px;
  margin-top:10px;
}
.sponsor-stack img{
  width:100%;
  height:auto;
  background:#fff;
  border:1px solid var(--line);
  border-radius:12px;
  padding:10px;
}

/* Tables (kept for other pages) */
.table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  overflow:hidden;
  border-radius:12px;
  border:1px solid var(--line);
  background:#fff;
}
.table th, .table td{
  padding:12px 12px;
  border-bottom:1px solid var(--line);
  text-align:left;
  vertical-align:top;
  font-size:14px;
}
.table th{background:#fbfbfc; color:var(--muted); font-weight:600}
.table tr:last-child td{border-bottom:none}

/* Footer */
.footer{
  border-top:1px solid var(--line);
  padding:18px 0;
  color:var(--muted);
  font-size:13px;
}

/* Buttons (kept for other pages) */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:var(--accent);
  color:#fff;
  border-radius:12px;
  padding:10px 14px;
  font-size:14px;
  font-weight:600;
  border:0;
}
.btn:hover{filter:brightness(.95); text-decoration:none}

.info-cta{
  margin-top:14px;
  font-size:15px;
  text-align:center;
}

.info-cta a{
  color: var(--accent);
}

.info-cta a:hover{
  text-decoration: underline;
}

.info-cta.highlight{
  background: rgba(10,163,213,.08);
  padding:10px 12px;
  border-radius:10px;
}
.date-highlight{
  color: var(--important);     /* azzurro del sito */
  font-weight: 650;
}
.committee-section h1{
  font-size:28px;
  margin-bottom:14px;
  color:var(--text);
}

.committee-group{
  padding:12px 0;
  border-top:1px solid var(--line);
}

.committee-group h2{
  font-size:20px;
  margin-bottom:10px;
  color:var(--accent);
}

.committee-list{
  list-style:none;
  margin:0;
  padding:0;
}

.committee-list li{
  margin:6px 0;
  font-size:15px;
  color:var(--text);
}
/* Venue split layout */
/* Layout mappa + foto */
.venue-split{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:10px;
  margin-top:10px;
  align-items:stretch;
}

/* MAPPA */
.venue-map{
  height:300px;
}

.venue-map iframe{
  width:100%;
  height:100%;
  border:1px solid var(--line);
  border-radius:18px;
}

/* FOTO */
.venue-photo{
  position:relative;
  height:100%;   /* più bassa → più rettangolare */
  width:100%;
  overflow:hidden;
  border-radius:8px;
  border:1px solid var(--line);
}

/* overlay azzurro soft */
.venue-photo::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
}

/* immagine */
.venue-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  transform:scale(1);  /* leggero zoom */
  display:block;
}

/* =========================
   PROGRAM TABLE (IFORS-like)
   ========================= */

.prog-day{
    margin: 18px 0 10px;
    font-size: 20px;
    color: var(--text);
}

/* Outer table */
.prog-table{
    width: 100%;
    border-radius: 12px;
    overflow: hidden;
    border: 1px solid var(--line);
    background: #fff;
}

/* Rows layout (2 columns: time + content) */
.prog-row{
    display: grid;
    grid-template-columns: 180px 1fr;
}

.prog-header{
    background: #355a88; /* close to screenshot header */
}

.prog-th{
    padding: 12px 14px;
    color: #fff;
    font-weight: 700;
    font-size: 16px;
    border-right: 1px solid rgba(255,255,255,0.18);
}
.prog-th:last-child{ border-right: none; }

.prog-th-time{
    text-transform: none;
}

/* Cells */
.prog-td{
    padding: 14px 14px;
    border-top: 1px solid var(--line);
}

/* Left time column */
.prog-timecell{
    background: #ececec; /* light grey like screenshot */
    font-weight: 500;
    color: #333;
}

/* Right content blocks */
.prog-block{
    background: #f6f7f9;
}

/* Typography inside block */
.prog-item-title{
    font-weight: 700;
    font-size: 16px;
    margin-bottom: 4px;
}

.prog-item-sub{
    color: rgba(0,0,0,0.65);
    font-size: 14px;
}

/* Color coding (similar to screenshot palette) */
.prog-admin{   background: #d9d9d9; }  /* registration / logistics */
.prog-break{   background: #f2c9a8; }  /* coffee/lunch */
.prog-session{ background: #ffe8a6; }  /* sessions */
.prog-keynote{ background: #b7d0ee; }  /* plenary/keynote */
.prog-panel{   background: #ffe8a6; }  /* panel close to sessions */
.prog-poster{  background: #ffe8a6; }  /* poster */
.prog-social{  background: #cde9dc; }  /* social events */

/* Responsive */
@media (max-width: 720px){
    .prog-row{ grid-template-columns: 120px 1fr; }
    .prog-th{ font-size: 14px; }
    .prog-item-title{ font-size: 15px; }
}
/* 2-day grid: Time + 2 day columns */
.prog-table-2day .prog-row-2day{
  grid-template-columns: 180px 1fr 1fr;
}

/* Empty cells */
.prog-empty{
  background: #f6f7f9;
  color: rgba(0,0,0,0.45);
  font-weight: 600;
}

/* Responsive: keep readable */
@media (max-width: 880px){
  .prog-table-2day .prog-row-2day{
    grid-template-columns: 120px 1fr 1fr;
  }
}
@media (max-width: 640px){
  /* Stack day columns under each other for mobile */
  .prog-table-2day .prog-header.prog-row-2day{
    grid-template-columns: 120px 1fr;
  }
  .prog-table-2day .prog-header.prog-row-2day .prog-th:nth-child(3){
    display: none;
  }

  .prog-table-2day .prog-row-2day{
    grid-template-columns: 120px 1fr;
  }
  .prog-table-2day .prog-row-2day .prog-td:nth-child(3){
    display: none;
  }
}
.prog-location{
  margin-top: -6px;
  color: #000;
  font-size: 15px;
}
/* Venue: text left, image right */
.venue-hero{
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: 18px;
  align-items: start;
}

.venue-hero-media img{
  width: 100%;
  height: auto;
  display: block;
  border-radius: 12px;
  border: 1px solid var(--line);
}

/* Getting here: text left, map right */
.getting-split{
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: 18px;
  align-items: start;
}

.getting-map iframe{
  width: 100%;
  height: 320px;
  border: 0;
  border-radius: 12px;
  border: 1px solid var(--line);
  display: block;
}

/* Keep venue-kv spacing consistent */
.venue-kv{
  display: grid;
  grid-template-columns: 160px 1fr;
  gap: 10px;
  padding: 10px 0;
  border-top: 1px solid var(--line);
}
.venue-kv:first-of-type{ border-top: none; }

/* Responsive stacking */
@media (max-width: 880px){
  .venue-hero,
  .getting-split{
    grid-template-columns: 1fr;
  }
  .getting-map iframe{
    height: 280px;
  }
}


