/* ===========================
   RB Accordion Styling v1.1.3
   Usage:
     Base class (required):      rb-accordion
     Color variants (optional):  rb-accordion--teal | rb-accordion--cornflower-blue | rb-accordion--midnight-green | rb-accordion--moonstone-blue
     Icon variant (optional):    rb-accordion--plus  (default is chevron)
     Icon size variants:         rb-accordion--icon-sm | rb-accordion--icon-md | rb-accordion--icon-lg | rb-accordion--icon-xl
     Spacing variants:           rb-accordion--tight | rb-accordion--normal | rb-accordion--loose
     Animation (optional):       rb-accordion--animated
=========================== */

.rb-accordion {
  --icon-gap: 1.75rem;
  --rb-accordion-icon-size: 1rem;
  display: flex;
  flex-direction: column;
  /* gap intentionally unused; spacing handled by margin-bottom */
}

/* Default spacing between toggles */
.rb-accordion .et_pb_toggle {
  margin-bottom: 0.75rem !important;
}
.rb-accordion .et_pb_toggle:last-child {
  margin-bottom: 0 !important;
}

/* Spacing variants: control inter-toggle spacing */
.rb-accordion.rb-accordion--tight .et_pb_toggle {
  margin-bottom: 0.25rem !important;
}
.rb-accordion.rb-accordion--normal .et_pb_toggle {
  margin-bottom: 0.75rem !important;
}
.rb-accordion.rb-accordion--loose .et_pb_toggle {
  margin-bottom: 1.25rem !important;
}

.rb-accordion .et_pb_toggle .et_pb_toggle_title {
  position: relative;
  padding-left: var(--icon-gap) !important;
  cursor: pointer;
}

.rb-accordion .et_pb_toggle .et_pb_toggle_content {
  padding-left: var(--icon-gap) !important;
  padding-top: .25rem;
}

.rb-accordion .et_pb_toggle .et_pb_toggle_content > *,
.rb-accordion .et_pb_toggle .et_pb_toggle_content .et_pb_module {
  margin-left: 0 !important;
  padding-left: 0 !important;
}

.rb-accordion .et_pb_toggle .et_pb_toggle_content ul,
.rb-accordion .et_pb_toggle .et_pb_toggle_content ol {
  padding-left: var(--icon-gap) !important;
  margin-left: 0 !important;
  list-style-position: outside;
}

.rb-accordion .et_pb_toggle .et_pb_toggle_content li {
  padding-left: 0 !important;
  margin-left: 0 !important;
}

/* Visibility control (wins even if Divi adds inline display) */
.rb-accordion .et_pb_toggle.et_pb_toggle_close .et_pb_toggle_content {
  display: none !important;
}
.rb-accordion .et_pb_toggle.et_pb_toggle_open .et_pb_toggle_content {
  display: block !important;
}

/* Remove all default Divi toggle icons inside this accordion */
.rb-accordion .et_pb_toggle .et_pb_toggle_title:before,
.rb-accordion .et_pb_toggle .et_pb_toggle_title:after,
.rb-accordion .et_pb_toggle .et_pb_toggle_icon,
.rb-accordion .et_pb_toggle .et_pb_toggle_title .et-pb-icon,
.rb-accordion .et_pb_toggle .et_pb_toggle_title .et_module_icon,
.rb-accordion .et_pb_toggle .et_pb_toggle_title svg.et_pb_toggle_icon {
  display: none !important;
  content: none !important;
}

/* Custom icon wrapper, inserted by JS */
.rb-accordion .rb-ico {
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  font-size: 1rem;
  color: #008080; /* default teal */
  pointer-events: none;
  z-index: 2;
}

/* Icon sizing via CSS variable */
.rb-accordion .rb-ico svg {
  width: var(--rb-accordion-icon-size);
  height: var(--rb-accordion-icon-size);
  display: inline-block;
  vertical-align: middle;
  transition: transform .2s ease;
}

/* Icon size variants */
.rb-accordion--icon-sm {
  --rb-accordion-icon-size: 0.75rem;
}
.rb-accordion--icon-md {
  --rb-accordion-icon-size: 1rem;
}
.rb-accordion--icon-lg {
  --rb-accordion-icon-size: 1.35rem;
}
.rb-accordion--icon-xl {
  --rb-accordion-icon-size: 1.75rem;
}

/* Chevron icon rotation when open (not in plus mode) */
.rb-accordion:not(.rb-accordion--plus) .et_pb_toggle.et_pb_toggle_open .rb-ico svg {
  transform: translateY(-50%) rotate(90deg);
}

/* Plus/minus icon variant */
.rb-accordion--plus .rb-ico svg {
  transition: transform .2s ease;
}

.rb-accordion--plus .rb-ico .rb-plus-h {
  /* horizontal bar - always visible */
}

.rb-accordion--plus .rb-ico .rb-plus-v {
  transition: opacity .2s ease, transform .2s ease;
}

/* When open, hide vertical bar so it looks like a minus */
.rb-accordion--plus .et_pb_toggle.et_pb_toggle_open .rb-ico .rb-plus-v {
  opacity: 0;
  transform: scaleY(0.3);
}

/* Base toggle styling */
.rb-accordion .et_pb_toggle {
  border: 0;
  padding: 5px 0 !important;
}

.rb-accordion .et_pb_toggle .et_pb_toggle_title:hover {
  text-decoration: none;
}

.rb-accordion .et_pb_toggle_open .et_pb_toggle_content {
  border: 1px solid #e2e2e2;
  margin-top: 10px;
  padding: 10px;
  border-radius: 4px;
  background-color: #ffffff;
}

/* Color variants: icon + title hover take accent color */

/* Teal: #008080 */
.rb-accordion--teal .rb-ico {
  color: #008080;
}
.rb-accordion--teal .et_pb_toggle .et_pb_toggle_title:hover {
  color: #008080;
}

/* Cornflower Blue: #194084 */
.rb-accordion--cornflower-blue .rb-ico {
  color: #194084;
}
.rb-accordion--cornflower-blue .et_pb_toggle .et_pb_toggle_title:hover {
  color: #194084;
}

/* Midnight Green: #025959 */
.rb-accordion--midnight-green .rb-ico {
  color: #025959;
}
.rb-accordion--midnight-green .et_pb_toggle .et_pb_toggle_title:hover {
  color: #025959;
}

/* Moonstone Blue: #80BFBF */
.rb-accordion--moonstone-blue .rb-ico {
  color: #80BFBF;
}
.rb-accordion--moonstone-blue .et_pb_toggle .et_pb_toggle_title:hover {
  color: #80BFBF;
}

/* Animated variant: smooth open/close */
.rb-accordion--animated .et_pb_toggle .et_pb_toggle_content {
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transition: max-height 0.25s ease, opacity 0.25s ease;
}

.rb-accordion--animated .et_pb_toggle.et_pb_toggle_open .et_pb_toggle_content {
  opacity: 1;
}
