/* ═══════════════════════════════════════════════════════════════════
   BLOCK: Pricing Table (.adm-pricing)
   Tiered plan columns with a features list + booking-aware CTA.
   Uses design tokens throughout; --price-accent is set per column inline.
   ═══════════════════════════════════════════════════════════════════ */

.adm-pricing__head { margin-bottom: var(--space-12); }

.adm-pricing__grid {
	display: grid;
	gap: var(--space-5);
	align-items: stretch;
}
.adm-pricing__grid[data-cols="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.adm-pricing__grid[data-cols="3"] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.adm-pricing__grid[data-cols="4"] { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.adm-pricing__grid[data-cols="5"] { grid-template-columns: repeat(5, minmax(0, 1fr)); }

/* ── Plan column ── */
.adm-price {
	position: relative;
	display: flex;
	flex-direction: column;
	background: var(--color-surface-1);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-lg);
	padding: var(--space-6);
	overflow: hidden;
	transition: transform var(--duration-base) var(--ease-out), box-shadow var(--duration-base) var(--ease-out);
}
.adm-price:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }

.adm-price__accent {
	position: absolute;
	inset: 0 0 auto 0;
	height: 4px;
	background: var(--price-accent);
}

.adm-price--featured {
	border-color: transparent;
	box-shadow: 0 0 0 2px var(--price-accent), var(--shadow-lg);
}
.adm-price--featured:hover { box-shadow: 0 0 0 2px var(--price-accent), var(--shadow-xl); }

.adm-price__badge {
	position: absolute;
	top: var(--space-5);
	right: var(--space-5);
	font-family: var(--font-mono);
	font-size: var(--font-size-2xs);
	text-transform: uppercase;
	letter-spacing: var(--letter-spacing-wide);
	color: var(--color-text-inverse);
	background: var(--price-accent);
	padding: var(--space-1) var(--space-3);
	border-radius: var(--radius-full);
}

.adm-price__tier {
	display: block;
	font-family: var(--font-mono);
	font-size: var(--font-size-2xs);
	text-transform: uppercase;
	letter-spacing: var(--letter-spacing-wide);
	color: var(--color-text-muted);
	margin-top: var(--space-3);
}
.adm-price__name {
	font-size: var(--font-size-2xl);
	font-weight: var(--font-weight-medium);
	color: var(--color-text);
	margin: var(--space-1) 0 var(--space-4);
	letter-spacing: var(--letter-spacing-tight);
}

.adm-price__cost { display: flex; align-items: baseline; gap: var(--space-2); flex-wrap: wrap; }
.adm-price__amount {
	font-size: var(--font-size-4xl);
	font-weight: var(--font-weight-bold);
	line-height: 1;
	letter-spacing: var(--letter-spacing-tight);
	color: var(--price-accent);
}
.adm-price__suffix { font-size: var(--font-size-sm); color: var(--color-text-secondary); }
.adm-price__was {
	font-size: var(--font-size-sm);
	color: var(--color-text-muted);
	text-decoration: line-through;
	margin-left: var(--space-1);
}

.adm-price__desc {
	font-size: var(--font-size-sm);
	color: var(--color-text-secondary);
	line-height: var(--line-height-normal);
	margin: var(--space-4) 0;
	padding-bottom: var(--space-4);
	border-bottom: 1px solid var(--color-border);
}

.adm-price__features { list-style: none; margin: 0 0 var(--space-5); padding: 0; }
.adm-price__feature {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: var(--space-3);
	font-size: var(--font-size-sm);
	color: var(--color-text-secondary);
	padding: var(--space-2) 0;
	border-bottom: 1px dashed var(--color-border);
}
.adm-price__feature:last-child { border-bottom: none; }
.adm-price__feature-label { text-align: left; }
.adm-price__feature-val { font-weight: var(--font-weight-semibold); color: var(--color-text); white-space: nowrap; }
.adm-price__feature.is-muted { color: var(--color-text-hint); }
.adm-price__feature.is-muted .adm-price__feature-val { color: var(--color-text-hint); font-weight: var(--font-weight-normal); }

/* ── Read-more truncation (rows past the limit hidden until expanded) ── */
.adm-price__feature--extra { display: none; }
.adm-pricing__grid.is-expanded .adm-price__feature--extra { display: flex; }
.adm-price__more {
	align-self: flex-start;
	background: none;
	border: none;
	cursor: pointer;
	padding: 0;
	margin: 0 0 var(--space-5);
	font-family: var(--font-mono);
	font-size: var(--font-size-2xs);
	text-transform: uppercase;
	letter-spacing: var(--letter-spacing-wide);
	color: var(--price-accent);
	transition: opacity var(--duration-fast);
}
.adm-price__more:hover { text-decoration: underline; }

/* Pinned summary row (e.g. Total) — stays visible when collapsed, emphasised. */
.adm-price__feature--pinned {
	margin-top: var(--space-2);
	padding-top: var(--space-3);
	border-top: 2px solid var(--color-border-strong);
	border-bottom: none;
	font-weight: var(--font-weight-semibold);
	color: var(--color-text);
}
.adm-price__feature--pinned .adm-price__feature-val {
	color: var(--price-accent);
	font-size: var(--font-size-lg);
}

.adm-price__cta {
  margin-top: auto;
  width: 100%;
  /* Plan columns are narrow; the site default 28px side padding clips longer
     labels (e.g. "Book a consultation") because .btn is nowrap + overflow:hidden. */
  padding-inline: 14px;
  justify-content: center;
}

/* ── Dark-section support ── */
.adm-section--dark .adm-price { background: rgba(255, 255, 255, 0.05); border-color: rgba(255, 255, 255, 0.1); }
.adm-section--dark .adm-price__name,
.adm-section--dark .adm-price__feature-val { color: #fff; }
.adm-section--dark .adm-price__desc { border-color: rgba(255, 255, 255, 0.12); }
.adm-section--dark .adm-price__feature { border-color: rgba(255, 255, 255, 0.1); }

/* ── Responsive ── */
/* Between the 5-across breakpoint and ~1300px the columns get narrow enough that a
   longer CTA label would be clipped (.btn is nowrap + overflow:hidden). */
@media (max-width: 1300px) {
	.adm-price__cta { font-size: 13px; letter-spacing: 0; padding-inline: 10px; }
}
@media (max-width: 1100px) {
	.adm-pricing__grid[data-cols="4"],
	.adm-pricing__grid[data-cols="5"] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 820px) {
	.adm-pricing__grid[data-cols="3"],
	.adm-pricing__grid[data-cols="4"],
	.adm-pricing__grid[data-cols="5"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
	.adm-pricing__grid { grid-template-columns: 1fr !important; }
}

/* ═══════════════════════════════════════════════════════════════════
   BLOCK: Price Menu (.adm-menu) — à la carte rate-card list
   ═══════════════════════════════════════════════════════════════════ */
.adm-menu { display: grid; gap: 0 var(--space-16); }
.adm-menu[data-cols="2"] { grid-template-columns: 1fr 1fr; }
.adm-menu[data-cols="1"] { grid-template-columns: 1fr; max-width: var(--container-narrow); margin-inline: auto; }

.adm-menu__row { padding: var(--space-4) 0; border-bottom: 1px solid var(--color-border); }
.adm-menu__head { display: flex; align-items: baseline; gap: var(--space-3); }
.adm-menu__name {
	font-size: var(--font-size-lg);
	font-weight: var(--font-weight-medium);
	color: var(--color-text);
}
.adm-menu__leader {
	flex: 1 1 auto;
	min-width: var(--space-4);
	align-self: flex-end;
	border-bottom: 1px dotted var(--color-border-strong);
	transform: translateY(-5px);
}
.adm-menu__price {
	font-size: var(--font-size-xl);
	font-weight: var(--font-weight-bold);
	color: var(--color-brand);
	white-space: nowrap;
}
.adm-menu__note {
	font-family: var(--font-mono);
	font-size: var(--font-size-2xs);
	text-transform: uppercase;
	letter-spacing: var(--letter-spacing-wide);
	color: var(--color-text-muted);
	font-weight: var(--font-weight-normal);
}
.adm-menu__desc {
	font-size: var(--font-size-sm);
	color: var(--color-text-secondary);
	line-height: var(--line-height-normal);
	margin: var(--space-2) 0 0;
	max-width: 46ch;
}
.adm-menu__footnote {
	font-size: var(--font-size-xs);
	color: var(--color-text-muted);
	font-style: italic;
	text-align: center;
	margin-top: var(--space-8);
}
.adm-section--dark .adm-menu__name { color: #fff; }
.adm-section--dark .adm-menu__row { border-color: rgba(255, 255, 255, 0.1); }

@media (max-width: 768px) {
	.adm-menu[data-cols="2"] { grid-template-columns: 1fr; gap: 0; }
}
