/* One capsule shape, with primary and secondary emphasis. */
.button,
.program-card>a,
.text-button,
.map-card-cta,
.facility-tabs button,
.mobile-cta a,
.skip { border-radius: 999px; }

.button { gap: 22px; padding-inline: 30px; line-height: 1.4; }
.event-card .button { border-radius: 999px; }
.button.small { min-height: 44px; padding-inline: 20px; }
.hero .button { min-width: 220px; padding-inline: 34px; }

.price-card .pass-consult {
  flex-direction: row;
  width: auto;
  height: auto;
  min-width: 150px;
  min-height: 48px;
  padding: 13px 22px;
  gap: 18px;
  border-radius: 999px;
}
.price-card .consult-label { font-size: 13px; white-space: nowrap; }
.price-card .consult-arrow { font-size: 17px; }

.program-card>a {
  justify-content: center;
  min-height: 44px;
  padding: 11px 20px;
  border: 1px solid #77776b;
  font-size: 12px;
  line-height: 1.4;
  gap: 16px;
}
.program-card>a span { font-size: 16px; }
.program-actions { margin-top: 34px; }
.program-actions .trial-button { min-width: 240px; min-height: 58px; font-size: 16px; }
.program-actions+.subtle { margin-top: 18px; }

.facility-tabs button { min-height: 44px; padding-inline: 24px; }
.text-button {
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 10px 22px;
  border: 1px solid #77776b;
  font-size: 12px;
  line-height: 1.4;
}
.map-card-cta { min-height: 48px; padding: 13px 24px; line-height: 1.4; }
.photo-expand,
.dialog-close { min-width: 44px; min-height: 44px; border-radius: 999px; }
.menu-toggle {
  min-width: 44px;
  min-height: 44px;
  align-items: center;
  padding: 10px;
  border-radius: 999px;
  border: 1px solid #ffffff55;
  background: #08080855;
}
@media(hover:hover) {
  .program-card>a:hover,
  .text-button:hover { background: var(--yellow); color: var(--black); border-color: var(--yellow); }
  .program-card>a:hover span { color: var(--black); }
}
@media(max-width:640px) {
  .button { padding-inline: 24px; }
  .header { gap: 8px; padding-inline: 14px; }
  .header-book.button { min-height: 44px; padding: 10px 12px; font-size: 11px; gap: 8px; }
  .hero .button { min-width: 210px; min-height: 54px; padding-inline: 28px; font-size: 14px; }
  .program-card>a { width: 100%; padding-inline: 9px; font-size: 11px; gap: 7px; }
  .program-actions { margin-top: 26px; }
  .program-actions .trial-button { min-width: 220px; min-height: 54px; font-size: 15px; }
  .price-card .pass-consult { min-width: 150px; min-height: 48px; height: auto; width: auto; padding: 12px 22px; }
  .facility-tabs button { padding-inline: 12px; }
  .mobile-cta {
    gap: 8px;
    padding: 8px 12px calc(8px + env(safe-area-inset-bottom));
    background: #101010f5;
  }
  .mobile-cta a { min-height: 46px; line-height: 1.4; border: 1px solid #73736b; }
  .mobile-cta a:last-child { border-color: var(--yellow); }
  .footer { padding-bottom: calc(82px + env(safe-area-inset-bottom)); }
}
@media(max-width:360px) {
  .brand-image { width: 70px; }
  .brand-image img { width: 80px; top: -20px; }
}
