/* =============================================
   CBA Aachen — Shortcode & Component Styles
   Replaces Tailwind utilities for shortcode output
   ============================================= */

/* --- Header/Footer Responsive --- */

.cba-desktop-nav { display: none !important; align-items: center; gap: 1.5rem; }
.cba-desktop-cta { display: none !important; }
.cba-mobile-only { display: block !important; }
#cba-mobile-menu:not(.cba-hidden) { display: flex !important; flex-direction: column; }

@media (min-width: 768px) {
  .cba-desktop-nav { display: flex !important; }
  .cba-desktop-cta { display: inline-flex !important; }
  .cba-mobile-only { display: none !important; }
  #cba-mobile-menu { display: none !important; }
}

/* Nav logo — override Breakdance's max-width:100%/height:auto */
#cba-nav img { max-height: 4rem !important; width: auto !important; padding: 0.6rem 0; transition: height 0.25s ease, padding 0.25s ease !important; }

/* --- Legal content pages (Datenschutz, Impressum) --- */

.cba-legal { max-width: 48rem; margin: 0 auto; padding: 4rem 0; font-family: 'Inter', system-ui, sans-serif; }
.cba-legal h1 { font-size: 2.25rem; font-weight: 900; color: var(--text-default); margin-bottom: 3rem; }
.cba-legal h2 { font-size: 1.5rem; font-weight: 900; color: #E5016A; margin-bottom: 1.5rem; }
.cba-legal h3 { font-weight: 700; color: var(--text-default); margin-bottom: 0.5rem; }
.cba-legal p { color: var(--text-muted); line-height: 1.625; margin-bottom: 0.75rem; }
.cba-legal strong { color: var(--text-default); }
.cba-legal a { color: #E5016A; text-decoration: none; }
.cba-legal a:hover { text-decoration: underline; }
.cba-legal section { margin-bottom: 3rem; }
.cba-legal ul { color: var(--text-muted); padding-left: 1.5rem; margin-bottom: 0.75rem; }
.cba-legal ul li { margin-bottom: 0.5rem; }
.cba-legal .text-pink { color: #E5016A !important; }
.cba-legal .text-text-muted { color: var(--text-muted) !important; }
.cba-legal .font-semibold { font-weight: 600; color: var(--text-default); font-size: 0.875rem; }
.cba-legal .font-bold { font-weight: 700; color: var(--text-default); }
.cba-legal .text-xs { font-size: 0.75rem; }
.cba-legal .text-sm { font-size: 0.875rem; }
.cba-legal .text-2xl { font-size: 1.5rem; }
.cba-legal .text-4xl { font-size: 2.25rem; }
.cba-legal .mb-1 { margin-bottom: 0.25rem; }
.cba-legal .mb-2 { margin-bottom: 0.5rem; }
.cba-legal .mb-3 { margin-bottom: 0.75rem; }
.cba-legal .mb-4 { margin-bottom: 1rem; }
.cba-legal .mb-6 { margin-bottom: 1.5rem; }
.cba-legal .mb-12 { margin-bottom: 3rem; }
.cba-legal .ml-4 { margin-left: 1rem; }
.cba-legal .pt-2 { padding-top: 0.5rem; }
.cba-legal .leading-relaxed { line-height: 1.625; }
.cba-legal .space-y-0\.5 > * + * { margin-top: 0.125rem; }
.cba-legal .space-y-1 > * + * { margin-top: 0.25rem; }
.cba-legal .space-y-2 > * + * { margin-top: 0.5rem; }
.cba-legal .list-disc { list-style-type: disc; }
.cba-legal .list-inside { list-style-position: inside; }
.cba-legal .uppercase { text-transform: uppercase; }
.cba-legal .tracking-wide { letter-spacing: 0.05em; }

/* --- Static page responsive grids --- */

.cba-tickets-grid { grid-template-columns: 1fr; }
.cba-tickets-include-grid { grid-template-columns: 1fr; }
.cba-kontakt-grid { grid-template-columns: 1fr; }
.cba-transport-grid { grid-template-columns: 1fr; }
.cba-benefits-grid { grid-template-columns: 1fr; }
.cba-stats-grid { grid-template-columns: repeat(2, 1fr); }

@media (min-width: 768px) {
  .cba-tickets-grid { grid-template-columns: repeat(3, 1fr); }
  .cba-tickets-include-grid { grid-template-columns: repeat(2, 1fr); }
  .cba-kontakt-grid { grid-template-columns: repeat(2, 1fr); }
  .cba-transport-grid { grid-template-columns: repeat(3, 1fr); }
  .cba-benefits-grid { grid-template-columns: repeat(2, 1fr); }
  .cba-stats-grid { grid-template-columns: repeat(4, 1fr); }
}

/* --- Single template responsive --- */

@media (min-width: 768px) {
  .cba-profile-header { flex-direction: row !important; }
  .cba-partner-logo-hero { width: 16rem !important; }
  .cba-session-speakers-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .cba-cta-grid { grid-template-columns: repeat(2, 1fr) !important; }
}

/* --- Reset / Base for shortcode output --- */

.cba-shortcode { font-family: 'Inter', system-ui, sans-serif; }
.cba-shortcode *, .cba-shortcode *::before, .cba-shortcode *::after { box-sizing: border-box; }
.cba-shortcode p { margin: 0; }
.cba-shortcode img { max-width: 100%; height: auto; display: block; }
.cba-shortcode a { text-decoration: none; color: inherit; }

/* --- Layout Utilities --- */

.cba-max-w  { max-width: 1280px; margin-left: auto; margin-right: auto; }
.cba-grid   { display: grid; gap: 1.5rem; }
.cba-flex   { display: flex; }
.cba-flex-col { display: flex; flex-direction: column; }
.cba-flex-wrap { flex-wrap: wrap; }
.cba-items-center { align-items: center; }
.cba-items-start  { align-items: flex-start; }
.cba-justify-center  { justify-content: center; }
.cba-justify-between { justify-content: space-between; }
.cba-gap-1  { gap: 0.25rem; }
.cba-gap-2  { gap: 0.5rem; }
.cba-gap-3  { gap: 0.75rem; }
.cba-gap-4  { gap: 1rem; }
.cba-gap-6  { gap: 1.5rem; }
.cba-gap-8  { gap: 2rem; }
.cba-flex-1 { flex: 1 1 0%; }
.cba-shrink-0 { flex-shrink: 0; }
.cba-hidden { display: none !important; }

/* --- Speaker Grid --- */

.cba-speaker-grid { grid-template-columns: repeat(2, 1fr); }
@media (min-width: 640px)  { .cba-speaker-grid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 768px)  { .cba-speaker-grid { grid-template-columns: repeat(4, 1fr); } }
@media (min-width: 1024px) { .cba-speaker-grid { grid-template-columns: repeat(5, 1fr); } }

/* --- Partner Grids (per tier) --- */

.cba-partner-grid-platin      { grid-template-columns: 1fr; }
.cba-partner-grid-gold        { grid-template-columns: 1fr; }
.cba-partner-grid-silber      { grid-template-columns: 1fr; }
.cba-partner-grid-community   { grid-template-columns: 1fr; }
.cba-partner-grid-veranstalter{ grid-template-columns: 1fr; }
.cba-partner-grid-medien      { grid-template-columns: 1fr; }

@media (min-width: 640px) {
  .cba-partner-grid-platin       { grid-template-columns: repeat(2, 1fr); }
  .cba-partner-grid-gold         { grid-template-columns: repeat(2, 1fr); }
  .cba-partner-grid-silber       { grid-template-columns: repeat(3, 1fr); }
  .cba-partner-grid-community    { grid-template-columns: repeat(3, 1fr); }
  .cba-partner-grid-veranstalter { grid-template-columns: repeat(2, 1fr); }
  .cba-partner-grid-medien       { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1024px) {
  .cba-partner-grid-gold      { grid-template-columns: repeat(3, 1fr); }
  .cba-partner-grid-silber    { grid-template-columns: repeat(4, 1fr); }
  .cba-partner-grid-community { grid-template-columns: repeat(5, 1fr); }
  .cba-partner-grid-medien    { grid-template-columns: repeat(4, 1fr); }
}

/* --- Testimonial Grid --- */

.cba-testimonial-grid { grid-template-columns: 1fr; }
@media (min-width: 768px) { .cba-testimonial-grid { grid-template-columns: repeat(3, 1fr); } }

/* --- Spacing --- */

.cba-p-4  { padding: 1rem; }
.cba-p-5  { padding: 1.25rem; }
.cba-p-6  { padding: 1.5rem; }
.cba-p-8  { padding: 2rem; }
.cba-px-2 { padding-left: 0.5rem; padding-right: 0.5rem; }
.cba-px-3 { padding-left: 0.75rem; padding-right: 0.75rem; }
.cba-px-6 { padding-left: 1.5rem; padding-right: 1.5rem; }
.cba-py-1 { padding-top: 0.25rem; padding-bottom: 0.25rem; }
.cba-py-2 { padding-top: 0.5rem; padding-bottom: 0.5rem; }
.cba-py-3 { padding-top: 0.75rem; padding-bottom: 0.75rem; }
.cba-py-4 { padding-top: 1rem; padding-bottom: 1rem; }
.cba-mb-1 { margin-bottom: 0.25rem; }
.cba-mb-2 { margin-bottom: 0.5rem; }
.cba-mb-3 { margin-bottom: 0.75rem; }
.cba-mb-4 { margin-bottom: 1rem; }
.cba-mb-6 { margin-bottom: 1.5rem; }
.cba-mb-12 { margin-bottom: 3rem; }
.cba-mb-14 { margin-bottom: 3.5rem; }
.cba-mt-2 { margin-top: 0.5rem; }
.cba-mt-3 { margin-top: 0.75rem; }
.cba-mt-auto { margin-top: auto; }
.cba-pt-2 { padding-top: 0.5rem; }

/* --- Typography --- */

.cba-text-xs   { font-size: 0.75rem; line-height: 1rem; }
.cba-text-sm   { font-size: 0.875rem; line-height: 1.25rem; }
.cba-text-base { font-size: 1rem; line-height: 1.5rem; }
.cba-text-lg   { font-size: 1.125rem; line-height: 1.75rem; }
.cba-text-xl   { font-size: 1.25rem; line-height: 1.75rem; }
.cba-text-4xl  { font-size: 2.25rem; line-height: 2.5rem; }
.cba-font-bold { font-weight: 700; }
.cba-font-black { font-weight: 900; }
.cba-font-semibold { font-weight: 600; }
.cba-italic { font-style: italic; }
.cba-uppercase { text-transform: uppercase; }
.cba-tracking-wide { letter-spacing: 0.05em; }
.cba-tracking-widest { letter-spacing: 0.1em; }
.cba-leading-tight { line-height: 1.25; }
.cba-leading-relaxed { line-height: 1.625; }

/* --- Colors (use CSS vars from cba-theme.css) --- */

.cba-text-white  { color: var(--text-default); }
.cba-text-muted  { color: var(--text-muted); }
.cba-text-dim    { color: var(--text-dim); }
.cba-text-pink   { color: #E5016A; }
.cba-text-blue   { color: #0057B8; }
.cba-text-black  { color: #000; }

.cba-bg-base     { background-color: var(--bg-base); }
.cba-bg-card     { background-color: var(--bg-card); }
.cba-bg-elevated { background-color: var(--bg-elevated); }
.cba-bg-white    { background-color: #ffffff; }
.cba-bg-pink     { background-color: #E5016A; }
.cba-bg-blue     { background-color: #0057B8; }
.cba-bg-emerald  { background-color: #047857; }
.cba-bg-violet   { background-color: #7c3aed; }
.cba-bg-amber    { background-color: #f59e0b; }
.cba-bg-teal     { background-color: #0d9488; }

.cba-border      { border: 1px solid var(--border-dim); }
.cba-border-2    { border: 2px solid var(--border-dim); }
.cba-border-subtle { border-color: var(--border-subtle); }
.cba-border-pink { border-color: #E5016A; }

/* --- Rounded --- */

.cba-rounded     { border-radius: 0.375rem; }
.cba-rounded-lg  { border-radius: 0.5rem; }
.cba-rounded-xl  { border-radius: 0.75rem; }
.cba-rounded-full { border-radius: 9999px; }
.cba-rounded-l-lg { border-radius: 0.5rem 0 0 0.5rem; }
.cba-rounded-r-lg { border-radius: 0 0.5rem 0.5rem 0; }
.cba-overflow-hidden { overflow: hidden; }

/* --- Interactive --- */

.cba-cursor-pointer { cursor: pointer; }
.cba-transition { transition: all 0.2s ease; }

/* --- Aspect Ratios --- */

.cba-aspect-3-4 { aspect-ratio: 3/4; }
.cba-object-cover { object-fit: cover; }
.cba-object-top  { object-position: top; }
.cba-object-contain { object-fit: contain; }

/* --- Special: Agenda --- */

.cba-agenda-time { width: 4rem; flex-shrink: 0; }
.cba-themenblock { border-left: 4px solid #E5016A; padding-left: 1.25rem; padding-top: 0.5rem; padding-bottom: 0.5rem; margin-top: 1.25rem; }
.cba-themenblock h2 { font-size: 1.125rem !important; margin-bottom: 0 !important; }

/* Agenda item titles — white by default, pink on hover */
.cba-agenda-items a.cba-session-link { color: var(--text-default) !important; font-weight: 700; text-decoration: none; transition: color 0.2s; }
.cba-agenda-items a.cba-session-link:hover { color: #E5016A !important; }

/* Agenda cards — max width matching original */
.cba-agenda-items > div { max-width: 52rem; }

/* --- Special: Format Badge --- */

.cba-badge { font-size: 0.75rem; font-weight: 900; padding: 0.125rem 0.5rem; border-radius: 9999px; display: inline-block; white-space: nowrap; }

/* --- Special: Speaker Chip (in agenda) --- */

.cba-speaker-chip {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  background: var(--bg-elevated);
  border: 1px solid var(--border-dim);
  border-radius: 0.75rem;
  padding: 0.625rem 0.75rem;
  transition: border-color 0.2s;
}
.cba-speaker-chip:hover { border-color: #E5016A; }
.cba-speaker-chip img {
  width: 2.5rem; height: 2.5rem;
  border-radius: 9999px;
  object-fit: cover; object-position: top;
  flex-shrink: 0; aspect-ratio: 1/1;
}
.cba-speaker-chip p { margin: 0 !important; }
.cba-speaker-chip .cba-chip-name { font-size: 0.875rem; font-weight: 700; color: var(--text-default) !important; line-height: 1.25; }
.cba-speaker-chip:hover .cba-chip-name { color: #E5016A !important; }
.cba-speaker-chip .cba-chip-company { font-size: 0.75rem; color: var(--text-muted) !important; }
.cba-speaker-chip .cba-chip-logo { margin-top: 0.5rem; background: #fff; border-radius: 0.25rem; padding: 0.25rem 0.5rem; display: inline-flex; align-items: center; }
.cba-speaker-chip .cba-chip-logo img { height: 1.75rem; object-fit: contain; border-radius: 0; }

/* --- Special: Speaker Card --- */

.cba-speaker-card {
  background: var(--bg-card);
  border: 1px solid var(--border-dim);
  border-radius: 0.75rem;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: border-color 0.2s;
}
.cba-speaker-card:hover { border-color: #E5016A; }
.cba-speaker-card .cba-card-img-wrap { position: relative; overflow: hidden; }
.cba-speaker-card .cba-card-img-wrap img { transition: transform 0.3s ease; }
.cba-speaker-card:hover .cba-card-img-wrap img { transform: scale(1.05); }
.cba-speaker-card .cba-card-hover-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,0.4), transparent);
  opacity: 0; transition: opacity 0.2s;
  display: flex; align-items: flex-end; justify-content: center; padding-bottom: 0.75rem;
}
.cba-speaker-card:hover .cba-card-hover-overlay { opacity: 1; }
.cba-speaker-card .cba-card-body { padding: 1rem; display: flex; flex-direction: column; flex: 1; }
.cba-speaker-card .cba-card-body h3 { font-size: 0.875rem !important; font-weight: 700 !important; margin: 0 0 0.125rem !important; line-height: 1.3 !important; color: var(--text-default) !important; }
.cba-speaker-card .cba-card-body p { margin: 0 !important; }
.cba-speaker-card .cba-card-logo-box {
  background: #fff; border-radius: 0.5rem;
  padding: 0.5rem 0.75rem;
  display: flex; align-items: center; justify-content: center;
  height: 3rem; width: 100%;
  margin-top: 0.5rem;
}
.cba-speaker-card .cba-card-logo-box img { max-height: 2rem; max-width: 120px; width: auto; object-fit: contain; }

/* --- Special: Mystery Card --- */

.cba-mystery-card {
  background: var(--bg-card);
  border: 1px dashed var(--border-subtle);
  border-radius: 0.75rem;
  overflow: hidden;
}
.cba-mystery-card .cba-mystery-bg {
  width: 100%; aspect-ratio: 3/4;
  background: linear-gradient(to bottom, var(--bg-elevated), var(--bg-card));
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  position: relative;
}
.cba-mystery-card .cba-mystery-q { font-size: 2.25rem; font-weight: 900; color: #E5016A; position: relative; z-index: 1; }
.cba-mystery-card h3 { font-size: 0.875rem !important; font-weight: 700 !important; margin: 0 0 0.125rem !important; line-height: 1.3 !important; }
.cba-mystery-card p { margin: 0 !important; }
.cba-mystery-card .cba-mystery-badge {
  position: absolute; top: 0.5rem; left: 0.5rem;
  font-size: 0.625rem; font-weight: 900; text-transform: uppercase; letter-spacing: 0.1em;
  background: rgba(229,1,106,0.2); color: #E5016A; border: 1px solid rgba(229,1,106,0.3);
  padding: 0.125rem 0.5rem; border-radius: 9999px;
}

/* --- Special: Partner Card --- */

.cba-partner-card {
  border-radius: 0.75rem;
  overflow: hidden;
  transition: border-color 0.2s;
  display: block;
}
.cba-partner-card:hover { border-color: #E5016A !important; }
.cba-partner-card .cba-partner-logo-box {
  background: #fff; padding: 2rem;
  display: flex; align-items: center; justify-content: center;
  height: 7rem;
}
.cba-partner-card .cba-partner-logo-box img { max-height: 3rem; max-width: 180px; object-fit: contain; }
.cba-partner-card { display: flex; flex-direction: column; }
.cba-partner-card .cba-partner-info { background: var(--bg-card); padding: 1.25rem; flex: 1; }
.cba-partner-card .cba-partner-name { font-weight: 700; font-size: 0.875rem; color: var(--text-default); margin-bottom: 0.25rem; transition: color 0.2s; }
.cba-partner-card:hover .cba-partner-name { color: #E5016A; }
.cba-partner-card .cba-partner-desc { font-size: 0.75rem; color: var(--text-muted); line-height: 1.625; }
.cba-partner-card .cba-partner-cta {
  display: inline-block; margin-top: 0.75rem; cursor: pointer;
  font-size: 0.75rem; font-weight: 700; color: #E5016A !important; text-decoration: none; transition: opacity 0.2s;
}
.cba-partner-card .cba-partner-cta:hover { opacity: 0.8; }

/* --- Special: Testimonial Card --- */

.cba-testimonial-card {
  background: var(--bg-card);
  border: 1px solid var(--border-dim);
  border-radius: 0.75rem;
  padding: 1.5rem;
  display: flex; flex-direction: column;
}
.cba-testimonial-card .cba-quote-icon { width: 1.5rem; height: 1.5rem; color: #E5016A; opacity: 0.6; margin-bottom: 1rem; flex-shrink: 0; }
.cba-testimonial-card .cba-quote-text { font-size: 0.875rem; color: var(--text-default); line-height: 1.625; flex: 1; margin-bottom: 1.25rem; }
.cba-testimonial-card .cba-quote-author { display: flex; align-items: center; gap: 0.75rem; }
.cba-testimonial-card .cba-quote-avatar {
  width: 2.25rem; height: 2.25rem; border-radius: 9999px;
  background: var(--bg-elevated); border: 1px solid var(--border-dim);
  display: flex; align-items: center; justify-content: center;
  font-size: 0.75rem; font-weight: 900; color: #E5016A; flex-shrink: 0;
}
.cba-testimonial-card .cba-quote-name { font-size: 0.875rem; font-weight: 700; color: var(--text-default); }
.cba-testimonial-card .cba-quote-role { font-size: 0.75rem; color: var(--text-muted); }

/* --- Slider Controls --- */

.cba-slider-dot {
  width: 0.5rem; height: 0.5rem; border-radius: 9999px;
  background: var(--bg-elevated); border: none; cursor: pointer;
  transition: background 0.2s;
}
.cba-slider-dot.active { background: #E5016A; }
.cba-slider-arrow {
  width: 2.25rem; height: 2.25rem; border-radius: 9999px;
  border: 1px solid var(--border-dim); background: none;
  display: flex; align-items: center; justify-content: center;
  color: var(--text-muted); cursor: pointer; transition: all 0.2s;
}
.cba-slider-arrow:hover { border-color: #E5016A; color: #E5016A; }
.cba-slider-arrow svg { width: 1rem; height: 1rem; }

/* --- Tab Buttons (Agenda) --- */

.cba-tab {
  flex: 1; padding: 0.75rem 1rem;
  font-size: 0.875rem; font-weight: 700;
  border: 1px solid var(--border-dim);
  cursor: pointer; transition: all 0.2s;
  background: var(--bg-card); color: var(--text-muted);
}
.cba-tab:first-child { border-radius: 0.5rem 0 0 0.5rem; }
.cba-tab:last-child  { border-radius: 0 0.5rem 0.5rem 0; border-left: 0; }
.cba-tab.active {
  background: var(--bg-elevated); color: var(--text-default);
  border-color: #E5016A;
}

/* --- Tag pills --- */

.cba-tag {
  font-size: 0.6875rem; padding: 0.0625rem 0.375rem;
  border-radius: 9999px;
  background: var(--bg-elevated); border: 1px solid var(--border-dim);
  color: var(--text-dim); display: inline-block; line-height: 1.4;
}

/* --- Agenda Space --- */

.cba-agenda-items { display: flex; flex-direction: column; gap: 0.75rem; }
.cba-agenda-items .cba-speaker-chips { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 0.5rem; }
