/* Responsive repairs shared by the home and challenge pages. */
.container > *, .challenge-grid > *, .audience-inner > *, .how-inner > *,
.hero-grid > *, .offer-grid > *, .about-grid > *, .final-grid > * { min-width: 0; }
.challenge-grid { min-width: 0; }
.challenge-followup h2, .challenge-followup p { white-space: normal; }
/* Native disclosures work with touch, keyboard, and without JavaScript. */
.faq-section details.faq-card { display: block !important; }
.faq-card summary { display: grid; grid-template-columns: 43px minmax(0,1fr) 22px; align-items: start; gap: 18px; list-style: none; cursor: pointer; }
.faq-card summary::-webkit-details-marker { display: none; }
.faq-card summary h3 { margin: 0; font: 600 21px/1.28 "DM Sans",Arial,sans-serif; color: inherit; }
.faq-toggle::before { content: '+'; font-size: 25px; line-height: 1; }
.faq-card[open] .faq-toggle::before { content: '−'; }
.faq-card summary:focus-visible { outline: 2px solid #c68d2e; outline-offset: 8px; border-radius: 4px; }
.faq-card .faq-content { margin: 16px 0 0 61px; }
.faq-card .faq-content p { margin-bottom: 0; }
@media (max-width: 1050px) {
  .challenge-movements { overflow: visible; }
  .movement-grid { min-width: 0; grid-template-columns: repeat(3,minmax(0,1fr)); }
}
@media (max-width: 820px) {
  .challenge-page, .challenge-hero, .challenge-grid { width: 100%; min-width: 0; }
  .challenge-grid.container { width: calc(100% - 30px); }
  .challenge-brand { font-size: clamp(20px,4.7vw,28px); line-height: 1.25; }
  .challenge-copy h1, .challenge-followup h2, .challenge-followup p { white-space: normal; overflow-wrap: break-word; }
  .challenge-followup p { font-size: 16px; }
  .cta-promo-copy, .cta-promo-copy h2 { width: 100%; min-width: 0; max-width: 100%; }
  .cta-promo-inner { grid-template-columns: minmax(0,1fr); }
  .cta-promo-copy h2 { white-space: normal; overflow-wrap: break-word; }
  .cta-promo-button { max-width: 100%; min-width: 0; }
  .audience-inner, .how-inner { grid-template-columns: minmax(0,1fr); }
  .audience-image-wrap { width: 100%; }
  .comparison-wrap { padding: 24px 12px; }
  .comparison-grid { grid-template-columns: minmax(0,1fr); padding: 0; }
  .bruna-profile-inner, .bruna-profile-copy, .bruna-profile-visual { min-width: 0; max-width: 100%; }
  .faq-card summary { grid-template-columns: 36px minmax(0,1fr) 18px; gap: 12px; }
  .faq-card summary h3 { font-size: 18px; }
  .faq-card .faq-content { margin-left: 0; }
  .hero-grid, .offer-grid, .about-grid, .final-grid, .footer-grid { min-width: 0; }
  .faq:not(.faq-section) .faq-grid { grid-template-columns: minmax(0,1fr); }
  .announcement { height: auto; min-height: 31px; padding: 6px 15px; flex-wrap: wrap; text-align: center; }
}
@media (max-width: 480px) {
  .movement-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .challenge-copy h1, .challenge-followup h2 { font-size: clamp(28px,8.8vw,36px); }
  .cta-promo-copy h2 { font-size: clamp(28px,8vw,32px); }
  .comparison-card { padding: 20px 14px; }
  .comparison-card h3 { font-size: 21px; padding: 12px; gap: 8px; }
  .faq-heading h2 { font-size: clamp(30px,9vw,39px); }
  .offer-card { padding: 26px 18px; }
  .offer-button { padding: 16px 12px; font-size: 15px; }
}
