/* Final responsive pass: main content only. Shared navigation lives in feature-nav.css.
   Preserve the editorial composition, natural mobile stories, and honest examples. */

/* Grid/flex children may shrink without forcing their containers past the viewport. */
.editorial-home main,
.feature-page main {
  min-width: 0;
}
.feature-page main {
  overflow: visible;
}
.editorial-home main :is(.hero-intro, .hero-conversion, .section-heading, .audience-heading > *, .audience-card > div, .feature-index > *, .feature-chapters > a > div, .care-copy, .care-points > div, .start-intro, .start-steps > li > div, .plan-identity > *, .preview-heading > div, .order-detail > summary > div, .care-client > div, .preview-care > span:nth-child(2), .dashboard-takeaway > *, .mobile-example-heading > *, .mobile-day-list li > div),
.feature-page main :is(.feature-hero-copy, .feature-section-heading, .example-heading, .benefit-list li > div, .story-toolbar > *, .story-breath-copy, .day-list li > div, .stock-sample > div, .feature-steps li > div, .related-grid > a, .detail-list > div > *, .cash-list > div > *) {
  min-width: 0;
}
.editorial-home main :is(h1, h2, h3, h4, p, dt, dd, li, .eyebrow),
.feature-page main :is(h1, h2, h3, h4, p, dt, dd, li, .eyebrow) {
  overflow-wrap: break-word;
}
.editorial-home main :is(img, picture, textarea, select),
.feature-page main :is(img, picture, textarea, select) {
  max-width: 100%;
}

/* Long Portuguese labels wrap; arrows keep their size; touch targets stay generous. */
.editorial-home main :is(.button, .text-link, .light-link, .mini-button, .quiet-button),
.feature-page main :is(.button, .text-button, .feature-back, .feature-plan-link, .story-reset) {
  min-width: 0;
  max-width: 100%;
  white-space: normal;
  overflow-wrap: break-word;
}
.editorial-home main .button,
.feature-page main .button {
  text-align: center;
}
.editorial-home main :is(.button, .text-link, .light-link) > :is(svg, span[aria-hidden="true"]),
.feature-page main :is(.button, .text-button, .feature-back, .feature-plan-link) > :is(svg, span[aria-hidden="true"]) {
  flex-shrink: 0;
}
.editorial-home main :is(.chapter-number, .chapter-arrow, .detail-open, .faq-list summary > span, .plan-fine-print summary > span),
.feature-page main :is(.benefit-number, .feature-icon) {
  flex-shrink: 0;
}
.editorial-home main .button:focus-visible,
.feature-page main .button:focus-visible {
  outline-offset: 4px;
}
.editorial-home main :is(select, textarea),
.feature-page main :is(select, textarea) {
  min-width: 0;
}

/* Equal columns are truly flexible, including at the tablet/desktop boundaries. */
.editorial-home main .hero-layout {
  grid-template-columns: minmax(0, .94fr) minmax(0, 1.06fr);
}
.editorial-home main .audience-heading {
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
}
.editorial-home main .feature-index {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.18fr);
}
.editorial-home main .start-section {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
}
.editorial-home main .day-numbers {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.25fr);
}
.editorial-home main .cash-numbers {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.feature-page main .detail-list > div {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
}
.feature-page main .story-breath {
  grid-template-columns: minmax(0, 1.07fr) minmax(0, 1fr);
}
.feature-page main .cost-callout {
  flex-wrap: wrap;
}
.feature-page main .cost-callout > strong {
  max-width: 100%;
}
.feature-page main .story-toolbar {
  flex-wrap: wrap;
}
.feature-page main .story-days {
  min-width: 0;
  max-width: 100%;
}

/* Photo captions remain over the image, but contribute to the photo's minimum
   height. Enlarged text cannot disappear below a fixed-height clipping edge. */
.editorial-home main .hero-scene {
  display: grid;
}
.editorial-home main .hero-photograph {
  position: relative;
  display: grid;
  height: auto;
  min-height: 100%;
}
.editorial-home main .hero-product-cue {
  position: relative;
  inset: auto;
  align-self: end;
  margin: 25px;
}
.editorial-home main .care-visual {
  display: grid;
}
.editorial-home main .care-visual > picture {
  grid-area: 1 / 1;
  min-height: 0;
}
.editorial-home main .care-message-card {
  position: relative;
  grid-area: 1 / 1;
  align-self: end;
  inset: auto;
  margin: 35px 30px;
}

/* Cards align their actions without reserving arbitrary blocks of empty text. */
.editorial-home main .audience-card {
  display: flex;
  flex-direction: column;
}
.editorial-home main .audience-card > picture {
  flex-shrink: 0;
}
.editorial-home main .audience-card > div {
  display: flex;
  flex-direction: column;
  flex: 1;
}
.editorial-home main .audience-card p {
  min-height: 0;
}
.editorial-home main .audience-card .text-link {
  margin-top: auto;
  padding-top: 13px;
}
.editorial-home main .care-process,
.editorial-home main .stage-caption {
  flex-wrap: wrap;
}
.editorial-home main .care-process > span {
  min-height: 32px;
}
.editorial-home #planos .price {
  white-space: normal;
  overflow-wrap: normal;
}

@media (min-width: 761px) {
  /* Avoid headings shrinking when crossing 760px and 1100px. */
  .feature-page main .feature-hero h1 {
    font-size: clamp(66px, 6.8vw, 94px);
  }
  .feature-page main h2 {
    font-size: clamp(52px, 4.6vw, 64px);
  }
  .feature-page main .story-breath h2 {
    font-size: clamp(38px, 3.6vw, 51px);
  }
  .feature-page main .feature-end h2 {
    font-size: clamp(54px, 5.2vw, 74px);
  }
}

@media (max-width: 1100px) {
  .editorial-home main .hero-product-cue {
    margin: 20px;
  }
  .editorial-home main .care-message-card {
    margin-inline: 24px;
  }
}

@media (max-width: 900px) {
  .editorial-home main .hero-layout {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .editorial-home main .audience-heading {
    grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr);
  }
  .editorial-home main .feature-index {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
  }
  .editorial-home main .hero-product-cue {
    margin: 15px;
  }
  .editorial-home main .care-message-card {
    margin: 25px 20px;
  }
  .feature-page main .story-breath {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .editorial-home main .dashboard-tabs > button {
    white-space: normal;
  }
  .editorial-home main .dashboard-takeaway {
    flex-wrap: wrap;
    gap: 12px 24px;
  }
  .editorial-home main .dashboard-takeaway a {
    max-width: 100%;
  }
}

@media (max-width: 760px) {
  .feature-page main .story-days {
    grid-template-columns: repeat(3, minmax(44px, 1fr));
  }
  .feature-page main .story-days button {
    min-width: 44px;
  }
  .feature-page main .story-range-wrap {
    width: 100%;
  }
  .feature-page main .feature-actions .button,
  .feature-page main .feature-end .button {
    justify-content: center;
  }
}

@media (max-width: 700px) {
  .editorial-home main .hero-layout {
    grid-template-columns: minmax(0, 1fr);
  }
  .editorial-home main .hero-scene {
    height: auto;
    min-height: clamp(260px, 79vw, 440px);
  }
  .editorial-home main .hero-photograph {
    min-height: inherit;
  }
  .editorial-home main .mobile-example-heading {
    flex-wrap: wrap;
  }
  .editorial-home main .mobile-example-heading > span:last-child {
    flex-shrink: 1;
  }
  .editorial-home main .mobile-send-note {
    align-items: flex-start;
  }
  .editorial-home main .mobile-send-note > span {
    flex-shrink: 0;
  }
}

@media (max-width: 650px) {
  .editorial-home main .day-numbers {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .editorial-home main .care-visual {
    height: auto;
    min-height: 460px;
  }
  .editorial-home main .care-message-card {
    margin: 20px;
  }
  .editorial-home main .audience-card .text-link {
    padding-top: 11px;
  }
  .editorial-home main .closing-section .button {
    width: 100%;
    max-width: 390px;
    padding-inline: 18px;
    gap: 12px;
  }
}

@media (max-width: 430px) {
  /* Dates and long delivery methods read more naturally below their labels. */
  .feature-page main .detail-list > div {
    grid-template-columns: minmax(0, 1fr);
    gap: 5px;
  }
  .feature-page main .detail-list dd {
    text-align: left;
  }
  .feature-page main .feature-end .button {
    width: 100%;
    gap: 12px;
    padding-inline: 18px;
  }
}

@media (max-width: 420px) {
  .editorial-home main .cash-numbers {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 370px) {
  .editorial-home main .hero-scene {
    min-height: 270px;
  }
  .editorial-home main .hero-product-cue {
    margin: 12px;
  }
  .editorial-home main .care-message-card {
    margin: 20px 15px;
  }
}
