/* Live Square service cards: readable treatment copy with a clear price and action. */
.catalog-service-picker { gap: 16px; }
.catalog-service-option,
.customer-booking .service-option {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  grid-template-rows: 1fr auto;
  align-items: end;
  gap: 20px 16px;
  padding: 24px;
  border-radius: 4px;
  transition: border-color .18s ease, background .18s ease, box-shadow .18s ease;
}
.catalog-service-option .service-card-copy,
.customer-booking .service-option .service-card-copy { display: block; grid-column: 1 / -1; align-self: start; min-width: 0; color: inherit; }
.catalog-service-option .service-card-heading,
.customer-booking .service-option .service-card-heading { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: baseline; gap: 8px 20px; color: inherit; }
.catalog-service-option .service-card-heading strong,
.customer-booking .service-option .service-card-heading strong { font-family: var(--display); font-size: 1.5rem; font-weight: 400; line-height: 1.25; color: inherit; overflow-wrap: anywhere; }
.catalog-service-option .service-card-price,
.customer-booking .service-option .service-card-price { font-family: var(--body); font-size: 1.125rem; font-weight: 600; line-height: 1.4; color: var(--brass-light); font-variant-numeric: tabular-nums; }
.catalog-service-option .service-card-description,
.customer-booking .service-option .service-card-description { display: block; margin-top: 14px; font-family: var(--body); font-size: 1rem; font-weight: 400; line-height: 1.65; color: var(--ivory); white-space: pre-line; overflow-wrap: anywhere; }
.catalog-service-option .service-card-meta,
.customer-booking .service-option .service-card-meta { display: block; margin: 0; font-family: var(--body); font-size: .875rem; font-weight: 500; line-height: 1.5; color: var(--ivory); }
.service-card-meta > span { display: inline !important; padding: 0 .25em; color: inherit !important; }
.catalog-service-option i,
.customer-booking .service-option i { display: inline-flex; align-items: center; justify-content: center; width: auto; min-width: 72px; min-height: 36px; padding: 6px 12px; border: 1px solid var(--brass-light); border-radius: 3px; background: transparent; color: var(--brass-light); font-family: var(--body); font-size: .875rem; font-weight: 600; font-style: normal; line-height: 1.5; letter-spacing: 0; text-transform: none; white-space: nowrap; }
.catalog-service-option.selected i { background: var(--brass-light); color: var(--night); }
.section-light .catalog-service-option .service-card-price,
.customer-booking .service-option .service-card-price { color: var(--forest); }
.section-light .catalog-service-option .service-card-description,
.section-light .catalog-service-option .service-card-meta,
.customer-booking .service-option .service-card-description,
.customer-booking .service-option .service-card-meta { color: var(--ink-soft); }
.section-light .catalog-service-option i,
.customer-booking .service-option i { color: var(--forest); border-color: var(--forest-soft); }
.section-light .catalog-service-option.selected i,
.customer-booking .service-option.selected i { background: var(--forest); color: var(--paper); border-color: var(--forest); }
.catalog-service-option .service-prerequisite,
.customer-booking .service-option .service-prerequisite { display: block; margin-top: 12px; font-size: .875rem; line-height: 1.55; font-weight: 500; color: inherit; }
.catalog-service-option:focus-visible,
.customer-booking .service-option:focus-visible { outline: 2px solid var(--brass); outline-offset: 3px; }
.catalog-service-option:disabled,
.customer-booking .service-option:disabled { cursor: not-allowed; opacity: .7; }
@media (min-width: 860px) { .catalog-service-picker { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 639px) {
  .catalog-service-option,.customer-booking .service-option { padding: 20px 16px; gap: 18px 12px; }
  .catalog-service-option .service-card-heading,.customer-booking .service-option .service-card-heading { gap: 8px 12px; }
  .catalog-service-option .service-card-heading strong,.customer-booking .service-option .service-card-heading strong { font-size: 1.35rem; }
}
@media (max-width: 380px) {
  .catalog-service-option .service-card-heading,.customer-booking .service-option .service-card-heading { grid-template-columns: minmax(0,1fr); }
}
@media (prefers-reduced-motion: reduce) { .catalog-service-option,.customer-booking .service-option { transition: none; } }

.service-selection-copy strong { font-size: 1rem; line-height: 1.4; white-space: normal; }
.service-selection-copy span { font-size: .875rem; }
.picker-message:empty { display: none; }
.picker-message { margin: 0; padding: 1rem; color: var(--ivory); background: var(--forest); }
body.has-service-selection .mobile-book-bar { display: none; }
@media (max-width: 639px) {
 .service-selection-copy strong { max-height: 3em; overflow: auto; }
}
