/**
 * @file
 * APB Accordion component styles.
 *
 * Scope: every rule is namespaced under `.apb-accordion-wrapper` so the
 * component stays decoupled from any host theme. Per-accordion color overrides
 * are emitted at runtime by `apb-accordion.js` keyed off the wrapper id.
 */

div[id*="apb-paragraphs"] .apb-accordion-wrapper {
  margin: 2rem 0;
}

div[id*="apb-paragraphs"] .apb-accordion-wrapper h2.apb-section-title {
  margin: 0 0 1rem;
  font-weight: 600;
}

div[id*="apb-paragraphs"] .apb-accordion-wrapper .apb-accordion-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

div[id*="apb-paragraphs"] .apb-accordion-wrapper .apb-accordion-item {
  margin-bottom: 0;
  transition: margin-bottom 0.3s ease-in-out;
}

div[id*="apb-paragraphs"]
  .apb-accordion-wrapper
  .apb-accordion-item.apb-accordion-active {
  margin-bottom: 0.25rem;
}

div[id*="apb-paragraphs"] .apb-accordion-wrapper .apb-accordion-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  width: 100%;
  margin-bottom: 0.25rem;
  padding: 0.875rem 1rem 1rem 1.25rem;
  border: none !important;
  border-radius: 0;
  background: #ddd;
  color: #111;
  cursor: pointer;
  font-size: 1.125rem;
  font-weight: 400;
  line-height: 1.3;
  text-align: left;
  outline: none;
  -webkit-transition: all 200ms ease-in-out !important;
  transition: all 200ms ease-in-out !important;
}

div[id*="apb-paragraphs"] .apb-accordion-wrapper .apb-accordion-title .title {
  margin: 0;
}

/* Chevron icon: inherits the title color via `currentColor` and rotates to
   point up while the parent item is open (accordion-js adds
   `.apb-accordion-active` to the item element, not the title). */
div[id*="apb-paragraphs"]
  .apb-accordion-wrapper
  .apb-accordion-title
  .apb-accordion-icon {
  flex: 0 0 auto;
  width: 1rem;
  height: 1rem;
  color: currentColor;
  transition: transform 0.3s ease-in-out;
}

div[id*="apb-paragraphs"]
  .apb-accordion-wrapper
  .apb-accordion-active
  .apb-accordion-title
  .apb-accordion-icon {
  transform: rotate(180deg);
}

div[id*="apb-paragraphs"] .apb-accordion-wrapper .apb-accordion-title:hover {
  background: #666;
  color: #fff;
}

div[id*="apb-paragraphs"] .apb-accordion-wrapper .apb-accordion-title:focus {
  outline: 2px solid #005fcc;
  outline-offset: 2px;
}

div[id*="apb-paragraphs"]
  .apb-accordion-wrapper
  .apb-accordion-title.apb-accordion-active,
div[id*="apb-paragraphs"]
  .apb-accordion-wrapper
  .apb-accordion-title.apb-accordion-active:hover {
  background: #111;
  color: #fff;
}

div[id*="apb-paragraphs"]
  .apb-accordion-wrapper
  .apb-accordion-active
  .apb-accordion-title {
  margin-bottom: -1px;
}

div[id*="apb-paragraphs"] .apb-accordion-wrapper .apb-accordion-panel {
  display: block;
  overflow: hidden;
  padding: 0;
  border: 1px solid #ddd;
  line-height: 1.6;
  opacity: 0;
  will-change: height;
  transition: all 0.3s ease;
}

div[id*="apb-paragraphs"]
  .apb-accordion-wrapper
  .apb-accordion-active
  .apb-accordion-panel {
  opacity: 1;
  margin-bottom: 0.375rem;
}

div[id*="apb-paragraphs"]
  .apb-accordion-wrapper
  .apb-accordion-panel
  .apb-accordion-body-inner {
  padding: 1.5rem 2rem 2rem;
  background-color: #fff;
}

div[id*="apb-paragraphs"]
  .apb-accordion-wrapper
  .apb-accordion-panel
  .apb-accordion-body-inner
  p:last-of-type {
  margin-bottom: 0;
}

div[id*="apb-paragraphs"]
  .apb-accordion-wrapper
  .apb-accordion-loading
  .apb-accordion-title {
  opacity: 0.6;
  pointer-events: none;
}

div[id*="apb-paragraphs"]
  .apb-accordion-wrapper
  .apb-accordion-error
  .apb-accordion-title {
  background: #d32f2f;
  color: #fff;
}

div[id*="apb-paragraphs"]
  .apb-accordion-wrapper
  .apb-accordion-success
  .apb-accordion-title {
  background: #388e3c;
  color: #fff;
}

@media (max-width: 768px) {
  div[id*="apb-paragraphs"] .apb-accordion-wrapper .apb-accordion-title {
    padding: 0.75rem 0.5rem 0.875rem 1rem;
    font-size: 1rem;
  }
  div[id*="apb-paragraphs"]
    .apb-accordion-wrapper
    .apb-accordion-panel
    .apb-accordion-body-inner {
    padding: 1rem 1.5rem 0.75rem;
  }
}

@media (max-width: 480px) {
  div[id*="apb-paragraphs"] .apb-accordion-wrapper .apb-accordion-title {
    padding: 0.625rem 0.375rem 0.75rem 0.75rem;
    font-size: 0.9375rem;
  }
  div[id*="apb-paragraphs"]
    .apb-accordion-wrapper
    .apb-accordion-panel
    .apb-accordion-body-inner {
    padding: 0.75rem 1rem 0.5rem;
  }
}

@media (prefers-contrast: high) {
  div[id*="apb-paragraphs"] .apb-accordion-wrapper .apb-accordion-title {
    border: 2px solid;
  }
  div[id*="apb-paragraphs"] .apb-accordion-wrapper .apb-accordion-title:focus {
    outline: 3px solid;
    outline-offset: 3px;
  }
}
