/*
Theme Name: Elementra Child Theme
Theme URI: https://elementra.themerex.net/
Description: Elementra is a Premium WordPress theme that has built-in support for popular Page Builders, slider with swipe gestures, and is SEO- and Retina-ready. The unique system of inheritance and override options allows setting up individual parameters for different sections of your site and supported plugins.
Author: ThemeREX
Author URI: https://themerex.net/
Version: 1.0.9
Tested up to: 6.9
Requires at least: 5.5
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Tags: blog, e-commerce, portfolio, grid-layout, one-column, two-columns, three-columns, four-columns, left-sidebar, right-sidebar, custom-background, custom-colors, custom-header, custom-logo, custom-menu, editor-style, featured-image-header, featured-images, flexible-header, footer-widgets, full-width-template, microformats, post-formats, sticky-post, theme-options, threaded-comments, translation-ready, block-styles, wide-blocks
Text Domain: elementra
Template: elementra
*/


/* =Child-Theme customization starts here
------------------------------------------------------------ */

/* ═══════════════════════════════════════════════════════════
   BEFF Programme – Timeline & Accordion
   ═══════════════════════════════════════════════════════════ */

:root {
  --beff-blue: #0BAED9;
  --beff-blue-dark: #0A2A43;
  --beff-blue-deeper: #071E32;
  --beff-blue-light: #E8F7FB;
  --beff-blue-mid: #089ABF;
  --beff-gray-50: #F8FAFB;
  --beff-gray-100: #F1F4F6;
  --beff-gray-200: #E2E7EB;
  --beff-gray-400: #94A3B0;
  --beff-gray-600: #5A6872;
  --beff-gray-800: #2D3640;
  --beff-radius: 12px;
  --beff-shadow-sm: 0 1px 3px rgba(10,42,67,0.06);
  --beff-shadow-md: 0 4px 12px rgba(10,42,67,0.08);
  --beff-shadow-lg: 0 8px 30px rgba(10,42,67,0.12);
  --beff-transition: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Day header */
.beff-day-header {
  background: var(--beff-blue-dark);
  padding: 18px 28px;
  display: flex;
  align-items: center;
  gap: 16px;
  border-radius: var(--beff-radius);
  margin-bottom: 8px;
  margin-top: 20px;
}
.beff-day-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--beff-blue);
  flex-shrink: 0;
}
.beff-day-date {
  font-size: 13px;
  font-weight: 700;
  color: var(--beff-blue);
  text-transform: uppercase;
  letter-spacing: 2px;
  line-height: 1.3;
}
.beff-day-name {
  font-size: 20px;
  font-weight: 700;
  color: #fff;
  line-height: 1.3;
}

/* Timeline */
.beff-timeline {
  position: relative;
  padding: 0;
}
/* Line is drawn by the programme-page column, not individual timeline wrappers */
.beff-timeline::before { display: none; }

/* Timeline item */
.beff-t-item {
  position: relative;
  padding-left: 60px;
  margin-bottom: 20px;
}

.beff-t-dot {
  position: absolute;
  left: 16px;
  top: 6px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #fff;
  border: 3px solid var(--beff-gray-200);
  z-index: 1;
  transition: var(--beff-transition);
}
.beff-t-item.is-plenary > .beff-t-dot,
.beff-t-item.is-special > .beff-t-dot {
  background: var(--beff-blue);
  border-color: var(--beff-blue);
  box-shadow: 0 0 0 4px rgba(11,174,217,0.2);
}

.beff-t-time {
  font-size: 14px;
  font-weight: 700;
  color: var(--beff-blue-dark);
  letter-spacing: 0.5px;
  margin-bottom: 4px;
}

.beff-t-simple {
  font-size: 15px;
  color: var(--beff-gray-600);
}
.beff-t-simple strong { color: var(--beff-gray-800); }

/* Plenary card */
.beff-plenary-card {
  background: #fff;
  border-radius: var(--beff-radius);
  box-shadow: var(--beff-shadow-sm);
  overflow: hidden;
  border: 1px solid var(--beff-gray-200);
  transition: var(--beff-transition);
}
.beff-plenary-card:hover { box-shadow: var(--beff-shadow-md); }

.beff-plenary-header {
  padding: 20px 24px;
  border-left: 4px solid var(--beff-blue);
}
.beff-plenary-tag {
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  color: var(--beff-blue);
  text-transform: uppercase;
  letter-spacing: 1.5px;
  margin-bottom: 6px;
}
.beff-plenary-title {
  font-size: 18px;
  font-weight: 700;
  color: var(--beff-blue-dark);
  line-height: 1.3;
  margin: 0;
}
.beff-plenary-location {
  font-size: 13px;
  color: var(--beff-gray-400);
  margin-top: 6px;
}
.beff-plenary-location::before { content: '📍 '; font-size: 12px; }

/* Session accordion */
.beff-session { border-top: 1px solid var(--beff-gray-100); }

.beff-session-toggle {
  width: 100%;
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 16px 24px;
  background: white;
  border: none;
  cursor: pointer;
  text-align: left;
  transition: var(--beff-transition);
  font-family: inherit;
  border-radius: 0;
}
.beff-session-toggle:hover {
  background: var(--beff-gray-50) !important;
}
.beff-session-toggle:focus,
.beff-session-toggle:active,
.beff-session-toggle:visited {
  background: white !important;
}

.beff-chevron {
  flex-shrink: 0;
  width: 22px;
  height: 22px;
  margin-top: 2px;
  border-radius: 50%;
  background: var(--beff-blue-light);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: var(--beff-transition);
}
.beff-chevron svg {
  width: 12px;
  height: 12px;
  stroke: var(--beff-blue);
  fill: none;
  transition: var(--beff-transition);
}
.beff-session.is-open .beff-chevron {
  background: var(--beff-blue);
}
.beff-session.is-open .beff-chevron svg {
  stroke: #fff;
  transform: rotate(180deg);
}

.beff-session-time {
  font-size: 12px;
  font-weight: 600;
  color: var(--beff-blue-mid);
  white-space: nowrap;
  margin-top: 3px;
  flex-shrink: 0;
  min-width: 90px;
}
.beff-session-info { flex: 1; }
.beff-session-type {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--beff-gray-400);
  margin-bottom: 2px;
}
.beff-session-name {
  font-size: 15px;
  font-weight: 600;
  color: var(--beff-blue-dark);
  line-height: 1.4;
}

/* Accordion content */
.beff-session-content {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}
.beff-session.is-open .beff-session-content {
  max-height: 2000px;
}
.beff-session-inner {
  padding: 0 24px 20px 60px;
}
.beff-session-desc {
  font-size: 14px;
  line-height: 1.7;
  color: var(--beff-gray-600);
  margin-bottom: 16px;
  text-align: justify;
}

/* Speakers */
.beff-speakers { list-style: none; padding: 0; margin: 0; }
.beff-speaker {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 8px 0;
  border-bottom: 1px solid var(--beff-gray-100);
  font-size: 14px;
}
.beff-speaker:last-child { border-bottom: none; }
.beff-speaker-avatar {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--beff-blue-light), var(--beff-blue));
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  font-weight: 700;
  color: #fff;
  flex-shrink: 0;
  margin-top: 1px;
}
.beff-speaker-name {
  font-weight: 600;
  color: var(--beff-blue-dark);
}
.beff-speaker-role {
  color: var(--beff-gray-600);
  font-size: 13px;
}
.beff-speaker.is-moderator {
  margin-top: 8px;
  padding-top: 12px;
  /*border-top: 1px dashed var(--beff-gray-200);*/
  border-bottom: none;
}
.beff-speaker.is-moderator .beff-speaker-avatar {
  background: linear-gradient(135deg, var(--beff-blue-dark), var(--beff-blue-deeper));
}
.beff-moderator-label {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--beff-gray-400);
}

/* Special cards (screening, dance, closing) */
.beff-special-card {
  background: linear-gradient(135deg, var(--beff-blue-dark) 0%, var(--beff-blue-deeper) 100%);
  border-radius: var(--beff-radius);
  padding: 28px;
  color: #fff;
  box-shadow: var(--beff-shadow-lg);
  position: relative;
  overflow: hidden;
}
.beff-special-card::after {
  content: '';
  position: absolute;
  top: -30%;
  right: -10%;
  width: 200px;
  height: 200px;
  background: radial-gradient(circle, rgba(11,174,217,0.15) 0%, transparent 70%);
  pointer-events: none;
}
.beff-special-card .beff-plenary-tag { color: var(--beff-blue); }
.beff-special-title {
  font-size: 20px;
  font-weight: 700;
  margin: 6px 0 12px;
  position: relative;
}
.beff-special-detail {
  font-size: 14px;
  color: rgba(255,255,255,0.7);
  line-height: 1.7;
  position: relative;
}
.beff-special-card .beff-speakers .beff-speaker {
  border-color: rgba(255,255,255,0.1);
  color: rgba(255,255,255,0.85);
}
.beff-special-card .beff-speaker-name { color: #fff; }
.beff-special-card .beff-speaker-role { color: rgba(255,255,255,0.6); }
.beff-special-card .beff-speaker-avatar {
  background: linear-gradient(135deg, var(--beff-blue), var(--beff-blue-mid));
}

/* Discover section */
.beff-discover-header {
  background: linear-gradient(135deg, var(--beff-blue) 0%, var(--beff-blue-mid) 100%);
  padding: 24px 30px;
  border-radius: var(--beff-radius) var(--beff-radius) 0 0;
  text-align: center;
}
.beff-discover-header h2 {
  font-size: 22px;
  font-weight: 700;
  color: #fff;
  letter-spacing: 1px;
  margin: 0;
}
.beff-discover-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
}
.beff-discover-card {
  background: #fff;
  padding: 28px;
  border: 1px solid var(--beff-gray-200);
}
.beff-discover-card:first-child {
  border-radius: 0 0 0 var(--beff-radius);
  border-right: none;
}
.beff-discover-card:last-child {
  border-radius: 0 0 var(--beff-radius) 0;
}
.beff-discover-card h3 {
  font-size: 16px;
  font-weight: 700;
  color: var(--beff-blue-dark);
  margin-bottom: 10px;
}
.beff-discover-card p {
  font-size: 14px;
  color: var(--beff-gray-600);
  line-height: 1.6;
}
.beff-artist-item {
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid var(--beff-gray-100);
}
.beff-artist-item:first-of-type { margin-top: 12px; padding-top: 0; border-top: none; }
.beff-artist-name {
  font-size: 14px;
  font-weight: 700;
  color: var(--beff-blue);
  margin-bottom: 4px;
}

/* Elementor overrides – neutralise default widget spacing */
.beff-programme-page .elementor-widget { margin-bottom: 0 !important; }

/* Continuous timeline line: drawn on each timeline widget via ::after on the t-item */
.beff-programme-page .beff-t-item {
  margin-bottom: 0;
  padding-bottom: 20px;
}
.beff-programme-page .beff-t-item::before {
  content: '';
  position: absolute;
  left: 23px;
  top: 0;
  bottom: 0;
  width: 2px;
  background: var(--beff-gray-200);
  z-index: 0;
}

/* Day header: acts as a visual break in the timeline */
.beff-programme-page .beff-day-header {
  position: relative;
  z-index: 2;
}

/* First timeline item after a day header: line starts from top of dot, not above */
.beff-programme-page .elementor-widget-beff_day_header + .elementor-widget .beff-t-item::before {
  top: 6px;
}

/* Last timeline item before a day header: line stops at dot, not below */
.beff-programme-page .elementor-widget:has(+ .elementor-widget-beff_day_header) .beff-t-item::before {
  bottom: 14px;
}
/* Also handle the very last widget in the column */
.beff-programme-page .elementor-widget:last-child .beff-t-item::before {
  bottom: 14px;
}

/* ═══════════════════════════════════════════════════════════
   BEFF Solution Hubs – Card Grid
   ═══════════════════════════════════════════════════════════ */

/* Grid layout for solution hub cards */
.beff-sh-page .elementor-widget-wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
}
.beff-sh-page .elementor-widget-beff_solution_hub {
  width: calc(50% - 10px);
  flex-shrink: 0;
}
.beff-sh-page .elementor-widget-beff_day_header {
  width: 100%;
  flex-shrink: 0;
}
.beff-sh-page .elementor-widget {
  margin-bottom: 0 !important;
}

/* Card */
.beff-sh-card {
  background: #fff;
  border-radius: var(--beff-radius);
  border: 1px solid var(--beff-gray-200);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  height: 100%;
}

.beff-sh-card-header {
  padding: 20px 24px 16px;
}

.beff-sh-card-title {
  font-size: 16px;
  font-weight: 700;
  color: var(--beff-blue-dark);
  line-height: 1.3;
  margin-bottom: 10px;
}

.beff-sh-card-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.beff-sh-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  font-weight: 600;
  padding: 4px 10px;
  border-radius: 20px;
  letter-spacing: 0.3px;
}
.beff-sh-badge-location {
  background: var(--beff-blue-light);
  color: var(--beff-blue-mid);
}
.beff-sh-badge-org {
  background: var(--beff-gray-100);
  color: var(--beff-gray-600);
}

.beff-sh-card-body {
  padding: 0 24px 20px;
  flex: 1;
  display: flex;
  flex-direction: column;
}

.beff-sh-card-desc {
  font-size: 13px;
  line-height: 1.7;
  color: var(--beff-gray-600);
  margin-bottom: 16px;
}

.beff-sh-card-footer {
  margin-top: auto;
}

/* Toggle button */
.beff-sh-toggle {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 0 0;
  background: none !important;
  border: none !important;
  border-top: 1px solid var(--beff-gray-100);
  cursor: pointer;
  font-family: inherit;
  text-align: left;
  border-radius: 0 !important;
}
.beff-sh-toggle:hover,
.beff-sh-toggle:focus,
.beff-sh-toggle:active,
.beff-sh-toggle:visited {
  background: none !important;
  border: none !important;
}
.beff-sh-toggle-chevron {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: var(--beff-blue-light);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: var(--beff-transition);
}
.beff-sh-toggle-chevron svg {
  width: 10px;
  height: 10px;
  stroke: var(--beff-blue);
  fill: none;
  transition: var(--beff-transition);
}
.beff-sh-toggle-label {
  font-size: 12px;
  font-weight: 600;
  color: var(--beff-gray-400);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

/* Open state */
.beff-sh-card.is-open .beff-sh-toggle-chevron {
  background: var(--beff-blue);
}
.beff-sh-card.is-open .beff-sh-toggle-chevron svg {
  stroke: #fff;
  transform: rotate(180deg);
}
.beff-sh-card.is-open .beff-sh-toggle-label {
  color: var(--beff-blue);
}

/* Accordion details */
.beff-sh-details {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}
.beff-sh-card.is-open .beff-sh-details {
  max-height: 800px;
}
.beff-sh-details-inner {
  padding-top: 12px;
}

/* Speaker pills */
.beff-sh-speakers {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.beff-sh-speaker-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: var(--beff-gray-50);
  border: 1px solid var(--beff-gray-200);
  border-radius: 20px;
  padding: 4px 12px 4px 4px;
  font-size: 12px;
}
.beff-sh-speaker-avatar {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--beff-blue-light), var(--beff-blue));
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 9px;
  font-weight: 700;
  color: #fff;
  flex-shrink: 0;
}
.beff-sh-speaker-name {
  font-weight: 600;
  color: var(--beff-blue-dark);
  white-space: nowrap;
}
.beff-sh-speaker-role {
  color: var(--beff-gray-400);
  font-size: 11px;
}

/* Partners */
.beff-sh-partners {
  margin-top: 10px;
  font-size: 11px;
  color: var(--beff-gray-400);
  line-height: 1.5;
}
.beff-sh-partners strong {
  font-weight: 600;
  color: var(--beff-gray-600);
}

div.wpforms-container-full input {
    border-style: solid !important;
    border-width: 1px !important;
    border-color: var( --e-global-color-theme_color_bd_color ) !important;
    border-radius: 30px !important;
    -webkit-appearance: none !important;
    outline: none !important;
    resize: none !important;
    box-shadow: none !important;
    max-width: 100% !important;
    height: auto !important;
    padding: 13px 20px 13px 20px !important;
}

div.wpforms-container-full textarea {
    border-style: solid !important;
    border-width: 1px !important;
    border-color: var( --e-global-color-theme_color_bd_color ) !important;
    border-radius: 30px !important;
    -webkit-appearance: none !important;
    outline: none !important;
    resize: none !important;
    box-shadow: none !important;
    max-width: 100% !important;
    height: 200px !important;
    padding: 13px 20px 13px 20px !important;
}

div.wpforms-container-full select {
    border-style: solid !important;
    border-width: 1px !important;
    border-color: var( --e-global-color-theme_color_bd_color ) !important;
    border-radius: 30px !important;
    -webkit-appearance: none !important;
    outline: none !important;
    resize: none !important;
    box-shadow: none !important;
    max-width: 100% !important;
    height: auto !important;
    padding: 13px 20px 13px 20px !important;
}

div.wpforms-container-full input:focus {
    border-color: var( --e-global-color-theme_color_meta ) !important;
}
div.wpforms-container-full textarea:focus {
    border-color: var( --e-global-color-theme_color_meta ) !important;
}
div.wpforms-container-full select:focus {
    border-color: var( --e-global-color-theme_color_meta ) !important;
}

.wpforms-container-full .wpforms-submit {
    padding: 18px 40px 18px 40px !important;
    color: var( --e-global-color-theme_color_alt_title ) !important;
    background-color: var( --e-global-color-theme_color_link ) !important;
    border-style: none !important;
    box-shadow: 0px 0px 0px 0px rgba(255, 255, 255, 0) !important;
    font-size: var(--theme-font-button_font-size) !important;
    font-weight: var(--theme-font-button_font-weight) !important;
    font-style: var(--theme-font-button_font-style) !important;
    line-height: var(--theme-font-button_line-height) !important;
    text-decoration: var(--theme-font-button_text-decoration) !important;
    text-transform: var(--theme-font-button_text-transform) !important;
    letter-spacing: var(--theme-font-button_letter-spacing) !important;
    padding: var(--theme-font-button_padding) !important;
    border-radius: var(--theme-font-button_border-radius) !important;
    border-width: var(--theme-font-button_border-width) !important;
    border-color: var(--theme-color-bg_color) !important;
    height: auto !important;
}

div.wpforms-container-full button[type="submit"]:hover {
    color: var(--theme-font-button_color-hover, var(--theme-color-bg_color)) !important;
    border-color: var(--theme-font-button_border-color-hover, var(--theme-color-hover)) !important;
    background-color: var(--theme-font-button_background-color-hover, var(--theme-color-hover)) !important;
}


div.wpforms-container-full button[type="submit"]:after {
    display: none !important;
}

/* css Morgane pour ne pas afficher les sous menu des side event vide*/
.hide-this-session .beff-session {
    display: none;
}

/* css Morgane pour ne pas rendre cliquable  les "beff session" par unite quand elles sont vide*/
.beff-session:has(.disable-session) .beff-session-toggle {
    pointer-events: none;
    cursor: default;
    opacity: 0.6;
}
.beff-session.is-disabled .beff-chevron svg {
    stroke: #bbb;
    opacity: 0.6;
}
.beff-session:has(.disable-session) .beff-chevron svg {
    stroke: #bbb;
    opacity: 0.6;
}

/*
#wpforms-5103-field_4-container .wpforms-field-label {
    display: none !important;
}

#wpforms-5103-field_4-container .wpforms-field-label-inline {
    padding-left: 36px;
    margin-bottom: 10px;
}

#wpforms-5103-field_4-container .wpforms-field-label-inline a {
    color: rgb(242, 134, 0) !important;
}
*/