/** TS Design System: recommended Elementor Accordion component. */

/* Only the three documented size presets activate the component. */
.elementor :is(.elementor-widget-accordion, .elementor-widget-n-accordion, .e-accordion-base):is(.acc-s, .acc-m, .acc-l) {
  --tsds-acc-text: var(--ts-color-text, var(--c-text, var(--e-global-color-text, #121417)));
  --tsds-acc-border: var(--ts-color-border, var(--c-border, rgba(18, 20, 23, 0.1)));
  --tsds-acc-accent: var(--ts-color-primary, var(--c-accent, var(--e-global-color-primary, #000)));
  --tsds-acc-title-hover: color-mix(in srgb, var(--tsds-acc-text) 4%, transparent);
  --tsds-acc-duration: var(--hover-speed, 180ms);
  --tsds-acc-easing: var(--hover-ease, cubic-bezier(0.2, 0.8, 0.2, 1));
}

.elementor :is(.elementor-widget-accordion, .elementor-widget-n-accordion, .e-accordion-base).acc-s {
  --tsds-acc-pad-block: var(--flow-xs);
  --tsds-acc-pad-inline: var(--flow-m);
  --tsds-acc-content-flow: var(--flow-xs);
  --tsds-acc-default-icon-gap: var(--ui-gap-xs);
}

.elementor :is(.elementor-widget-accordion, .elementor-widget-n-accordion, .e-accordion-base).acc-m {
  --tsds-acc-pad-block: var(--flow-s);
  --tsds-acc-pad-inline: var(--flow-l);
  --tsds-acc-content-flow: var(--flow-s);
  --tsds-acc-default-icon-gap: var(--ui-gap-s);
}

.elementor :is(.elementor-widget-accordion, .elementor-widget-n-accordion, .e-accordion-base).acc-l {
  --tsds-acc-pad-block: var(--flow-m);
  --tsds-acc-pad-inline: var(--flow-xl);
  --tsds-acc-content-flow: var(--flow-m);
  --tsds-acc-default-icon-gap: var(--ui-gap-m);
}

/* Support the current widget-container and the older direct-child structure. */
.elementor .elementor-widget-accordion:is(.acc-s, .acc-m, .acc-l) > .elementor-widget-container > .elementor-accordion,
.elementor .elementor-widget-accordion:is(.acc-s, .acc-m, .acc-l) > .elementor-accordion {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.elementor .elementor-widget-accordion:is(.acc-s, .acc-m, .acc-l) > .elementor-widget-container > .elementor-accordion > .elementor-accordion-item,
.elementor .elementor-widget-accordion:is(.acc-s, .acc-m, .acc-l) > .elementor-accordion > .elementor-accordion-item {
  position: relative;
  border: 0;
  border-bottom: 1px solid var(--tsds-acc-border);
  background: var(--tsds-acc-item-background, transparent);
  transition:
    background-color var(--tsds-acc-duration) var(--tsds-acc-easing),
    border-color var(--tsds-acc-duration) var(--tsds-acc-easing),
    box-shadow var(--tsds-acc-duration) var(--tsds-acc-easing),
    transform var(--tsds-acc-duration) var(--tsds-acc-easing);
}

.elementor .elementor-widget-accordion:is(.acc-s, .acc-m, .acc-l) > .elementor-widget-container > .elementor-accordion > .elementor-accordion-item:last-child,
.elementor .elementor-widget-accordion:is(.acc-s, .acc-m, .acc-l) > .elementor-accordion > .elementor-accordion-item:last-child {
  border-bottom: 0;
}

.elementor .elementor-widget-accordion:is(.acc-s, .acc-m, .acc-l) > .elementor-widget-container > .elementor-accordion > .elementor-accordion-item > .elementor-tab-title,
.elementor .elementor-widget-accordion:is(.acc-s, .acc-m, .acc-l) > .elementor-accordion > .elementor-accordion-item > .elementor-tab-title {
  display: flex;
  align-items: center;
  column-gap: var(--tsds-icon-gap, var(--tsds-acc-default-icon-gap));
  padding-block: var(--tsds-acc-pad-block);
  padding-inline: var(--tsds-acc-pad-inline);
  border: 0;
  background: transparent;
  color: var(--tsds-acc-text);
  transition:
    background-color var(--tsds-acc-duration) var(--tsds-acc-easing),
    color var(--tsds-acc-duration) var(--tsds-acc-easing);
}

.elementor .elementor-widget-accordion:is(.acc-s, .acc-m, .acc-l) > .elementor-widget-container > .elementor-accordion > .elementor-accordion-item > .elementor-tab-title:hover,
.elementor .elementor-widget-accordion:is(.acc-s, .acc-m, .acc-l) > .elementor-accordion > .elementor-accordion-item > .elementor-tab-title:hover {
  background: var(--tsds-acc-title-hover);
}

.elementor .elementor-widget-accordion:is(.acc-s, .acc-m, .acc-l) > .elementor-widget-container > .elementor-accordion > .elementor-accordion-item > .elementor-tab-title.elementor-active,
.elementor .elementor-widget-accordion:is(.acc-s, .acc-m, .acc-l) > .elementor-widget-container > .elementor-accordion > .elementor-accordion-item > .elementor-tab-title.elementor-active > .elementor-accordion-title,
.elementor .elementor-widget-accordion:is(.acc-s, .acc-m, .acc-l) > .elementor-accordion > .elementor-accordion-item > .elementor-tab-title.elementor-active,
.elementor .elementor-widget-accordion:is(.acc-s, .acc-m, .acc-l) > .elementor-accordion > .elementor-accordion-item > .elementor-tab-title.elementor-active > .elementor-accordion-title {
  color: var(--tsds-acc-accent);
}

.elementor .elementor-widget-accordion:is(.acc-s, .acc-m, .acc-l) > .elementor-widget-container > .elementor-accordion > .elementor-accordion-item > .elementor-tab-title:focus-visible,
.elementor .elementor-widget-accordion:is(.acc-s, .acc-m, .acc-l) > .elementor-widget-container > .elementor-accordion > .elementor-accordion-item > .elementor-tab-title > .elementor-accordion-title:focus-visible,
.elementor .elementor-widget-accordion:is(.acc-s, .acc-m, .acc-l) > .elementor-accordion > .elementor-accordion-item > .elementor-tab-title:focus-visible,
.elementor .elementor-widget-accordion:is(.acc-s, .acc-m, .acc-l) > .elementor-accordion > .elementor-accordion-item > .elementor-tab-title > .elementor-accordion-title:focus-visible {
  outline: 2px solid var(--tsds-acc-accent);
  outline-offset: -2px;
}

/* Elementor owns icon size, color and the open/closed glyph swap. */
.elementor .elementor-widget-accordion:is(.acc-s, .acc-m, .acc-l) > .elementor-widget-container > .elementor-accordion > .elementor-accordion-item > .elementor-tab-title > .elementor-accordion-icon,
.elementor .elementor-widget-accordion:is(.acc-s, .acc-m, .acc-l) > .elementor-accordion > .elementor-accordion-item > .elementor-tab-title > .elementor-accordion-icon {
  flex: 0 0 auto;
  margin-inline: 0 !important;
}

.elementor .elementor-widget-accordion:is(.acc-s, .acc-m, .acc-l) .elementor-tab-title > .elementor-accordion-title {
  flex: 1 1 auto;
  min-width: 0;
  order: 1;
}

/* Respect Elementors configured right position without changing the default. */
.elementor .elementor-widget-accordion:is(.acc-s, .acc-m, .acc-l) .elementor-tab-title > .elementor-accordion-icon-right {
  order: 2;
}

/* The modifier has one stable meaning even when Elementor is configured left. */
.elementor .elementor-widget-accordion:is(.acc-s, .acc-m, .acc-l).acc-icon-r .elementor-tab-title > .elementor-accordion-icon {
  order: 2;
}

/* acc-icon-r is also a standalone geometry modifier: retain Elementor's visual defaults. */
.elementor .elementor-widget-accordion.acc-icon-r > .elementor-widget-container > .elementor-accordion > .elementor-accordion-item > .elementor-tab-title,
.elementor .elementor-widget-accordion.acc-icon-r > .elementor-accordion > .elementor-accordion-item > .elementor-tab-title {
  display: flex;
  align-items: center;
}

.elementor .elementor-widget-accordion.acc-icon-r > .elementor-widget-container > .elementor-accordion > .elementor-accordion-item > .elementor-tab-title > .elementor-accordion-title,
.elementor .elementor-widget-accordion.acc-icon-r > .elementor-accordion > .elementor-accordion-item > .elementor-tab-title > .elementor-accordion-title {
  flex: 1 1 auto;
  min-width: 0;
  order: 1;
}

.elementor .elementor-widget-accordion.acc-icon-r > .elementor-widget-container > .elementor-accordion > .elementor-accordion-item > .elementor-tab-title > .elementor-accordion-icon,
.elementor .elementor-widget-accordion.acc-icon-r > .elementor-accordion > .elementor-accordion-item > .elementor-tab-title > .elementor-accordion-icon {
  flex: 0 0 auto;
  order: 2;
}

/* Component content remains size-scoped. */
.elementor .elementor-widget-accordion:is(.acc-s, .acc-m, .acc-l) > .elementor-widget-container > .elementor-accordion > .elementor-accordion-item > .elementor-tab-content,
.elementor .elementor-widget-accordion:is(.acc-s, .acc-m, .acc-l) > .elementor-accordion > .elementor-accordion-item > .elementor-tab-content {
  padding-block: 0 var(--tsds-acc-pad-inline);
  padding-inline: var(--tsds-acc-pad-inline);
  border: 0;
  background: transparent;
  color: var(--tsds-acc-text);
}

.elementor .elementor-widget-accordion:is(.acc-s, .acc-m, .acc-l) > .elementor-widget-container > .elementor-accordion > .elementor-accordion-item > .elementor-tab-content > :where(* + *),
.elementor .elementor-widget-accordion:is(.acc-s, .acc-m, .acc-l) > .elementor-accordion > .elementor-accordion-item > .elementor-tab-content > :where(* + *) {
  margin-block-start: var(--tsds-acc-content-flow);
}

/* Nested Accordion adapter: current direct structure plus the optional widget container. */
.elementor .elementor-widget-n-accordion:is(.acc-s, .acc-m, .acc-l) > .elementor-widget-container > .e-n-accordion,
.elementor .elementor-widget-n-accordion:is(.acc-s, .acc-m, .acc-l) > .e-n-accordion {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.elementor .elementor-widget-n-accordion:is(.acc-s, .acc-m, .acc-l) > .elementor-widget-container > .e-n-accordion > details.e-n-accordion-item,
.elementor .elementor-widget-n-accordion:is(.acc-s, .acc-m, .acc-l) > .e-n-accordion > details.e-n-accordion-item {
  position: relative;
  border: 0;
  border-bottom: 1px solid var(--tsds-acc-border);
  background: var(--tsds-acc-item-background, transparent);
  transition:
    background-color var(--tsds-acc-duration) var(--tsds-acc-easing),
    border-color var(--tsds-acc-duration) var(--tsds-acc-easing),
    box-shadow var(--tsds-acc-duration) var(--tsds-acc-easing),
    transform var(--tsds-acc-duration) var(--tsds-acc-easing);
}

.elementor .elementor-widget-n-accordion:is(.acc-s, .acc-m, .acc-l) > .elementor-widget-container > .e-n-accordion > details.e-n-accordion-item:last-child,
.elementor .elementor-widget-n-accordion:is(.acc-s, .acc-m, .acc-l) > .e-n-accordion > details.e-n-accordion-item:last-child {
  border-bottom: 0;
}

.elementor .elementor-widget-n-accordion:is(.acc-s, .acc-m, .acc-l) > .elementor-widget-container > .e-n-accordion > details.e-n-accordion-item > summary.e-n-accordion-item-title,
.elementor .elementor-widget-n-accordion:is(.acc-s, .acc-m, .acc-l) > .e-n-accordion > details.e-n-accordion-item > summary.e-n-accordion-item-title {
  display: flex;
  align-items: center;
  column-gap: var(--tsds-icon-gap, var(--tsds-acc-default-icon-gap));
  padding-block: var(--tsds-acc-pad-block);
  padding-inline: var(--tsds-acc-pad-inline);
  border: 0;
  background: transparent;
  color: var(--tsds-acc-text);
  transition:
    background-color var(--tsds-acc-duration) var(--tsds-acc-easing),
    color var(--tsds-acc-duration) var(--tsds-acc-easing);
}

.elementor .elementor-widget-n-accordion:is(.acc-s, .acc-m, .acc-l) > .elementor-widget-container > .e-n-accordion > details.e-n-accordion-item > summary.e-n-accordion-item-title:hover,
.elementor .elementor-widget-n-accordion:is(.acc-s, .acc-m, .acc-l) > .e-n-accordion > details.e-n-accordion-item > summary.e-n-accordion-item-title:hover {
  background: var(--tsds-acc-title-hover);
}

.elementor .elementor-widget-n-accordion:is(.acc-s, .acc-m, .acc-l) > .elementor-widget-container > .e-n-accordion > details.e-n-accordion-item[open] > summary.e-n-accordion-item-title,
.elementor .elementor-widget-n-accordion:is(.acc-s, .acc-m, .acc-l) > .elementor-widget-container > .e-n-accordion > details.e-n-accordion-item[open] > summary.e-n-accordion-item-title .e-n-accordion-item-title-text,
.elementor .elementor-widget-n-accordion:is(.acc-s, .acc-m, .acc-l) > .e-n-accordion > details.e-n-accordion-item[open] > summary.e-n-accordion-item-title,
.elementor .elementor-widget-n-accordion:is(.acc-s, .acc-m, .acc-l) > .e-n-accordion > details.e-n-accordion-item[open] > summary.e-n-accordion-item-title .e-n-accordion-item-title-text {
  color: var(--tsds-acc-accent);
}

.elementor .elementor-widget-n-accordion:is(.acc-s, .acc-m, .acc-l) > .elementor-widget-container > .e-n-accordion > details.e-n-accordion-item > summary.e-n-accordion-item-title:focus-visible,
.elementor .elementor-widget-n-accordion:is(.acc-s, .acc-m, .acc-l) > .e-n-accordion > details.e-n-accordion-item > summary.e-n-accordion-item-title:focus-visible {
  outline: 2px solid var(--tsds-acc-accent);
  outline-offset: -2px;
}

/* Elementor keeps ownership of icon size, color and glyph changes. */
.elementor .elementor-widget-n-accordion:is(.acc-s, .acc-m, .acc-l) .e-n-accordion-item-title > .e-n-accordion-item-title-icon {
  flex: 0 0 auto;
  margin-inline: 0 !important;
}

.elementor .elementor-widget-n-accordion:is(.acc-s, .acc-m, .acc-l) .e-n-accordion-item-title > .e-n-accordion-item-title-header {
  flex: 1 1 auto;
  min-width: 0;
  order: 1;
}

.elementor .elementor-widget-n-accordion:is(.acc-s, .acc-m, .acc-l).acc-icon-r .e-n-accordion-item-title > .e-n-accordion-item-title-icon {
  order: 2;
}

/* Keep Nested Accordion's own values, except for its direct header/icon order. */
.elementor .elementor-widget-n-accordion.acc-icon-r > .elementor-widget-container > .e-n-accordion > details.e-n-accordion-item > summary.e-n-accordion-item-title,
.elementor .elementor-widget-n-accordion.acc-icon-r > .e-n-accordion > details.e-n-accordion-item > summary.e-n-accordion-item-title {
  display: flex;
  align-items: center;
}

.elementor .elementor-widget-n-accordion.acc-icon-r > .elementor-widget-container > .e-n-accordion > details.e-n-accordion-item > summary.e-n-accordion-item-title > .e-n-accordion-item-title-header,
.elementor .elementor-widget-n-accordion.acc-icon-r > .e-n-accordion > details.e-n-accordion-item > summary.e-n-accordion-item-title > .e-n-accordion-item-title-header {
  flex: 1 1 auto;
  min-width: 0;
  order: 1;
}

.elementor .elementor-widget-n-accordion.acc-icon-r > .elementor-widget-container > .e-n-accordion > details.e-n-accordion-item > summary.e-n-accordion-item-title > .e-n-accordion-item-title-icon,
.elementor .elementor-widget-n-accordion.acc-icon-r > .e-n-accordion > details.e-n-accordion-item > summary.e-n-accordion-item-title > .e-n-accordion-item-title-icon {
  flex: 0 0 auto;
  order: 2;
}

/* Component content remains size-scoped. */
.elementor .elementor-widget-n-accordion:is(.acc-s, .acc-m, .acc-l) > .elementor-widget-container > .e-n-accordion > details.e-n-accordion-item > .e-con[role="region"],
.elementor .elementor-widget-n-accordion:is(.acc-s, .acc-m, .acc-l) > .e-n-accordion > details.e-n-accordion-item > .e-con[role="region"] {
  padding-block: 0 var(--tsds-acc-pad-inline);
  padding-inline: var(--tsds-acc-pad-inline);
  border: 0;
  background: transparent;
  color: var(--tsds-acc-text);
}

.elementor .elementor-widget-n-accordion:is(.acc-s, .acc-m, .acc-l) > .elementor-widget-container > .e-n-accordion > details.e-n-accordion-item > .e-con[role="region"] > :where(* + *),
.elementor .elementor-widget-n-accordion:is(.acc-s, .acc-m, .acc-l) > .e-n-accordion > details.e-n-accordion-item > .e-con[role="region"] > :where(* + *) {
  margin-block-start: var(--tsds-acc-content-flow);
}

/* Elementor v4 Atomic Accordion. Classic and Nested adapters above remain intact. */
.elementor .e-accordion-base:is(.acc-s, .acc-m, .acc-l) {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.elementor .e-accordion-base:is(.acc-s, .acc-m, .acc-l) > details.e-accordion-item-base {
  position: relative;
  border: 0;
  border-bottom: 1px solid var(--tsds-acc-border);
  background: var(--tsds-acc-item-background, transparent);
  transition:
    background-color var(--tsds-acc-duration) var(--tsds-acc-easing),
    border-color var(--tsds-acc-duration) var(--tsds-acc-easing),
    box-shadow var(--tsds-acc-duration) var(--tsds-acc-easing),
    transform var(--tsds-acc-duration) var(--tsds-acc-easing);
}

.elementor .e-accordion-base:is(.acc-s, .acc-m, .acc-l) > details.e-accordion-item-base:last-child {
  border-bottom: 0;
}

.elementor .e-accordion-base:is(.acc-s, .acc-m, .acc-l) > details.e-accordion-item-base > summary.e-accordion-item-header-base {
  display: flex;
  align-items: center;
  column-gap: var(--tsds-icon-gap, var(--tsds-acc-default-icon-gap));
  padding-block: var(--tsds-acc-pad-block);
  padding-inline: var(--tsds-acc-pad-inline);
  border: 0;
  background: transparent;
  color: var(--tsds-acc-text);
  transition:
    background-color var(--tsds-acc-duration) var(--tsds-acc-easing),
    color var(--tsds-acc-duration) var(--tsds-acc-easing);
}

.elementor .e-accordion-base:is(.acc-s, .acc-m, .acc-l) > details.e-accordion-item-base > summary.e-accordion-item-header-base:hover {
  background: var(--tsds-acc-title-hover);
}

.elementor .e-accordion-base:is(.acc-s, .acc-m, .acc-l) > details.e-accordion-item-base[open] > summary.e-accordion-item-header-base,
.elementor .e-accordion-base:is(.acc-s, .acc-m, .acc-l) > details.e-accordion-item-base[open] > summary.e-accordion-item-header-base > .e-accordion-item-title-base {
  color: var(--tsds-acc-accent);
}

.elementor .e-accordion-base:is(.acc-s, .acc-m, .acc-l) > details.e-accordion-item-base > summary.e-accordion-item-header-base:focus-visible {
  outline: 2px solid var(--tsds-acc-accent);
  outline-offset: -2px;
}

.elementor .e-accordion-base:is(.acc-s, .acc-m, .acc-l) .e-accordion-item-header-base > .e-accordion-item-title-base,
.elementor .e-accordion-base.acc-icon-r .e-accordion-item-header-base > .e-accordion-item-title-base {
  flex: 1 1 auto;
  min-width: 0;
  order: 1;
}

.elementor .e-accordion-base:is(.acc-s, .acc-m, .acc-l) .e-accordion-item-header-base > .e-accordion-item-icon-base {
  flex: 0 0 auto;
  margin-inline: 0 !important;
}

.elementor .e-accordion-base.acc-icon-r .e-accordion-item-header-base {
  display: flex;
  align-items: center;
}

.elementor .e-accordion-base.acc-icon-r .e-accordion-item-header-base > .e-accordion-item-icon-base {
  flex: 0 0 auto;
  order: 2;
}

.elementor .e-accordion-base:is(.acc-s, .acc-m, .acc-l) > details.e-accordion-item-base > .e-accordion-item-content-base {
  padding-block: 0 var(--tsds-acc-pad-inline);
  padding-inline: var(--tsds-acc-pad-inline);
  border: 0;
  background: transparent;
  color: var(--tsds-acc-text);
}

.elementor .e-accordion-base:is(.acc-s, .acc-m, .acc-l) > details.e-accordion-item-base > .e-accordion-item-content-base > :where(* + *) {
  margin-block-start: var(--tsds-acc-content-flow);
}
