/* ==========================================================================
   Price spec - shared by the services, pricing and service detail pages.
   One row per service, one column per price (Short / Medium / Long for hair-length services,
   a single "Price" column otherwise). Looks like a table, built as a grid of rows.
   Colours come from luxe-theme.css only.
   ========================================================================== */
.prc-spec { --prc-clock: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E"); --prc-cols: 1; --prc-col: 84px; width: 100%; min-width: 0; color: var(--lx-ink); font-family: var(--lx-sans); }
.prc-spec--tiers { --prc-cols: 3; --prc-col: 76px; }

.prc-spec-head, .prc-row { display: grid; align-items: stretch;
  grid-template-columns: minmax(0, 1fr) repeat(var(--prc-cols), var(--prc-col)); }

/* column heads */
.prc-spec-head { padding: 0 0 12px; border-bottom: 1px solid rgb(var(--lx-gold-rgb) / .55); }
.prc-col-label { display: flex; align-items: center; justify-content: center; font: 600 11px/1 var(--lx-sans);
  letter-spacing: .16em; text-transform: uppercase; color: var(--lx-gold); }

/* rows */
.prc-rows { list-style: none; margin: 0; padding: 0; }
.prc-row { margin: 0; border-bottom: 1px solid var(--lx-line); transition: background-color .25s ease; }
.prc-row:last-child { border-bottom: 0; }
.prc-row:hover { background: rgb(var(--lx-cream-rgb) / .7); }

.prc-name { display: flex; flex-direction: column; justify-content: center; gap: 3px; min-width: 0; padding: 14px 16px 14px 0; }
.prc-name-text { font: 500 15px/1.3 var(--lx-sans); overflow-wrap: anywhere; }
.prc-meta { font: 400 12.5px/1.2 var(--lx-sans); color: var(--lx-muted); }

/* price cells: a hairline between the columns */
.prc-cell { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; min-width: 0;
  padding: 10px 6px; text-align: center; border-left: 1px solid var(--lx-line); }
.prc-cell b { font: 600 15px/1.1 var(--lx-sans); font-variant-numeric: tabular-nums; white-space: nowrap; }
.prc-cell small { font: 500 10px/1 var(--lx-sans); letter-spacing: .12em; text-transform: uppercase; color: var(--lx-muted); }
.prc-cell i { font: 400 15px/1 var(--lx-sans); font-style: normal; color: var(--lx-muted); }
.prc-cell--all { grid-column: 2 / -1; }
.prc-sr { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* ---- pricing page: one card per service group ------------------------------------ */
.framer-Knxjp .prc-block { display: flex; flex-direction: column; align-items: center; gap: 28px; width: 100%; max-width: 1410px; }
.framer-Knxjp .prc-block + .prc-block { margin-top: 44px; }
.framer-Knxjp .prc-block-title { position: relative; margin: 0; padding-bottom: 16px; text-align: center;
  font: 400 clamp(28px, 3.4vw, 40px)/1.1 var(--lx-serif); letter-spacing: -.01em; color: var(--lx-ink); }
.framer-Knxjp .prc-block-title::after { content: ""; position: absolute; left: 50%; bottom: 0; width: 56px; height: 2px; margin-left: -28px; background: var(--lx-gold); }

/* Cards flow into two balanced columns (the browser balances them by real height), so a card with a long
   list never sits next to a stretched short one. Cards keep their natural height and are never split. */
.framer-Knxjp .prc-grid { display: block; column-count: 2; column-gap: 30px; width: 100%; }
.framer-Knxjp .prc-grid > .framer-1v8ycbc-container { display: block; width: 100%; max-width: none; height: auto;
  margin: 0 0 30px; break-inside: avoid; -webkit-column-break-inside: avoid; page-break-inside: avoid; }
.framer-Knxjp .prc-grid > .framer-1v8ycbc-container:last-child { margin-bottom: 0; }
/* a single card in a section: one centred column of the same width as the others */
.framer-Knxjp .prc-grid:has(> :only-child) { column-count: 1; max-width: calc((100% - 30px) / 2); margin-inline: auto; }
.framer-Knxjp .prc-card.framer-mKvGh { flex: 1; width: 100%; height: auto; min-width: 0; padding: 40px; gap: 28px; scroll-margin-top: 110px; }
.framer-Knxjp .prc-card .framer-1aw0tmp { width: 100%; flex-wrap: wrap; justify-content: flex-start; align-items: baseline; gap: 4px 14px; }
.framer-Knxjp .prc-card .framer-nxmdr5 { white-space: normal; }
.framer-Knxjp .prc-card .framer-utyf5s-container { margin-top: auto; }

@media (max-width: 1099.98px) {
  .framer-Knxjp .prc-grid, .framer-Knxjp .prc-grid:has(> :only-child) { column-count: 1; max-width: none; }
}
@media (max-width: 809.98px) {
  .framer-Knxjp .prc-grid > .framer-1v8ycbc-container { margin-bottom: 20px; }
  .framer-Knxjp .prc-block + .prc-block { margin-top: 28px; }
  .framer-Knxjp .framer-15pz8ur .framer-1jqav3l .framer-mKvGh.framer-1xyt7zp,
  .framer-Knxjp .prc-card.framer-mKvGh { padding: 24px 18px; gap: 22px; }
}
@media (max-width: 480px) {
  .prc-spec { --prc-col: 74px; }
  .prc-spec--tiers { --prc-col: 58px; }
  .prc-cell { padding: 10px 2px; }
  .prc-cell b { font-size: 14px; }
  .prc-name-text { font-size: 14px; }
  .prc-col-label { letter-spacing: .08em; font-size: 10px; }
}
