/* ==========================================================================
   Pilates Studio 82 – Booking (client side)
   Black and white. Hairlines, generous air, one solid colour: ink.
   ========================================================================== */

.ps82 {
	--ink: #0b0b0b;
	--ink-2: #2a2a2a;
	--muted: #6e6e6e;
	--faint: #a8a8a8;
	--line: #e6e6e6;
	--line-2: #d4d4d4;
	--wash: #f6f6f6;
	--paper: #ffffff;
	--ease: cubic-bezier( .22, .61, .36, 1 );

	/* old names, still used inline in a few places */
	--ps82-ink: var( --ink );
	--ps82-muted: var( --muted );
	--ps82-line: var( --line );
	--ps82-bg: var( --wash );

	max-width: 1040px;
	margin: 0 auto;
	color: var( --ink );
	font-family: inherit;
	font-size: 16px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
}
.ps82 *, .ps82 *::before, .ps82 *::after { box-sizing: border-box; }
.ps82 a { color: var( --ink ); text-underline-offset: 3px; text-decoration-thickness: 1px; }
.ps82 [hidden] { display: none !important; }

/* Themes restyle every button (Hello Elementor paints them pink on hover).
   Start from nothing; every button below states its own look. */
.ps82 button {
	font: inherit;
	letter-spacing: normal;
	text-transform: none;
	color: var( --ink );
	background: none;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	text-shadow: none;
	padding: 0;
	white-space: normal;
	overflow-wrap: break-word;
	appearance: none;
	-webkit-appearance: none;
	cursor: pointer;
}
.ps82 button:hover, .ps82 button:focus { background-color: transparent; color: var( --ink ); box-shadow: none; text-decoration: none; }
.ps82 button:focus-visible, .ps82 a:focus-visible { outline: 2px solid var( --ink ); outline-offset: 2px; }

/* ---------- type ---------- */
.ps82-h3 {
	margin: 0 0 1.6rem;
	font-size: clamp( 1.5rem, 3vw, 2.1rem );
	font-weight: 300;
	letter-spacing: -.015em;
	line-height: 1.2;
}
.ps82-h4 {
	margin: 0 0 1rem;
	font-size: .72rem;
	font-weight: 600;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var( --muted );
}
.ps82-muted { color: var( --muted ); font-size: .9rem; }
.ps82-intro { color: var( --muted ); margin: 0 0 2rem; max-width: 40rem; }

/* ---------- alert ---------- */
.ps82-alert {
	display: flex; gap: .8rem; align-items: flex-start;
	margin: 0 0 1.75rem; padding: 1rem 1.2rem;
	background: var( --wash ); border-left: 2px solid var( --ink );
	font-size: .92rem; color: var( --ink );
}
.ps82-alert::before {
	content: '!'; flex: 0 0 1.35rem; height: 1.35rem; border-radius: 50%;
	display: inline-flex; align-items: center; justify-content: center;
	background: var( --ink ); color: #fff; font-size: .75rem; font-weight: 700;
}
.ps82-alert.is-ok::before { content: '✓'; }

/* ==========================================================================
   What she has left – a black card, the first thing on the page
   ========================================================================== */
.ps82-balance {
	margin: 0 0 2.5rem;
	padding: 1.8rem 2rem;
	background: var( --ink );
	color: #fff;
	border-radius: 2px;
	box-shadow: 0 40px 70px -50px rgba( 0, 0, 0, .6 );
}
.ps82-balance h4 {
	margin: 0 0 1.1rem;
	font-size: .68rem; font-weight: 600; letter-spacing: .22em; text-transform: uppercase;
	color: rgba( 255, 255, 255, .55 );
}
.ps82-balance ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.1rem; }
.ps82-balance li {
	display: grid; grid-template-columns: minmax( 0, 1fr ) auto; gap: .35rem 1rem; align-items: baseline;
	padding-top: 1.1rem; border-top: 1px solid rgba( 255, 255, 255, .12 );
}
.ps82-balance li:first-child { padding-top: 0; border-top: 0; }
.ps82-balance-name { font-size: 1.02rem; font-weight: 500; color: #fff; }
.ps82-balance-count { text-align: right; font-size: .85rem; color: rgba( 255, 255, 255, .6 ); white-space: nowrap; }
.ps82-balance-count strong { color: #fff; font-size: 1.35rem; font-weight: 300; margin-right: .15rem; }
.ps82-balance-meta { grid-column: 2; text-align: right; font-size: .75rem; color: rgba( 255, 255, 255, .5 ); }
.ps82-balance-bar { grid-column: 1; display: flex; flex-wrap: wrap; gap: 5px; align-items: center; padding-top: .3rem; }
.ps82-balance-bar i { width: 18px; height: 3px; background: #fff; opacity: .22; }
.ps82-balance-bar i.is-used { opacity: 1; }
.ps82-balance li.is-pending .ps82-balance-name { color: rgba( 255, 255, 255, .55 ); }
.ps82-balance li.is-pending .ps82-balance-bar i { opacity: .12; }
.ps82-balance-empty { margin: 0; color: rgba( 255, 255, 255, .7 ); font-size: .92rem; }

/* ==========================================================================
   Steps – a thin line with three stations
   ========================================================================== */
.ps82-steps {
	counter-reset: none;
	display: grid; grid-template-columns: repeat( 3, 1fr ); gap: 0;
	list-style: none; margin: 0 0 2.75rem; padding: 0;
}
.ps82-steps li {
	position: relative;
	display: flex; flex-direction: column; gap: .7rem;
	padding-top: 1.1rem;
	border-top: 1px solid var( --line-2 );
	font-size: .7rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase;
	color: var( --faint );
	cursor: default;
	transition: color .3s var( --ease );
}
.ps82-steps li::before {
	content: ''; position: absolute; top: -1px; left: 0; height: 2px; width: 0;
	background: var( --ink ); transition: width .5s var( --ease );
}
.ps82-steps li.is-active::before, .ps82-steps li.is-done::before { width: 100%; }
.ps82-steps span {
	width: 2rem; height: 2rem; border-radius: 50%;
	display: inline-flex; align-items: center; justify-content: center;
	border: 1px solid var( --line-2 ); background: var( --paper );
	font-size: .78rem; letter-spacing: 0; color: var( --faint );
	transition: all .3s var( --ease );
}
.ps82-steps .is-active, .ps82-steps .is-done { color: var( --ink ); }
.ps82-steps .is-active span { background: var( --ink ); border-color: var( --ink ); color: #fff; }
.ps82-steps .is-done span { border-color: var( --ink ); color: var( --ink ); }
.ps82-steps li.is-clickable { cursor: pointer; }
.ps82-steps li.is-clickable:hover span { background: var( --ink ); color: #fff; }
.ps82-steps li + li { padding-left: 1rem; }
@media ( max-width: 560px ) {
	.ps82-steps li { font-size: .6rem; letter-spacing: .1em; }
	.ps82-steps li + li { padding-left: .6rem; }
}

/* ---------- panels ---------- */
.ps82-panel { display: none; }
.ps82-panel.is-active { display: block; animation: ps82-fade .45s var( --ease ); }
@keyframes ps82-fade { from { opacity: 0; transform: translateY( 6px ); } to { opacity: 1; transform: none; } }

/* ==========================================================================
   Sessions – editorial cards: photo, name, prices
   ========================================================================== */
.ps82-services { display: grid; grid-template-columns: 1fr; gap: 1.5rem; }

.ps82-service {
	position: relative;
	display: grid; grid-template-columns: 340px 1fr; align-items: stretch;
	background: var( --paper );
	border: 1px solid var( --line );
	border-radius: 2px;
	overflow: hidden;
	text-align: left;
	transition: border-color .3s var( --ease ), box-shadow .4s var( --ease ), transform .4s var( --ease );
}
.ps82-service:hover {
	border-color: var( --line-2 );
	box-shadow: 0 30px 60px -40px rgba( 0, 0, 0, .35 );
	transform: translateY( -2px );
}
.ps82-service.is-selected { border-color: var( --ink ); box-shadow: inset 0 0 0 1px var( --ink ); transform: none; }
.ps82-service:not( :has( .ps82-service-photo ) ) { grid-template-columns: 1fr; }

.ps82-service-photo { position: relative; display: block; grid-row: 1 / span 2; min-height: 260px; overflow: hidden; background: var( --wash ); }
.ps82-service-photo::after { content: ''; position: absolute; inset: 0; background: linear-gradient( 90deg, rgba( 0, 0, 0, 0 ) 70%, rgba( 0, 0, 0, .08 ) ); pointer-events: none; }
.ps82-service-photo img {
	position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block;
	filter: grayscale( 1 ) contrast( 1.05 );
	transform: scale( 1.02 );
	transition: filter .8s var( --ease ), transform 1.2s var( --ease );
}
.ps82-service:hover .ps82-service-photo img { filter: grayscale( 0 ); transform: scale( 1.06 ); }

.ps82-service-body { padding: 2.1rem 2.2rem 0; display: flex; flex-direction: column; gap: .45rem; }
.ps82-service-name { font-size: clamp( 1.45rem, 2.6vw, 1.9rem ); font-weight: 300; letter-spacing: -.015em; line-height: 1.15; color: var( --ink ); }
.ps82-service-meta { font-size: .68rem; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var( --muted ); }
.ps82-service-desc { margin: .35rem 0 0; font-size: .93rem; line-height: 1.65; color: var( --ink-2 ); max-width: 38rem; }
.ps82-service-price { margin-top: auto; padding-top: .9rem; font-size: 1.1rem; font-weight: 500; color: var( --ink ); }
.ps82-service-price em { display: block; font-style: normal; font-size: .68rem; letter-spacing: .14em; text-transform: uppercase; color: var( --muted ); }

/* The recommendation – a note in the margin, never a wall. */
.ps82-level {
	display: block; margin: .7rem 0 0; padding: .8rem 1rem;
	background: var( --wash ); border-left: 1px solid var( --ink );
	font-size: .82rem; line-height: 1.5; color: var( --ink-2 );
}
.ps82-level em { display: block; font-style: normal; margin-top: .3rem; color: var( --ink ); font-weight: 500; }
.ps82-level em.ps82-level-open { font-weight: 400; color: var( --muted ); font-size: .8rem; }
.ps82 button.ps82-ask {
	display: inline-block; margin-top: .7rem; padding: .5rem 1rem;
	border: 1px solid var( --ink ); font-size: .72rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase;
	transition: background-color .25s var( --ease ), color .25s var( --ease );
}
.ps82 button.ps82-ask:hover { background-color: var( --ink ); color: #fff; }

/* ---------- the prices inside the card ---------- */
.ps82-options {
	grid-column: 2 / -1;
	display: grid; grid-template-columns: repeat( auto-fit, minmax( 150px, 1fr ) ); gap: .6rem;
	margin: 1.5rem 2.2rem 2.2rem; padding-top: 1.5rem;
	border-top: 1px solid var( --line );
}
.ps82-service:not( :has( .ps82-service-photo ) ) .ps82-options { grid-column: 1 / -1; }
.ps82-options .ps82-buy { grid-column: 1 / -1; display: grid; grid-template-columns: repeat( auto-fit, minmax( 150px, 1fr ) ); gap: .6rem; }

.ps82 button.ps82-option {
	position: relative;
	display: flex; flex-direction: column; gap: .2rem; text-align: left;
	padding: 1rem 1.05rem 1.05rem;
	background: var( --paper ); border: 1px solid var( --line-2 ); color: var( --ink );
	transition: border-color .2s var( --ease ), background-color .2s var( --ease ), color .2s var( --ease ), transform .2s var( --ease );
}
.ps82 button.ps82-option:hover { background-color: var( --paper ); border-color: var( --ink ); color: var( --ink ); transform: translateY( -2px ); }
.ps82 button.ps82-option:active { transform: none; }
.ps82 button.ps82-option.is-selected { background-color: var( --ink ); border-color: var( --ink ); color: #fff; transform: none; }
.ps82-option-name { font-size: .64rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var( --muted ); }
.ps82-option-price { font-size: 1.3rem; font-weight: 300; letter-spacing: -.01em; line-height: 1.25; }
.ps82-option-meta { font-size: .74rem; line-height: 1.45; color: var( --muted ); }
.ps82 button.ps82-option.is-selected .ps82-option-name,
.ps82 button.ps82-option.is-selected .ps82-option-meta { color: rgba( 255, 255, 255, .7 ); }
.ps82 button.ps82-option-request .ps82-option-price { font-size: 1rem; font-weight: 500; }

/* What a pass saves her – said plainly under the price. */
.ps82-save {
	align-self: flex-start;
	display: inline-block; margin: .35rem 0 .15rem; padding: .22rem .55rem;
	background: var( --ink ); color: #fff;
	font-size: .62rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; white-space: nowrap;
}
.ps82 button.ps82-option.is-selected .ps82-save { background: #fff; color: var( --ink ); }

/* She has already paid: one wide black tile, nothing to compare. */
.ps82-service.has-credit { cursor: pointer; }
.ps82 button.ps82-option.is-credit {
	grid-column: 1 / -1;
	flex-direction: row; flex-wrap: wrap; align-items: baseline; gap: .3rem 1.2rem;
	padding: 1.3rem 1.5rem;
	background: var( --ink ); border-color: var( --ink ); color: #fff;
}
.ps82 button.ps82-option.is-credit:hover { background-color: var( --ink-2 ); color: #fff; border-color: var( --ink-2 ); }
.ps82 button.ps82-option.is-credit::after {
	content: '→'; margin-left: auto; font-size: 1.3rem; line-height: 1; transition: transform .3s var( --ease );
}
.ps82 button.ps82-option.is-credit:hover::after { transform: translateX( 4px ); }
.ps82-option.is-credit .ps82-option-name { color: #fff; font-size: .95rem; letter-spacing: .02em; text-transform: none; font-weight: 500; }
.ps82-option.is-credit .ps82-option-price { color: #fff; font-size: 1rem; font-weight: 400; }
.ps82-option.is-credit .ps82-option-meta { flex-basis: 100%; color: rgba( 255, 255, 255, .6 ); }

.ps82 button.ps82-buy-toggle {
	grid-column: 1 / -1; justify-self: start; padding: .2rem 0;
	font-size: .82rem; color: var( --muted ); text-decoration: underline; text-underline-offset: 4px;
}
.ps82 button.ps82-buy-toggle:hover { color: var( --ink ); }

@media ( max-width: 1000px ) {
	.ps82-service { grid-template-columns: 280px 1fr; }
	.ps82-service-photo { grid-row: 1; }
	.ps82-service-body { padding-bottom: .5rem; }
	.ps82-options { grid-column: 1 / -1; margin: 1rem 2.2rem 2.2rem; }
}
@media ( max-width: 760px ) {
	.ps82-service { grid-template-columns: 1fr; }
	.ps82-service-photo { min-height: 190px; }
	.ps82-service-body { padding: 1.5rem 1.4rem 0; }
	.ps82-options { grid-column: 1 / -1; margin: 1.2rem 1.4rem 1.5rem; padding-top: 1.2rem; }
}

/* ==========================================================================
   Calendar and times
   ========================================================================== */
.ps82-cal-wrap { display: grid; grid-template-columns: 1fr; gap: 2.5rem; }
@media ( min-width: 760px ) { .ps82-cal-wrap { grid-template-columns: 1.1fr .9fr; gap: 3.5rem; } }

.ps82-cal-head { display: flex; align-items: center; justify-content: space-between; margin: 0 0 1.4rem; }
.ps82-cal-head strong { font-size: 1.15rem; font-weight: 400; letter-spacing: .01em; }
.ps82 button.ps82-cal-prev, .ps82 button.ps82-cal-next {
	width: 2.5rem; height: 2.5rem; border: 1px solid var( --line-2 ); border-radius: 50%;
	font-size: 1.2rem; line-height: 1; display: inline-flex; align-items: center; justify-content: center;
	transition: background-color .2s var( --ease ), color .2s var( --ease ), border-color .2s var( --ease );
}
.ps82 button.ps82-cal-prev:hover, .ps82 button.ps82-cal-next:hover { background-color: var( --ink ); border-color: var( --ink ); color: #fff; }

.ps82-cal-grid { display: grid; grid-template-columns: repeat( 7, 1fr ); gap: 4px; }
.ps82-cal-wd { padding-bottom: .6rem; text-align: center; font-size: .64rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var( --faint ); }
.ps82-cal-empty { aspect-ratio: 1; }
.ps82 button.ps82-cal-day {
	position: relative; aspect-ratio: 1; border-radius: 50%;
	display: flex; align-items: center; justify-content: center;
	font-size: .92rem; font-variant-numeric: tabular-nums; color: var( --ink );
	transition: background-color .2s var( --ease ), color .2s var( --ease );
}
.ps82 button.ps82-cal-day.is-disabled { color: #cfcfcf; cursor: default; }
.ps82 button.ps82-cal-day.is-free { font-weight: 600; }
.ps82 button.ps82-cal-day.is-free::after {
	content: ''; position: absolute; bottom: 18%; left: 50%; width: 4px; height: 4px; margin-left: -2px;
	border-radius: 50%; background: var( --ink );
}
.ps82 button.ps82-cal-day.is-free:hover { background-color: var( --wash ); color: var( --ink ); }
.ps82 button.ps82-cal-day.is-selected, .ps82 button.ps82-cal-day.is-selected:hover { background-color: var( --ink ); color: #fff; }
.ps82 button.ps82-cal-day.is-selected::after { background: #fff; }

.ps82-times { padding-top: .4rem; }
.ps82-slot-grid { display: grid; grid-template-columns: repeat( auto-fill, minmax( 104px, 1fr ) ); gap: .5rem; }
.ps82 button.ps82-slot {
	display: flex; flex-direction: column; align-items: center; gap: .1rem;
	padding: .85rem .5rem; border: 1px solid var( --line-2 ); text-align: center;
	transition: all .2s var( --ease );
}
.ps82 button.ps82-slot:hover { border-color: var( --ink ); background-color: var( --paper ); color: var( --ink ); }
.ps82 button.ps82-slot.is-selected, .ps82 button.ps82-slot.is-selected:hover { background-color: var( --ink ); border-color: var( --ink ); color: #fff; }
.ps82-slot strong { font-size: 1.02rem; font-weight: 500; font-variant-numeric: tabular-nums; }
.ps82-slot em { font-style: normal; font-size: .68rem; color: var( --muted ); }
.ps82 button.ps82-slot.is-selected em { color: rgba( 255, 255, 255, .7 ); }

/* ==========================================================================
   Forms
   ========================================================================== */
.ps82 label {
	display: block; margin: 0 0 1.2rem;
	font-size: .66rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var( --muted );
}
.ps82 input[type=text], .ps82 input[type=email], .ps82 input[type=tel],
.ps82 input[type=password], .ps82 textarea {
	display: block; width: 100%; margin-top: .5rem; padding: .85rem 1rem;
	border: 1px solid var( --line-2 ); border-radius: 0; background: var( --paper );
	font: inherit; font-size: 1rem; letter-spacing: normal; text-transform: none; color: var( --ink );
	box-shadow: none; transition: border-color .2s var( --ease ), box-shadow .2s var( --ease );
}
.ps82 input:hover, .ps82 textarea:hover { border-color: var( --faint ); }
.ps82 input:focus, .ps82 textarea:focus { outline: none; border-color: var( --ink ); box-shadow: inset 0 0 0 1px var( --ink ); }
.ps82 small { display: block; margin-top: .4rem; font-size: .78rem; letter-spacing: normal; text-transform: none; font-weight: 400; }
.ps82-grid2 { display: grid; grid-template-columns: 1fr; gap: 0 1.2rem; }
@media ( min-width: 560px ) { .ps82-grid2 { grid-template-columns: 1fr 1fr; } }

.ps82-tabs { display: flex; gap: 2rem; margin: 0 0 1.8rem; border-bottom: 1px solid var( --line ); }
.ps82 button.ps82-tab {
	position: relative; padding: 0 0 .9rem;
	font-size: .72rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var( --faint );
}
.ps82 button.ps82-tab::after { content: ''; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: var( --ink ); transform: scaleX( 0 ); transition: transform .3s var( --ease ); }
.ps82 button.ps82-tab:hover { color: var( --ink ); }
.ps82 button.ps82-tab.is-active { color: var( --ink ); }
.ps82 button.ps82-tab.is-active::after { transform: scaleX( 1 ); }
.ps82-tabpane { display: none; }
.ps82-tabpane.is-active { display: block; }
.ps82-logged { margin: 0 0 1.4rem; font-size: .92rem; color: var( --muted ); }
.ps82-logged a { margin-left: .4rem; color: var( --ink ); }

.ps82-radio { display: flex; align-items: flex-start; gap: .8rem; padding: 1rem 1.1rem; border: 1px solid var( --line-2 ); margin-bottom: .6rem; cursor: pointer; font-size: 1rem; letter-spacing: normal; text-transform: none; color: var( --ink ); }
.ps82-radio:hover { border-color: var( --ink ); }
.ps82-radio input { margin-top: .3rem; accent-color: var( --ink ); }
.ps82-radio strong { display: block; font-weight: 500; }
.ps82-radio em { font-style: normal; font-size: .82rem; color: var( --muted ); }

/* ---------- step 3 ---------- */
.ps82-payers-wrap { margin: 0 0 2.5rem; padding-bottom: 2.2rem; border-bottom: 1px solid var( --line ); }
.ps82-payers { display: grid; grid-template-columns: repeat( auto-fit, minmax( 220px, 1fr ) ); gap: .6rem; }
.ps82-details-title { margin-top: 0; }
.ps82-payers-wrap:not( [hidden] ) + .ps82-details-title { margin-top: 0; }

.ps82-summary-box {
	margin: 2.5rem 0 0; padding: 1.8rem 2rem;
	border: 1px solid var( --line ); border-top: 2px solid var( --ink );
	background: var( --paper );
}
.ps82-summary-box .ps82-h3 { margin-bottom: 1.2rem; font-size: .72rem; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var( --muted ); }
.ps82-summary { display: grid; grid-template-columns: auto 1fr; gap: .75rem 2rem; margin: 0 0 1rem; }
.ps82-summary dt { color: var( --muted ); font-size: .85rem; }
.ps82-summary dd { margin: 0; font-weight: 500; text-align: right; }
.ps82-pay-note { margin: 1rem 0 0; padding-top: 1rem; border-top: 1px solid var( --line ); font-size: .82rem; }

/* ---------- buttons ---------- */
.ps82-actions { display: flex; flex-wrap: wrap; gap: .75rem; justify-content: space-between; margin-top: 2.5rem; padding-top: 1.8rem; border-top: 1px solid var( --line ); }
.ps82-btn,
.ps82 button.ps82-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: .6rem;
	min-height: 52px; padding: .9rem 2rem;
	border: 1px solid var( --ink ); border-radius: 0;
	background-color: var( --paper ); color: var( --ink );
	font-size: .72rem; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; text-decoration: none;
	transition: background-color .25s var( --ease ), color .25s var( --ease ), border-color .25s var( --ease );
}
.ps82-btn:hover, .ps82 button.ps82-btn:hover, .ps82 button.ps82-btn:focus { background-color: var( --ink ); color: #fff; border-color: var( --ink ); }
.ps82-btn-primary, .ps82 button.ps82-btn-primary { background-color: var( --ink ); color: #fff; }
.ps82-btn-primary:hover, .ps82 button.ps82-btn-primary:hover, .ps82 button.ps82-btn-primary:focus { background-color: var( --ink-2 ); border-color: var( --ink-2 ); color: #fff; }
.ps82 button.ps82-btn-primary::after { content: '→'; font-size: 1rem; letter-spacing: 0; transition: transform .3s var( --ease ); }
.ps82 button.ps82-btn-primary:hover::after { transform: translateX( 4px ); }
.ps82-btn-ghost, .ps82 button.ps82-btn-ghost { background-color: transparent; border-color: var( --line-2 ); color: var( --muted ); }
.ps82-btn-ghost:hover, .ps82 button.ps82-btn-ghost:hover { background-color: transparent; border-color: var( --ink ); color: var( --ink ); }
.ps82 button.ps82-btn:disabled { opacity: .4; cursor: default; }
.ps82 button.ps82-link { color: var( --muted ); font-size: .85rem; text-decoration: underline; text-underline-offset: 4px; }
.ps82 button.ps82-link:hover { color: var( --ink ); }

/* ---------- done ---------- */
.ps82-done, .ps82-pass-done, .ps82-gift-done { text-align: center; padding: 2.5rem 0 1rem; }
.ps82-check {
	width: 4rem; height: 4rem; margin: 0 auto 1.6rem; border-radius: 50%;
	display: flex; align-items: center; justify-content: center;
	background: var( --ink ); color: #fff; font-size: 1.5rem;
	animation: ps82-pop .6s cubic-bezier( .2, .9, .3, 1.3 );
}
@keyframes ps82-pop { from { transform: scale( .4 ); opacity: 0; } to { transform: none; opacity: 1; } }
.ps82-done .ps82-h3 { margin-bottom: .6rem; }
.ps82-done-msg { max-width: 32rem; margin: 0 auto; color: var( --muted ); }
.ps82-done .ps82-summary { max-width: 380px; margin: 2rem auto; padding: 1.4rem 0; border-top: 1px solid var( --line ); border-bottom: 1px solid var( --line ); text-align: left; }
.ps82-paybox { max-width: 420px; margin: 0 auto 1.8rem; padding: 1.3rem 1.5rem; background: var( --wash ); font-size: .9rem; text-align: left; }
.ps82-done-link { margin-top: 1rem; }

/* ==========================================================================
   The account screen that comes first
   ========================================================================== */
#ps82-gate .ps82-gate-box {
	max-width: 580px; margin: 0 auto;
	padding: clamp( 1.8rem, 4vw, 3rem );
	background: var( --paper ); border: 1px solid var( --line ); border-top: 2px solid var( --ink );
	box-shadow: 0 40px 80px -60px rgba( 0, 0, 0, .4 );
}
#ps82-gate .ps82-h3 { margin-top: 0; }
#ps82-gate .ps82-intro { margin-bottom: 1.8rem; }
#ps82-gate .ps82-btn-primary { width: 100%; margin-top: 1rem; }
#ps82-gate p a { font-size: .85rem; color: var( --muted ); }

/* ==========================================================================
   Price list [ps82_passes] and gift cards
   ========================================================================== */
.ps82-pass-group { margin-bottom: 3.5rem; }
.ps82-pass-group .ps82-h3 { padding-bottom: 1rem; border-bottom: 1px solid var( --ink ); }
.ps82-pass-cards { display: grid; grid-template-columns: repeat( auto-fit, minmax( 210px, 1fr ) ); gap: 1rem; }
.ps82-pass-card {
	display: flex; flex-direction: column; gap: .35rem;
	padding: 1.8rem 1.6rem; border: 1px solid var( --line ); background: var( --paper );
	transition: border-color .3s var( --ease ), box-shadow .3s var( --ease );
}
.ps82-pass-card:hover { border-color: var( --ink ); box-shadow: 0 30px 50px -40px rgba( 0, 0, 0, .4 ); }
.ps82-pass-name { font-size: .66rem; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var( --muted ); }
.ps82-pass-price { font-size: 2rem; font-weight: 300; letter-spacing: -.02em; line-height: 1.15; }
.ps82-pass-meta { margin-bottom: 1.2rem; font-size: .8rem; color: var( --muted ); }
.ps82-pass-card .ps82-btn { width: 100%; margin-top: auto; }
.ps82-login-hint { margin-top: 1rem; }

.ps82-lessons, .ps82-gift-passes { display: grid; grid-template-columns: repeat( auto-fit, minmax( 200px, 1fr ) ); gap: .75rem; }
.ps82 button.ps82-lesson {
	display: flex; flex-direction: column; gap: .3rem; text-align: left;
	padding: 1.3rem; border: 1px solid var( --line-2 ); background-color: var( --paper );
	transition: all .2s var( --ease );
}
.ps82 button.ps82-lesson:hover { border-color: var( --ink ); background-color: var( --paper ); color: var( --ink ); }
.ps82 button.ps82-lesson.is-selected { background-color: var( --ink ); color: #fff; border-color: var( --ink ); }
.ps82-lesson-name { font-size: .66rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var( --muted ); }
.ps82-lesson-price { font-size: 1.4rem; font-weight: 300; }
.ps82-lesson-meta { font-size: .78rem; color: var( --muted ); }
.ps82 button.ps82-lesson.is-selected .ps82-lesson-name, .ps82 button.ps82-lesson.is-selected .ps82-lesson-meta { color: rgba( 255, 255, 255, .7 ); }
.ps82-gift-step2, .ps82-gift-step3 { margin-top: 3rem; padding-top: 2.5rem; border-top: 1px solid var( --line ); }
/* On the gift page the session cards are simple buttons. */
.ps82 button.ps82-gift-service { display: flex; flex-direction: column; gap: .4rem; padding: 1.6rem 1.8rem; grid-template-columns: none; }
.ps82 button.ps82-gift-service:hover { background-color: var( --paper ); color: var( --ink ); }
#ps82-gift .ps82-services { grid-template-columns: repeat( auto-fit, minmax( 240px, 1fr ) ); }

/* ==========================================================================
   My account [ps82_my_sessions]
   ========================================================================== */
.ps82-account-head {
	display: flex; justify-content: space-between; align-items: center; gap: 1rem;
	margin: 0 0 2.5rem; padding: 0 0 1.2rem; border-bottom: 1px solid var( --ink );
}
.ps82-account-head .ps82-logged { margin: 0; color: var( --ink ); font-size: 1rem; }
#ps82-account > .ps82-h3 { margin-top: 2.5rem; }
.ps82-login-box {
	max-width: 420px; margin: 0 auto; padding: clamp( 1.8rem, 4vw, 2.6rem );
	border: 1px solid var( --line ); border-top: 2px solid var( --ink ); background: var( --paper );
}
.ps82-login-box .ps82-btn { width: 100%; }

.ps82-pass-list { display: grid; grid-template-columns: repeat( auto-fit, minmax( 260px, 1fr ) ); gap: 1rem; margin-bottom: 1rem; }
.ps82-pass-item { padding: 1.5rem; border: 1px solid var( --line ); background: var( --paper ); }
.ps82-pass-item.is-active { border-color: var( --ink ); }
.ps82-pass-item-head { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-bottom: .8rem; }
.ps82-pass-item-head strong { font-weight: 500; }
.ps82-meter { height: 2px; margin: .6rem 0 .8rem; background: var( --line ); }
.ps82-meter span { display: block; height: 100%; background: var( --ink ); }
.ps82-pass-item .ps82-muted { margin: 0; font-size: .82rem; }

.ps82-badge {
	display: inline-block; padding: .22rem .6rem;
	border: 1px solid var( --line-2 ); background: var( --paper );
	font-size: .6rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var( --muted ); white-space: nowrap;
}
.ps82-badge.is-active, .ps82-badge.is-confirmed { background: var( --ink ); border-color: var( --ink ); color: #fff; }
.ps82-badge.is-pending, .ps82-badge.is-request { border-style: dashed; border-color: var( --ink ); color: var( --ink ); }
.ps82-badge.is-cancelled, .ps82-badge.is-expired { text-decoration: line-through; color: var( --faint ); }

.ps82-booking-list { list-style: none; margin: 0 0 1rem; padding: 0; border-top: 1px solid var( --line ); }
.ps82-booking-item {
	display: flex; justify-content: space-between; align-items: center; gap: 1rem;
	padding: 1.2rem .2rem; border-bottom: 1px solid var( --line );
	transition: background-color .2s var( --ease );
}
.ps82-booking-item:hover { background: var( --wash ); }
.ps82-booking-item strong { margin-right: .6rem; font-weight: 500; }
.ps82-booking-item p { margin: .3rem 0 0; }
.ps82-booking-list.is-past .ps82-booking-item { opacity: .55; }

@media ( max-width: 560px ) {
	.ps82-balance { padding: 1.3rem 1.25rem; }
	.ps82-balance li { grid-template-columns: 1fr; }
	.ps82-balance-count, .ps82-balance-meta { grid-column: 1; text-align: left; }
	.ps82-actions { flex-direction: column-reverse; }
	.ps82-actions .ps82-btn { width: 100%; }
	.ps82-summary-box { padding: 1.4rem 1.2rem; }
	.ps82-booking-item { flex-direction: column; align-items: flex-start; }
}

@media ( prefers-reduced-motion: reduce ) {
	.ps82 *, .ps82 *::before, .ps82 *::after { animation: none !important; transition: none !important; }
}

/* ==========================================================================
   v4.6 – depth for the client as well: the cards lift, the tiles are soft
   ========================================================================== */
.ps82 { --r: 16px; --shadow: 0 1px 2px rgba( 0, 0, 0, .04 ), 0 10px 30px -14px rgba( 0, 0, 0, .18 ), 0 30px 60px -36px rgba( 0, 0, 0, .28 ); --shadow-up: 0 2px 4px rgba( 0, 0, 0, .05 ), 0 22px 44px -18px rgba( 0, 0, 0, .3 ), 0 50px 80px -44px rgba( 0, 0, 0, .35 ); }
.ps82-balance { border-radius: var( --r ); background: linear-gradient( 160deg, #222 0%, #0b0b0b 55%, #000 100% ); box-shadow: 0 30px 60px -30px rgba( 0, 0, 0, .7 ), inset 0 1px 0 rgba( 255, 255, 255, .12 ); }
.ps82-service { border-radius: var( --r ); border-color: rgba( 0, 0, 0, .05 ); box-shadow: var( --shadow ); }
.ps82-service:hover { transform: translateY( -5px ); box-shadow: var( --shadow-up ); border-color: rgba( 0, 0, 0, .08 ); }
.ps82-service.is-selected { box-shadow: var( --shadow-up ), inset 0 0 0 1.5px var( --ink ); }
.ps82 button.ps82-option { border-radius: 12px; box-shadow: 0 1px 2px rgba( 0, 0, 0, .03 ); }
.ps82 button.ps82-option:hover { box-shadow: 0 14px 28px -16px rgba( 0, 0, 0, .35 ); }
.ps82 button.ps82-option.is-selected { box-shadow: 0 16px 30px -14px rgba( 0, 0, 0, .6 ); }
.ps82 button.ps82-option.is-credit { border-radius: 12px; background: linear-gradient( 160deg, #222, #0b0b0b ); }
.ps82 button.ps82-slot { border-radius: 10px; }
.ps82-summary-box, #ps82-gate .ps82-gate-box, .ps82-login-box, .ps82-pass-card, .ps82-pass-item { border-radius: var( --r ); box-shadow: var( --shadow ); }
.ps82-btn, .ps82 button.ps82-btn { border-radius: 999px; }
.ps82 button.ps82-btn-primary { box-shadow: 0 12px 26px -12px rgba( 0, 0, 0, .7 ); }
.ps82 input[type=text], .ps82 input[type=email], .ps82 input[type=tel], .ps82 input[type=password], .ps82 textarea { border-radius: 10px; }
.ps82-level { border-radius: 0 10px 10px 0; }

/* ==========================================================================
   v4.7 – premium. The booking page opens like a curtain: the balance card
   first, then the steps, then the sessions one by one. Every choice she
   makes answers with a small movement.
   ========================================================================== */
@keyframes ps82-up { from { opacity: 0; transform: translateY( 18px ); } to { opacity: 1; transform: none; } }
@keyframes ps82-card-in { from { opacity: 0; transform: translateY( 26px ) scale( .985 ); } to { opacity: 1; transform: none; } }
.ps82 > .ps82-balance, .ps82 > .ps82-steps, .ps82 > .ps82-alert:not( [hidden] ), .ps82-panel.is-active > .ps82-h3, .ps82-panel.is-active > .ps82-intro,
#ps82-gate .ps82-gate-box, #ps82-account > *, #ps82-passes > *, #ps82-gift > * {
	animation: ps82-up .8s cubic-bezier( .2, .7, .2, 1 ) both;
}
.ps82 > .ps82-steps { animation-delay: .12s; }
.ps82-panel.is-active > .ps82-h3 { animation-delay: .2s; }
#ps82-account > *:nth-child( 2 ), #ps82-passes > *:nth-child( 2 ) { animation-delay: .1s; }
#ps82-account > *:nth-child( 3 ), #ps82-passes > *:nth-child( 3 ) { animation-delay: .2s; }
#ps82-account > *:nth-child( n + 4 ), #ps82-passes > *:nth-child( n + 4 ) { animation-delay: .3s; }
.ps82-panel.is-active .ps82-service { animation: ps82-card-in .9s cubic-bezier( .2, .7, .2, 1 ) both; }
.ps82-panel.is-active .ps82-service:nth-child( 1 ) { animation-delay: .25s; }
.ps82-panel.is-active .ps82-service:nth-child( 2 ) { animation-delay: .38s; }
.ps82-panel.is-active .ps82-service:nth-child( 3 ) { animation-delay: .51s; }
.ps82-panel.is-active .ps82-service:nth-child( 4 ) { animation-delay: .64s; }
.ps82-panel.is-active .ps82-service:nth-child( n + 5 ) { animation-delay: .75s; }
.ps82-panel.is-active .ps82-cal-wrap, .ps82-panel.is-active .ps82-payers-wrap, .ps82-panel.is-active .ps82-details-title, .ps82-panel.is-active .ps82-summary-box, .ps82-panel.is-active .ps82-actions {
	animation: ps82-up .7s cubic-bezier( .2, .7, .2, 1 ) both;
}
.ps82-panel.is-active .ps82-summary-box { animation-delay: .12s; }
.ps82-panel.is-active .ps82-actions { animation-delay: .2s; }

/* the black card: a soft light across it, and a lift */
.ps82-balance { position: relative; overflow: hidden; background: linear-gradient( 160deg, #232323 0%, #0b0b0b 55%, #000 100% ); box-shadow: 0 30px 60px -30px rgba( 0, 0, 0, .7 ), inset 0 1px 0 rgba( 255, 255, 255, .1 ); }
.ps82-balance::after { content: ''; position: absolute; top: -40%; right: -10%; width: 55%; height: 180%; background: radial-gradient( closest-side, rgba( 255, 255, 255, .07 ), rgba( 255, 255, 255, 0 ) ); pointer-events: none; }
.ps82-balance-bar i { transition: opacity .4s var( --ease ); }

/* steps: the active station pulses once */
@keyframes ps82-pulse { 0% { box-shadow: 0 0 0 0 rgba( 11, 11, 11, .35 ); } 100% { box-shadow: 0 0 0 12px rgba( 11, 11, 11, 0 ); } }
.ps82-steps .is-active span { animation: ps82-pulse .9s ease-out; }

/* session cards and the price tiles */
.ps82-service { border-radius: var( --r, 16px ); box-shadow: 0 1px 2px rgba( 0, 0, 0, .04 ), 0 14px 34px -20px rgba( 0, 0, 0, .3 ), 0 34px 70px -50px rgba( 0, 0, 0, .35 ); }
.ps82-service:hover { transform: translateY( -4px ); box-shadow: 0 2px 4px rgba( 0, 0, 0, .05 ), 0 24px 54px -22px rgba( 0, 0, 0, .45 ), 0 60px 100px -60px rgba( 0, 0, 0, .4 ); }
.ps82-service.is-selected { box-shadow: 0 0 0 2px var( --ink ), 0 30px 60px -30px rgba( 0, 0, 0, .5 ); }
.ps82 button.ps82-option { border-radius: 12px; box-shadow: 0 1px 2px rgba( 0, 0, 0, .03 ); }
.ps82 button.ps82-option:hover { box-shadow: 0 14px 30px -18px rgba( 0, 0, 0, .4 ); transform: translateY( -3px ); }
.ps82 button.ps82-option.is-selected { box-shadow: 0 20px 40px -20px rgba( 0, 0, 0, .7 ); transform: translateY( -2px ); }
.ps82 button.ps82-option.is-credit { border-radius: 14px; background: linear-gradient( 160deg, #232323 0%, #0b0b0b 60%, #000 100% ); }
.ps82-save { border-radius: 999px; }

/* calendar and slots */
.ps82 button.ps82-cal-day { transition: background-color .2s var( --ease ), color .2s var( --ease ), transform .2s var( --ease ); }
.ps82 button.ps82-cal-day.is-free:hover { transform: scale( 1.08 ); }
.ps82 button.ps82-cal-day.is-selected { transform: scale( 1.06 ); box-shadow: 0 10px 20px -10px rgba( 0, 0, 0, .5 ); }
.ps82 button.ps82-slot { border-radius: 12px; }
.ps82 button.ps82-slot:hover { transform: translateY( -2px ); box-shadow: 0 12px 24px -16px rgba( 0, 0, 0, .4 ); }
.ps82 button.ps82-slot.is-selected { box-shadow: 0 16px 30px -16px rgba( 0, 0, 0, .6 ); }
.ps82-slot-grid .ps82-slot { animation: ps82-up .5s cubic-bezier( .2, .7, .2, 1 ) both; }
.ps82-slot-grid .ps82-slot:nth-child( 2 ) { animation-delay: .05s; }
.ps82-slot-grid .ps82-slot:nth-child( 3 ) { animation-delay: .1s; }
.ps82-slot-grid .ps82-slot:nth-child( 4 ) { animation-delay: .15s; }
.ps82-slot-grid .ps82-slot:nth-child( n + 5 ) { animation-delay: .2s; }

/* forms and the summary */
.ps82 input:focus, .ps82 textarea:focus { box-shadow: 0 0 0 3px rgba( 11, 11, 11, .08 ); }
.ps82-radio { border-radius: 12px; transition: border-color .2s var( --ease ), box-shadow .2s var( --ease ), transform .2s var( --ease ); }
.ps82-radio:hover { transform: translateY( -1px ); box-shadow: 0 10px 24px -16px rgba( 0, 0, 0, .3 ); }
.ps82-summary-box { border-radius: var( --r, 16px ); border-top-width: 3px; }
.ps82-pass-card:hover, .ps82-pass-item:hover { transform: translateY( -4px ); }
.ps82-pass-card, .ps82-pass-item { transition: transform .35s var( --ease ), box-shadow .35s var( --ease ), border-color .35s var( --ease ); }
.ps82-booking-item { border-radius: 10px; padding-left: .8rem; padding-right: .8rem; }
.ps82-booking-item:hover { box-shadow: inset 3px 0 0 var( --ink ); }
.ps82-btn, .ps82 button.ps82-btn { transition: transform .25s var( --ease ), box-shadow .25s var( --ease ), background-color .25s var( --ease ), color .25s var( --ease ), border-color .25s var( --ease ); }
.ps82-btn:hover, .ps82 button.ps82-btn:hover { transform: translateY( -2px ); }
.ps82 button.ps82-btn:active { transform: translateY( 0 ) scale( .98 ); }
.ps82-check { box-shadow: 0 20px 40px -18px rgba( 0, 0, 0, .6 ); }

/* ==========================================================================
   v4.8 – the session cards open in space: they tilt in from below and the
   photo drifts; the calendar is a card of cards, days arriving row by row.
   ========================================================================== */
.ps82-services { perspective: 1400px; }
@keyframes ps82-card-open { 0% { opacity: 0; transform: translateY( 40px ) rotateX( 10deg ) scale( .96 ); filter: blur( 6px ); } 60% { filter: blur( 0 ); } 100% { opacity: 1; transform: none; filter: none; } }
@keyframes ps82-photo-drift { from { transform: scale( 1.12 ) translateX( 2% ); } to { transform: scale( 1.02 ) translateX( 0 ); } }
.ps82-panel.is-active .ps82-service { animation: ps82-card-open 1.1s cubic-bezier( .2, .7, .2, 1 ) both; transform-origin: 50% 100%; }
.ps82-panel.is-active .ps82-service .ps82-service-photo img { animation: ps82-photo-drift 2.4s cubic-bezier( .2, .7, .2, 1 ) both; }
.ps82-panel.is-active .ps82-service:nth-child( 2 ) .ps82-service-photo img { animation-delay: .13s; }
.ps82-panel.is-active .ps82-service:nth-child( 3 ) .ps82-service-photo img { animation-delay: .26s; }
.ps82-panel.is-active .ps82-service:nth-child( 4 ) .ps82-service-photo img { animation-delay: .39s; }
.ps82-service:hover .ps82-service-photo img { animation: none; }
.ps82-service-body > * { animation: ps82-up .7s cubic-bezier( .2, .7, .2, 1 ) both; }
.ps82-service-body > *:nth-child( 2 ) { animation-delay: .35s; } .ps82-service-body > *:nth-child( 3 ) { animation-delay: .45s; } .ps82-service-body > *:nth-child( n + 4 ) { animation-delay: .55s; }
.ps82-options .ps82-option, .ps82-options .ps82-buy .ps82-option { animation: ps82-up .7s cubic-bezier( .2, .7, .2, 1 ) both; }
.ps82-options .ps82-option:nth-child( 2 ) { animation-delay: .5s; } .ps82-options .ps82-option:nth-child( 3 ) { animation-delay: .6s; } .ps82-options .ps82-option:nth-child( 1 ) { animation-delay: .4s; }

/* the calendar */
.ps82-cal { padding: 1.4rem 1.4rem 1.2rem; border-radius: var( --r, 16px ); background: linear-gradient( 180deg, #fff 0%, #fbfbfb 100% ); border: 1px solid rgba( 0, 0, 0, .05 ); box-shadow: var( --shadow ), inset 0 1px 0 #fff; }
.ps82-cal-head { margin-bottom: 1rem; }
.ps82-cal-head strong { font-size: 1.3rem; font-weight: 300; }
@keyframes ps82-day-in { from { opacity: 0; transform: scale( .6 ); } to { opacity: 1; transform: none; } }
.ps82-cal-grid > .ps82-cal-day, .ps82-cal-grid > .ps82-cal-empty { animation: ps82-day-in .5s cubic-bezier( .2, .7, .2, 1 ) both; }
.ps82-cal-grid > *:nth-child( n + 8 ) { animation-delay: .05s; } .ps82-cal-grid > *:nth-child( n + 15 ) { animation-delay: .1s; }
.ps82-cal-grid > *:nth-child( n + 22 ) { animation-delay: .15s; } .ps82-cal-grid > *:nth-child( n + 29 ) { animation-delay: .2s; }
.ps82-cal-grid > *:nth-child( n + 36 ) { animation-delay: .25s; } .ps82-cal-grid > *:nth-child( n + 43 ) { animation-delay: .3s; }
.ps82 button.ps82-cal-day.is-free { background: #fff; box-shadow: 0 1px 2px rgba( 0, 0, 0, .04 ), 0 8px 18px -12px rgba( 0, 0, 0, .3 ); border: 1px solid rgba( 0, 0, 0, .05 ); }
.ps82 button.ps82-cal-day.is-free:hover { box-shadow: 0 14px 26px -14px rgba( 0, 0, 0, .45 ); background-color: #fff; }
.ps82 button.ps82-cal-day.is-selected, .ps82 button.ps82-cal-day.is-selected:hover { background: linear-gradient( 160deg, #2a2a2a, #0b0b0b ); box-shadow: 0 16px 30px -14px rgba( 0, 0, 0, .7 ); border-color: #0b0b0b; }
.ps82-times { padding: 1.4rem; border-radius: var( --r, 16px ); background: #fff; border: 1px solid rgba( 0, 0, 0, .05 ); box-shadow: var( --shadow ); }
.ps82 button.ps82-slot { background: #fff; border-color: rgba( 0, 0, 0, .08 ); }
.ps82 button.ps82-slot.is-selected { background: linear-gradient( 160deg, #2a2a2a, #0b0b0b ); }
@media ( max-width: 760px ) { .ps82-cal, .ps82-times { padding: 1rem; } }

/* ---------- v5.5: Duett partner, VAT, shared passes, invoices ---------- */
.ps82-partner-wrap { margin: 0 0 1.6rem; padding: 1.2rem 1.3rem 1rem; border: 1px solid #e6e6e6; border-radius: 14px; background: #fafafa; }
.ps82-partner-wrap .ps82-h3 { margin-top: 0; }
.ps82-partner-wrap .ps82-muted { margin: -.2rem 0 1rem; font-size: .9rem; line-height: 1.55; }
.ps82-vat-hint { display: block; margin: .6rem 0 0; font-size: .74rem; letter-spacing: .04em; color: #6e6e6e; }
.ps82-shared { display: inline-block; margin-left: .5rem; font-style: normal; font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; color: #6e6e6e; }
.ps82-invoice-list .ps82-link { font-weight: 600; letter-spacing: .1em; }
