/* ==========================================================================
   Product Accordion  —  Elementor Nested Accordion skinned as dark pills.
   Scope: any Elementor nested-accordion widget given the CSS class
   `product-accordion`. Matches the dark "pill + red plus" mockup.
   Only colour / shape / spacing are set here; typography (weight, size,
   line-height) is left to the global theme per house rules.
   ========================================================================== */

/* Stack of pills — even gaps, no widget background of its own. */
.elementor-widget-n-accordion.product-accordion .e-n-accordion {
  display: flex !important;
  flex-direction: column;
  gap: 1rem !important;
  background: transparent;
}

/* ---- The pill ---------------------------------------------------------- */
.elementor-widget-n-accordion.product-accordion .e-n-accordion-item {
  /* Closed radius = half the pill's height, so it still reads as a full
     stadium. Using an explicit ~half-height value (not 999px) is what makes the
     transition smooth: the browser visually clamps border-radius to half the
     height, so animating from 999px keeps the value above that clamp for almost
     the whole run and then squares off in a harsh snap at the very end. Starting
     at the clamp point means every frame is visible — a clean, even transition. */
  border-radius: 35px !important;
  background: rgba(255, 255, 255, 0.15) !important;
  border: 0 !important;
  box-shadow: none !important;
  overflow: hidden;
  transition: border-radius 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}

/* Square off the corners while open so the body reads as one panel. */
.elementor-widget-n-accordion.product-accordion .e-n-accordion-item[open] {
  border-radius: 24px !important;
}

/* ---- The clickable row (summary) -------------------------------------- */
.elementor-widget-n-accordion.product-accordion .e-n-accordion-item-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.75rem 0.85rem 0.75rem 2rem !important;
  cursor: pointer;
  list-style: none;
  background: transparent !important;
  border: 0 !important;
}
.elementor-widget-n-accordion.product-accordion .e-n-accordion-item-title::-webkit-details-marker {
  display: none;
}

/* Title text — white, everything else inherited from the theme. */
.elementor-widget-n-accordion.product-accordion .e-n-accordion-item-title-header,
.elementor-widget-n-accordion.product-accordion .e-n-accordion-item-title-text {
  margin: 0;
  color: #fff !important;
}
.elementor-widget-n-accordion.product-accordion .e-n-accordion-item-title-text {
  font-size: 1.2rem !important;
}

/* ---- The +/- control: a grey circle with the red icon ----------------- */
.elementor-widget-n-accordion.product-accordion .e-n-accordion-item-title-icon {
  position: relative;
  flex: none;
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  border-radius: 50%;
  background: rgba(217, 217, 217, 0.15);
  justify-content: center;
}
/* Stack both icon states on the same spot and crossfade/rotate between them
   instead of letting Elementor swap them with display (which can't animate). */
.elementor-widget-n-accordion.product-accordion .e-n-accordion-item-title-icon > span {
  position: absolute;
  inset: 0;
  display: grid !important;
  place-items: center;
  transition:
    opacity 0.35s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
    height: 100%;
}
/* Keep each icon's own aspect ratio — the minus uses a 20x3 viewBox, so
   forcing a square height would shove the line to the top, off-centre. */
.elementor-widget-n-accordion.product-accordion .e-n-accordion-item-title-icon svg {
  width: 20px;
  height: auto;
  display: block;
}
/* Closed: show the plus, hide the minus. */
.elementor-widget-n-accordion.product-accordion .e-n-accordion-item-title-icon .e-closed {
  opacity: 1;
  transform: rotate(0);
}
.elementor-widget-n-accordion.product-accordion .e-n-accordion-item-title-icon .e-opened {
  opacity: 0;
  transform: rotate(-90deg);
}
/* Open: fade the plus out (turning), fade the minus in. */
.elementor-widget-n-accordion.product-accordion .e-n-accordion-item[open] .e-n-accordion-item-title-icon .e-closed {
  opacity: 0;
  transform: rotate(90deg);
}
.elementor-widget-n-accordion.product-accordion .e-n-accordion-item[open] .e-n-accordion-item-title-icon .e-opened {
  opacity: 1;
  transform: rotate(0);
}
