/* =========================================================
   AI Summit Content – Frontend
   Scope: alle Klassen mit .aisc- geprefixt, keine globalen Styles
   ========================================================= */
.aisc-tt, .aisc-speakergrid, .aisc-partnerwall {
  --aisc-accent: #55c1d6;
  --aisc-accent-mid: #3d80a0;
  --aisc-accent-deep: #29668f;
  --aisc-accent-soft: #a9dfec;
  --aisc-navy: #12222e;
  --aisc-card: #0e1317;
  --aisc-card-open: #121a20;
  --aisc-line: rgba(85,193,214,.22);
  font-family: 'Montserrat', sans-serif;
  box-sizing: border-box;
}
.aisc-tt *, .aisc-speakergrid *, .aisc-partnerwall *, .aisc-backdrop * { box-sizing: border-box; }

/* Theme-/Elementor-Button-Styles neutralisieren */
.aisc-tt button, .aisc-speakergrid button, .aisc-backdrop button {
  appearance: none !important; -webkit-appearance: none !important;
  font-family: 'Montserrat', sans-serif !important;
  background-image: none !important; box-shadow: none !important; text-shadow: none !important;
  min-height: 0 !important; min-width: 0 !important; margin: 0 !important;
  text-transform: none !important; letter-spacing: normal !important;
}

/* =========================================================
   TIMETABLE
   ========================================================= */
.aisc-tt { position: relative; color: #fff; }
.aisc-tt > * { position: relative; z-index: 2; }

.aisc-glow {
  position: absolute; z-index: 1 !important; width: 560px; height: 560px; border-radius: 50%;
  pointer-events: none; opacity: 0; transition: opacity .3s;
  background: radial-gradient(circle, rgba(85,193,214,.16) 0%, rgba(61,128,160,.08) 40%, transparent 70%);
  transform: translate(-50%,-50%); mix-blend-mode: screen; top: 0; left: 0;
}
@media (hover: none) { .aisc-glow { display: none; } }

.aisc-toolbar { display: flex; flex-wrap: wrap; gap: 10px 14px; align-items: center; margin-bottom: 30px; }
.aisc-daytabs, .aisc-filters { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.aisc-filters { margin-left: auto; }
@media (max-width: 700px) { .aisc-filters { margin-left: 0; } }

.aisc-tab {
  font-family: 'Montserrat', sans-serif !important; font-weight: 600 !important; font-size: 13px !important;
  padding: 9px 16px !important; border-radius: 99px !important; border: 1px solid var(--aisc-line) !important;
  background: transparent !important; background-color: transparent !important;
  color: #fff !important; cursor: pointer; transition: .15s; line-height: 1 !important;
}
.aisc-tab.active { background-color: var(--aisc-accent) !important; border-color: var(--aisc-accent) !important; color: #00222b !important; }
.aisc-tab .aisc-count { opacity: .75; font-weight: 500; }

.aisc-btn-ics {
  font-family: 'Montserrat', sans-serif !important; font-weight: 600 !important; font-size: 13px !important;
  padding: 9px 16px !important; border-radius: 99px !important; border: 1px solid var(--aisc-accent) !important;
  background: transparent !important; background-color: transparent !important;
  color: var(--aisc-accent) !important; cursor: pointer; transition: .15s; line-height: 1 !important;
}
.aisc-btn-ics:hover { background-color: var(--aisc-accent) !important; color: #00222b !important; }

.aisc-day { display: none; }
.aisc-day.active { display: block; }
.aisc-dayhead { font-family: 'Unbounded', sans-serif; font-weight: 700; font-size: clamp(18px,3vw,26px); margin: 0 0 22px; color: #fff; }

.aisc-stages { display: grid; grid-template-columns: repeat(var(--aisc-cols,3), minmax(0,1fr)); gap: 22px; align-items: start; }
@media (max-width: 1000px) { .aisc-stages { grid-template-columns: 1fr; } }

/* Layout "days": Tage als Spalten nebeneinander */
.aisc-days { display: grid; grid-template-columns: repeat(var(--aisc-days,3), minmax(0,1fr)); gap: 22px; align-items: start; }
@media (max-width: 1000px) { .aisc-days { grid-template-columns: 1fr; } }

/* Layout "stacked": alle Tage untereinander, Abstand zwischen den Tagen */
.aisc-layout-stacked .aisc-day.active { margin-bottom: 56px; }
.aisc-layout-stacked .aisc-day.active:last-of-type { margin-bottom: 0; }

.aisc-stagehead {
  font-family: 'Unbounded', sans-serif; font-weight: 600; font-size: clamp(15px,1.6vw,19px);
  margin: 0 0 16px; padding-bottom: 10px; border-bottom: 2px solid var(--aisc-accent); color: #fff;
}

.aisc-session {
  background: var(--aisc-card); border: 1px solid var(--aisc-line); border-radius: 10px;
  margin-bottom: 10px; overflow: hidden; transition: border-color .15s, background .2s, box-shadow .2s;
}
.aisc-session:not(.aisc-break):hover {
  background: rgba(85,193,214,.10); border-color: rgba(85,193,214,.55); box-shadow: 0 0 22px rgba(85,193,214,.15);
}
.aisc-session.open { background: var(--aisc-card-open); border-color: var(--aisc-accent); }
.aisc-session.aisc-hidden { display: none; }

/* Pausen: Trennzeile statt Karte */
.aisc-breakline {
  display: flex; align-items: center; gap: 12px; margin: 14px 0;
  color: rgba(255,255,255,.45); font-size: 11.5px; font-weight: 600;
  letter-spacing: 1.2px; text-transform: uppercase;
}
.aisc-breakline::before, .aisc-breakline::after { content: ""; flex: 1; height: 1px; background: rgba(255,255,255,.15); }
.aisc-breakline.aisc-hidden { display: none; }

.aisc-row { display: flex; align-items: flex-start; gap: 12px; padding: 14px; cursor: pointer; }
.aisc-break .aisc-row { cursor: default; opacity: .65; }
.aisc-time { flex: 0 0 64px; display: flex; flex-direction: column; }
.aisc-time .t { font-weight: 700; font-size: 14px; color: #fff; }
.aisc-time .d { color: rgba(255,255,255,.6); font-size: 11px; margin-top: 2px; }
.aisc-main { flex: 1; min-width: 0; }
.aisc-title { font-weight: 600; font-size: 13.5px; line-height: 1.45; color: #fff; }
.aisc-speakers { color: rgba(255,255,255,.62); font-size: 12px; margin-top: 5px; line-height: 1.5; }
.aisc-access { color: var(--aisc-accent); font-size: 11px; margin-top: 5px; font-weight: 600; letter-spacing: .5px; text-transform: uppercase; }
.aisc-actions { display: flex; flex-direction: column; gap: 5px; flex: 0 0 auto; align-items: flex-end; }
.aisc-icon {
  width: 25px !important; height: 25px !important; border-radius: 7px !important;
  border: 1px solid rgba(255,255,255,.28) !important;
  background: transparent !important; background-color: transparent !important;
  color: rgba(255,255,255,.75) !important; font-size: 13px !important; line-height: 1 !important;
  cursor: pointer; display: flex; align-items: center; justify-content: center; transition: .15s; padding: 0 !important;
}
.aisc-icon:hover { border-color: var(--aisc-accent) !important; color: var(--aisc-accent) !important; }
.aisc-star.saved {
  background-color: var(--aisc-accent) !important; border-color: var(--aisc-accent) !important;
  color: #00222b !important;
}
.aisc-plus .aisc-chev {
  display: block; width: 8px; height: 8px;
  border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
  transform: rotate(45deg) translate(-1px,-1px); transition: transform .2s;
}
.aisc-session.open .aisc-plus .aisc-chev { transform: rotate(225deg) translate(-1px,-1px); }

.aisc-details { display: none; padding: 0 14px 14px; }
.aisc-session.open .aisc-details {
  display: block; max-height: 420px; overflow-y: auto;
  scrollbar-width: thin; scrollbar-color: var(--aisc-accent-mid) transparent;
}
.aisc-details::-webkit-scrollbar { width: 6px; }
.aisc-details::-webkit-scrollbar-thumb { background: var(--aisc-accent-mid); border-radius: 3px; }
.aisc-details::-webkit-scrollbar-track { background: transparent; }

.aisc-info { border-top: 1px solid var(--aisc-line); padding-top: 12px; margin-top: 2px; }
.aisc-info h4 {
  color: var(--aisc-accent); font-size: 12px; text-transform: uppercase; letter-spacing: 1.2px;
  margin: 0 0 8px; font-weight: 700; font-family: 'Montserrat', sans-serif;
}
.aisc-info .aisc-desc, .aisc-info .aisc-desc p { color: rgba(255,255,255,.85); font-size: 13px; line-height: 1.65; margin: 0 0 8px; }
.aisc-bio { color: rgba(255,255,255,.85); font-size: 13px; line-height: 1.65; margin: 0 0 10px; }
.aisc-bio strong { color: #fff; }

.aisc-calrow { display: flex; gap: 10px; flex-wrap: wrap; padding-top: 14px; border-top: 1px solid var(--aisc-line); margin-top: 6px; }
.aisc-callink, button.aisc-callink {
  font-family: 'Montserrat', sans-serif !important; font-size: 12.5px !important; font-weight: 600 !important;
  color: var(--aisc-accent) !important; text-decoration: none !important;
  border: 1px solid var(--aisc-line) !important; padding: 7px 12px !important; border-radius: 99px !important;
  transition: .15s; background: transparent !important; background-color: transparent !important;
  cursor: pointer; line-height: 1 !important;
}
.aisc-callink:hover, button.aisc-callink:hover { border-color: var(--aisc-accent) !important; color: var(--aisc-accent) !important; }

.aisc-sideevents { margin-top: 30px; }
.aisc-session.aisc-wide .aisc-title { font-size: 15px; }

.aisc-empty {
  display: none; color: rgba(255,255,255,.62); font-size: 14px; border: 1px dashed var(--aisc-line);
  border-radius: 10px; padding: 22px; text-align: center; margin-top: 10px;
}
.aisc-empty.show { display: block; }
.aisc-none { font-family: 'Montserrat', sans-serif; }

/* =========================================================
   SPEAKER CARDS + MODAL
   ========================================================= */
.aisc-speakergrid { display: grid; grid-template-columns: repeat(3,1fr); gap: 56px 40px; align-items: start; }
@media (max-width: 900px) { .aisc-speakergrid { grid-template-columns: repeat(2,1fr); gap: 44px 24px; } }
@media (max-width: 560px) { .aisc-speakergrid { grid-template-columns: 1fr; } }

.aisc-card { position: relative; padding-top: 26px; cursor: pointer; }

.aisc-cardphoto {
  position: relative; width: 88%; margin: 0 auto; aspect-ratio: 1/1; border-radius: 50%;
  background: #fff; border: 6px solid #fff; padding: 0;
  box-shadow: 0 6px 24px rgba(0,0,0,.10); overflow: hidden;
}
.aisc-cardphoto img {
  width: 100%; height: 100%; border-radius: 50%; object-fit: cover; display: block;
  transform-origin: center;
}
.aisc-initials {
  width: 100%; height: 100%; border-radius: 50%; display: flex; align-items: center; justify-content: center;
  background: linear-gradient(145deg,#3d80a0,#29668f); color: #fff; font-weight: 700; font-size: 44px;
}

.aisc-cardbadge {
  position: absolute; top: 0; left: 0; width: min(32%, var(--aisc-badge,110px)); aspect-ratio: 1/1; border-radius: 50%;
  background: #fff; border: 3px solid #dfeef4;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 2px 3px 0 0 rgba(41,102,143,.35); z-index: 4; overflow: hidden;
}
.aisc-cardbadge img { width: 72%; height: 72%; object-fit: contain; transform-origin: center; }

.aisc-cardtile {
  position: relative; background: var(--aisc-navy); border-radius: 20px; margin: -17% 3% 0;
  padding: 20px 16px 14px; text-align: center; z-index: 3;
  box-shadow: 5px 5px 0 0 var(--aisc-accent-soft); transition: box-shadow .2s;
}
.aisc-card:hover .aisc-cardtile { box-shadow: 5px 5px 0 0 var(--aisc-accent); }
.aisc-cardname { color: #fff; font-weight: 800; font-size: 32px; line-height: 1.08; text-transform: uppercase; letter-spacing: 1px; overflow-wrap: anywhere; }
.aisc-cardrole { color: var(--aisc-accent); font-weight: 700; font-size: 12px; line-height: 1.45; text-transform: uppercase; letter-spacing: 1px; margin-top: 8px; overflow-wrap: anywhere; }
.aisc-cardhint { color: rgba(255,255,255,.55); font-size: 11px; margin-top: 12px; font-weight: 600; letter-spacing: .5px; }
.aisc-cardhint span { color: var(--aisc-accent); }

/* Modal */
.aisc-backdrop {
  position: fixed; inset: 0; background: rgba(0,0,0,.55); z-index: 99990;
  display: none; align-items: center; justify-content: center; padding: 20px;
  font-family: 'Montserrat', sans-serif;
}
.aisc-backdrop.open { display: flex; }
.aisc-modal {
  background: var(--aisc-navy,#12222e); border-radius: 24px; max-width: 560px; width: 100%;
  max-height: 85vh; overflow: auto; padding: 34px 32px; position: relative;
  box-shadow: 5px 5px 0 0 #a9dfec;
  --aisc-accent: #55c1d6; --aisc-line: rgba(85,193,214,.22);
}
@media (max-width: 560px) { .aisc-modal { padding: 26px 20px; } }
.aisc-mclose {
  position: absolute; top: 14px; right: 18px; color: #55c1d6; font-size: 24px; cursor: pointer;
  font-weight: 700; background: none; border: none; line-height: 1; padding: 4px;
}
.aisc-mhead { display: flex; gap: 18px; align-items: center; margin-bottom: 6px; }
.aisc-mphoto {
  width: 92px; height: 92px; border-radius: 50%; flex: 0 0 auto; overflow: hidden;
  background: linear-gradient(145deg,#3d80a0,#29668f); border: 3px solid #fff;
}
.aisc-mphoto img { width: 100%; height: 100%; object-fit: cover; transform-origin: center; display: block; }
.aisc-mname { color: #fff; font-weight: 800; font-size: 22px; text-transform: uppercase; line-height: 1.15; }
.aisc-mrole { color: #55c1d6; font-weight: 700; font-size: 12px; text-transform: uppercase; letter-spacing: 1px; margin-top: 5px; }
.aisc-modal .aisc-info { border-top: 1px solid rgba(85,193,214,.22); margin-top: 16px; }
.aisc-modal .aisc-info h4 { color: #55c1d6; }
.aisc-sess { display: flex; gap: 10px; padding: 9px 0; border-bottom: 1px solid rgba(85,193,214,.18); }
.aisc-sess:last-child { border-bottom: none; }
.aisc-sesst { flex: 0 0 auto; color: #55c1d6; font-weight: 700; font-size: 12px; white-space: nowrap; }
.aisc-sessn { color: #fff; font-size: 12.5px; line-height: 1.45; }
.aisc-sessn small { display: block; color: rgba(255,255,255,.55); font-size: 11px; margin-top: 2px; }
.aisc-mlink {
  display: inline-block; margin-top: 20px; color: #55c1d6; border: 1px solid #55c1d6;
  border-radius: 99px; padding: 8px 16px; font-size: 12.5px; font-weight: 700; text-decoration: none;
}

/* =========================================================
   PARTNER WALL
   ========================================================= */
.aisc-partnerwall { }
.aisc-tier { margin-bottom: 34px; }
.aisc-tierhead {
  font-family: 'Unbounded', sans-serif; font-weight: 600; font-size: 15px; letter-spacing: 1px;
  text-transform: uppercase; margin: 0 0 18px; color: var(--aisc-accent-deep,#29668f);
}
.aisc-logos { display: flex; flex-wrap: wrap; gap: 28px 44px; align-items: center; }
.aisc-logo { display: flex; align-items: center; justify-content: center; height: var(--aisc-logo-h,60px); overflow: visible; }
.aisc-logo img { max-height: var(--aisc-logo-h,60px); max-width: 220px; width: auto; height: auto; object-fit: contain; transform-origin: center; display: block; }
@media (max-width: 700px) {
  .aisc-logos { gap: 20px 28px; }
  .aisc-logo, .aisc-logo img { max-height: calc(var(--aisc-logo-h,60px) * .75); height: auto; }
}
