/* ==========================================================================
   mb-faq.module — "Methylene Blue IV Therapy: Your Questions Answered"
   Figma: "Methylene Blue - Desktop" › Section (13274:458)
   ========================================================================== */

.mb-faq {
  --mb-blue: var(--color-blue-ocean, #0077BA);
  --mb-blue-dark: var(--color-blue-dark, #005381);
  --mb-blue-accent: #7FB4D8;
  --mb-blue-mid: #508AC5;
  --mb-blue-pale: #8CCAE5;
  --mb-card: #D5E9F4;
  --mb-bg-soft: #E7F2FA;
  --mb-text: #4A5B67;
  --mb-muted: #55697A;
  --mb-body: var(--color-gray-dark, #3C3C3C);
  --mb-orange: var(--color-cta-primary, #F96F48);
  --mb-orange-hover: var(--color-cta-primary-hover, #E05C34);
  --mb-font-head: 'Montserrat', sans-serif;
  --mb-font-body: 'Source Sans Pro', 'Lato', sans-serif;
  --mb-shell: 1200px;
  --mb-pad-y: 96px;
  --mb-pad-x: 120px;
  background: #FFFFFF;
  font-family: var(--mb-font-body);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 30px;
  padding: var(--mb-pad-y) var(--mb-pad-x);
}

.mb-faq,
.mb-faq *,
.mb-faq *::before,
.mb-faq *::after {
  box-sizing: border-box;
}

/* The parent theme sets `li { margin: .7rem }`, which insets every grid and
   flex item by 11.2px per side and knocks card rows out of alignment with the
   full-width panels around them. Lists here space themselves with `gap`. */
.mb-faq ul,
.mb-faq ol {
  margin: 0;
  padding: 0;
}

.mb-faq li {
  margin: 0;
}

.mb-faq__header {
  width: 100%;
  max-width: 750px;
  text-align: center;
}

.mb-faq__heading {
  margin: 0;
  font-family: var(--mb-font-head);
  font-weight: 700;
  font-size: 40px;
  line-height: 1.18;
  color: var(--mb-blue-dark);
}

.mb-faq__heading-accent { color: var(--mb-blue-pale); }

.mb-faq__list {
  margin: 0;
  padding: 0;
  width: 100%;
  max-width: 822px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.mb-faq__item {
  border: 1px solid var(--mb-card);
  border-radius: 14px;
  background: #FFFFFF;
  overflow: hidden;
}

.mb-faq__question-wrap {
  margin: 0;
  font: inherit;
}

/* child.css:887 paints every <button> on the site orange, centred and
   `min-width: 300px`, at specificity (0,2,2) once :hover is counted. These
   rules are scoped under .mb-faq so they out-specify it without !important. */
.mb-faq .mb-faq__question,
.mb-faq .mb-faq__question:hover,
.mb-faq .mb-faq__question:focus {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
  width: 100%;
  min-width: 0;
  margin: 0;
  padding: 25px;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--mb-blue-dark);
  font-family: var(--mb-font-body);
  font-size: 24px;
  line-height: 1.2;
  text-align: left;
  cursor: pointer;
  transition: background-color .2s ease;
}

.mb-faq .mb-faq__question:hover,
.mb-faq .mb-faq__question:focus-visible {
  background: #F5FAFD;
}

.mb-faq .mb-faq__question:focus-visible {
  outline: 2px solid var(--mb-blue);
  outline-offset: -2px;
}

.mb-faq .mb-faq__question-text {
  font-family: var(--mb-font-body);
  font-weight: 400;
  font-size: 24px;
  line-height: 1.2;
  color: var(--mb-blue-dark);
}

.mb-faq__icon {
  flex: 0 0 32px;
  width: 32px;
  height: 32px;
  transition: transform .2s ease;
}

.mb-faq__item.is-open .mb-faq__icon {
  transform: rotate(45deg);
}

.mb-faq__answer-inner {
  padding: 0 25px 25px;
  color: var(--mb-text);
  font-size: 18px;
  line-height: 1.5;
}

.mb-faq__answer-inner p { margin: 0 0 12px; }
.mb-faq__answer-inner p:last-child { margin-bottom: 0; }
.mb-faq__answer-inner a { color: var(--mb-blue); }
/* Answers are editor richtext — give prose lists their markers back. */
.mb-faq__answer-inner ul,
.mb-faq__answer-inner ol {
  margin: 0 0 12px;
  padding-left: 24px;
  list-style: disc;
}

.mb-faq__answer-inner ol { list-style: decimal; }

.mb-faq__answer-inner li { margin: 0 0 4px; }


/* --------------------------------------------------------------------------
   Full-bleed inside drag-and-drop areas
   The parent @hubspot/growth theme gives .dnd-section side gutters, a centred
   max-width and vertical padding. This section is designed edge-to-edge, so it
   releases those constraints on the wrapper it sits in. :has() is already used
   this way in the theme — see pdp-hero.module.
   -------------------------------------------------------------------------- */
.dnd-section:has(.mb-faq) {
  max-width: none !important;
  padding: 0 !important;
}

.dnd-section:has(.mb-faq) > .row-fluid,
.dnd-section:has(.mb-faq) .dnd-row,
.dnd-section:has(.mb-faq) .dnd-column,
.dnd-section:has(.mb-faq) .widget-span {
  max-width: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* Fallback for engines without :has() — 100vw overhangs by the scrollbar width,
   which child.css clips via `overflow-x: clip` on html/body. */
@supports not selector(:has(*)) {
  .mb-faq {
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50%% - 50vw);
    margin-right: calc(50%% - 50vw);
  }
}

/* --------------------------------------------------------------------------
   Responsive
   -------------------------------------------------------------------------- */
@media (max-width: 1199px) {
  .mb-faq { padding: 64px var(--mb-pad-x); }
}

@media (max-width: 767px) {
  .mb-faq { padding: 48px var(--mb-pad-x); gap: 24px; }
  .mb-faq__heading { font-size: 28px; }
  .mb-faq__question { padding: 20px; }
  .mb-faq__question-text { font-size: 20px; }
  .mb-faq__answer-inner { padding: 0 20px 20px; font-size: 16px; }
}

/* --------------------------------------------------------------------------
   Shared gutter scale — every mb-* section steps down together so blocks stay
   edge-aligned with each other at every width.
   -------------------------------------------------------------------------- */
@media (max-width: 991px) {
  .mb-faq { --mb-pad-x: 40px; --mb-pad-y: 64px; }
}

@media (max-width: 599px) {
  .mb-faq { --mb-pad-x: 20px; --mb-pad-y: 48px; }
}
