/* 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; }
}

/* Compact full-width invitation, aligned with the page grid. */
.private.private-link{display:flex;align-items:center;justify-content:space-between;gap:40px;padding:clamp(40px,4vw,76px) var(--gutter);background:var(--tan);min-height:240px}
.private-link-copy{max-width:850px}.private-link-copy h2{font-size:var(--fs-h3);line-height:1.15;margin:0 0 20px}.private-link-copy p{font-size:clamp(17px,1.25vw,24px);line-height:1.5;margin:0;max-width:760px}
.private.private-link>.btn{flex-shrink:0;white-space:normal;text-align:center;max-width:340px}
@media(max-width:900px){.private.private-link{flex-direction:column;align-items:flex-start;gap:28px;min-height:0}.private.private-link>.btn{max-width:100%}}

/* Private studio invitation with photo. */
.private.private-link{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:0;padding:0;min-height:0;align-items:stretch}
.private-link-copy{padding:clamp(28px,3vw,56px) var(--gutter);max-width:none;align-self:center}
.private-link-copy .btn{display:inline-flex;margin-top:24px;max-width:100%;white-space:normal;text-align:center}
.private-link-photo{position:relative;overflow:hidden;min-height:320px}
.private-link-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 60%}
@media(max-width:900px){.private.private-link{grid-template-columns:1fr}.private-link-photo{min-height:0;height:240px}.private-link-copy{padding:28px var(--gutter)}}
