/* PERFESS — внутренние страницы прайс-листов (/top/, /vip/). Подключается после style.css */

.sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

/* ─── HERO ─── */
.pl-hero { position: relative; padding: 150px 0 20px; text-align: center; overflow: hidden; }
.pl-hero::before { content: ''; position: absolute; inset: 0; z-index: -1; background: radial-gradient(ellipse 70% 60% at 50% 0%, rgba(196,164,110,.13), transparent 70%); }
.pl-crumbs { display: flex; justify-content: center; align-items: center; gap: 10px; margin-bottom: 36px; font-size: 13px; letter-spacing: .06em; color: var(--ink35); }
.pl-crumbs a { color: var(--ink60); }
.pl-crumbs a:hover { color: var(--gold-lt); }
.pl-head h1 { font-size: clamp(42px, 6vw, 84px); margin-bottom: 24px; }
.pl-head .lead { margin: 0 auto; }

/* переключатель ТОП / VIP */
.pl-switch { display: inline-flex; gap: 6px; margin-top: 44px; padding: 6px; border: 1px solid var(--border-gold); border-radius: 100px; background: var(--bg2); }
.pl-tab { display: inline-flex; align-items: center; justify-content: center; min-width: 170px; height: 50px; padding: 0 28px; border-radius: 100px; font-size: 14px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--ink60); transition: var(--t); white-space: nowrap; }
.pl-tab:hover { color: var(--ink); background: var(--gold-a10); }
.pl-tab.is-active { background: linear-gradient(135deg, #b8965a, #d4b07a, #b89058); color: #0c0b09; box-shadow: 0 4px 22px rgba(196,164,110,.3); }
.pl-tab--vip.is-active { animation: plGlow 2.8s ease-in-out infinite; }
@keyframes plGlow { 0%, 100% { box-shadow: 0 4px 22px rgba(196,164,110,.25); } 50% { box-shadow: 0 4px 30px 4px rgba(196,164,110,.5); } }

/* ─── BODY ─── */
.pl-body { padding: 56px 0 110px; }
.pl-card { margin-bottom: 28px; padding: 44px 48px 36px; background: var(--bg2); border: 1px solid var(--border-gold); border-radius: var(--r); }
.pl-card-head { display: flex; align-items: center; justify-content: space-between; gap: 20px 40px; flex-wrap: wrap; margin-bottom: 30px; }
.pl-card-head h2 { font-size: clamp(32px, 3.4vw, 48px); margin-bottom: 0; }
.pl-valid { display: inline-flex; align-items: center; gap: 12px; padding: 10px 22px; border: 1px solid var(--border-gold); border-radius: 100px; background: var(--gold-a10); font-size: 15px; color: var(--ink60); white-space: nowrap; }
.pl-valid strong { color: var(--gold-lt); font-weight: 700; }
.pl-valid-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--gold); box-shadow: 0 0 10px var(--gold); flex-shrink: 0; }

/* ─── TABLE (desktop / tablet) ─── */
.pl-table { width: 100%; border-collapse: collapse; }
.pl-table thead th { padding: 0 12px 16px; font-size: 13px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--gold); text-align: center; border-bottom: 1px solid var(--border-gold); }
.pl-table thead th:first-child { text-align: left; padding-left: 0; }
.pl-svc tr + tr td { border-top: 1px dashed var(--border); }
.pl-svc tr + tr { background: none; }
.pl-svc:not(:last-child) > tr:last-child > * { border-bottom: 1px dashed var(--border); }
.pl-table td, .pl-table tbody th { padding: 22px 12px; vertical-align: middle; text-align: center; transition: background var(--t); }
.pl-svc tr:hover td, .pl-svc:hover th { background: rgba(196,164,110,.045); }
.pl-name { width: 36%; padding-left: 0 !important; text-align: left !important; font-size: 19px; font-weight: 500; line-height: 1.35; color: var(--ink); }
.pl-time span { display: inline-block; padding: 4px 14px; border: 1px solid var(--border); border-radius: 100px; font-size: 15px; color: var(--ink60); white-space: nowrap; }
.pl-price { display: block; font-size: 22px; font-weight: 600; color: var(--gold-lt); white-space: nowrap; letter-spacing: .01em; }
.pl-num, .pl-unit { display: none; }

/* ─── HOURS ─── */
.pl-hours { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; list-style: none; }
.pl-hour { display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 26px 12px 24px; border: 1px solid var(--border); border-radius: 14px; background: rgba(255,255,255,.022); transition: var(--t); }
.pl-hour:hover { border-color: var(--border-gold); background: var(--bg3); transform: translateY(-3px); }
.pl-hour .pl-num { display: block; font-family: 'Cormorant Garamond', serif; font-size: 56px; line-height: 1; font-weight: 300; color: var(--gold); }
.pl-hour .pl-unit { display: block; margin-bottom: 14px; font-size: 12px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--ink60); }

/* ─── CTA / LINKS ─── */
.pl-cta { display: flex; align-items: center; justify-content: space-between; gap: 40px; margin-top: 28px; padding: 40px 50px; background: rgba(196,164,110,0.04); border: 1px dashed var(--border-gold); border-radius: var(--r); }
.pl-cta h3 { font-size: 30px; margin-bottom: 10px; }
.pl-cta p { color: var(--ink60); font-size: 16px; max-width: 640px; }
.pl-cta .btn { flex-shrink: 0; }
.pl-other { margin-top: 36px; text-align: center; font-size: 15px; color: var(--ink35); }
.pl-other a { color: var(--gold-lt); border-bottom: 1px solid var(--border-gold); padding-bottom: 1px; }
.pl-other a:hover { color: var(--ink); border-color: var(--gold); }

/* ─── TABLET ─── */
@media (max-width: 1024px) {
  .pl-hero { padding-top: 140px; }
  .pl-card { padding: 34px 28px 28px; }
  .pl-table td, .pl-table tbody th { padding: 18px 8px; }
  .pl-name { font-size: 17px; width: 32%; }
  .pl-price { font-size: 19px; }
  .pl-hour .pl-num { font-size: 48px; }
}

/* ─── MOBILE: каждая услуга — карточка с плитками цен ─── */
@media (max-width: 760px) {
  .pl-hero { padding: 118px 0 8px; }
  .pl-crumbs { margin-bottom: 24px; font-size: 12px; }
  .pl-head h1 { font-size: clamp(38px, 11vw, 52px); margin-bottom: 18px; }
  .pl-switch { display: flex; width: 100%; max-width: 420px; margin: 32px auto 0; }
  .pl-tab { flex: 1; min-width: 0; padding: 0 10px; height: 46px; font-size: 12px; letter-spacing: .06em; }

  .pl-body { padding: 36px 0 80px; }
  .pl-card { padding: 24px 16px 18px; margin-bottom: 20px; }
  .pl-card-head { flex-direction: column; align-items: flex-start; gap: 14px; margin-bottom: 20px; padding: 0 4px; }
  .pl-valid { font-size: 13px; padding: 8px 14px; gap: 10px; }

  .pl-table, .pl-table tbody, .pl-table tr, .pl-table td, .pl-table th { display: block; }
  .pl-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
  .pl-svc { margin-bottom: 14px; padding: 6px 0 14px; border: 1px solid var(--border-gold); border-radius: 14px; background: var(--bg3); }
  .pl-svc:last-child { margin-bottom: 0; }
  .pl-svc:not(:last-child) > tr:last-child > * { border-bottom: 0; }
  .pl-svc tr + tr td { border-top: 0; }
  .pl-svc tr:hover td, .pl-svc:hover th { background: none; }
  .pl-table tr { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; padding: 0 12px; }
  .pl-table tr + tr { margin-top: 6px; padding-top: 10px; border-top: 1px dashed var(--border); }
  .pl-table tbody th.pl-name { grid-column: 1 / -1; width: auto; padding: 16px 4px 4px !important; font-family: 'Cormorant Garamond', serif; font-size: 25px; font-weight: 400; line-height: 1.15; color: var(--gold-lt); }
  .pl-table td { padding: 0; }
  .pl-table td.pl-time { grid-column: 1 / -1; text-align: left; padding: 2px 4px 6px; }
  .pl-time span { padding: 3px 12px; font-size: 13px; }
  .pl-table td[data-label$="сеансов"] { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px; padding: 12px 4px 11px; border: 1px solid var(--border); border-radius: 12px; background: rgba(255,255,255,.03); }
  .pl-num { display: block; font-family: 'Cormorant Garamond', serif; font-size: 34px; line-height: 1; font-weight: 400; color: var(--gold); }
  .pl-unit { display: block; margin-bottom: 8px; font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--ink60); }
  .pl-price { font-size: 16px; letter-spacing: 0; }

  .pl-hours { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .pl-hour { padding: 20px 8px 18px; }
  .pl-hour .pl-num { font-size: 44px; }
  .pl-hour .pl-price { font-size: 18px; }
  .pl-cta { flex-direction: column; text-align: center; padding: 32px 24px; gap: 24px; margin-top: 20px; }
  .pl-other { margin-top: 28px; line-height: 2; }
}

@media (max-width: 380px) {
  .pl-table tr { padding: 0 8px; gap: 6px; }
  .pl-price { font-size: 14.5px; }
  .pl-table tbody th.pl-name { font-size: 22px; }
}

.pl-term { margin-top: 12px; padding: 3px 12px; border: 1px solid var(--border-gold); border-radius: 100px; font-size: 12px; color: var(--gold-lt); background: var(--gold-a10); white-space: nowrap; }
