.ac,
.ac-sub {
  display: block;
  position: relative;
}

.ac:not(:last-child) {
  margin-bottom: 2rem;
}
.ac strong,
.ac b {
  font-weight: 800;
}
.ac ul {
  position: relative;
  padding: 0;
}
.ac ul:has(+ p) {
  margin: 0 0 2rem 0;
}
.ac ul li {
  position: relative;
  padding-left: 2rem;
}
.ac ul li:not(:last-child) {
  margin-bottom: 2rem;
}
.ac ul li:before {
  color: var(--vigiloDarkBlue);
  font-family: var(--vigiloIcons);
  content: "z";
  font-size: 0.6em;
  position: absolute;
  left: 0;
  top: 0.6rem;
}
.ac.alt ul {
  font-size: var(--fontSize-MainP);
}
.ac.alt h2 {
  text-align: left;
  margin: 0 0 2rem 0;
  font-size: clamp(2rem, var(--fsClamp-scaler-h), 3rem);
}
.ac.alt li:before {
  content: "z";
  font-size: 1.5rem;
  margin-top: 0.5rem;
}
.ac .ac-program-icon {
  --size: 5rem;
  position: relative;
  display: flex;
  align-items: center;
  width: var(--size);
  height: var(--size);
  border-radius: 0.8rem;
  background-color: var(--colorWhite);
  margin: -0.8rem;
  flex-shrink: 0;
}
.ac .ac-program-icon:after {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  font-family: var(--vigiloIcons);
  font-size: 2.6rem;
}
.ac .ac-program-icon.plane:after {
  content: "&";
}
.ac .ac-program-icon.bus:after {
  content: "$";
}
.ac .ac-program-icon.car:after {
  content: "%";
}
.ac .ac-program-icon.train:after {
  content: "/";
}
.ac .ac-program-icon.subway:after {
  content: ":";
}
.ac .ac-program-icon.tram:after {
  content: ";";
}
.ac .ac-program-icon.walk:after {
  content: "<";
}
.ac .ac-program-icon.priority:after {
  content: "[";
  color: #e74c3c;
}
.ac .ac-program-icon.development:after {
  content: ">";
  color: #2880b9;
}
.ac .ac-program-icon.launched-to-test:after {
  content: "?";
  color: #8e44ad;
}
.ac .ac-program-icon.launched:after {
  content: "?";
  color: #27ae60;
}

.ac-sub:not(:last-child) {
  margin-bottom: 2rem;
}

.section-text.personvern strong,
.section-text.personvern b {
  font-weight: 800;
}
.section-text.personvern li:not(:last-child) {
  margin-bottom: 2rem;
}
.section-text.personvern a {
  color: var(--vigiloSecondaryBlue);
  font-weight: normal;
  text-decoration: underline;
}

.ac li:before,
.section-text li:before {
  color: var(--vigiloDarkBlue);
  font-family: var(--vigiloIcons);
  content: "z";
  font-size: 0.6em;
  position: absolute;
  left: 0;
  top: 0.6rem;
}

.ac-label {
  --padding: 1.5rem;
  font-weight: var(--fontWeight-Bold);
  position: relative;
  padding: var(--padding) 5rem var(--padding) var(--padding);
  margin: 0 0 -0.1rem 0;
  display: block;
  cursor: pointer;
  color: var(--vigiloDarkBlue);
  font-size: 1.8rem;
  transition: background-color 0.3s ease, color 0.3s ease;
  background-color: var(--checkboxUnactive);
  border-radius: var(--borderRadius);
}
.ac-label.icon {
  display: flex;
  align-items: center;
  text-wrap: balance;
  gap: 2rem;
}
.ac-label:hover {
  background-color: var(--checkboxHover);
}
.ac-label:after {
  font-family: var(--vigiloIcons);
  content: "s";
  position: absolute;
  display: block;
  right: 2rem;
  top: 50%;
  transform: translateY(-50%);
  font-size: 1.8rem;
  text-align: center;
  transition: transform 0.3s ease;
}

.ac-input {
  position: absolute;
  width: 100%;
  height: 100%;
  border-radius: var(--borderRadius);
  pointer-events: none;
}
.ac-input:checked + .ac-label {
  background-color: var(--checkboxActive);
  color: var(--vigiloDarkBlue);
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}
.ac-input:checked + .ac-label:after {
  transform: translateY(-50%) rotate(-180deg);
}
.ac-input:focus-visible {
  outline: 0.2rem solid var(--vigiloSecondaryBlue);
  outline-offset: 0.2rem;
}

.ac-text,
.ac-sub-text {
  opacity: 0;
  height: 0;
  display: none;
  transition: all 0.15s ease-in-out;
  overflow: hidden;
  word-break: break-word;
  border: 0.5rem solid var(--checkboxActive);
  border-bottom-left-radius: var(--borderRadius);
  border-bottom-right-radius: var(--borderRadius);
  box-sizing: border-box;
  padding: 1.5rem;
}
.ac-text p,
.ac-sub-text p {
  max-width: none;
  font-size: var(--fontSize-Root);
  text-wrap: balance;
}
.ac-text a,
.ac-sub-text a {
  color: var(--vigiloSecondaryBlue);
  font-weight: normal;
  text-decoration: underline;
}

.ac-input:checked ~ .ac-text,
.ac-sub .ac-input:checked ~ .ac-sub-text {
  display: block;
  opacity: 1;
  height: auto;
  overflow: visible;
}

.ac-sub-wrap {
  margin: 2rem 0 0 0;
}

.ac-sub-text span p {
  padding: 0;
}
.ac-sub-text span p:not(:last-child) {
  margin-bottom: 2rem;
}
