/**
 * BURST UI system
 *
 * A final, low-specificity polish layer shared by Elementor pages and the
 * child-theme shortcodes. It reuses the Elementor kit tokens and keeps page-
 * specific layout decisions in Elementor or the corresponding feature file.
 */

:root {
  --burst-color-primary: var(--e-global-color-primary, #53b1aa);
  --burst-color-secondary: var(--e-global-color-secondary, #eeb632);
  --burst-color-text: var(--e-global-color-text, #3b3737);
  --burst-color-accent: var(--e-global-color-accent, #d95228);
  --burst-color-primary-text: #3f918b;
  --burst-color-secondary-text: #9a6b00;
  --burst-color-accent-text: #c34522;
  --burst-color-dark-green: var(--e-global-color-d012f8e, #2c615d);
  --burst-color-muted: #6b6f76;
  --burst-color-border: #a9a9a9;
  --burst-color-surface: var(--e-global-color-d095732, #f6f6f6);
  --burst-color-white: var(--e-global-color-a362831, #fff);

  --burst-space-1: 4px;
  --burst-space-2: 8px;
  --burst-space-3: 12px;
  --burst-space-4: 16px;
  --burst-space-5: 24px;
  --burst-space-6: 32px;
  --burst-space-7: 48px;
  --burst-space-8: 64px;
  --burst-space-9: 80px;
  --burst-page-gutter: clamp(20px, 3vw, 56px);
  --burst-reading-width: 70ch;

  --burst-radius-sm: 4px;
  --burst-radius-md: 10px;
  --burst-control-height: 64px;
  --burst-focus-ring: 3px solid var(--burst-color-dark-green);
  --burst-transition: 180ms ease;
}

html {
  color-scheme: light;
  scroll-padding-top: 96px;
}

body {
  color: var(--burst-color-text);
  background: var(--burst-color-white);
  overflow-x: clip;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

img,
svg,
video,
iframe {
  max-width: 100%;
}

main :where(h1, h2, h3),
:where(.projects-dynamic-title, .knowledge-dynamic-title, .network-dynamic-title) {
  overflow-wrap: anywhere;
  text-wrap: balance;
}

body:not(.home) main h1,
:where(.projects-dynamic-title, .knowledge-dynamic-title, .network-dynamic-title) {
  font-size: clamp(2.75rem, 5vw, 3.875rem);
  line-height: 1.08;
  letter-spacing: -0.025em;
  margin-bottom:0;
}

body.elementor-page main .elementor-widget-heading h1.elementor-heading-title {
  font-size: clamp(2.75rem, 5vw, 3.875rem);
  line-height: 1.08;
  letter-spacing: -0.025em;
}

main h2 {
  line-height: 1.12;
  letter-spacing: -0.02em;
}

body.elementor-page main .elementor-widget-heading h2.elementor-heading-title {
  line-height: 1.12;
  letter-spacing: -0.02em;
}

main h3 {
  line-height: 1.18;
  letter-spacing: -0.012em;
}

body.elementor-page main .elementor-widget-heading h3.elementor-heading-title {
  line-height: 1.18;
  letter-spacing: -0.012em;
}

.burst-about-mission-card h2,
.burst-about-services h2,
.burst-about-action-fields h2 {
  font-size: clamp(2.5rem, 4.7vw, 4.25rem);
  line-height: 1.08;
}

:where(.post-content, .elementor-widget-theme-post-content)
  :where(p, ul, ol, blockquote) {
  max-width: var(--burst-reading-width);
}

:where(.post-content, .elementor-widget-theme-post-content) p {
  line-height: 1.55;
}

body :is(a, button, input, select, textarea, [tabindex]):focus-visible {
  outline: var(--burst-focus-ring);
  outline-offset: 3px;
}

:where(.elementor-button, button, input, select, textarea) {
  transition:
    color var(--burst-transition),
    background-color var(--burst-transition),
    border-color var(--burst-transition),
    box-shadow var(--burst-transition),
    transform var(--burst-transition);
}

.elementor-button {
  min-height: 44px;
  align-items: center;
  justify-content: center;
  line-height: 1.2;
}

body.home.elementor-page main .elementor-widget-button .elementor-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* Compact navigation badges inside the homepage focus-area cards. */
body.home.elementor-page main
  .elementor-element-9cab5d8
  .elementor-widget-button
  .elementor-button {
  min-height: 32px;
  padding: 4px 8px;
  font-size: 16px;
  line-height: 1.2;
}

.elementor-form :where(input:not([type="checkbox"]):not([type="radio"]), select) {
  min-height: 52px;
}

body.elementor-page .elementor-form .elementor-field-group
  .elementor-field:not([type="checkbox"]):not([type="radio"]) {
  min-height: 48px;
  line-height: 1.35;
}

body.elementor-page .elementor-form .elementor-field-group textarea.elementor-field {
  min-height: 120px;
  resize: vertical;
}

.elementor-form :where(input, select, textarea):focus {
  border-color: var(--burst-color-dark-green);
  box-shadow: 0 0 0 3px rgb(44 97 93 / 15%);
}

/* Shared search and filter controls */
.projects-filter-form,
.knowledge-filter-form,
.network-filter-form {
  gap: var(--burst-space-4);
}

.projects-filter-form :is(select, input),
.knowledge-filter-form :is(select, input),
.network-filter-form :is(select, input),
.projects-filter-reset,
.knowledge-filter-reset,
.network-filter-reset {
  height: var(--burst-control-height);
  border-radius: var(--burst-radius-md);
  font-size: 18px;
}

.projects-filter-form :is(select, input),
.knowledge-filter-form :is(select, input),
.network-filter-form :is(select, input) {
  border-color: var(--burst-color-border);
}

.projects-filter-form :is(select, input):hover,
.knowledge-filter-form :is(select, input):hover,
.network-filter-form :is(select, input):hover {
  border-color: var(--burst-color-muted);
}

.projects-filter-form :is(select, input):focus,
.knowledge-filter-form :is(select, input):focus,
.network-filter-form :is(select, input):focus {
  border-color: var(--burst-color-dark-green);
  box-shadow: 0 0 0 3px rgb(44 97 93 / 15%);
}

.projects-search-field::before,
.knowledge-search-field::before,
.network-search-field::before {
  width: 24px;
  height: 24px;
}

.projects-filter-reset,
.knowledge-filter-reset,
.network-filter-reset {
  min-width: 104px;
  border-color: var(--burst-color-accent-text);
  color: var(--burst-color-accent-text);
}

.projects-filter-reset:hover,
.knowledge-filter-reset:hover,
.network-filter-reset:hover {
  border-color: var(--burst-color-accent-text);
  background: var(--burst-color-accent-text);
  color: var(--burst-color-white);
}

.knowledge-type-filter {
  gap: var(--burst-space-3);
}

.knowledge-type-filter-item {
  min-height: 48px;
  padding-inline: var(--burst-space-5);
  border-radius: var(--burst-radius-md);
  font-size: 16px;
}

/* Cards and reusable content surfaces */
.project-item,
.knowledge-item,
.team-card,
.burst-about-service-card {
  border-radius: var(--burst-radius-md);
}

.project-item,
.knowledge-item {
  overflow: hidden;
}

.term-chips,
.hashtag-container,
.project-partners-chips,
.job-chips {
  gap: var(--burst-space-2);
}

.term-chips.term-chips-project.term-chips-topic a,
.term-chips.term-chips-project.term-chips-hashtag a,
.term-chips.term-chips-knowledge.term-chips-topic a,
.term-chips.term-chips-knowledge.term-chips-hashtag a,
.term-chips.term-chips-network.term-chips-topic a,
.term-chips.term-chips-network.term-chips-hashtag a,
.project-item .hashtag-container a,
.knowledge-item .hashtag-container a,
.project-single-page .hashtag-container a,
.knowledge-single-page .hashtag-container a,
.project-partner-chip,
.job-chip,
.knowledge-related-chip,
.network-related-project-chip {
  display: inline-flex;
  min-height: 32px;
  padding: 6px 10px;
  border-radius: var(--burst-radius-md);
  color: var(--burst-color-white) !important;
  font-size: 16px;
  line-height: 1.2;
  align-items: center;
  justify-content: center;
}

.project-item.red .hashtag-container a,
.project-item.red .term-chips a,
.e-loop-item.knowledge-type-publication .hashtag-container a,
.e-loop-item.knowledge-type-publication .term-chips a,
.knowledge-single-page:not(.event):not(.magazine) .hashtag-container a,
.knowledge-single-page:not(.event):not(.magazine) .term-chips a {
  background-color: var(--burst-color-accent-text);
  color: var(--burst-color-white) !important;
}

.e-loop-item.knowledge-type-magazine .knowledge-item-type,
.e-loop-item.knowledge-type-magazine .knowledge-item-type a,
.e-loop-item.knowledge-type-magazine .knowledge-item-title .elementor-heading-title,
.e-loop-item.knowledge-type-magazine .knowledge-item-title a {
  color: var(--burst-color-primary-text) !important;
}

.e-loop-item.knowledge-type-event .knowledge-item-type,
.e-loop-item.knowledge-type-event .knowledge-item-type a,
.e-loop-item.knowledge-type-event .knowledge-item-title .elementor-heading-title,
.e-loop-item.knowledge-type-event .knowledge-item-title a {
  color: var(--burst-color-secondary) !important;
}

.knowledge-documents-list a,
.knowledge-document-accordion-title a,
.publication-document-navigation-item {
  color: var(--burst-color-accent-text);
}

/* Long-form legal content uses a comfortable reading measure. */
body.privacy-policy main .elementor-widget-text-editor > .elementor-widget-container {
  max-width: 72ch;
}

body.privacy-policy main .elementor-widget-text-editor :where(p, li) {
  line-height: 1.6;
}

body.privacy-policy main .elementor-widget-text-editor h2 {
  margin-block: 2em 0.65em;
  font-size: clamp(1.5rem, 2.4vw, 2rem);
  line-height: 1.25;
  letter-spacing: -0.01em;
}

body.privacy-policy main .elementor-widget-text-editor h3 {
  margin-block: 1.5em 0.5em;
  font-size: clamp(1.125rem, 1.8vw, 1.25rem);
  line-height: 1.35;
}

/* Accordions */
.knowledge-documents-accordion,
.knowledge-event-resources-accordion {
  gap: var(--burst-space-3);
}

.knowledge-document-accordion-item,
.knowledge-event-resource-item {
  padding: var(--burst-space-5) var(--burst-space-6);
  border: 1px solid rgb(59 55 55 / 8%);
  border-radius: var(--burst-radius-md);
  background: var(--burst-color-surface);
}

.knowledge-document-accordion-header,
.knowledge-event-resource-header {
  gap: var(--burst-space-4);
}

.knowledge-document-accordion-title,
.knowledge-document-accordion-title a,
.knowledge-event-resource-title,
.knowledge-event-resource-title a,
.knowledge-event-resource-title span,
.knowledge-document-accordion-content,
.knowledge-event-resource-content {
  font-size: 18px;
  line-height: 1.45;
}

.knowledge-document-accordion-toggle,
.knowledge-event-resource-toggle {
  width: 40px;
  height: 40px;
  flex-basis: 40px;
}

.knowledge-document-accordion-toggle::before,
.knowledge-event-resource-toggle::before {
  width: 40px;
  height: 40px;
  background-position: center;
}

/* The LinkedIn control keeps its 21 px visual icon and gains a 44 px target. */
.team-card .elementor-flip-box__back .elementor-flip-box__button {
  top: 14px;
  right: 8px;
  width: 44px;
  height: 44px;
  min-width: 44px;
  background: transparent !important;
}

.team-card .elementor-flip-box__back .elementor-flip-box__button::before {
  inset: 50% auto auto 50%;
  width: 21px;
  height: 21px;
  background: var(--burst-color-text);
  transform: translate(-50%, -50%);
}

.team-card .elementor-flip-box__back .elementor-flip-box__button:hover {
  background: transparent !important;
}

.team-card .elementor-flip-box__back .elementor-flip-box__button:hover::before {
  background: #000;
}

@media (hover: hover) and (pointer: fine) {
  :where(.project-item, .burst-about-service-card),
  .elementor-loop-container > .e-loop-item:has(.knowledge-item) {
    transition:
      transform var(--burst-transition),
      box-shadow var(--burst-transition);
  }

  :where(.project-item, .burst-about-service-card):hover,
  .elementor-loop-container > .e-loop-item:has(.knowledge-item):hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 28px rgb(59 55 55 / 8%);
  }
}

@media (max-width: 1024px) {
  :root {
    --burst-control-height: 60px;
  }

  body:not(.home) main h1,
  :where(.projects-dynamic-title, .knowledge-dynamic-title, .network-dynamic-title) {
    font-size: clamp(2.5rem, 7vw, 3.5rem);
  }
}

@media (max-width: 767px) {
  :root {
    --burst-control-height: 56px;
  }

  html {
    scroll-padding-top: 72px;
  }

  body:not(.home) main h1,
  :where(.projects-dynamic-title, .knowledge-dynamic-title, .network-dynamic-title) {
    font-size: clamp(2.25rem, 11vw, 2.75rem);
    line-height: 1.08;
  }

  body.elementor-page main .elementor-widget-heading h1.elementor-heading-title {
    font-size: clamp(2.25rem, 11vw, 2.75rem);
    line-height: 1.08;
  }

  main h2 {
    line-height: 1.12;
  }

  .projects-filter-form,
  .knowledge-filter-form,
  .network-filter-form {
    gap: var(--burst-space-3);
  }

  .projects-filter-form :is(select, input),
  .knowledge-filter-form :is(select, input),
  .network-filter-form :is(select, input),
  .projects-filter-reset,
  .knowledge-filter-reset,
  .network-filter-reset {
    height: var(--burst-control-height);
    font-size: 16px;
  }

  .projects-filter-reset,
  .knowledge-filter-reset,
  .network-filter-reset {
    min-width: 0;
  }

  .knowledge-document-accordion-item,
  .knowledge-event-resource-item {
    padding: var(--burst-space-4);
  }

  .knowledge-document-accordion-title,
  .knowledge-document-accordion-title a,
  .knowledge-event-resource-title,
  .knowledge-event-resource-title a,
  .knowledge-event-resource-title span,
  .knowledge-document-accordion-content,
  .knowledge-event-resource-content {
    font-size: 16px;
  }

  .publication-document-viewer-empty {
    min-height: 240px;
    padding: var(--burst-space-5);
  }
}

@media (prefers-reduced-motion: reduce) {
  html:focus-within {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}
