/* shared/treatments-panel.css — the A3 treatments panel (/treatments) and
   the /book link band. Tokens duplicated from the page :root on purpose,
   like session-card.css: this file must render standalone. */

:where(.p-tpanel, .p-treat-band) {
  --p-tp-bg: #1e1a16;
  --p-tp-bg-deep: #171411;
  --p-tp-border: rgba(254, 246, 236, 0.1);
  --p-tp-border-strong: rgba(254, 246, 236, 0.22);
  --p-tp-rule: rgba(254, 246, 236, 0.12);
  --p-tp-text: #fef6ec;
  --p-tp-highlight: #efd70d;
  --p-tp-radius: 10px;
  --p-tp-ease: cubic-bezier(0.4, 0, 0.2, 1);
}

/* ==== SECTION ==== */
.p-tpanel {
  scroll-margin-top: 75px;
  padding: 28px 20px 40px;
  background: var(--p-tp-bg-deep);
  color: var(--p-tp-text);
}
@media (min-width: 768px) { .p-tpanel { padding: 44px 50px 60px; scroll-margin-top: 86px; } }
.p-tpanel_inner { max-width: 1340px; margin: 0 auto; }
.p-tpanel_head { display: flex; flex-direction: column; gap: 8px; max-width: 46em; margin-bottom: 22px; }
@media (min-width: 768px) { .p-tpanel_head { margin-bottom: 28px; } }
.p-tpanel_label { margin: 0; color: var(--p-tp-highlight); font-size: 11px; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; }
.p-tpanel_title { margin: 0; }
.p-tpanel_subtitle { margin: 0; opacity: 0.55; }

/* ==== BODY: list left, detail right ==== */
.p-tpanel_body { display: grid; grid-template-columns: 1fr; gap: 18px; }
@media (min-width: 1024px) { .p-tpanel_body { grid-template-columns: 340px minmax(0, 1fr); gap: 40px; align-items: start; } }

/* Treatment list — tabs on desktop, a horizontal chip rail on mobile */
.p-tpanel_list { display: flex; gap: 8px; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x proximity; -webkit-overflow-scrolling: touch; margin: 0 -20px; padding: 0 20px 4px; scrollbar-width: none; }
.p-tpanel_list::-webkit-scrollbar { display: none; }
@media (min-width: 1024px) { .p-tpanel_list { flex-direction: column; gap: 6px; overflow: visible; margin: 0; padding: 0; scroll-snap-type: none; } }

.p-tpanel_tab { flex: 0 0 auto; scroll-snap-align: start; display: inline-flex; align-items: center; gap: 10px; min-height: 44px; padding: 10px 16px; border: 1px solid var(--p-tp-border-strong); border-radius: 100px; background: transparent; color: var(--p-tp-text); font: inherit; font-size: 13px; font-weight: 300; cursor: pointer; white-space: nowrap; transition: border-color 0.2s var(--p-tp-ease), background 0.2s var(--p-tp-ease); }
.p-tpanel_tab[aria-selected="true"] { border-color: var(--p-tp-highlight); background: rgba(239, 215, 13, 0.08); color: var(--p-tp-highlight); }
.p-tpanel_tab-meta { display: none; }
@media (min-width: 1024px) {
  .p-tpanel_tab { justify-content: space-between; width: 100%; padding: 18px 20px; border-color: transparent; border-radius: 8px; font-size: 18px; white-space: normal; text-align: left; }
  .p-tpanel_tab:hover { border-color: var(--p-tp-border-strong); }
  .p-tpanel_tab[aria-selected="true"] { border-color: var(--p-tp-highlight); background: rgba(239, 215, 13, 0.06); color: var(--p-tp-text); font-weight: 500; }
  .p-tpanel_tab-meta { display: inline; font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; opacity: 0.55; white-space: nowrap; }
}

/* Detail: image + copy, and the booking side card */
.p-tpanel_detail { display: grid; grid-template-columns: 1fr; gap: 16px; }
@media (min-width: 1024px) { .p-tpanel_detail { grid-template-columns: minmax(0, 1fr) 380px; gap: 40px; align-items: start; } }
.p-tpanel_copy { display: flex; flex-direction: column; gap: 14px; }
@media (min-width: 1024px) { .p-tpanel_copy { gap: 16px; } }
.p-tpanel_media { aspect-ratio: 16 / 9; border-radius: var(--p-tp-radius); overflow: hidden; background: var(--p-tp-bg); }
.p-tpanel_media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.p-tpanel_media[hidden] { display: none; }
.p-tpanel_name { margin: 0; font-size: 24px; line-height: 1.2; font-weight: 300; }
@media (min-width: 1024px) { .p-tpanel_name { font-size: 36px; } }
.p-tpanel_desc { margin: 0; font-size: 14px; line-height: 1.55; opacity: 0.6; max-width: 40em; white-space: pre-line; }
@media (min-width: 1024px) { .p-tpanel_desc { font-size: 15px; } }

.p-tpanel_side { display: flex; flex-direction: column; gap: 12px; padding: 18px; background: var(--p-tp-bg); border: 1px solid var(--p-tp-border); border-radius: var(--p-tp-radius); }
@media (min-width: 1024px) { .p-tpanel_side { padding: 22px; gap: 14px; } }
.p-tpanel_side-label { font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; opacity: 0.5; font-weight: 500; }

.p-tpanel_rungs { display: flex; flex-direction: column; gap: 8px; }
.p-tpanel_rung { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 44px; padding: 12px 16px; border: 1px solid var(--p-tp-border); border-radius: 8px; background: transparent; color: var(--p-tp-text); font: inherit; cursor: pointer; text-align: left; transition: border-color 0.2s var(--p-tp-ease), background 0.2s var(--p-tp-ease); }
.p-tpanel_rung:hover { border-color: var(--p-tp-border-strong); }
.p-tpanel_rung[aria-pressed="true"] { border-color: var(--p-tp-highlight); background: rgba(239, 215, 13, 0.07); }
.p-tpanel_rung-dur { font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase; opacity: 0.7; }
.p-tpanel_rung-price { font-size: 18px; font-weight: 700; line-height: 1; letter-spacing: -0.01em; color: var(--p-tp-highlight); }

.p-tpanel_addons { display: flex; flex-direction: column; gap: 6px; padding-top: 10px; border-top: 1px dashed var(--p-tp-rule); font-size: 12.5px; }
.p-tpanel_addons-label { font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; opacity: 0.4; }
.p-tpanel_addon { display: flex; justify-content: space-between; gap: 12px; }
.p-tpanel_addon-name { opacity: 0.8; }
.p-tpanel_addon-price { opacity: 0.55; white-space: nowrap; }

.p-tpanel_cta { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-top: 4px; }
.p-tpanel_price { display: flex; flex-direction: column; gap: 4px; }
.p-tpanel_price-amount { font-size: 20px; font-weight: 700; line-height: 1; letter-spacing: -0.01em; color: var(--p-tp-highlight); }
.p-tpanel_price-credits { font-size: 10px; letter-spacing: 0.08em; text-transform: uppercase; opacity: 0.45; }
.p-tpanel_book { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 44px; padding: 12px 21px; border-radius: 100px; background: var(--p-tp-highlight); color: #171411; font-size: 11px; font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase; text-decoration: none; white-space: nowrap; transition: opacity 0.2s var(--p-tp-ease); }
.p-tpanel_book:hover, .p-tpanel_book:focus-visible { opacity: 0.85; }
.p-tpanel_note { margin: 0; font-size: 12px; line-height: 1.5; opacity: 0.45; }

.p-tpanel_error { padding: 28px 0; opacity: 0.6; font-size: 0.9rem; }
.p-tpanel_error a { color: var(--p-tp-highlight); }
.p-tpanel.is-loading .p-tpanel_body { min-height: 320px; background: linear-gradient(90deg, var(--p-tp-bg) 0%, #2a2520 50%, var(--p-tp-bg) 100%); background-size: 200% 100%; animation: p-tp-skeleton 1.4s infinite; border-radius: var(--p-tp-radius); }
@keyframes p-tp-skeleton { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }

.p-tpanel :focus-visible, .p-treat-band :focus-visible { outline: 2px solid var(--p-tp-highlight); outline-offset: 2px; }

/* ==== /book link band ==== */
.p-treat-band { display: flex; flex-direction: column; gap: 10px; margin: 28px 20px 0; padding: 18px 20px; border: 1px solid var(--p-tp-border); border-radius: var(--p-tp-radius); background: var(--p-tp-bg); color: var(--p-tp-text); }
@media (min-width: 768px) { .p-treat-band { flex-direction: row; align-items: center; justify-content: space-between; gap: 30px; margin: 36px 50px 0; padding: 22px 26px; } }
.p-treat-band_text { margin: 0; font-size: 15px; font-weight: 300; opacity: 0.8; }
.p-treat-band_text strong { font-weight: 500; opacity: 1; }
.p-treat-band_link { display: inline-flex; align-items: center; gap: 6px; color: var(--p-tp-highlight); text-transform: uppercase; letter-spacing: 0.08em; font-weight: 500; font-size: 12px; white-space: nowrap; text-decoration: none; }
.p-treat-band_link:hover { opacity: 0.75; }

@media (prefers-reduced-motion: reduce) {
  .p-tpanel_tab, .p-tpanel_rung, .p-tpanel_book { transition: none; }
  .p-tpanel.is-loading .p-tpanel_body { animation: none; }
}

/* ==== Homepage banner "Massage at Pulse" ==== */
.p-tbanner { padding: 22px 20px 30px; border-top: 1px solid rgba(254,246,236,.14); background: #171411; color: #fef6ec; }
@media (min-width: 768px) { .p-tbanner { padding: 36px 50px 44px; } }
.p-tbanner[hidden] { display: none; }
.p-tbanner_inner { max-width: 1340px; margin: 0 auto; display: grid; grid-template-columns: 1fr; border: 1px solid rgba(254,246,236,.1); border-radius: 10px; overflow: hidden; background: #1e1a16; }
@media (min-width: 900px) { .p-tbanner_inner { grid-template-columns: 520px minmax(0, 1fr); } }
.p-tbanner_media { position: relative; aspect-ratio: 4 / 3; }
@media (min-width: 900px) { .p-tbanner_media { aspect-ratio: auto; min-height: 300px; } }
.p-tbanner_media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.p-tbanner_media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(23,20,17,0) 55%, #1e1a16 100%); }
@media (min-width: 900px) { .p-tbanner_media::after { background: linear-gradient(90deg, rgba(23,20,17,0) 60%, #1e1a16 100%); } }
.p-tbanner_body { display: flex; flex-direction: column; gap: 14px; padding: 4px 18px 22px; }
@media (min-width: 900px) { .p-tbanner_body { justify-content: center; gap: 18px; padding: 40px 50px 40px 30px; } }
.p-tbanner_label { margin: 0; color: #efd70d; font-size: 11px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; }
.p-tbanner_title { margin: 0; }
.p-tbanner_desc { margin: 0; opacity: .6; max-width: 34em; }
.p-tbanner_chips { display: flex; gap: 8px; flex-wrap: wrap; }
.p-tbanner_chip { display: inline-flex; align-items: baseline; gap: 8px; padding: 10px 16px; border: 1px solid rgba(254,246,236,.22); border-radius: 100px; color: #fef6ec; text-decoration: none; font-size: 13px; }
.p-tbanner_chip:hover { border-color: #efd70d; }
.p-tbanner_chip small { font-size: 10px; letter-spacing: .08em; text-transform: uppercase; opacity: .5; }
.p-tbanner_chip strong { font-size: 14px; font-weight: 700; color: #efd70d; }
.p-tbanner_cta { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.p-tbanner_note { font-size: 12px; opacity: .5; }
