/**
 * EST Calendar - Frontend Styles
 *
 * Architecture: ITCSS (Inverted Triangle CSS)
 * Methodology: BEM (Block Element Modifier)
 *
 * Layers (from least to most specific):
 * 1. Settings   - Variables, config
 * 2. Tools      - Mixins, functions
 * 3. Generic    - Resets, normalizations
 * 4. Elements   - Bare HTML elements
 * 5. Objects    - OOCSS design patterns
 * 6. Components - UI components
 * 7. Utilities  - Helper classes
 */

/* ==========================================================================
   1. SETTINGS
   ========================================================================== */

/**
 * SETTINGS: Global
 * Global settings
 */

html {
    font-size: 100%;
 }

/**
 * SETTINGS: Variables
 * Global variables, config switches
 */

:root {
  /* Colors */
  --est-color-primary: #AE842D;
  --est-color-primary-dark: #966d1a;
  --est-color-primary-light: #f1b63e;

  --est-color-text: #333333;
  --est-color-text-light: #666666;
  --est-color-text-muted: #999999;

  --est-color-bg: #ffffff;
  --est-color-bg-alt: #F3F3F4;
  --est-color-bg-dark: #f1f1f1;

  --est-color-border: #e5e5e5;
  --est-color-border-dark: #cccccc;

  --est-color-success: #28a745;
  --est-color-error: #dc3545;
  --est-color-warning: #ffc107;

  /* Typography */
  --est-font-family: Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
  --est-font-size-base: 1rem;
  --est-font-size-sm: 0.875rem;
  --est-font-size-xs: 0.75rem;
  --est-font-size-lg: 1.125rem;
  --est-font-size-xl: 1.5rem;
  --est-font-size-2xl: 2rem;
  --est-font-size-3xl: 2.5rem;
  --est-font-size-4xl: 3rem;
  --est-font-size-5xl: 3.5rem;

  --est-font-weight-light: 300;
  --est-font-weight-normal: 400;
  --est-font-weight-medium: 500;
  --est-font-weight-semibold: 600;
  --est-font-weight-bold: 700;

  --est-line-height-tight: 1.2;
  --est-line-height-base: 1.5;
  --est-line-height-loose: 1.7;

  /* Spacing */
  --est-spacing-xs: 0.25rem;
  --est-spacing-sm: 0.5rem;
  --est-spacing-md: 1rem;
  --est-spacing-lg: 1.5rem;
  --est-spacing-xl: 2rem;
  --est-spacing-2xl: 2.625rem;
  --est-spacing-3xl: 3rem;
  --est-spacing-4xl: 4rem;
  --est-spacing-max: 8rem;

  /* Border Radius */
  --est-radius-sm: 0.25rem;
  --est-radius-md: 0.5rem;
  --est-radius-lg: 1rem;
  --est-radius-full: 9999rem;

  /* Shadows */
  --est-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.08);
  --est-shadow-md: 0 2px 20px rgba(0, 0, 0, 0.08);
  --est-shadow-lg: 0 10px 40px rgba(0, 0, 0, 0.12);

  /* Transitions */
  --est-transition-fast: 150ms ease;
  --est-transition-base: 300ms ease;
  --est-transition-slow: 500ms ease;

  /* Z-index */
  --est-z-dropdown: 100;
  --est-z-modal: 99999;
  --est-z-tooltip: 100000;

  /* Breakpoints (for reference, used in custom media) */
  --est-breakpoint-sm: 576px;
  --est-breakpoint-md: 768px;
  --est-breakpoint-lg: 992px;
  --est-breakpoint-xl: 1200px;
}

/**
 * SETTINGS: Custom Media Queries
 * Breakpoint definitions for postcss-custom-media
 * These are resolved at build time and produce no output
 */

/* ==========================================================================
   2. TOOLS
   ========================================================================== */

/**
 * TOOLS: Mixins
 * Globally used mixins and functions
 */

/* ==========================================================================
   Layout Mixins
   ========================================================================== */

/* ==========================================================================
   Typography Mixins
   ========================================================================== */

/* ==========================================================================
   Button Mixins
   ========================================================================== */

/* ==========================================================================
   Form Mixins
   ========================================================================== */

/* ==========================================================================
   Card Mixins
   ========================================================================== */

/* ==========================================================================
   Visibility Mixins
   ========================================================================== */

/* ==========================================================================
   Responsive Mixins
   ========================================================================== */

/* ==========================================================================
   3. GENERIC
   ========================================================================== */

/**
 * GENERIC: Box Sizing
 * Better box model for all elements
 */

.est-event,
.est-event *,
.est-event *::before,
.est-event *::after,
.est-modal,
.est-modal *,
.est-modal *::before,
.est-modal *::after {
  box-sizing: border-box;
}

/* ==========================================================================
   4. ELEMENTS
   ========================================================================== */

/* No bare element styles needed for this plugin */

/* ==========================================================================
   5. OBJECTS
   ========================================================================== */

/**
 * OBJECTS: Container
 * Page-level constraining and wrapping elements
 */

.o-container {
  width: 100%;
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--est-spacing-md);
  padding-right: var(--est-spacing-md);
}

@media (min-width: 768px) {

.o-container {
    padding-left: var(--est-spacing-xl);
    padding-right: var(--est-spacing-xl)
}
  }

.o-container--narrow {
  max-width: 600px;
}

.o-container--wide {
  max-width: 1200px;
}

/* ==========================================================================
   6. COMPONENTS
   ========================================================================== */

/**
 * COMPONENTS: Event
 * Event single page component
 */

.est-event {
  font-family: var(--est-font-family);
  background: #F3F3F4;
  padding: var(--est-spacing-xl) var(--est-spacing-md);
  max-width: 100%;
  padding-top:120px;
}

/* Container */

.est-event__container {
    background: var(--est-color-bg);
    border-radius: var(--est-radius-lg);
    box-shadow: var(--est-shadow-md);
    padding: var(--est-spacing-xl) var(--est-spacing-4xl);
    max-width: 900px;
    margin: var(--est-spacing-3xl) auto;
  }

/* Back button */

.est-event__back {
    margin-bottom: var(--est-spacing-md);
  }

.est-event__back-btn {
    display: inline-flex;
    align-items: center;
    gap: var(--est-spacing-xs);
    font-size: 14px;
    font-weight: 500;
    color: var(--est-color-primary, #555);
    text-decoration: none;
    transition: opacity 0.2s ease;
  }

.est-event__back-btn svg {
      flex-shrink: 0;
    }

.est-event__back-btn:hover {
      opacity: 0.7;
    }

/* Header */

.est-event__header {
    display: flex;
    gap: var(--est-spacing-lg);
    align-items: flex-start;
  }

@media (max-width: 767px) {

.est-event__header {
      flex-direction: column;
      gap: var(--est-spacing-md)
  }
    }

/* Date */

.est-event__date {
    display: flex;
    flex-direction: column;
    align-items: center;
    min-width: 80px;
    padding-right: var(--est-spacing-lg);
    border-right: 1px solid var(--est-color-border);
  }

@media (max-width: 767px) {

.est-event__date {
      flex-direction: row;
      gap: var(--est-spacing-sm);
      border-right: none;
      border-bottom: 1px solid var(--est-color-border);
      padding-right: 0;
      padding-bottom: var(--est-spacing-md);
      width: 100%;
      justify-content: flex-start
  }
    }

.est-event__day {
    font-size: var(--est-font-size-3xl);
    font-weight: var(--est-font-weight-light);
    color: var(--est-color-primary);
    line-height: 1;
  }

@media (max-width: 767px) {

.est-event__day {
      font-size: 36px
  }
    }

.est-event__month {
    font-size: var(--est-font-size-sm);
    font-weight: var(--est-font-weight-semibold);
    color: var(--est-color-primary);
    text-transform: uppercase;
    letter-spacing: 1px;
  }

@media (max-width: 767px) {

.est-event__month {
      font-size: var(--est-font-size-base);
      align-self: flex-end;
      padding-bottom: var(--est-spacing-xs)
  }
    }

/* Info */

.est-event__info {
    flex: 1;
  }

/* Insignia */

.est-event__badges{
    display: flex;
    margin-bottom: var(--est-spacing-md);
    align-items: center;
    flex-wrap: wrap;
  }

.est-event__badge {
    display: inline-flex;
    align-items: center;
    gap: var(--est-spacing-sm);
    font-size: 11px;
    font-weight: var(--est-font-weight-semibold);
    color: var(--est-color-text);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    padding: 6px 0;
    padding-right: 12px;
    border-radius: var(--est-radius-sm);
  }

.est-event__badge--gold img{
        height: 50px;
      }

.est-event__badge--mep {
      margin-left: var(--est-spacing-sm);
    }

@media (max-width: 767px) {

.est-event__badge--mep {
        margin-left: 0
    }
      }

.est-event__badge svg {
      color: var(--est-color-primary);
    }

@media (max-width: 767px) {

.est-event__badge {
      display: flex;
      margin-bottom: var(--est-spacing-sm)
  }
    }

/* Logo */

.est-event__logo {
    margin-bottom: var(--est-spacing-md);
  }

.est-event__logo img {
      max-height: 50px;
      width: auto;
    }

/* Title */

.est-event__title {
    font-family: var(--est-font-family);
    font-weight: var(--est-font-weight-normal);
    line-height: var(--est-line-height-tight);
    color: var(--est-color-primary);
    font-size: var(--est-font-size-2xl);
    margin: 0 0 var(--est-spacing-md) 0;
  }

@media (max-width: 767px) {

.est-event__title {
      font-size: var(--est-font-size-xl)
  }
    }

/* Speakers */

.est-event__speakers {
    margin-bottom: var(--est-spacing-md);
  }

.est-event__speaker {
    font-size: var(--est-font-size-base);
    color: var(--est-color-text);
    margin: 0 0 var(--est-spacing-xs) 0;
    line-height: var(--est-line-height-base);
  }

/* Meta */

.est-event__meta {
    font-size: var(--est-font-size-sm);
    color: var(--est-color-text-light);
    margin-bottom: var(--est-spacing-sm);
  }

.est-event__meta-label {
    color: var(--est-color-text);
  }

/* Divider */

.est-event__divider {
    border: none;
    border-top: 1px solid var(--est-color-border);
    margin: var(--est-spacing-xl) 0;
  }

/* Description */

.est-event__description {
    margin-top: var(--est-spacing-lg);
    padding-top: var(--est-spacing-lg);
    border-top: 1px solid var(--est-color-border);
    font-size: var(--est-font-size-base);
    line-height: var(--est-line-height-loose);
    color: var(--est-color-text);
  }

.est-event__description p {
      margin-bottom: var(--est-spacing-md);
    }

/* Location */

.est-event__location {
    margin-top: var(--est-spacing-lg);
    padding-top: var(--est-spacing-lg);
    border-top: 1px solid var(--est-color-border);
  }

.est-event__location-title {
    font-size: var(--est-font-size-lg);
    color: var(--est-color-primary);
    margin: 0 0 var(--est-spacing-md) 0;
  }

.est-event__location-address {
    font-size: var(--est-font-size-sm);
    color: var(--est-color-text-light);
    margin-bottom: var(--est-spacing-md);
  }

.est-event__map {
    width: 100%;
    height: 300px;
    border-radius: var(--est-radius-md);
    border: 1px solid var(--est-color-border);
  }

@media (max-width: 767px) {

.est-event__map {
      height: 250px
  }
    }

.est-event__map .leaflet-control-container .leaflet-control {
      margin: 10px;
    }

.est-event__map .leaflet-popup-content-wrapper {
      border-radius: var(--est-radius-sm);
    }

/* Location Actions */

.est-event__location-actions {
    margin-top: var(--est-spacing-md);
  }

.est-event__location-share {
    display: inline-flex;
    align-items: center;
    gap: var(--est-spacing-xs);
    font-size: var(--est-font-size-sm);
    font-weight: var(--est-font-weight-medium);
    color: var(--est-color-primary);
    text-decoration: none;
    transition: color var(--est-transition-fast);
  }

.est-event__location-share:hover {
      color: var(--est-color-primary-dark);
    }

/* Register */

.est-event__register {
    text-align: center;
  }

/* Theme specificity overrides */

.est-event h1.est-event__title {
  font-family: var(--est-font-family);
  font-weight: var(--est-font-weight-normal);
  line-height: var(--est-line-height-tight);
  color: var(--est-color-primary);
  font-size: var(--est-font-size-2xl);
  margin: 0 0 var(--est-spacing-md) 0;
}

@media (max-width: 767px) {

.est-event h1.est-event__title {
    font-size: var(--est-font-size-xl)
}
  }

/**
 * COMPONENTS: Form
 * Shared registration form styles used across single event page and widget
 */

/* Register Button */

.est-event__register-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: var(--est-spacing-md) var(--est-spacing-xl);
    font-family: var(--est-font-family);
    font-size: var(--est-font-size-sm);
    font-weight: var(--est-font-weight-semibold);
    text-transform: uppercase;
    letter-spacing: 1px;
    text-decoration: none;
    border-radius: var(--est-radius-sm);
    cursor: pointer;
    transition: all var(--est-transition-base);
  }

.est-event__register-btn:disabled {
    opacity: 0.6;
    cursor: not-allowed;
  }

.est-event__register-btn {
    background: transparent;
    color: var(--est-color-primary);
    border: 2px solid var(--est-color-primary);
}

.est-event__register-btn:hover:not(:disabled) {
    background: var(--est-color-primary);
    color: var(--est-color-bg);
  }

/* Form Section */

.est-event__form-section {
    margin-top: var(--est-spacing-lg);
    text-align: center;
  }

.est-event__form-title {
    font-family: var(--est-font-family);
    font-weight: var(--est-font-weight-normal);
    line-height: var(--est-line-height-tight);
    color: var(--est-color-primary);
    font-size: var(--est-font-size-2xl) !important;
    color:var(--est-color-primary) !important;
    margin: 0 0 var(--est-spacing-sm) 0;
  }

@media (max-width: 767px){

.est-event__form-title {
      font-size: var(--est-font-size-xl) !important
  }
    }

.est-event__form-subtitle {
    font-size: var(--est-font-size-lg);
    color: var(--est-color-text-light);
    line-height: var(--est-line-height-loose);
    margin: 0 0 var(--est-spacing-xl) 0;
  }

@media (max-width: 767px){

.est-event__form-subtitle {
      font-size: var(--est-font-size-sm)
  }
    }

.est-event__form-remaining {
    font-size: var(--est-font-size-sm);
    color: var(--est-color-text-muted);
    margin-bottom: var(--est-spacing-md);
  }

.est-event__form-full {
    font-size: var(--est-font-size-sm);
    margin: var(--est-spacing-md) 0;
    background-color: #f3e6b2;
    padding: 5px;
    border-radius: 10px;
    color: #d8b10c;
  }

/* Form */

.est-event__form {
    text-align: left;
    max-width: 500px;
    margin: 0 auto;
  }

.est-event__form-field {
    margin-bottom: var(--est-spacing-md);
  }

.est-event__form-field label {
      display: block;
      font-size: var(--est-font-size-sm);
      font-weight: var(--est-font-weight-medium);
      color: var(--est-color-text);
      margin-bottom: var(--est-spacing-xs);
    }

.est-event__form-field input[type="text"],
    .est-event__form-field input[type="email"],
    .est-event__form-field textarea {
      width: 100%;
      padding: var(--est-spacing-sm) 0;
      font-family: var(--est-font-family);
      font-size: var(--est-font-size-sm);
      background: transparent;
      border: none;
      border-bottom: 2px solid var(--est-color-border);
      outline: none;
      transition: border-color var(--est-transition-base);
    }

.est-event__form-field input[type="text"]:focus, .est-event__form-field input[type="email"]:focus, .est-event__form-field textarea:focus {
    border-bottom-color: var(--est-color-primary);
  }

.est-event__form-field input[type="text"]::-moz-placeholder, .est-event__form-field input[type="email"]::-moz-placeholder, .est-event__form-field textarea::-moz-placeholder {
    color: var(--est-color-text-muted);
  }

.est-event__form-field input[type="text"]::placeholder, .est-event__form-field input[type="email"]::placeholder, .est-event__form-field textarea::placeholder {
    color: var(--est-color-text-muted);
  }

.est-event__form-field select {
      width: 100%;
      padding: var(--est-spacing-sm) 0;
      font-family: var(--est-font-family);
      font-size: var(--est-font-size-sm);
      background: transparent;
      border: none;
      border-bottom: 2px solid var(--est-color-border);
      outline: none;
      transition: border-color var(--est-transition-base);
    }

.est-event__form-field select:focus {
    border-bottom-color: var(--est-color-primary);
  }

.est-event__form-field select::-moz-placeholder {
    color: var(--est-color-text-muted);
  }

.est-event__form-field select::placeholder {
    color: var(--est-color-text-muted);
  }

.est-event__form-field select {
      -webkit-appearance: none;
         -moz-appearance: none;
              appearance: none;
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
      background-repeat: no-repeat;
      background-position: right 0 center;
      padding-right: var(--est-spacing-lg);
      cursor: pointer;
}

.est-event__form-field textarea {
      resize: vertical;
      min-height: 80px;
      border: 1px solid color-mix(in srgb, var(--est-color-border) 50%, transparent);
      border-bottom: 2px solid var(--est-color-border);
      padding: var(--est-spacing-sm);
    }

.est-event__form-field textarea:focus {
        border-color: var(--est-color-primary);
      }

.est-event__form-submit {
    text-align: center;
    margin-top: var(--est-spacing-xl);
  }

.est-event__form-required-text{
    color: var(--est-color-text-light);
    font-size:12px;
    display:block;
    text-align:center;
    margin-top:1rem;
  }

.est-event__form-message {
    margin-top: var(--est-spacing-md);
    padding: var(--est-spacing-sm) var(--est-spacing-md);
    border-radius: var(--est-radius-sm);
    font-size: var(--est-font-size-sm);
    text-align: center;
  }

.est-event__form-message--success {
      background: color-mix(in srgb, var(--est-color-success) 10%, transparent);
      color: var(--est-color-success);
    }

.est-event__form-message--error {
      background: color-mix(in srgb, var(--est-color-error) 10%, transparent);
      color: var(--est-color-error);
    }

/**
 * COMPONENTS: Modal
 * Registration modal component
 */

.est-modal {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.5);
  z-index: var(--est-z-modal);
  padding: var(--est-spacing-md);
}

/* Modifier: Active state */

.est-modal--active {
    display: flex;
    align-items: center;
    justify-content: center;
  }

/* Content */

.est-modal__content {
    background: var(--est-color-bg);
    border-radius: var(--est-radius-lg);
    padding: var(--est-spacing-2xl) var(--est-spacing-xl);
    max-width: 500px;
    width: 100%;
    max-height: 90vh;
    overflow-y: auto;
    position: relative;
    text-align: center;
  }

@media (max-width: 767px) {

.est-modal__content {
      padding: var(--est-spacing-lg) var(--est-spacing-md)
  }
    }

/* Close button */

.est-modal__close {
    position: absolute;
    top: var(--est-spacing-md);
    right: var(--est-spacing-md);
    background: none;
    border: none;
    font-size: 28px;
    color: var(--est-color-text-light);
    cursor: pointer;
    line-height: 1;
    padding: 0;
    width: 30px;
    height: 30px;
    transition: color var(--est-transition-fast);
  }

.est-modal__close:hover {
      color: var(--est-color-text);
    }

/* Title */

.est-modal__title {
    font-family: var(--est-font-family);
    font-weight: var(--est-font-weight-normal);
    line-height: var(--est-line-height-tight);
    color: var(--est-color-primary);
    font-size: 28px;
    margin: 0 0 var(--est-spacing-md) 0;
  }

/* Subtitle */

.est-modal__subtitle {
    font-size: var(--est-font-size-sm);
    color: var(--est-color-text-light);
    margin: 0 0 var(--est-spacing-lg) 0;
    line-height: var(--est-line-height-loose);
  }

/* Form container */

.est-modal__form {
    text-align: left;
  }

/* Form inputs */

.est-modal__form input[type="text"],
    .est-modal__form input[type="email"],
    .est-modal__form input[type="tel"],
    .est-modal__form select,
    .est-modal__form textarea {
      width: 100%;
      padding: var(--est-spacing-sm) 0;
      font-family: var(--est-font-family);
      font-size: var(--est-font-size-sm);
      background: transparent;
      border: none;
      border-bottom: 2px solid var(--est-color-border);
      outline: none;
      transition: border-color var(--est-transition-base);
    }

.est-modal__form input[type="text"]:focus, .est-modal__form input[type="email"]:focus, .est-modal__form input[type="tel"]:focus, .est-modal__form select:focus, .est-modal__form textarea:focus {
    border-bottom-color: var(--est-color-primary);
  }

.est-modal__form input[type="text"]::-moz-placeholder, .est-modal__form input[type="email"]::-moz-placeholder, .est-modal__form input[type="tel"]::-moz-placeholder, .est-modal__form select::-moz-placeholder, .est-modal__form textarea::-moz-placeholder {
    color: var(--est-color-text-muted);
  }

.est-modal__form input[type="text"]::placeholder, .est-modal__form input[type="email"]::placeholder, .est-modal__form input[type="tel"]::placeholder, .est-modal__form select::placeholder, .est-modal__form textarea::placeholder {
    color: var(--est-color-text-muted);
  }

.est-modal__form input[type="text"],
    .est-modal__form input[type="email"],
    .est-modal__form input[type="tel"],
    .est-modal__form select,
    .est-modal__form textarea {
      margin-bottom: var(--est-spacing-md);
}

.est-modal__form label {
      display: block;
      font-size: var(--est-font-size-sm);
      font-weight: var(--est-font-weight-medium);
      color: var(--est-color-text);
      margin-bottom: var(--est-spacing-xs);
    }

/* Submit button */

.est-modal__form input[type="submit"],
    .est-modal__form button[type="submit"] {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      padding: var(--est-spacing-md) var(--est-spacing-xl);
      font-family: var(--est-font-family);
      font-size: var(--est-font-size-sm);
      font-weight: var(--est-font-weight-semibold);
      text-transform: uppercase;
      letter-spacing: 1px;
      text-decoration: none;
      border-radius: var(--est-radius-sm);
      cursor: pointer;
      transition: all var(--est-transition-base);
    }

.est-modal__form input[type="submit"]:disabled, .est-modal__form button[type="submit"]:disabled {
    opacity: 0.6;
    cursor: not-allowed;
  }

.est-modal__form input[type="submit"],
    .est-modal__form button[type="submit"] {
      background: transparent;
      color: var(--est-color-primary);
      border: 2px solid var(--est-color-primary);
}

.est-modal__form input[type="submit"]:hover:not(:disabled), .est-modal__form button[type="submit"]:hover:not(:disabled) {
    background: var(--est-color-primary);
    color: var(--est-color-bg);
  }

.est-modal__form input[type="submit"],
    .est-modal__form button[type="submit"] {
      display: block;
      width: 100%;
      margin-top: var(--est-spacing-md);
}

/* Close link */

.est-modal__close-link {
    display: block;
    background: none;
    border: none;
    color: var(--est-color-primary);
    font-size: var(--est-font-size-sm);
    font-weight: var(--est-font-weight-medium);
    cursor: pointer;
    margin-top: var(--est-spacing-md);
    text-decoration: none;
    transition: -webkit-text-decoration var(--est-transition-fast);
    transition: text-decoration var(--est-transition-fast);
    transition: text-decoration var(--est-transition-fast), -webkit-text-decoration var(--est-transition-fast);
  }

.est-modal__close-link:hover {
      text-decoration: underline;
    }

/**
 * COMPONENTS: Events List Widget
 * Events listing widget for Elementor
 */

.est-events-list {
  font-family: var(--est-font-family);
  background: var(--est-color-bg-alt);
  padding:  var(--est-spacing-2xl) var(--est-spacing-max);
  margin: 0;
}

/* Header */

.est-events-list__header {
    margin-bottom: var(--est-spacing-xl);
  }

.est-events-list h2.est-events-list__title {
    font-family: var(--est-font-family);
    font-weight: var(--est-font-weight-normal);
    line-height: var(--est-line-height-tight);
    color: var(--est-color-primary);
    font-size: var(--est-font-size-2xl);
    margin: 0 0 var(--est-spacing-sm) 0;
    color: var(--est-color-text);
  }

.est-events-list__subtitle {
    font-size: var(--est-font-size-base);
    color: var(--est-color-text-light);
    margin: 0;
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
  }

/* Back Button */

.est-events-list a.est-events-list__back-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    color: var(--est-color-primary);
    cursor: pointer;
    margin-bottom: var(--est-spacing-md);
    padding: 0;
    text-decoration: none;
    transition: 0.2s ease;
    font-size: 1rem;
    font-weight: var(--est-font-weight-light)!important;
  }

.est-events-list a.est-events-list__back-btn:hover {
      color:  var(--est-color-primary);
      font-weight: var(--est-font-weight-semibold)!important;
    }

/* Filters */

.est-events-list__filters {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    gap: var(--est-spacing-md);
    margin-bottom: var(--est-spacing-xl);
    border-radius: var(--est-radius-md);
  }

.est-events-list__filters-left{
    display: flex;
    flex-direction: column;
    gap: var(--est-spacing-lg);
    width:992px;
  }

.est-events-list__filters-selects {
    display: flex;
    flex-wrap: wrap;
    gap: var(--est-spacing-md);
    justify-content: left;
    width: 100%;
  }

.est-events-list__filters-checkboxes {
    display: flex;
    flex-wrap: wrap;
    gap: var(--est-spacing-lg);
    justify-content: left;
    width: 100%;
  }

.est-events-list__filter {
    display: flex;
    align-items: center;
    gap: var(--est-spacing-sm);
  }

.est-events-list__filter--dropdown {
      flex-direction: column;
      align-items: flex-start;
      gap: 0;
      flex: 1;
      min-width: 200px;
    }

.est-events-list__filter-label {
    font-size: var(--est-font-size-sm);
    font-weight: var(--est-font-weight-bold);
    color: var(--est-color-text);
    margin-bottom: var(--est-spacing-xs);
    height:32px;
  }

.est-events-list__filter-input-wrap {
    position: relative;
    width: 100%;
    background: var(--est-color-bg);
    border: 1px solid var(--est-color-border);
    padding: var(--est-spacing-sm) var(--est-spacing-md);
    box-sizing: border-box;
    transition: border-color var(--est-transition-fast);
  }

.est-events-list__filter-input-wrap.is-open {
      border-color: var(--est-color-primary);
    }

.est-events-list__filter-input-wrap.is-open .est-events-list__filter-chevron {
        transform: translateY(-50%) rotate(180deg);
        color: var(--est-color-primary);
      }

.est-events-list__filter-input-wrap.is-open .est-events-list__dropdown-value {
        color: var(--est-color-primary);
      }

.est-events-list__filter-input-wrap.is-open .est-events-list__dropdown-menu {
        display: block;
      }

.est-events-list__filter-input-wrap.has-value .est-events-list__dropdown-value {
        color: var(--est-color-primary);
      }

.est-events-list__dropdown-toggle {
    width: 100%;
    padding: 0;
    padding-right: var(--est-spacing-xl);
    border: none;
    font-size: var(--est-font-size-sm);
    font-family: var(--est-font-family);
    background: transparent;
    cursor: pointer;
    color: var(--est-color-text);
    text-align: left;
    display: flex;
    align-items: center;
  }

.est-events-list__dropdown-toggle:focus {
      outline: none;
    }

.est-events-list__dropdown-value {
    flex: 1;
    color: var(--est-color-text-muted);
    font-size: var(--est-font-size-sm);
  }

.est-events-list__dropdown-menu {
    display: none;
    position: absolute;
    top: 100%;
    left: -1px;
    right: -1px;
    background: var(--est-color-bg);
    border: 1px solid var(--est-color-primary);
    border-top: none;
    z-index: 100;
    list-style: none;
    margin: 0;
    padding: 0;
    max-height: 220px;
    overflow-y: auto;
  }

.est-events-list__dropdown-option {
    padding: var(--est-spacing-sm) var(--est-spacing-md);
    font-size: var(--est-font-size-sm);
    cursor: pointer;
    color: var(--est-color-text);
    transition: background-color var(--est-transition-fast), color var(--est-transition-fast);
  }

.est-events-list__dropdown-option:hover {
      background: var(--est-color-bg-alt);
    }

.est-events-list__dropdown-option.is-selected {
      color: var(--est-color-primary);
      font-weight: var(--est-font-weight-medium);
    }

.est-events-list__filter-chevron {
    position: absolute;
    right: var(--est-spacing-md);
    top: 50%;
    transform: translateY(-50%);
    color: var(--est-color-text-muted);
    pointer-events: none;
    transition: transform var(--est-transition-fast), color var(--est-transition-fast);
  }

.est-events-list label.est-events-list__filter-checkbox {
    display: flex;
    align-items: center;
    gap: var(--est-spacing-sm);
    font-size: var(--est-font-size-sm);
    cursor: pointer;
  }

.est-events-list label.est-events-list__filter-checkbox input {
      -moz-appearance: none;
           appearance: none;
      -webkit-appearance: none;
      width: 18px;
      height: 18px;
      min-width: 18px;
      flex-shrink: 0;
      border: 1.5px solid var(--est-color-primary);
      border-radius: 2px;
      background: transparent;
      cursor: pointer;
      position: relative;
      margin: 0;
      transition: border-color var(--est-transition-fast), background-color var(--est-transition-fast);
    }

.est-events-list label.est-events-list__filter-checkbox input:checked {
        border-color: var(--est-color-primary);
        background: var(--est-color-primary);
      }

.est-events-list label.est-events-list__filter-checkbox input:checked::after {
        content: '';
        position: absolute;
        left: 50%;
        top: 50%;
        width: 5px;
        height: 10px;
        border: solid #fff;
        border-width: 0 2px 2px 0;
        transform: translate(-50%,-50%) rotate(45deg);
      }

.est-events-list label.est-events-list__filter-checkbox span {
      color: var(--est-color-text);
    }

.est-events-list label.est-events-list__filter-checkbox img {
      width: auto;
      vertical-align: middle;
    }

.est-events-list label.est-events-list__filter-checkbox--insignia img {
        height: 1.5rem;
      }

.est-events-list label.est-events-list__filter-checkbox--gold img {
        height: 2rem;
      }

.est-events-list__filter-btn {
    padding: var(--est-spacing-sm) var(--est-spacing-lg);
    background: transparent;
    color: var(--est-color-primary);
    border: 1px solid var(--est-color-primary);
    font-size: var(--est-font-size-sm);
    font-weight: var(--est-font-weight-medium);
    cursor: pointer;
    transition: background-color var(--est-transition-fast), transform var(--est-transition-fast);
    text-transform: uppercase;
    margin-top:36px;
    min-width: 124px;
  }

.est-events-list__filter-btn:hover {
      background: var(--est-color-primary-dark);
      color:white;
    }

.est-events-list__filter-btn:active {
      transform: scale(0.98);
    }

/* List */

.est-events-list__grid {
    display: flex;
    flex-direction: column;
    gap: var(--est-spacing-2xl);
  }

/* Card */

.est-events-list__card {
    background: var(--est-color-bg);
    border-radius: var(--est-radius-lg);
    box-shadow: var(--est-shadow-md);
    padding: var(--est-spacing-xl) var(--est-spacing-4xl);
    transition: box-shadow var(--est-transition-base);
  }

.est-events-list__card:hover {
    box-shadow: var(--est-shadow-lg);
  }

.est-events-list__card {
    display: grid;
    grid-template-areas: 'date badges .'
                         'date content register'
                         'form form form';
    grid-template-columns: auto 1fr auto;
    gap: var(--est-spacing-md);
    transition: opacity var(--est-transition-base), transform var(--est-transition-base);
}

.est-events-list__card--hidden {
      display: none;
    }

.est-events-list__card--past{
      opacity:0.5;
      pointer-events:none;
    }

.est-events-list__card-data {
    display: contents;
  }

/* Card Date */

.est-events-list__card-date {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: start;
    min-width: 60px;
    padding: var(--est-spacing-sm);
    border-radius: var(--est-radius-sm);
    grid-area: date;
  }

.est-events-list__card-day {
    font-size: var(--est-font-size-4xl);
    font-weight: var(--est-font-weight-medium);
    color: var(--est-color-primary);
    line-height: 1;
  }

.est-events-list__card-month {
    font-size: var(--est-font-size-xs);
    font-weight: var(--est-font-weight-semibold);
    color: var(--est-color-primary);
    text-transform: uppercase;
    letter-spacing: 0.5px;
  }

/* Card Content */

.est-events-list__card-content {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: var(--est-spacing-sm);
    grid-area: content;
  }

/* Badges */

.est-events-list__card-badges {
    display: flex;
    gap: var(--est-spacing-xs);
    flex-wrap: wrap;
    grid-area: badges;
  }

.est-events-list__badge {
    display: inline-flex;
    padding: 2px 8px;
    font-size: 10px;
    font-weight: var(--est-font-weight-semibold);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border-radius: var(--est-radius-sm);
    justify-content: center;
    align-items: center;
  }

.est-events-list__badge--insignia> img.est-events-list__badge-img--insignia {
        height: 30px;
        width: auto;
      }

.est-events-list__badge--gold> img.est-events-list__badge-img--gold {
        height: 45px;
      }

.est-events-list__badge--mep {
      background: var(--est-color-bg-dark);
      color: var(--est-color-text);
    }

/* Card Title */

.est-events-list h3.est-events-list__card-title {
    margin: 0;
    margin-top: var(--est-spacing-sm);
    line-height: var(--est-line-height-tight);
  }

.est-events-list h3.est-events-list__card-title a {
      font-size: var(--est-font-size-2xl);
      color: var(--est-color-primary);
      text-decoration: none;
      transition: color var(--est-transition-fast);
      font-weight: var(--est-font-weight-medium)!important;
    }

.est-events-list h3.est-events-list__card-title a:hover {
        color: var(--est-color-primary-dark);
      }

/* Card Speakers */

.est-events-list__card-speakers {
    font-size: var(--est-font-size-m);
    color: var(--est-color-text);
    margin-top: var(--est-spacing-xs);
  }

/* Card Location */

.est-events-list__card-location {
    display: flex;
    align-items: center;
    gap: var(--est-spacing-xs);
    font-size: var(--est-font-size-m);
    color: var(--est-color-text-light);
    margin-top: var(--est-spacing-xs);
  }

.est-events-list__card-location svg {
      flex-shrink: 0;
      color: var(--est-color-primary);
    }

/* Card Excerpt */

.est-events-list__card-excerpt {
    font-size: var(--est-font-size-sm);
    color: var(--est-color-text-light);
    line-height: var(--est-line-height-base);
  }

/* Card Language */

.est-events-list__card-language {
    font-size: var(--est-font-size-xs);
    color: var(--est-color-text-muted);
  }

/* Card Link */

.est-events-list__card-link {
    display: inline-flex;
    align-items: center;
    gap: var(--est-spacing-xs);
    font-size: var(--est-font-size-sm);
    font-weight: var(--est-font-weight-medium);
    color: var(--est-color-primary);
    text-decoration: none;
    margin-top: auto;
    padding-top: var(--est-spacing-sm);
    transition: gap var(--est-transition-fast);
  }

.est-events-list__card-link:hover {
      gap: var(--est-spacing-sm);
    }

.est-events-list__card-link svg {
      transition: transform var(--est-transition-fast);
    }

.est-events-list__card-link:hover svg {
      transform: translateX(4px);
    }

/* Card Register Link */

.est-events-list__card-register {
    align-self: center;
    margin-left: auto;
    align-self: flex-end;
    grid-area: register;
  }

.est-events-list__card-register-btn {
    background: none;
    border: none;
    color: var(--est-color-primary);
    font-family: var(--est-font-family);
    font-size: var(--est-font-size-sm);
    font-weight: var(--est-font-weight-light);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    cursor: pointer;
    transition: color var(--est-transition-fast);
    white-space: nowrap;
  }

.est-events-list__card-register-btn:hover {
      color: var(--est-color-primary-dark);
      font-weight: var(--est-font-weight-medium);
    }

.est-events-list__card-register-btn--full {
      color: var(--est-color-text-muted);
      cursor: default;
    }

.est-events-list__card-register-btn--full:hover {
        color: var(--est-color-text-muted);
      }

/* Card Form Panel */

.est-events-list__card-form {
    flex-basis: 100%;
    text-align: center;
    padding: var(--est-spacing-xl) var(--est-spacing-xl) var(--est-spacing-lg);
    position: relative;
    grid-area: form;
  }

.est-events-list hr.est-events-list__card-form-divider {
    border: none;
    border-top: 1px solid var(--est-color-border);
    margin: 0 0 var(--est-spacing-xl) 0;
  }

.est-events-list__card-form-close {
    position: absolute;
    top: var(--est-spacing-2xl);
    right: var(--est-spacing-sm);
    background: none;
    border: none;
    font-size: 24px;
    color: var(--est-color-primary);
    cursor: pointer;
    line-height: 1;
  }

.est-events-list__card-form-close:hover {
      color: var(--est-color-text);
    }

.est-events-list__card-form-title {
    font-family: var(--est-font-family);
    font-weight: var(--est-font-weight-normal);
    line-height: var(--est-line-height-tight);
    color: var(--est-color-primary);
    font-size: var(--est-font-size-2xl) !important;
    color:var(--est-color-primary) !important;
    margin: 0 0 var(--est-spacing-sm) 0;
  }

@media (max-width: 767px){

.est-events-list__card-form-title {
      font-size: var(--est-font-size-xl) !important
  }
    }

.est-events-list__card-form-subtitle {
    font-size: var(--est-font-size-lg);
    color: var(--est-color-text-light);
    line-height: var(--est-line-height-loose);
    margin: 0 0 var(--est-spacing-xl) 0;
  }

@media (max-width: 767px){

.est-events-list__card-form-subtitle {
      font-size: var(--est-font-size-sm)
  }
    }

.est-events-list__card-form-fields {
    text-align: left;
    max-width: 500px;
    margin: 0 auto;
  }

.est-events-list__card-form-full {
    font-size: var(--est-font-size-sm);
    color: var(--est-color-text-light);
    padding: var(--est-spacing-lg) 0;
  }

.est-events-list__card-form-close-link {
    display: inline-block;
    background: none;
    border: none;
    color: var(--est-color-primary);
    font-family: var(--est-font-family);
    font-size: var(--est-font-size-sm);
    font-weight: var(--est-font-weight-medium);
    cursor: pointer;
    margin-top: var(--est-spacing-md);
    text-transform: uppercase;
  }

.est-events-list__card-form-close-link:hover {
      text-decoration: underline;
    }

/* Empty State */

.est-events-list__empty {
    text-align: center;
    padding: var(--est-spacing-2xl);
    color: var(--est-color-text-light);
  }

/* Pagination */

.est-events-list__pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--est-spacing-xs);
    padding-top: var(--est-spacing-2xl);
  }

.est-events-list__page {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 32px;
    height: 32px;
    padding: 0 var(--est-spacing-xs);
    background: none;
    border: none;
    font-family: var(--est-font-family);
    font-size: var(--est-font-size-sm);
    color: var(--est-color-text);
    cursor: pointer;
    transition: color var(--est-transition-fast);
  }

.est-events-list__page:hover:not(.est-events-list__page--disabled):not(.est-events-list__page--active) {
      color: var(--est-color-primary-dark);
      text-decoration: underline;
    }

.est-events-list__page--active {
      font-weight: var(--est-font-weight-bold);
      color: var(--est-color-primary);
      cursor: default;
      text-decoration: underline;
    }

.est-events-list__page--disabled {
      color: var(--est-color-text-muted);
      cursor: default;
      opacity: 0.4;
    }

.est-events-list__page--prev,
    .est-events-list__page--next {
      color: var(--est-color-primary);
    }

.est-events-list__page-ellipsis {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 24px;
    height: 32px;
    font-size: var(--est-font-size-sm);
    color: var(--est-color-text-muted);
    letter-spacing: 2px;
  }

/* Responsive */

@media (max-width: 767px) {
  .est-events-list {
    padding:  var(--est-spacing-md) var(--est-spacing-xl);
  }
    .est-events-list__filters {
      padding: var(--est-spacing-md) 0;
      flex-direction: column;
    }

    .est-events-list__filters-selects {
      flex-direction: column;
    }

    .est-events-list__filters-checkboxes {
      flex-direction: column;
      gap: var(--est-spacing-sm);
    }

    .est-events-list__filter {
      justify-content: flex-start;
      flex-wrap: wrap;
      width: 100%;
    }

    .est-events-list__filter--dropdown {
      width: 100%;
    }

    .est-events-list__filter-btn {
      width: 100%;
      margin-top:0;
    }

    .est-events-list__filters-left {
      width:100%;
    }

    .est-events-list__card {
      display: grid;
      grid-template-columns: 40% 1fr;
      grid-template-rows: 1fr auto;
      grid-template-areas:
        'data content'
        'data register'
        'form form';
      padding: var(--est-spacing-md) var(--est-spacing-lg);
    }

    .est-events-list__card-data {
      display: flex;
      flex-direction: column;
      grid-area: data;
    }

    .est-events-list__card-date {
        flex-direction: row;
        justify-content: start;
        align-items: end;
        padding: var(--est-spacing-sm);
        gap: var(--est-spacing-sm);
        min-width: auto;
    }

    .est-events-list__card-badges{
      flex-direction: column;
      align-items: flex-start;
    }

    .est-events-list__card-content {
      grid-area: content;
    }

    .est-events-list__card-register {
      grid-area: register;
      align-self: end;
      justify-self: end;
      margin-left: 0;
    }
          .est-events-list__badge--insignia> img.est-events-list__badge-img--insignia, .est-events-list__badge--gold> img.est-events-list__badge-img--insignia {
            height: 30px;
          }
          .est-events-list__badge--insignia> img.est-events-list__badge-img--gold, .est-events-list__badge--gold> img.est-events-list__badge-img--gold {
            height: 38px;
          }

    .est-events-list__card-form {
      grid-area: form;
      width: 100%;
    }

    .est-events-list h2.est-events-list__title {
      font-size: var(--est-font-size-lg);
      text-align: center;
    }

      /* Card Title */
    .est-events-list h3.est-events-list__card-title a {
        font-size: var(--est-font-size-xl);
    }

}

@media (min-width: 1200px) {
  .est-events-list {
    padding:  var(--est-spacing-2xl) calc((100% - 1200px) / 2);
  }
}

/* ==========================================================================
   7. UTILITIES
   ========================================================================== */

/**
 * UTILITIES: Overwrite Libraries
 * Overwrite styles of external libs
 */

/* Leaflet */

div.leaflet-pane{
    z-index: 1;
}

/**
 * UTILITIES: Visibility
 * Visibility helper classes
 */

.u-hidden {
  display: none !important;
}

.u-visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.u-visible {
  display: block !important;
}

/* Responsive visibility */

@media (max-width: 767px) {
  .u-hidden\@md-down {
    display: none !important;
  }
}

@media (min-width: 768px) {
  .u-hidden\@md-up {
    display: none !important;
  }
}
