/* A single price menu, with details available at the point of choice. */
.booking-page { --menu-header-height: 112px; }
.booking-main { max-width: 1060px; margin: 0 auto; padding: 155px 28px 64px; }
.booking-intro { max-width: 740px; padding: 24px 0 28px; }
.booking-intro h1 { font-size: clamp(2rem, 4vw, 3.3rem); margin-bottom: 16px; }
.booking-intro p { font-size: 1.08rem; }
.booking-start { padding: 24px; border: 1px solid var(--tan); background: var(--cream-2); }
.booking-start h2 { font-size: 1.5rem; margin-bottom: 8px; }
.booking-start p { max-width: 75ch; line-height: 1.55; }
.start-links { display: flex; flex-wrap: wrap; gap: 8px 20px; margin-top: 14px; }
.start-links a { display: inline-flex; align-items: center; min-height: 44px; font-weight: 600; text-decoration: underline; text-underline-offset: 5px; }
.category-bar { position: sticky; top: var(--menu-header-height); z-index: 800; display: flex; flex-wrap: wrap; gap: 4px 6px; padding: 10px 0; margin: 18px 0; background: var(--cream); border-bottom: 1px solid var(--tan); }
.category-bar a { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 6px 13px; border: 1px solid var(--tan); border-radius: 24px; font-size: .85rem; font-weight: 500; letter-spacing: 0; text-transform: none; }
.category-bar a::after { display: none; }
.category-bar a:hover, .category-bar a:focus-visible { background: var(--charcoal); color: var(--cream); }
.booking-search { margin: 24px 0 12px; }
.booking-search label { display: block; font-weight: 600; margin-bottom: 8px; }
.booking-search input { width: 100%; min-height: 48px; padding: 12px 16px; border: 1px solid var(--taupe); border-radius: 2px; background: white; color: var(--charcoal); font: inherit; }
#search-status { font-size: .88rem; min-height: 22px; margin-top: 6px; }
.booking-note { font-size: .9rem; line-height: 1.5; }
.booking-note strong { color: var(--charcoal); }
.booking-note a, .booking-help a, #no-results a { text-decoration: underline; text-underline-offset: 3px; }
.booking-section { margin-top: 40px; scroll-margin-top: calc(var(--menu-header-height) + 150px); }
.booking-section h2 { font-size: clamp(1.65rem, 3vw, 2.2rem); margin-bottom: 10px; }
.booking-section > p { line-height: 1.55; margin-bottom: 14px; max-width: 80ch; }
.service-row { display: grid; grid-template-columns: minmax(0, 1fr) 150px 110px; column-gap: 20px; align-items: start; padding: 14px 0 0; border-bottom: 1px solid var(--tan); }
.service-heading { min-width: 0; }
.service-heading h3 { font-size: 1.15rem; line-height: 1.25; }
.service-summary { margin-top: 5px; font-size: .92rem; line-height: 1.4; color: #65483b; }
.service-price { text-align: right; font-variant-numeric: tabular-nums; }
.service-price strong { color: var(--charcoal); display: block; font-size: 1rem; }
.service-price span { display: block; font-size: .8rem; margin-top: 3px; }
.menu-book { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; padding: 8px 12px; border: 1px solid var(--charcoal); border-radius: 2px; background: var(--charcoal); color: var(--cream); font-size: .85rem; font-weight: 500; line-height: 1.2; text-align: center; }
.menu-book:hover { background: var(--cream-2); color: var(--charcoal); }
.service-details { grid-column: 1 / -1; }
.service-details summary, .variant-details summary { min-height: 44px; padding: 12px 0; cursor: pointer; font-size: .85rem; font-weight: 500; }
.service-details p, .variant-details p { font-size: .95rem; line-height: 1.6; max-width: 76ch; margin: 0 0 12px; }
.service-details .detail-meta, .variant-details .detail-meta { font-weight: 600; }
.menu-guide { display: inline-flex; align-items: center; min-height: 44px; text-decoration: underline; text-underline-offset: 4px; line-height: 1.5; }
.variant-group { margin: 16px 0 24px; border-bottom: 1px solid var(--tan); }
.variant-group table { width: 100%; table-layout: fixed; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.variant-group caption { font-family: var(--serif); font-size: 1.3rem; text-align: left; padding: 10px 0 14px; }
.variant-group th, .variant-group td { padding: 10px; border-bottom: 1px solid var(--tan); vertical-align: middle; text-align: left; overflow-wrap: anywhere; }
.variant-group thead th { background: var(--cream-2); font-weight: 500; font-size: .84rem; }
.variant-group tbody th { font-weight: 500; }
.variant-group strong { color: var(--charcoal); }
.prx-menu th:first-child { width: 19%; }
.prx-menu td strong { display: block; margin-bottom: 8px; }
.prx-menu .menu-book { width: 100%; max-width: 110px; }
.laser-menu th:first-child { width: 46%; }
.laser-menu th:nth-child(2) { width: 23%; }
.laser-menu th:nth-child(3) { width: 31%; }
.laser-menu small { display: block; margin-top: 5px; font-size: .77rem; font-weight: 400; }
.variant-details > div { padding: 16px 0; }
.variant-details h3 { font-size: 1.1rem; margin-bottom: 10px; }
.menu-subhead { font-size: 1.3rem; margin: 26px 0 10px; }
.add-on-guide, .booking-help { margin: 32px 0 0; padding: 24px; background: var(--cream-2); }
.add-on-guide h2, .booking-help h2 { font-size: 1.5rem; margin-bottom: 12px; }
.add-on-guide p, .booking-help p { line-height: 1.6; }
.add-on-guide a, .booking-help a { display: inline-flex; align-items: center; min-height: 44px; margin-top: 8px; text-decoration: underline; }
.booking-page [hidden] { display: none !important; }
.booking-page .prx-menu td[hidden] { display: table-cell !important; visibility: hidden; }
.booking-page :focus-visible { outline: 3px solid var(--charcoal); outline-offset: 3px; }
@media(max-width:620px) {
  .booking-main { padding: calc(var(--menu-header-height) + 30px) 20px 48px; }
  .booking-intro { padding-top: 12px; }
  .booking-start { padding: 18px; }
  .category-bar { gap: 4px; padding: 8px 0; }
  .category-bar a { padding: 6px 10px; font-size: .8rem; }
  .booking-section { margin-top: 28px; }
  .service-row { grid-template-columns: minmax(0, 1fr) 94px; gap: 0 12px; padding-top: 12px; }
  .service-heading h3 { font-size: 1.06rem; }
  .service-summary { font-size: .86rem; }
  .service-price strong { font-size: .92rem; }
  .service-price span { font-size: .75rem; }
  .service-row > .menu-book { grid-column: 2; grid-row: 2; align-self: start; margin: 8px 0; }
  .service-details { grid-column: 1; grid-row: 2; margin-top: 8px; }
  .service-details[open] { grid-column: 1 / -1; grid-row: 3; margin-top: 0; }
  .variant-group th, .variant-group td { padding: 9px 5px; font-size: .85rem; }
  .variant-group thead th { font-size: .75rem; line-height: 1.35; }
  .prx-menu th:first-child { width: 18%; }
  .variant-group .menu-book { padding: 6px; font-size: .79rem; }
  .laser-menu th:first-child { width: 43%; }
  .laser-menu th:nth-child(2) { width: 23%; }
  .laser-menu th:nth-child(3) { width: 34%; }
}
@media(max-width:560px) { .booking-page { --menu-header-height: 82px; } }
@media(prefers-reduced-motion:reduce) { .booking-page { scroll-behavior: auto; } }

/* PRX staff-managed price list: editorial layout on /book and the PRX page.
   Rows run series, maintenance, series, maintenance, so the pairs are grouped by position. */
.prx-packages{margin:48px 0 32px}
.prx-packages h3{font-size:clamp(1.55rem,2.8vw,2rem);margin-bottom:10px}
.prx-packages>p{max-width:68ch;margin-bottom:26px;color:#65483b;line-height:1.65}
.prx-packages .prx-menu{width:100%;table-layout:fixed;border-collapse:collapse;background:transparent;border-top:1px solid var(--charcoal);border-bottom:1px solid var(--charcoal);font-variant-numeric:lining-nums tabular-nums}
.prx-packages .prx-menu caption{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.prx-packages .prx-menu th,.prx-packages .prx-menu td{padding:16px 14px;border:0;text-align:left;vertical-align:baseline;white-space:normal;overflow-wrap:break-word;letter-spacing:0;text-transform:none;color:var(--charcoal)}
.prx-packages .prx-menu thead th{padding:18px 14px 14px;border-bottom:1px solid var(--tan);font-family:var(--sans);font-size:.7rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--mauve)}
.prx-packages .prx-menu th:first-child{width:36%}
.prx-packages .prx-menu th:last-child,.prx-packages .prx-menu td:last-child{width:auto}
.prx-packages .prx-menu tbody th{font-family:var(--serif);font-size:1.12rem;font-weight:500;line-height:1.25}
.prx-packages .prx-menu tbody td{font-family:var(--serif);font-size:1.18rem;font-weight:400;line-height:1.25}
.prx-packages .prx-menu tbody tr:nth-child(even) th{padding-top:4px;font-family:var(--sans);font-size:.88rem;font-weight:400;color:#65483b}
.prx-packages .prx-menu tbody tr:nth-child(even) td{padding-top:4px;font-size:1rem;color:#65483b}
.prx-packages .prx-menu tbody tr:nth-child(even) th,.prx-packages .prx-menu tbody tr:nth-child(even) td{padding-bottom:20px;border-bottom:1px solid var(--tan)}
.prx-packages .prx-menu tbody tr:last-child th,.prx-packages .prx-menu tbody tr:last-child td{border-bottom:0}
.prx-packages .prx-menu tbody tr:nth-child(n+3):nth-child(-n+4) td:nth-child(n+3){font-family:var(--sans);font-size:.88rem;font-style:italic;font-weight:300;color:#65483b;line-height:1.4}
@media(max-width:620px){
  .prx-packages{margin:36px 0 24px}
  .prx-packages .prx-menu,.prx-packages .prx-menu tbody,.prx-packages .prx-menu tr,.prx-packages .prx-menu th,.prx-packages .prx-menu td{display:block;width:auto}
  .prx-packages .prx-menu thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .prx-packages .prx-menu th:first-child{width:auto}
  .prx-packages .prx-menu tbody th,.prx-packages .prx-menu tbody td{padding:0;border:0}
  .prx-packages .prx-menu tbody tr:nth-child(odd){padding:24px 0 0}
  .prx-packages .prx-menu tbody tr:nth-child(even){padding:0 0 24px;border-bottom:1px solid var(--tan)}
  .prx-packages .prx-menu tbody tr:last-child{border-bottom:0}
  .prx-packages .prx-menu tbody tr:nth-child(odd) th{padding:0;margin-bottom:6px;font-size:1.25rem}
  .prx-packages .prx-menu tbody tr:nth-child(even) th{padding:0;margin:16px 0 2px;border:0;font-size:.9rem}
  .prx-packages .prx-menu tbody tr:nth-child(odd) td{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:8px 0;text-align:right;border-bottom:1px solid rgba(223,207,186,.6)}
  .prx-packages .prx-menu tbody tr:nth-child(even) td{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:6px 0;text-align:right;border-bottom:1px solid rgba(223,207,186,.6)}
  .prx-packages .prx-menu tbody tr td:last-child{border-bottom:0}
  .prx-packages .prx-menu tbody td::before{flex:none;text-align:left;font-family:var(--sans);font-size:.66rem;font-style:normal;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--mauve)}
  .prx-packages .prx-menu tbody td:nth-child(2)::before{content:"Face"}
  .prx-packages .prx-menu tbody td:nth-child(3)::before{content:"Face + Neck"}
  .prx-packages .prx-menu tbody td:nth-child(4)::before{content:"Face + Neck + Decollete"}
  .prx-packages .prx-menu tbody tr:nth-child(n+3):nth-child(-n+4) td:nth-child(n+3){font-size:.86rem}
}
