/*
 * Disclosure redesign - Direction A "Quiet Index" - SITE-WIDE (2026-07-11).
 * Template proven on /anxiety/ (pilot rounds 1-3, EXHALE_VERSION 1.0.102-104);
 * widened to every disclosure family per Sean's "all go".
 *
 * Families covered:
 *   A. Elementor nested accordion  - all wp-page instances (service pages,
 *      homepage, about, contact, who-i-help, policy pages, CBT widgets).
 *      Scoped to [data-elementor-type="wp-page"] so the footer nav popup
 *      (Elementor template 15011) and the theme mobile menu stay untouched.
 *   B. AI top-page snippet - classed .ic-qa (9 service pages) + the
 *      classless variant on 6 approach pages via the structural selector
 *      on the 54px rule span.
 *   C. Editorial first-line paragraph indent in anchored content sections.
 *   D. Approach-page FAQs - .act-faq (6 pages) + .cbt-faq.
 *   E. City-page FAQs - details.cw-faq-item (5 pages, also fixes their
 *      corrupted var(--cw-gray) divider AND the display:none carryover
 *      that hid open answers) + Colwood's button/JS variant.
 *   F. /faq/ plugin - details.ifaq-full-details.
 *   G. Legacy Elementor toggle widget (spiritual-existential page).
 *
 * !important is required: it overrides Elementor per-widget CSS, in-body
 * <style> blocks (which come after this sheet in document order), and
 * inline styles, without touching _elementor_data (hard rule). Where the
 * competing rule also carries !important, selectors here are kept more
 * specific (div./details. prefixes) so ours wins.
 * Palette locked: #021649 navy, #029791 teal, #2E5D4B dark green, #333 body.
 */

/* ==================================================================== */
/* ==== A. Elementor nested accordion (all page instances) =========== */
/* ==================================================================== */

[data-elementor-type="wp-page"] .e-n-accordion {
  border-top: 1px solid rgba(2, 22, 73, 0.14);
}

[data-elementor-type="wp-page"] .e-n-accordion > details.e-n-accordion-item {
  margin: 0 !important;
  padding: 0;
  background: transparent !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(2, 22, 73, 0.14) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

[data-elementor-type="wp-page"] .e-n-accordion summary.e-n-accordion-item-title {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  min-height: 56px; /* past the 44px touch floor */
  padding: 1.1rem 0.125rem !important;
  margin: 0;
  background: transparent !important;
  border: 0 !important;
  cursor: pointer;
  list-style: none;
  font-family: "Work Sans", "Inter", sans-serif !important;
  font-size: 17px !important;
  font-weight: 500 !important;
  line-height: 1.35 !important;
  letter-spacing: 0.01em !important;
  color: #021649 !important;
  -webkit-tap-highlight-color: rgba(2, 151, 145, 0.08);
}

[data-elementor-type="wp-page"] .e-n-accordion summary::-webkit-details-marker { display: none; }
[data-elementor-type="wp-page"] .e-n-accordion summary::marker { content: none; }

/* Retire Elementor's chevron; the ::after plus below replaces it */
[data-elementor-type="wp-page"] .e-n-accordion .e-n-accordion-item-title-icon { display: none !important; }

[data-elementor-type="wp-page"] .e-n-accordion .e-n-accordion-item-title-header,
[data-elementor-type="wp-page"] .e-n-accordion .e-n-accordion-item-title-text {
  font: inherit !important;
  color: inherit !important;
  letter-spacing: inherit !important;
}

/* Hairline plus, drawn in CSS; rotates into a close mark when open */
[data-elementor-type="wp-page"] .e-n-accordion summary.e-n-accordion-item-title::after {
  content: "";
  flex: 0 0 auto;
  margin-left: auto;
  width: 13px;
  height: 13px;
  background:
    linear-gradient(currentColor, currentColor) center / 13px 1.5px no-repeat,
    linear-gradient(currentColor, currentColor) center / 1.5px 13px no-repeat;
  opacity: 0.55;
}

@media (hover: hover) {
  [data-elementor-type="wp-page"] .e-n-accordion details:not([open]) > summary:hover {
    color: #2E5D4B !important;
    background: transparent !important;
  }
  [data-elementor-type="wp-page"] .e-n-accordion summary:hover::after { opacity: 1; }
}

[data-elementor-type="wp-page"] .e-n-accordion details[open] {
  border-bottom-color: rgba(2, 151, 145, 0.45) !important;
}
[data-elementor-type="wp-page"] .e-n-accordion details[open] > summary { background: transparent !important; }
[data-elementor-type="wp-page"] .e-n-accordion details[open] > summary::after {
  color: #029791;
  transform: rotate(45deg);
  opacity: 1;
}

/* Answer region: 2px teal spine, calm gutters. border:0 first strips any
   per-widget content-box borders (homepage FAQ widget carries one). */
[data-elementor-type="wp-page"] .e-n-accordion > details > .e-con {
  margin: 0 0 1.15rem !important;
  padding: 0.125rem 2.25rem 0.125rem 1.125rem !important;
  border: 0 !important;
  border-left: 2px solid #029791 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}

/* Links inside answers: dark green at rest (7.54:1 AA), navy on hover.
   Teal stays reserved for non-text accents (spine, indicator, focus). */
[data-elementor-type="wp-page"] .e-n-accordion > details > .e-con a {
  color: #2E5D4B;
  text-decoration: underline;
  text-underline-offset: 2px;
}
[data-elementor-type="wp-page"] .e-n-accordion > details > .e-con a:hover { color: #021649; }

[data-elementor-type="wp-page"] .e-n-accordion summary:focus-visible {
  outline: 2px solid #029791;
  outline-offset: 4px;
  border-radius: 3px;
}
[data-elementor-type="wp-page"] .e-n-accordion summary:focus:not(:focus-visible) { outline: none; }

@media (prefers-reduced-motion: no-preference) {
  [data-elementor-type="wp-page"] .e-n-accordion summary { transition: color 160ms ease; }
  [data-elementor-type="wp-page"] .e-n-accordion summary::after {
    transition: transform 220ms ease, opacity 160ms ease;
  }
}

@media (max-width: 640px) {
  [data-elementor-type="wp-page"] .e-n-accordion > details > .e-con {
    padding-right: 0.5rem !important;
  }
}

/* ==================================================================== */
/* ==== B. AI snippet typography normalization ======================= */
/* ==================================================================== */

/* Classed variant (.ic-qa, 9 service pages): question matches site
   headings (w500, lh 1.3, ls 0.9px); answer bound to the Kit's body-text
   globals so it tracks body copy at every breakpoint. */

.ic-qa__q,
.elementor-widget-html span[style*="width:54px"] + p {
  font-weight: 500 !important;
  line-height: 1.3 !important;
  letter-spacing: 0.9px !important;
}

.ic-qa__a,
.elementor-widget-html span[style*="width:54px"] + p + p {
  font-size: var(--e-global-typography-text-font-size, 16px) !important;
  line-height: var(--e-global-typography-text-line-height, 1.5em) !important;
  color: #333333 !important;
}

@media (max-width: 767px) {
  .ic-qa__q,
  .elementor-widget-html span[style*="width:54px"] + p { font-size: 22px !important; }
}

/* ==================================================================== */
/* ==== C. Editorial paragraph indent in anchored content sections === */
/* ==================================================================== */

[data-elementor-type="wp-page"] .e-con[id] .elementor-widget-text-editor p {
  text-indent: 1.35em;
}

[data-elementor-type="wp-page"] .e-con[id] .e-n-accordion p,
[data-elementor-type="wp-page"] .e-con[id] .cwt-grid p,
[data-elementor-type="wp-page"] .e-con[id] .ic-qa p {
  text-indent: 0;
}

/* ==================================================================== */
/* ==== D. Approach-page FAQs (.act-faq on 6 pages; .cbt-faq) ========= */
/* ==================================================================== */

div.act-faq, div.cbt-faq { border-top: 1px solid rgba(2, 22, 73, 0.14); }

div.act-faq details,
div.cbt-faq details {
  border: 0 !important;
  border-bottom: 1px solid rgba(2, 22, 73, 0.14) !important;
  border-radius: 0 !important;
  margin: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

div.act-faq details > summary,
div.cbt-faq details > summary {
  display: flex !important;
  justify-content: flex-start !important;
  align-items: center !important;
  gap: 1.25rem !important;
  min-height: 56px;
  padding: 1.1rem 0.125rem !important;
  cursor: pointer;
  list-style: none !important;
  font-family: "Work Sans", "Inter", sans-serif !important;
  font-size: 17px !important;
  font-weight: 500 !important;
  line-height: 1.35 !important;
  letter-spacing: 0.01em !important;
  color: #021649 !important;
}
div.act-faq details > summary::-webkit-details-marker,
div.cbt-faq details > summary::-webkit-details-marker { display: none; }

/* Replace their typographic +/- with the hairline plus */
div.act-faq details > summary::after,
div.cbt-faq details > summary::after {
  content: "" !important;
  flex: 0 0 auto !important;
  margin-left: auto !important;
  width: 13px !important;
  height: 13px !important;
  background:
    linear-gradient(currentColor, currentColor) center / 13px 1.5px no-repeat,
    linear-gradient(currentColor, currentColor) center / 1.5px 13px no-repeat !important;
  opacity: 0.55;
  color: #021649 !important;
  font-size: 0 !important;
}

@media (hover: hover) {
  div.act-faq details:not([open]) > summary:hover,
  div.cbt-faq details:not([open]) > summary:hover { color: #2E5D4B !important; }
  div.act-faq details > summary:hover::after,
  div.cbt-faq details > summary:hover::after { opacity: 1; }
}

div.act-faq details[open],
div.cbt-faq details[open] { border-bottom-color: rgba(2, 151, 145, 0.45) !important; }

div.act-faq details[open] > summary::after,
div.cbt-faq details[open] > summary::after {
  content: "" !important;
  color: #029791 !important;
  transform: rotate(45deg);
  opacity: 1;
}

div.act-faq details .a,
div.cbt-faq details .faq-answer {
  margin: 0 0 1.15rem !important;
  padding: 0.125rem 2.25rem 1.15rem 1.125rem !important;
  border-left: 2px solid #029791 !important;
  font-family: "Inter", sans-serif !important;
  font-size: 16px !important;
  line-height: 1.5 !important;
  color: #333333 !important;
}
div.act-faq details .a p { margin: 0 0 0.75em; font: inherit !important; color: inherit !important; }
div.act-faq details .a p:last-child { margin-bottom: 0; }

div.act-faq details > summary:focus-visible,
div.cbt-faq details > summary:focus-visible {
  outline: 2px solid #029791;
  outline-offset: 4px;
  border-radius: 3px;
}

@media (prefers-reduced-motion: no-preference) {
  div.act-faq details > summary, div.cbt-faq details > summary { transition: color 160ms ease; }
  div.act-faq details > summary::after,
  div.cbt-faq details > summary::after { transition: transform 220ms ease, opacity 160ms ease; }
}

/* ==================================================================== */
/* ==== E. City-page FAQs ============================================= */
/* ==================================================================== */

/* E1. details variant (Langford, Online, Sooke, Victoria, Westshore).
   Overrides inline styles on details/summary/answer; also supersedes the
   corrupted var(--cw-gray) rule and the display:none carried over from
   the button-variant CSS that hides open answers. */

details.cw-faq-item {
  border: 0 !important;
  border-bottom: 1px solid rgba(2, 22, 73, 0.14) !important;
  padding: 0 !important;
  background: transparent !important;
}

details.cw-faq-item > summary {
  display: flex !important;
  justify-content: flex-start !important;
  align-items: center !important;
  gap: 1.25rem !important;
  min-height: 56px;
  padding: 1.1rem 0.125rem !important;
  cursor: pointer;
  list-style: none !important;
  font-family: "Work Sans", "Inter", sans-serif !important;
  font-size: 17px !important;
  font-weight: 500 !important;
  line-height: 1.35 !important;
  letter-spacing: 0.01em !important;
  color: #021649 !important;
}
details.cw-faq-item > summary::-webkit-details-marker { display: none; }

details.cw-faq-item > summary::after {
  content: "";
  flex: 0 0 auto;
  margin-left: auto;
  width: 13px;
  height: 13px;
  background:
    linear-gradient(currentColor, currentColor) center / 13px 1.5px no-repeat,
    linear-gradient(currentColor, currentColor) center / 1.5px 13px no-repeat;
  opacity: 0.55;
}

@media (hover: hover) {
  details.cw-faq-item:not([open]) > summary:hover { color: #2E5D4B !important; }
  details.cw-faq-item > summary:hover::after { opacity: 1; }
}

details.cw-faq-item[open] { border-bottom-color: rgba(2, 151, 145, 0.45) !important; }
details.cw-faq-item[open] > summary::after { color: #029791; transform: rotate(45deg); opacity: 1; }

details.cw-faq-item .cw-faq-answer {
  margin: 0 0 1.15rem !important;
  padding: 0.125rem 2.25rem 1.15rem 1.125rem !important;
  border-left: 2px solid #029791 !important;
  font-family: "Inter", sans-serif !important;
  font-size: 16px !important;
  line-height: 1.5 !important;
  color: #333333 !important;
}
details.cw-faq-item[open] .cw-faq-answer { display: block !important; }

details.cw-faq-item > summary:focus-visible {
  outline: 2px solid #029791;
  outline-offset: 4px;
  border-radius: 3px;
}

/* E2. Colwood's button/JS variant (div.cw-faq-item + .cw-faq-btn).
   Behaviour (JS toggle via .cw-faq-open) is untouched; only the look. */

.cw-faq-list { border-top: 1px solid rgba(2, 22, 73, 0.14) !important; }

div.cw-faq-item { border-bottom: 1px solid rgba(2, 22, 73, 0.14) !important; }
div.cw-faq-item.cw-faq-open { border-bottom-color: rgba(2, 151, 145, 0.45) !important; }

div.cw-faq-item .cw-faq-btn {
  padding: 1.1rem 0.125rem !important;
  min-height: 56px;
  gap: 1.25rem;
}
div.cw-faq-item .cw-faq-btn span {
  font-family: "Work Sans", "Inter", sans-serif !important;
  font-size: 17px !important;
  font-weight: 500 !important;
  letter-spacing: 0.01em !important;
  line-height: 1.35 !important;
  color: #021649 !important;
}
div.cw-faq-item .cw-faq-btn svg { display: none !important; }
div.cw-faq-item .cw-faq-btn::after {
  content: "";
  flex: 0 0 auto;
  margin-left: auto;
  width: 13px;
  height: 13px;
  background:
    linear-gradient(currentColor, currentColor) center / 13px 1.5px no-repeat,
    linear-gradient(currentColor, currentColor) center / 1.5px 13px no-repeat;
  opacity: 0.55;
  color: #021649;
}
div.cw-faq-item.cw-faq-open .cw-faq-btn::after {
  color: #029791;
  transform: rotate(45deg);
  opacity: 1;
}
div.cw-faq-item .cw-faq-answer {
  padding: 0.125rem 2.25rem 1.15rem 1.125rem !important;
  border-left: 2px solid #029791 !important;
  font-family: "Inter", sans-serif !important;
  font-size: 16px !important;
  line-height: 1.5 !important;
  color: #333333 !important;
}

@media (prefers-reduced-motion: no-preference) {
  details.cw-faq-item > summary,
  div.cw-faq-item .cw-faq-btn span { transition: color 160ms ease; }
  details.cw-faq-item > summary::after,
  div.cw-faq-item .cw-faq-btn::after { transition: transform 220ms ease, opacity 160ms ease; }
}

/* ==================================================================== */
/* ==== F. /faq/ plugin (introspectus-faq, 61 items) ================== */
/* ==================================================================== */

details.ifaq-full-details {
  border: 0 !important;
  border-bottom: 1px solid rgba(2, 22, 73, 0.14) !important;
  border-radius: 0 !important;
  margin: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

details.ifaq-full-details > summary.ifaq-full-summary {
  display: flex !important;
  align-items: center !important;
  gap: 1.25rem !important;
  min-height: 56px;
  padding: 1.1rem 0.125rem !important;
  cursor: pointer;
  list-style: none !important;
  background: transparent !important;
  border: 0 !important;
}
details.ifaq-full-details > summary.ifaq-full-summary::-webkit-details-marker { display: none; }

details.ifaq-full-details .ifaq-full-question {
  font-family: "Work Sans", "Inter", sans-serif !important;
  font-size: 17px !important;
  font-weight: 500 !important;
  line-height: 1.35 !important;
  letter-spacing: 0.01em !important;
  color: #021649 !important;
}

details.ifaq-full-details .ifaq-full-chevron { display: none !important; }

details.ifaq-full-details > summary.ifaq-full-summary::after {
  content: "";
  flex: 0 0 auto;
  margin-left: auto;
  width: 13px;
  height: 13px;
  background:
    linear-gradient(currentColor, currentColor) center / 13px 1.5px no-repeat,
    linear-gradient(currentColor, currentColor) center / 1.5px 13px no-repeat;
  opacity: 0.55;
  color: #021649;
}

@media (hover: hover) {
  details.ifaq-full-details:not([open]) > summary:hover .ifaq-full-question { color: #2E5D4B !important; }
  details.ifaq-full-details > summary:hover::after { opacity: 1; }
}

details.ifaq-full-details[open] { border-bottom-color: rgba(2, 151, 145, 0.45) !important; }
details.ifaq-full-details[open] > summary.ifaq-full-summary::after {
  color: #029791;
  transform: rotate(45deg);
  opacity: 1;
}

details.ifaq-full-details > .ifaq-full-answer {
  margin: 0 0 1.15rem !important;
  padding: 0.125rem 2.25rem 1.15rem 1.125rem !important;
  border-left: 2px solid #029791 !important;
  font-family: "Inter", sans-serif !important;
  font-size: 16px !important;
  line-height: 1.5 !important;
  color: #333333 !important;
}
details.ifaq-full-details > .ifaq-full-answer p { font: inherit !important; color: inherit !important; }
details.ifaq-full-details > .ifaq-full-answer a { color: #2E5D4B; text-decoration: underline; text-underline-offset: 2px; }
details.ifaq-full-details > .ifaq-full-answer a:hover { color: #021649; }

details.ifaq-full-details > summary.ifaq-full-summary:focus-visible {
  outline: 2px solid #029791;
  outline-offset: 4px;
  border-radius: 3px;
}

@media (prefers-reduced-motion: no-preference) {
  details.ifaq-full-details .ifaq-full-question { transition: color 160ms ease; }
  details.ifaq-full-details > summary.ifaq-full-summary::after { transition: transform 220ms ease, opacity 160ms ease; }
}

/* ==================================================================== */
/* ==== G. Legacy Elementor toggle widget (spiritual-existential) ===== */
/* ==================================================================== */

[data-elementor-type="wp-page"] .elementor-widget-toggle .elementor-toggle-item {
  border: 0 !important;
  border-bottom: 1px solid rgba(2, 22, 73, 0.14) !important;
}

[data-elementor-type="wp-page"] .elementor-widget-toggle .elementor-tab-title {
  padding: 1.1rem 0.125rem !important;
  background: transparent !important;
  border: 0 !important;
  font-family: "Work Sans", "Inter", sans-serif !important;
  font-size: 17px !important;
  font-weight: 500 !important;
  line-height: 1.35 !important;
  letter-spacing: 0.01em !important;
  color: #021649 !important;
}
[data-elementor-type="wp-page"] .elementor-widget-toggle .elementor-tab-title a {
  font: inherit !important;
  color: inherit !important;
}

[data-elementor-type="wp-page"] .elementor-widget-toggle .elementor-tab-content {
  border: 0 !important;
  border-left: 2px solid #029791 !important;
  margin: 0 0 1.15rem !important;
  padding: 0.125rem 2.25rem 1.15rem 1.125rem !important;
  font-size: 16px !important;
  line-height: 1.5 !important;
  color: #333333 !important;
}
