/*----- ACCORDION - Modern Implementation - Open -----*/

#apb-wrapper .paragraphs-accordion-wrapper {
   margin: 2rem 0;
}

#apb-wrapper .apb-accordion-title {
   border: none !important;
   display: block;
   font-size: 1.125rem;
   font-weight: 400;
   line-height: 130%;
   margin-bottom: 0.25rem;
   padding: 0.875rem 0.625rem 1rem 1.25rem !important;
   cursor: pointer;
   text-align: left;
   width: 100%;
   background: transparent;
   border: none;
   outline: none;
   background: #ddd;
   color: #111;
   -webkit-border-radius: 0;
   -moz-border-radius: 0;
   border-radius: 0;
}

#apb-wrapper .apb-accordion-title .title {
   margin: 0 !important;
}

#apb-wrapper .apb-accordion-title:hover {
   background: #666;
   color: #fff;
}

#apb-wrapper .apb-accordion-active .apb-accordion-title {
   background: #ddd;
}

#apb-wrapper .apb-accordion-active .apb-accordion-title {
   margin-bottom: -1px !important;
}

#apb-wrapper .apb-accordion-panel {
   display: block;
   line-height: 160%;
   overflow: hidden;
   padding: 0;
   border: 1px solid #ddd;
   transition: all 0.3s ease;
   will-change: height;
   opacity: 0;
}

#apb-wrapper .apb-accordion-active .apb-accordion-panel {
   opacity: 1 !important;
   margin-bottom: 0.375rem;
}

#apb-wrapper .apb-accordion-panel .accordion-body-inner {
   background-color: #ffffff;
   padding: 1.5rem 2rem 2rem 2rem;
}

#apb-wrapper .apb-accordion-panel .accordion-body-inner p:last-of-type {
   margin-bottom: 0 !important;
}

#apb-wrapper .apb-accordion-title.apb-accordion-active,
#apb-wrapper .apb-accordion-title.apb-accordion-active:hover {
   background: #111;
   color: #fff;
}

/* Accessibility improvements */
#apb-wrapper .apb-accordion-title:focus {
   outline: 2px solid #005fcc;
   outline-offset: 2px;
}

/* Accordion item styling */
#apb-wrapper .apb-accordion-item {
   margin-bottom: 0rem;
   transition: margin-bottom 0.3s ease-in-out;
}

#apb-wrapper .apb-accordion-active.apb-accordion-item {
   margin-bottom: 0.25rem;
}

#apb-wrapper .apb-accordion-title {
   -webkit-transition: all 300ms ease-in-out;
   -moz-transition: all 300ms ease-in-out;
   -ms-transition: all 300ms ease-in-out;
   -o-transition: all 300ms ease-in-out;
   transition: all 300ms ease-in-out;
}

/* Mobile-first responsive design */
@media (max-width: 768px) {
   #apb-wrapper .apb-accordion-title,
   #apb-wrapper .ui-accordion-header {
      padding: 0.75rem 0.5rem 0.875rem 1rem !important;
      font-size: 1rem;
   }

   #apb-wrapper .apb-accordion-panel .accordion-body-inner,
   #apb-wrapper .ui-accordion .accordion-body-inner {
      padding: 1rem 1.5rem 0.75rem 1.5rem;
   }
}

@media (max-width: 480px) {
   #apb-wrapper .apb-accordion-title,
   #apb-wrapper .ui-accordion-header {
      padding: 0.625rem 0.375rem 0.75rem 0.75rem !important;
      font-size: 0.9375rem;
   }

   #apb-wrapper .apb-accordion-panel .accordion-body-inner,
   #apb-wrapper .ui-accordion .accordion-body-inner {
      padding: 0.75rem 1rem 0.5rem 1rem;
   }
}

/*----- ACCESSIBILITY IMPROVEMENTS - Open -----*/

/* High contrast mode support */
@media (prefers-contrast: high) {
   #apb-wrapper .apb-accordion-title,
   #apb-wrapper .ui-accordion-header {
      border: 2px solid;
   }

   #apb-wrapper .apb-accordion-title:focus,
   #apb-wrapper .ui-accordion-header:focus {
      outline: 3px solid;
      outline-offset: 3px;
   }
}

/*----- ACCESSIBILITY IMPROVEMENTS - Close -----*/

/*----- ACCORDION STATES - Open -----*/

/* Loading state */
#apb-wrapper .apb-accordion-loading .apb-accordion-title {
   opacity: 0.6;
   pointer-events: none;
}

/* Error state */
#apb-wrapper .apb-accordion-error .apb-accordion-title {
   background: #d32f2f;
   color: #fff;
}

/* Success state */
#apb-wrapper .apb-accordion-success .apb-accordion-title {
   background: #388e3c;
   color: #fff;
}

/*----- ACCORDION STATES - Close -----*/
