/*
 * Paragon Bookings — pricing table styles (v1.4.8+).
 *
 * Loaded only on pages containing [paragon_pricing_table]. All class names
 * are prefixed `pt-` per the project CSS convention.
 *
 * Colour tokens mirror the Paragon brand palette so the grid feels native
 * to the rest of the site without depending on theme variables that may
 * not exist. Themes can override any of these by re-defining the same
 * selectors with higher specificity in their own stylesheet.
 *
 * Brand tokens (mirrored from PARAGON_CONTENT_PLAYBOOK §12):
 *   Navy        #1A3A5C
 *   Mid Blue    #2E75B6
 *   Teal        #0E7C6E
 *   Light Blue  #D6E4F0
 *   Page bg     #F8F9FA
 *   Body text   #2C3E50
 */

.pt-pricing-table {
	--pt-navy:   #1A3A5C;
	--pt-blue:   #2E75B6;
	--pt-teal:   #0E7C6E;
	--pt-lblue:  #D6E4F0;
	--pt-bg:     #F8F9FA;
	--pt-text:   #2C3E50;
	--pt-border: #d1d9e0;

	color: var(--pt-text);
	font-size: 16px;
	line-height: 1.55;
	margin: 0 auto;
	max-width: 1080px;
}

/* ---------- price card grid ---------- */
.pt-pricing-grid {
	display: grid;
	gap: 16px;
	grid-template-columns: repeat( auto-fill, minmax( 280px, 1fr ) );
	margin: 0 0 32px 0;
}

.pt-price-card {
	background: #fff;
	border: 1px solid var(--pt-border);
	border-radius: 8px;
	padding: 20px 22px;
	display: flex;
	flex-direction: column;
	gap: 12px;
	transition: border-color 120ms ease, box-shadow 120ms ease, transform 120ms ease;
}
.pt-price-card:hover {
	border-color: var(--pt-blue);
	box-shadow: 0 4px 16px rgba( 26, 58, 92, 0.08 );
	transform: translateY(-1px);
}

.pt-price-card__route {
	font-family: "Playfair Display", "Libre Baskerville", Georgia, serif;
	color: var(--pt-navy);
	font-size: 17px;
	line-height: 1.35;
	font-weight: 600;
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 6px;
}
.pt-price-card__arrow {
	color: var(--pt-blue);
	font-size: 15px;
	opacity: 0.85;
}

.pt-price-card__price {
	display: flex;
	align-items: baseline;
	gap: 8px;
	padding: 8px 0 4px 0;
	border-top: 1px solid var(--pt-lblue);
}
.pt-price-card__from {
	color: var(--pt-text);
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: 0.6px;
	font-weight: 600;
	opacity: 0.7;
}
.pt-price-card__amount {
	color: var(--pt-teal);
	font-size: 28px;
	font-weight: 700;
	font-family: "Playfair Display", "Libre Baskerville", Georgia, serif;
	line-height: 1;
}

.pt-price-card__note {
	color: var(--pt-text);
	font-size: 13px;
	opacity: 0.75;
	margin: 0;
}

/* ---------- included strip ---------- */
.pt-pricing-included {
	background: var(--pt-lblue);
	border-radius: 8px;
	padding: 24px 28px;
	margin: 32px 0;
}
.pt-pricing-included__heading {
	margin: 0 0 12px 0;
	color: var(--pt-navy);
	font-family: "Playfair Display", "Libre Baskerville", Georgia, serif;
	font-size: 20px;
	font-weight: 700;
}
.pt-pricing-included__list {
	margin: 0;
	padding: 0 0 0 20px;
	columns: 2;
	column-gap: 32px;
}
.pt-pricing-included__list li {
	margin-bottom: 6px;
	break-inside: avoid;
}

/* ---------- CTA block (empty-state only; grid no longer has a CTA) ---------- */
.pt-pricing-cta {
	text-align: center;
	margin: 32px 0 12px 0;
}
.pt-pricing-cta__buttons {
	display: flex;
	gap: 12px;
	justify-content: center;
	flex-wrap: wrap;
	margin: 0 0 12px 0;
}
.pt-pricing-cta__intl {
	font-size: 13px;
	color: var(--pt-text);
	font-style: italic;
	opacity: 0.75;
	margin: 0;
}

.pt-btn {
	display: inline-block;
	padding: 14px 26px;
	border-radius: 8px;
	font-weight: 700;
	font-size: 14px;
	letter-spacing: 0.6px;
	text-transform: uppercase;
	text-decoration: none;
	min-height: 48px;
	line-height: 20px;
	transition: background-color 120ms ease, transform 120ms ease;
}
.pt-btn:hover { transform: translateY(-1px); text-decoration: none; }
.pt-btn--primary {
	background: var(--pt-teal);
	color: #fff;
}
.pt-btn--primary:hover  { background: #0a655a; color: #fff; }
.pt-btn--secondary {
	background: var(--pt-navy);
	color: #fff;
}
.pt-btn--secondary:hover { background: #122a44; color: #fff; }

/* ---------- empty state ---------- */
.pt-pricing-empty {
	background: var(--pt-bg);
	border: 1px solid var(--pt-border);
	border-radius: 8px;
	padding: 36px 28px;
	text-align: center;
}
.pt-pricing-empty h3 {
	margin: 0 0 8px 0;
	color: var(--pt-navy);
	font-family: "Playfair Display", "Libre Baskerville", Georgia, serif;
	font-size: 22px;
}
.pt-pricing-empty p {
	max-width: 560px;
	margin: 0 auto 16px auto;
}

/* ---------- mobile tweaks ---------- */
@media ( max-width: 640px ) {
	.pt-pricing-grid {
		grid-template-columns: 1fr;
		gap: 12px;
	}
	.pt-price-card {
		padding: 16px 18px;
	}
	.pt-price-card__amount {
		font-size: 26px;
	}
	.pt-pricing-included__list {
		columns: 1;
	}
	.pt-pricing-included {
		padding: 18px 20px;
	}
	.pt-pricing-cta__buttons .pt-btn {
		width: 100%;
	}
}
