/* Body Rollers page — components not covered by site.css
   (packages row, private studio sessions, private room subscriptions, empty case photo). */

/* Before/after slot without a photo yet: keep the caption bar at the bottom */
.case-photo--empty { justify-content: flex-end; min-height: clamp(220px, 36.2vw, 690px); }

/* Packages row under the single-session table */
.pkg-row { display: grid; grid-template-columns: minmax(0, 456fr) minmax(0, 392.5fr) minmax(0, 392.5fr); gap: 12px; }
.pkg-intro { background: var(--brown); color: var(--cream); padding: clamp(28px, 3.15vw, 60.5px) clamp(20px, 2.5vw, 48.5px) clamp(28px, 3.1vw, 60px); }
.pkg-intro img { width: clamp(36px, 2.63vw, 50.5px); height: auto; }
.pkg-intro h3 { margin-top: clamp(14px, 1.3vw, 25px); font-size: var(--fs-h3); line-height: 1.1; letter-spacing: -0.02em; }
.pkg-intro p { margin-top: clamp(12px, 1.4vw, 27px); font-size: clamp(15px, 1.25vw, 24px); line-height: 1.2; }
.pkg-card { display: flex; flex-direction: column; background: var(--cream); padding: clamp(28px, 3.1vw, 60px) clamp(20px, 2.9vw, 55.5px); }
.pkg-card h3 { font-size: var(--fs-h3); line-height: 1.2; }
.pkg-card .sub { margin-top: clamp(8px, .9vw, 17px); font-size: clamp(15px, 1.25vw, 24px); line-height: 1.2; }
.pkg-card .amount { margin-top: auto; padding-top: clamp(20px, 2.3vw, 44px); font-size: var(--fs-h3); line-height: 1.6; }
.pkg-card .save { font-size: clamp(15px, 1.25vw, 24px); line-height: 1.6; }
.pkg-card .btn { margin-top: clamp(14px, 1.2vw, 23px); width: 100%; min-height: clamp(44px, 2.64vw, 50.7px); font-size: clamp(14px, 1.15vw, 22px); color: var(--cream); }

/* Private studio sessions */
.private { background: var(--cream); }
.private-top { display: grid; grid-template-columns: minmax(0, 1310.7fr) minmax(0, 609.3fr); }
.private-main { padding: clamp(40px, 3.1vw, 60px) var(--gutter) clamp(32px, 1.7vw, 32px); }
.private-main h2 { font-size: var(--fs-h3); line-height: 1; letter-spacing: -0.01em; }
.private-main h2 .serif { display: block; }
.private-main .lead-s { margin-top: clamp(14px, 1.5vw, 29px); max-width: 47em; font-size: clamp(14px, 1.04vw, 20px); line-height: 1.2; }
.private-list { margin-top: clamp(28px, 4.1vw, 79px); }
.private-list .price-row { grid-template-columns: minmax(0, 700fr) minmax(0, 212fr) auto; padding: clamp(18px, 1.56vw, 30px) clamp(12px, 1vw, 20px) clamp(18px, 1.56vw, 30px) clamp(16px, 3.1vw, 60px); border-bottom: 1px solid var(--brown); }
.private-list .price-row .meta { font-size: clamp(12px, 1.04vw, 20px); line-height: 1.2; margin-top: clamp(4px, .5vw, 8px); }
.private-list .price-row .price { text-align: left; }
.private-list .price-row .btn { min-height: clamp(40px, 3.4vw, 65.4px); min-width: clamp(96px, 10.35vw, 198.8px); font-size: clamp(13px, 1.04vw, 20px); }
.private-photo { position: relative; overflow: hidden; min-height: 420px; }
.private-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }

/* Private room subscriptions */
.subs { display: grid; grid-template-columns: minmax(0, 637.4fr) minmax(0, 1282.6fr); background: var(--brown); color: var(--cream); padding: clamp(28px, 1.67vw, 32px) 0 clamp(28px, 1.67vw, 32px); }
.subs-intro { padding: clamp(8px, 1.25vw, 24px) clamp(20px, 2.5vw, 48px) 16px var(--gutter); }
.subs-intro img { width: clamp(30px, 2.07vw, 39.8px); height: auto; }
.subs-intro h2 { margin-top: clamp(14px, 1.25vw, 24px); font-size: var(--fs-h3); line-height: 1; letter-spacing: -0.01em; }
.subs-intro .tag { margin-top: 4px; font-size: var(--fs-h3); line-height: 1; letter-spacing: -0.01em; }
.subs-intro .terms { margin-top: clamp(16px, 1.9vw, 36px); font-size: clamp(14px, 1.25vw, 24px); line-height: 1.2; max-width: 22em; }
.subs-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; padding-right: var(--gutter); }
.sub-card { display: grid; grid-template-columns: 1fr auto; align-content: center; gap: clamp(10px, 1.1vw, 21px) 12px; background: var(--cream); color: var(--brown); padding: clamp(28px, 4.75vw, 91px) clamp(16px, 1.56vw, 30px); }
.sub-card .term { font-size: clamp(15px, 1.25vw, 24px); line-height: 1; align-self: center; }
.sub-card .amount { font-size: var(--fs-h3); line-height: 1; text-align: right; }
.sub-card .visits, .sub-card .save { font-size: clamp(14px, 1.25vw, 24px); line-height: 1.2; text-transform: uppercase; }
.sub-card .save { text-align: right; }
.sub-card .btn { grid-column: 1 / -1; margin-top: clamp(20px, 2.4vw, 46px); width: 100%; min-height: clamp(44px, 3.38vw, 65px); font-size: clamp(14px, 1.15vw, 22px); color: var(--cream); }

@media (max-width: 1100px) {
  .pkg-row { grid-template-columns: 1fr 1fr; }
  .pkg-intro { grid-column: 1 / -1; }
  .subs { grid-template-columns: 1fr; }
  .subs-list { padding-left: var(--gutter); margin-top: 24px; }
}
@media (max-width: 900px) {
  .private-top { grid-template-columns: 1fr; }
  .private-photo { order: -1; min-height: 0; aspect-ratio: 390 / 300; }
}
@media (max-width: 767px) {
  .case-photo--empty { min-height: 0; }
  .pkg-row { grid-template-columns: 1fr; gap: 0; }
  .pkg-card { border-bottom: 1px solid var(--sand); }
  .private-list .price-row { grid-template-columns: 1fr auto auto; padding: 16px 0; gap: 12px; }
  .private-list .price-row .btn { min-width: 0; padding-inline: 14px; }
  .subs-list { grid-template-columns: 1fr; }
  .sub-card { padding: 24px 20px; }
}
