/* ============================================================
   Onsite Learning Materials from Demonstration Events — ICAERUS Academy
   Scoped under .onsite-events-content so it can't leak into
   or clash with the site's global CSS.
   ============================================================ */
.onsite-events-content{
  --teal:        #2FBFA6;
  --teal-dark:   #1E8F7C;
  --teal-tint:   #E9F8F5;
  --navy:        #16232E;
  --navy-2:      #24384A;
  --orange:      #E8890C;
  --orange-tint: #FCEEDA;
  --gold:        #F0B93E;
  --magenta:     #B0499D;
  --magenta-tint:#F5E4F1;
  --bg:          #FAFAF8;
  --card:        #FFFFFF;
  --text:        #1E2A33;
  --text-soft:   #5C6B75;
  --border:      #E4E8EA;
  --radius:      14px;
  --maxw:        1180px;

  --font-display: 'Space Grotesk', 'Arial Narrow', sans-serif;
  --font-body:    'Inter', 'Segoe UI', sans-serif;
  --font-mono:    'IBM Plex Mono', 'Courier New', monospace;

  font-family:var(--font-body);
  color:var(--text);
  background:var(--bg);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
.onsite-events-content *{ box-sizing:border-box; }
.onsite-events-content img{ max-width:100%; display:block; }
.onsite-events-content a{ color:inherit; }
.onsite-events-content .wrap{ max-width:var(--maxw); margin:0 auto; padding:0 28px; }

/* ---------- Layout ---------- */
.onsite-events-content .layout{ display:grid; grid-template-columns:1fr 300px; gap:56px; padding:48px 0 80px; align-items:start; }
.onsite-events-content .content section{ margin-bottom:52px; }
.onsite-events-content .content h2{
  font-family:var(--font-display); font-size:26px; font-weight:700;
  color:var(--section-color,var(--navy-2)); margin:0 0 20px;
  padding-left:16px; border-left:4px solid var(--section-color,var(--teal));
}
.onsite-events-content .content h3{ font-family:var(--font-display); font-size:18.5px; font-weight:700; color:var(--navy-2); margin:28px 0 10px; }
.onsite-events-content .content p{ margin:0 0 16px; font-size:15.5px; }
.onsite-events-content .content ul, .onsite-events-content .content ol{ margin:0 0 16px; padding-left:22px; }
.onsite-events-content .content li{ margin-bottom:9px; font-size:15.5px; }
.onsite-events-content .content strong{ color:var(--navy-2); }

/* Figures */
.onsite-events-content figure{ margin:26px 0; }
.onsite-events-content figure img{
  border:1px solid var(--border); border-radius:10px;
  background:#fff; padding:10px;
}
.onsite-events-content figure.svg-fig img{
  border:none; padding:0; border-radius:16px;
  box-shadow:0 8px 26px -12px rgba(20,30,40,.22);
}
.onsite-events-content figcaption{
  font-size:13px; color:var(--text-soft); text-align:center; margin-top:10px; font-style:italic;
}

/* Photo gallery */
.onsite-events-content .photo-grid{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:14px;
  margin:20px 0 30px;
}
.onsite-events-content .photo-grid img{
  width:100%; height:170px; object-fit:cover;
  border:1px solid var(--border); border-radius:10px; background:#fff;
  transition:.15s;
}
.onsite-events-content .photo-grid img:hover{ transform:translateY(-2px); box-shadow:0 10px 22px -12px rgba(20,30,40,.28); }

/* ---------- Materials carousel (landing page) ---------- */
.onsite-events-content .carousel-section{ padding:56px 0 84px; }
.onsite-events-content .carousel-section .wrap.wide{ max-width:1500px; }
.onsite-events-content .carousel-head{ display:flex; align-items:flex-end; justify-content:space-between; margin-bottom:30px; gap:20px; flex-wrap:wrap; }
.onsite-events-content .carousel-head h2{ font-family:var(--font-display); font-size:30px; margin:0 0 8px; color:var(--navy-2); }
.onsite-events-content .carousel-head p{ color:var(--text-soft); margin:0; max-width:60ch; }
.onsite-events-content .carousel-tools{ display:flex; align-items:center; gap:14px; flex:none; }
.onsite-events-content .view-toggle{
  display:inline-flex; align-items:center; gap:8px; cursor:pointer;
  font-family:var(--font-mono); font-size:11.5px; letter-spacing:.06em; text-transform:uppercase; font-weight:700;
  color:var(--teal-dark); background:var(--card); border:1px solid var(--border);
  padding:9px 15px; border-radius:9px; transition:.15s;
}
.onsite-events-content .view-toggle:hover{ border-color:var(--teal-dark); background:var(--teal-tint); }
.onsite-events-content .view-toggle svg{ width:15px; height:15px; }
.onsite-events-content .carousel-nav{ display:flex; gap:10px; flex:none; }
.onsite-events-content .carousel-btn{
  width:46px; height:46px; border-radius:50%; border:1px solid var(--border); background:var(--card);
  display:flex; align-items:center; justify-content:center; cursor:pointer; color:var(--navy-2); transition:.15s;
  flex:none;
}
.onsite-events-content .carousel-btn:hover{ border-color:var(--teal-dark); color:var(--teal-dark); }
.onsite-events-content .carousel-btn:disabled{ opacity:.35; cursor:default; }
.onsite-events-content .carousel-btn svg{ width:20px; height:20px; }
.onsite-events-content .carousel-viewport{ overflow:hidden; margin:0 -28px; padding:0 28px; }
.onsite-events-content .carousel-track{
  display:flex; gap:26px; overflow-x:auto; scroll-snap-type:x mandatory; scroll-behavior:smooth;
  padding:6px 6px 22px; -ms-overflow-style:none; scrollbar-width:none;
}
.onsite-events-content .carousel-track::-webkit-scrollbar{ display:none; }
.onsite-events-content .carousel-card{
  flex:0 0 400px; scroll-snap-align:start; background:var(--card); border:1px solid var(--border); border-radius:16px;
  overflow:hidden; text-decoration:none; display:flex; flex-direction:column; transition:.18s; min-height:290px;
}
.onsite-events-content .carousel-card:hover{ transform:translateY(-4px); box-shadow:0 18px 38px -16px rgba(20,30,40,.28); border-color:var(--cc-color,var(--teal)); }
.onsite-events-content .carousel-card .cc-top{ height:10px; background:var(--cc-color,var(--teal)); }
.onsite-events-content .carousel-card .cc-body{ padding:30px 30px 28px; flex:1; display:flex; flex-direction:column; }
.onsite-events-content .carousel-card .cc-num{ font-family:var(--font-mono); font-size:12px; letter-spacing:.09em; text-transform:uppercase; color:var(--cc-color,var(--teal-dark)); margin-bottom:14px; font-weight:700; }
.onsite-events-content .carousel-card h3{ font-family:var(--font-display); font-size:22px; line-height:1.2; margin:0 0 14px; color:var(--navy-2); }
.onsite-events-content .carousel-card p{ font-size:15px; line-height:1.6; color:var(--text-soft); margin:0 0 22px; flex:1; }
.onsite-events-content .carousel-card .cc-foot{ display:flex; justify-content:space-between; align-items:center; font-size:13px; color:var(--text-soft); font-family:var(--font-mono); }
.onsite-events-content .carousel-card .cc-arrow{ font-size:20px; color:var(--cc-color,var(--teal-dark)); transition:.15s; }
.onsite-events-content .carousel-card:hover .cc-arrow{ transform:translateX(4px); }
.onsite-events-content .carousel-dots{ display:flex; gap:8px; justify-content:center; margin-top:22px; flex-wrap:wrap; }
.onsite-events-content .carousel-dots .d{ width:9px; height:9px; border-radius:50%; background:var(--border); transition:.2s; }
.onsite-events-content .carousel-dots .d.active{ background:var(--teal-dark); width:26px; border-radius:5px; }

/* Grid ("view all") mode */
.onsite-events-content .carousel-section.grid-mode .carousel-viewport{ overflow:visible; margin:0; padding:0; }
.onsite-events-content .carousel-section.grid-mode .carousel-track{
  display:grid; grid-template-columns:repeat(auto-fill,minmax(360px,1fr)); gap:26px;
  overflow:visible; scroll-snap-type:none; padding:6px;
}
.onsite-events-content .carousel-section.grid-mode .carousel-card{ flex:none; width:auto; }
.onsite-events-content .carousel-section.grid-mode .carousel-nav,
.onsite-events-content .carousel-section.grid-mode .carousel-dots{ display:none; }

/* ---------- Video embed ---------- */
.onsite-events-content .video-frame{
  position:relative; width:100%; padding-top:56.25%; border-radius:12px; overflow:hidden;
  background:var(--navy); margin:22px 0; border:1px solid var(--border);
}
.onsite-events-content .video-frame iframe, .onsite-events-content .video-frame video{
  position:absolute; inset:0; width:100%; height:100%; border:0;
}

/* Badges */
.onsite-events-content .badge{
  display:inline-flex; align-items:center; gap:6px;
  font-family:var(--font-mono); font-size:10.5px; letter-spacing:.07em; text-transform:uppercase; font-weight:700;
  padding:5px 11px; border-radius:100px; margin:0 8px 8px 0;
}
.onsite-events-content .badge-uc{ background:var(--teal-tint); color:var(--teal-dark); }
.onsite-events-content .badge-type{ background:#EFEFEF; color:var(--text-soft); }

/* Status note (pending / placeholder content) */
.onsite-events-content .status-note{
  display:flex; align-items:flex-start; gap:12px;
  background:#F7F7F5; border:1px dashed #C9CDC8; border-radius:10px;
  padding:16px 18px; margin:18px 0; color:var(--text-soft); font-size:14px; font-style:italic;
}
.onsite-events-content .status-note .dot{ flex:none; width:8px; height:8px; border-radius:50%; background:#C9CDC8; margin-top:6px; }

/* Risk grid */
.onsite-events-content .risk-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:16px; margin:20px 0; }
.onsite-events-content .risk-card{ background:var(--card); border:1px solid var(--border); border-radius:12px; padding:18px 20px; }
.onsite-events-content .risk-card .rt{ font-family:var(--font-display); font-weight:700; font-size:15px; color:var(--navy-2); margin-bottom:6px; }
.onsite-events-content .risk-card .rd{ font-size:13.5px; color:var(--text-soft); line-height:1.6; }

/* Download card */
.onsite-events-content .dl-card{
  display:flex; align-items:center; gap:16px;
  background:var(--card); border:1px solid var(--border); border-left:4px solid var(--dl-color,var(--teal-dark));
  border-radius:10px; padding:18px 22px; margin:26px 0;
  text-decoration:none; transition:.15s;
}
.onsite-events-content .dl-card:hover{ border-color:var(--dl-color,var(--teal-dark)); background:var(--dl-tint,var(--teal-tint)); }
.onsite-events-content .dl-card .dl-icon{
  flex:none; width:42px; height:42px; border-radius:9px; display:flex; align-items:center; justify-content:center;
  background:var(--dl-tint,var(--teal-tint)); color:var(--dl-color,var(--teal-dark));
}
.onsite-events-content .dl-card .dl-icon svg{ width:20px; height:20px; }
.onsite-events-content .dl-card .dl-text .lbl{ font-family:var(--font-mono); font-size:10.5px; letter-spacing:.09em; text-transform:uppercase; color:var(--dl-color,var(--teal-dark)); font-weight:700; }
.onsite-events-content .dl-card .dl-text .ttl{ font-family:var(--font-display); font-weight:700; font-size:15.5px; color:var(--navy-2); margin-top:2px; }
.onsite-events-content .dl-card .dl-text .sub{ font-size:12.5px; color:var(--text-soft); margin-top:2px; }
.onsite-events-content .dl-card .dl-arrow{ margin-left:auto; font-size:20px; color:var(--dl-color,var(--teal-dark)); }

/* Sidebar */
.onsite-events-content .sidebar{ position:sticky; top:24px; display:flex; flex-direction:column; gap:20px; }
.onsite-events-content .side-card{ background:var(--card); border:1px solid var(--border); border-radius:12px; padding:20px; }
.onsite-events-content .side-card h4{ font-family:var(--font-mono); font-size:11px; letter-spacing:.09em; text-transform:uppercase; color:var(--text-soft); margin:0 0 14px; }
.onsite-events-content .toc a{
  display:block; text-decoration:none; color:var(--text); font-size:13.5px; padding:7px 0;
  border-bottom:1px solid var(--border);
}
.onsite-events-content .toc a:last-child{ border-bottom:none; }
.onsite-events-content .toc a:hover{ color:var(--teal-dark); }
.onsite-events-content .factbox dl{ margin:0; }
.onsite-events-content .factbox dt{ font-size:11px; color:var(--text-soft); margin-top:12px; font-family:var(--font-mono); text-transform:uppercase; letter-spacing:.05em; }
.onsite-events-content .factbox dt:first-child{ margin-top:0; }
.onsite-events-content .factbox dd{ margin:2px 0 0; font-size:14px; font-weight:600; color:var(--navy-2); }

.onsite-events-content .pagenav{ display:flex; flex-direction:column; gap:10px; }
.onsite-events-content .pagenav a{
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  text-decoration:none; font-size:13.5px; font-weight:600; color:var(--navy-2);
  background:var(--bg); border:1px solid var(--border); border-radius:8px; padding:11px 14px;
  transition:.15s;
}
.onsite-events-content .pagenav a:hover{ border-color:var(--teal); color:var(--teal-dark); }

/* Bottom nav (prev/next full width) */
.onsite-events-content .bottomnav{ border-top:1px solid var(--border); padding:36px 0; background:var(--card); }
.onsite-events-content .bottomnav .wrap{ display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap; }
.onsite-events-content .bn-link{
  flex:1; min-width:220px; text-decoration:none; border:1px solid var(--border); border-radius:12px;
  padding:18px 20px; display:block; transition:.15s;
}
.onsite-events-content .bn-link:hover{ border-color:var(--teal); background:var(--teal-tint); }
.onsite-events-content .bn-link .dir{ font-family:var(--font-mono); font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--text-soft); }
.onsite-events-content .bn-link .ttl{ font-family:var(--font-display); font-weight:700; font-size:16px; color:var(--navy-2); margin-top:4px; }
.onsite-events-content .bn-link.next{ text-align:right; }

/* ---------- Index / overview page ---------- */
.onsite-events-content .overview-strip{ background:var(--card); border-top:1px solid var(--border); border-bottom:1px solid var(--border); padding:28px 0; }
.onsite-events-content .overview-strip .wrap{ display:flex; gap:0; }
.onsite-events-content .ov-stat{ flex:1; text-align:center; border-right:1px solid var(--border); padding:0 12px; }
.onsite-events-content .ov-stat:last-child{ border-right:none; }
.onsite-events-content .ov-stat .n{ font-family:var(--font-display); font-size:28px; font-weight:700; color:var(--teal-dark); }
.onsite-events-content .ov-stat .l{ font-size:12px; color:var(--text-soft); margin-top:2px; }

/* ---------- Responsive ---------- */
@media (max-width:900px){
  .onsite-events-content .layout{ grid-template-columns:1fr; }
  .onsite-events-content .sidebar{ position:static; order:-1; }
  .onsite-events-content .carousel-card{ flex:0 0 300px; min-height:auto; }
  .onsite-events-content .carousel-card .cc-body{ padding:24px; }
  .onsite-events-content .carousel-card h3{ font-size:19px; }
  .onsite-events-content .carousel-section.grid-mode .carousel-track{ grid-template-columns:1fr; }
}
