/* Step 3: readable cards, complete brand controls and consistent gallery cells. */
@media (max-width: 900px) {
  .promise-card { grid-template-columns: minmax(0, 38%) minmax(0, 1fr); }
  .promise-card .card-body { min-width: 0; padding: 22px; }
  .promise-card h3, .promise-card p { word-break: keep-all; overflow-wrap: break-word; }
  .review-carousel { padding: 0 22px 58px; }
  .review-page { min-width: 0; grid-template-columns: minmax(0, 1fr); }
  .review-card { grid-template-columns: minmax(0, 32%) minmax(0, 1fr); gap: 18px; min-height: 0; }
  .review-card > div { min-width: 0; }
  .review-card blockquote { font-size: 14px; line-height: 1.8; overflow-wrap: break-word; }
  .review-arrow { top: auto; bottom: 0; transform: none; width: 44px; height: 44px; }
  .review-prev { left: calc(50% - 54px); }
  .review-next { right: calc(50% - 54px); }
  .review-gallery .tile { min-height: 0; aspect-ratio: 1 / 1; }
  .review-gallery .tile img { position: absolute; inset: 0; }
  #reviews, #why, #suit, #hanbok, #packages { scroll-margin-top: 80px; }
}
@media (max-width: 600px) {
  .promise-card, .review-card { grid-template-columns: minmax(0, 1fr); }
  .promise-card .pic { height: auto; min-height: 0; aspect-ratio: 4 / 3; }
  .promise-card .card-body { padding: 22px; }
  .promise-card h3 { font-size: 21px; }
  .promise-card p { font-size: 14px; }
  .review-card { padding: 18px; gap: 18px; }
  .review-card img { height: 200px; min-height: 0; object-position: center 30%; }
  #dresses .wrap { width: 100%; padding-inline: 22px; }
  #dresses .dress-tabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; overflow: visible; }
  #dresses .dress-tab { margin: 0; padding: 12px 6px; white-space: normal; word-break: keep-all; overflow-wrap: break-word; min-height: 48px; border: 1px solid var(--line); }
  #dresses .dress-tab.active { border-color: #b68d68; background: #eee8df; }
  #dresses .dress-image, #dresses .dress-stage.reverse .dress-image { height: auto; min-height: 0; aspect-ratio: 4 / 5; }
}
