/*
 Theme Name:   Hello Elementor VBB Child
 Theme URI:    https://vbb-so.ch
 Description:  Child Theme für Hello Elementor – Verband Berufsbildung Kanton Solothurn
 Author:       VBB Solothurn
 Author URI:   https://vbb-so.ch
 Template:     hello-elementor
 Version:      1.0.0
 License:      GNU General Public License v2 or later
 License URI:  https://www.gnu.org/licenses/gpl-2.0.html
 Text Domain:  hello-elementor-vbb-child
*/

/* ═══════════════════════════════════════════════════════════════
   VBB SOLOTHURN — DESIGN TOKENS
   ═══════════════════════════════════════════════════════════════ */
:root {
  /* ── Primärfarben ── */
  --vbb-primary:        #BF1A2F;   /* Solothurn-Rot (Logo V) */
  --vbb-primary-light:  #F8E8EB;   /* Roter Hauch für Badges/Backgrounds */
  --vbb-primary-dark:   #8A0E1E;   /* Hover-States */

  /* ── Sekundärfarbe ── */
  --vbb-secondary:      #1C1C1E;   /* Fast-Schwarz (Logo BB) */

  /* ── Gold (nur Gold-Partner-Bereich) ── */
  --vbb-gold:           #C89030;
  --vbb-gold-light:     #FDF6E7;

  /* ── Neutrals ── */
  --vbb-white:          #FFFFFF;
  --vbb-n50:            #FAFAFA;
  --vbb-n100:           #F4F4F5;
  --vbb-n200:           #E4E4E7;
  --vbb-n300:           #D1D1D6;
  --vbb-n500:           #71717A;   /* Sub-Text, Metadaten */
  --vbb-n700:           #3F3F46;   /* Body-Text */
  --vbb-n900:           #18181B;   /* Headlines */

  /* ── Typografie ── */
  --vbb-font-display:   'Plus Jakarta Sans', sans-serif;
  --vbb-font-body:      'Inter', sans-serif;

  /* ── Schriftgrössen ── */
  --vbb-fz-xs:    0.75rem;    /* 12px */
  --vbb-fz-sm:    0.875rem;   /* 14px */
  --vbb-fz-base:  1rem;       /* 16px */
  --vbb-fz-lg:    1.125rem;   /* 18px */
  --vbb-fz-xl:    1.25rem;    /* 20px */
  --vbb-fz-2xl:   1.5rem;     /* 24px */
  --vbb-fz-3xl:   1.875rem;   /* 30px */
  --vbb-fz-4xl:   2.25rem;    /* 36px */
  --vbb-fz-5xl:   3rem;       /* 48px */

  /* ── Spacing (8px-Raster) ── */
  --vbb-sp-1:   0.25rem;   /* 4px  */
  --vbb-sp-2:   0.5rem;    /* 8px  */
  --vbb-sp-3:   0.75rem;   /* 12px */
  --vbb-sp-4:   1rem;      /* 16px */
  --vbb-sp-5:   1.25rem;   /* 20px */
  --vbb-sp-6:   1.5rem;    /* 24px */
  --vbb-sp-8:   2rem;      /* 32px */
  --vbb-sp-10:  2.5rem;    /* 40px */
  --vbb-sp-12:  3rem;      /* 48px */
  --vbb-sp-16:  4rem;      /* 64px */
  --vbb-sp-20:  5rem;      /* 80px */
  --vbb-sp-24:  6rem;      /* 96px */

  /* ── Border Radius ── */
  --vbb-radius-sm:    4px;
  --vbb-radius-md:    8px;
  --vbb-radius-lg:    16px;
  --vbb-radius-xl:    24px;
  --vbb-radius-full:  9999px;

  /* ── Shadows ── */
  --vbb-shadow-sm: 0 1px 3px rgba(0,0,0,0.07);
  --vbb-shadow-md: 0 4px 16px rgba(0,0,0,0.09);
  --vbb-shadow-lg: 0 8px 32px rgba(0,0,0,0.12);

  /* ── Elementor Global Color Overrides ── */
  --e-global-color-primary:   var(--vbb-primary);
  --e-global-color-secondary: var(--vbb-secondary);
  --e-global-color-text:      var(--vbb-n900);
  --e-global-color-accent:    var(--vbb-gold);

  /* ── Elementor Global Font Overrides ── */
  --e-global-typography-primary-font-family:   'Plus Jakarta Sans';
  --e-global-typography-primary-font-weight:   800;
  --e-global-typography-secondary-font-family: 'Plus Jakarta Sans';
  --e-global-typography-secondary-font-weight: 700;
  --e-global-typography-text-font-family:      'Inter';
  --e-global-typography-text-font-weight:      400;
  --e-global-typography-accent-font-family:    'Plus Jakarta Sans';
  --e-global-typography-accent-font-weight:    600;
}

/* ═══════════════════════════════════════════════════════════════
   BASIS-RESET & BODY
   ═══════════════════════════════════════════════════════════════ */
*, *::before, *::after { box-sizing: border-box; }

body {
  font-family: var(--vbb-font-body);
  font-size: var(--vbb-fz-base);
  color: var(--vbb-n900);
  background-color: var(--vbb-white);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--vbb-font-display);
  font-weight: 700;
  line-height: 1.12;
  color: var(--vbb-n900);
}

a {
  color: var(--vbb-primary);
  transition: color 0.2s;
}
a:hover { color: var(--vbb-primary-dark); }

/* ═══════════════════════════════════════════════════════════════
   HELLO ELEMENTOR OVERRIDES
   ═══════════════════════════════════════════════════════════════ */

/* Container max-width */
.elementor-section.elementor-section-boxed > .elementor-container {
  max-width: 1200px;
}

/* Header */
.site-header { border-bottom: 1px solid var(--vbb-n200); }

/* Smooth scroll */
html { scroll-behavior: smooth; }

/* ═══════════════════════════════════════════════════════════════
   ELEMENTOR BUTTON OVERRIDES
   ═══════════════════════════════════════════════════════════════ */
.elementor-button.elementor-button-primary,
.elementor-widget-button .elementor-button {
  border-radius: var(--vbb-radius-full) !important;
  font-family: var(--vbb-font-display);
  font-weight: 600;
  transition: background 0.2s, transform 0.15s !important;
}
.elementor-button.elementor-button-primary:hover {
  transform: translateY(-1px);
}

/* ═══════════════════════════════════════════════════════════════
   UTILITY KLASSEN (für Elementor HTML-Widget nutzbar)
   ═══════════════════════════════════════════════════════════════ */

/* Tags / Pills */
.vbb-tag {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 3px 10px;
  border-radius: var(--vbb-radius-full);
  font-size: var(--vbb-fz-xs);
  font-weight: 700;
  font-family: var(--vbb-font-display);
}
.vbb-tag--primary { background: var(--vbb-primary-light); color: var(--vbb-primary); }
.vbb-tag--neutral { background: var(--vbb-n100); color: var(--vbb-n700); }
.vbb-tag--gold    { background: var(--vbb-gold-light); color: var(--vbb-gold); }

/* Section Eyebrow */
.vbb-eyebrow {
  display: inline-flex; align-items: center; gap: 7px;
  font-size: var(--vbb-fz-xs);
  font-weight: 700;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: var(--vbb-primary);
  margin-bottom: var(--vbb-sp-3);
}

/* ═══════════════════════════════════════════════════════════════
   INFO-BAR (oben, Primärfarbe)
   ═══════════════════════════════════════════════════════════════ */
.vbb-info-bar {
  background: var(--vbb-primary);
  padding: 8px 0;
  font-size: var(--vbb-fz-xs);
  font-weight: 500;
  color: rgba(255,255,255,0.88);
}
.vbb-info-bar a { color: #fff; font-weight: 700; }

/* ═══════════════════════════════════════════════════════════════
   HERO (Split-Layout)
   ═══════════════════════════════════════════════════════════════ */
.vbb-hero {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 580px;
}
.vbb-hero__content {
  background: var(--vbb-n50);
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: var(--vbb-sp-16) var(--vbb-sp-12);
}
.vbb-hero__photo { position: relative; overflow: hidden; }
.vbb-hero__photo img { width: 100%; height: 100%; object-fit: cover; }

.vbb-hero__title {
  font-size: clamp(2.2rem, 3.6vw, 3.4rem);
  font-weight: 800;
  color: var(--vbb-n900);
  line-height: 1.07;
  margin-bottom: var(--vbb-sp-6);
}
.vbb-hero__title em { color: var(--vbb-primary); font-style: normal; }

.vbb-hero__chip {
  position: absolute;
  bottom: 24px; left: 24px;
  background: rgba(255,255,255,0.96);
  backdrop-filter: blur(8px);
  border-radius: var(--vbb-radius-md);
  padding: 10px 16px;
  display: flex; align-items: center; gap: 10px;
  font-size: var(--vbb-fz-xs); font-weight: 600;
  color: var(--vbb-n700);
  box-shadow: var(--vbb-shadow-md);
}

/* ═══════════════════════════════════════════════════════════════
   AGENDA (Listenansicht)
   ═══════════════════════════════════════════════════════════════ */
.vbb-agenda-list {
  border: 1px solid var(--vbb-n200);
  border-radius: var(--vbb-radius-lg);
  overflow: hidden;
  background: var(--vbb-white);
}
.vbb-agenda-item {
  display: grid;
  grid-template-columns: 72px 1fr auto;
  align-items: center;
  gap: 24px;
  padding: 20px 24px;
  border-bottom: 1px solid var(--vbb-n100);
  transition: background 0.15s;
}
.vbb-agenda-item:last-child { border-bottom: none; }
.vbb-agenda-item:hover { background: var(--vbb-n50); }
.vbb-agenda-date {
  text-align: center;
  background: var(--vbb-n100);
  border-radius: var(--vbb-radius-md);
  padding: 8px;
}
.vbb-agenda-day {
  font-family: var(--vbb-font-display);
  font-size: var(--vbb-fz-2xl);
  font-weight: 800;
  color: var(--vbb-primary);
  line-height: 1;
}
.vbb-agenda-month {
  font-size: var(--vbb-fz-xs);
  font-weight: 700;
  color: var(--vbb-n500);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

/* ═══════════════════════════════════════════════════════════════
   GOLD-PARTNER-BAND
   ═══════════════════════════════════════════════════════════════ */
.vbb-gold-band {
  background: var(--vbb-gold-light);
  border-top: 1px solid #e8d4a0;
  border-bottom: 1px solid #e8d4a0;
  padding: 20px 0;
  overflow: hidden;
}
.vbb-gold-label {
  display: flex; align-items: center; justify-content: center; gap: 8px;
  font-size: var(--vbb-fz-xs); font-weight: 700;
  letter-spacing: 1.5px; text-transform: uppercase;
  color: var(--vbb-gold); margin-bottom: 16px;
}
.vbb-gold-track {
  display: flex; gap: 16px;
  width: max-content;
  animation: vbb-marquee 28s linear infinite;
}
.vbb-gold-track:hover { animation-play-state: paused; }
@keyframes vbb-marquee {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}
.vbb-gold-logo {
  display: flex; align-items: center; justify-content: center;
  height: 60px; min-width: 150px; padding: 0 24px;
  background: var(--vbb-white);
  border-radius: var(--vbb-radius-md);
  border: 1px solid rgba(200,144,48,0.2);
  font-family: var(--vbb-font-display); font-weight: 700;
  font-size: var(--vbb-fz-lg); color: var(--vbb-n300);
  transition: color 0.2s, border-color 0.2s, box-shadow 0.2s;
}
.vbb-gold-logo:hover {
  color: var(--vbb-n700);
  border-color: var(--vbb-gold);
  box-shadow: 0 2px 12px rgba(200,144,48,0.18);
}

/* ═══════════════════════════════════════════════════════════════
   NEWS CARDS
   ═══════════════════════════════════════════════════════════════ */
.vbb-news-card {
  border-radius: var(--vbb-radius-lg);
  overflow: hidden;
  border: 1px solid var(--vbb-n200);
  background: var(--vbb-white);
  transition: box-shadow 0.2s, transform 0.2s;
}
.vbb-news-card:hover {
  box-shadow: var(--vbb-shadow-lg);
  transform: translateY(-3px);
}

/* ═══════════════════════════════════════════════════════════════
   STICKY CONTACT BUTTON
   ═══════════════════════════════════════════════════════════════ */
.vbb-sticky {
  position: fixed;
  right: 24px; bottom: 32px;
  z-index: 9999;
  display: flex; flex-direction: column;
  align-items: flex-end; gap: 8px;
}
.vbb-sticky__btn {
  width: 52px; height: 52px;
  border-radius: 50%;
  background: var(--vbb-primary);
  color: #fff; border: none;
  display: flex; align-items: center; justify-content: center;
  font-size: 20px; cursor: pointer;
  box-shadow: 0 4px 20px rgba(191,26,47,0.4);
  transition: background 0.2s, transform 0.15s;
}
.vbb-sticky__btn:hover {
  background: var(--vbb-primary-dark);
  transform: scale(1.07);
}

/* ═══════════════════════════════════════════════════════════════
   RESPONSIVE
   ═══════════════════════════════════════════════════════════════ */
@media (max-width: 1024px) {
  .vbb-hero { grid-template-columns: 1fr; }
  .vbb-hero__photo { min-height: 300px; }
}
@media (max-width: 767px) {
  .vbb-agenda-item { grid-template-columns: 60px 1fr; }
  .vbb-agenda-item .vbb-tag,
  .vbb-agenda-item .vbb-agenda-link { display: none; }
}
