/**
 * Chamathka Cab Service - frequently asked questions.
 * Snippet: "CCS FAQ Styles" | group: FAQ Section | type: CSS | run_at: all
 * CCS_FAQ_CSS_MARKER
 *
 * The two-column layout, the help panel, and the accordion itself. Panels are
 * open until the script marks the accordion ready, so the answers are still
 * readable if the JavaScript never runs.
 */

.ccs-faq__layout {
  display: grid;
  gap: var(--wp--preset--spacing--70) var(--wp--custom--grid-gap);
}

@media (min-width: 1000px) {
  .ccs-faq__layout {
    grid-template-columns: minmax(0, 0.78fr) minmax(0, 1.22fr);
    align-items: start;
  }

  .ccs-faq__aside {
    position: sticky;
    top: calc(var(--wp--custom--header-height) + var(--wp--preset--spacing--60));
  }
}

.ccs-faq__help {
  margin-top: var(--wp--preset--spacing--60);
  padding: var(--wp--custom--card-padding);
  background-color: var(--wp--preset--color--base);
  border: var(--wp--custom--border-hairline) solid var(--wp--preset--color--line);
  border-left: 3px solid var(--wp--preset--color--accent);
  border-radius: var(--wp--custom--radius-md);
}

.ccs-faq__help-title {
  margin: 0 0 var(--wp--preset--spacing--20);
  font-size: var(--wp--preset--font-size--lg);
}

.ccs-faq__help-text {
  margin: 0 0 var(--wp--preset--spacing--50);
  color: var(--wp--preset--color--muted);
  font-size: var(--wp--preset--font-size--base);
}

/* --- The accordion ------------------------------------------------------- */
.ccs-accordion {
  display: grid;
  gap: var(--wp--preset--spacing--20);
}

.ccs-accordion__item {
  overflow: hidden;
  background-color: var(--wp--preset--color--base);
  border: var(--wp--custom--border-hairline) solid var(--wp--preset--color--line);
  border-radius: var(--wp--custom--radius-md);
  transition: border-color var(--wp--custom--duration-base) var(--wp--custom--ease-out),
    box-shadow var(--wp--custom--duration-base) var(--wp--custom--ease-out);
}

.ccs-accordion__item.is-open {
  border-color: var(--wp--preset--color--line-strong);
  box-shadow: var(--wp--custom--shadow-sm);
}

.ccs-accordion__heading {
  margin: 0;
  font-size: inherit;
}

.ccs-accordion__trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--wp--preset--spacing--40);
  width: 100%;
  padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--50);
  background: none;
  border: 0;
  cursor: pointer;
  text-align: left;
  font-family: inherit;
  font-size: var(--wp--preset--font-size--md);
  font-weight: var(--wp--custom--weight-semibold);
  letter-spacing: var(--wp--custom--tracking-tight);
  color: var(--wp--preset--color--contrast);
  transition: color var(--wp--custom--duration-fast) var(--wp--custom--ease-out);
}

.ccs-accordion__trigger:hover {
  color: var(--wp--preset--color--accent-ink);
}

.ccs-accordion__icon {
  position: relative;
  flex: none;
  width: 20px;
  height: 20px;
  color: var(--wp--preset--color--accent);
}

.ccs-accordion__icon::before,
.ccs-accordion__icon::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  background-color: currentColor;
  transform: translate(-50%, -50%);
  transition: transform var(--wp--custom--duration-base) var(--wp--custom--ease-out),
    opacity var(--wp--custom--duration-base) var(--wp--custom--ease-out);
}

.ccs-accordion__icon::before {
  width: 14px;
  height: 2px;
}

.ccs-accordion__icon::after {
  width: 2px;
  height: 14px;
}

.ccs-accordion__item.is-open .ccs-accordion__icon::after {
  transform: translate(-50%, -50%) rotate(90deg);
  opacity: 0;
}

/*
 * Open by default. The script adds .ccs-accordion--ready once it has taken
 * over, and only then does anything collapse.
 */
.ccs-accordion__panel {
  display: grid;
  grid-template-rows: 1fr;
  transition: grid-template-rows var(--wp--custom--duration-base) var(--wp--custom--ease-out);
}

.ccs-accordion--ready .ccs-accordion__panel {
  grid-template-rows: 0fr;
}

.ccs-accordion--ready .ccs-accordion__item.is-open .ccs-accordion__panel {
  grid-template-rows: 1fr;
}

.ccs-accordion__panel-inner {
  overflow: hidden;
}

.ccs-accordion__panel p {
  margin: 0;
  padding: 0 var(--wp--preset--spacing--50) var(--wp--preset--spacing--50);
  color: var(--wp--preset--color--muted);
  font-size: var(--wp--preset--font-size--base);
}

@media (prefers-reduced-motion: reduce) {
  .ccs-accordion__panel,
  .ccs-accordion__icon::before,
  .ccs-accordion__icon::after {
    transition: none;
  }
}
