/* Shared price-details trigger + modal (property + payment) */
:root {
	--pd-teal: #1da390;
	--pd-teal-dark: #167a6c;
	--pd-ink: #1a1d1c;
	--pd-muted: #5f6b68;
	--pd-line: rgba(26, 29, 28, 0.08);
	--pd-surface: #f4f7f6;
	--pd-font: "Plus Jakarta Sans", sans-serif;
}

.price-details-trigger,
.property-page__price-details,
button.view_price_details {
	display: flex;
	align-items: center;
	gap: 0.85rem;
	width: 100%;
	margin: 0 0 1rem;
	padding: 0.9rem 1rem;
	border: 1px solid rgba(29, 163, 144, 0.22);
	border-radius: 12px;
	background: rgba(29, 163, 144, 0.06);
	text-align: left;
	cursor: pointer;
	font-family: var(--pd-font);
	color: var(--pd-ink);
	transition: border-color 0.15s ease, background 0.15s ease, transform 0.15s ease;
	box-shadow: none;
	appearance: none;
	-webkit-appearance: none;
}

.price-details-trigger[hidden],
.property-page__price-details[hidden],
button.view_price_details[hidden] {
	display: none !important;
}

.price-details-trigger.is-visible,
.property-page__price-details.is-visible,
button.view_price_details.is-visible {
	display: flex !important;
}

.price-details-trigger:hover,
.property-page__price-details:hover,
button.view_price_details:hover {
	border-color: rgba(29, 163, 144, 0.45);
	background: rgba(29, 163, 144, 0.1);
}

.price-details-trigger__icon,
.property-page__price-details-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	flex-shrink: 0;
	border-radius: 10px;
	background: #fff;
	color: var(--pd-teal);
	box-shadow: 0 1px 0 rgba(16, 36, 32, 0.04);
}

.price-details-trigger__icon .lucide,
.property-page__price-details-icon .lucide {
	width: 18px;
	height: 18px;
}

.price-details-trigger__copy,
.property-page__price-details-copy {
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
	min-width: 0;
	flex: 1;
}

.price-details-trigger__label,
.property-page__price-details-label {
	font-size: 1.35rem;
	font-weight: 700;
	line-height: 1.25;
	color: var(--pd-ink);
}

.price-details-trigger__hint,
.property-page__price-details-hint {
	font-size: 1.2rem;
	line-height: 1.35;
	color: var(--pd-muted);
}

.price-details-trigger__arrow,
.property-page__price-details-arrow {
	display: inline-flex;
	color: var(--pd-teal);
	flex-shrink: 0;
}

.price-details-trigger__arrow .lucide,
.property-page__price-details-arrow .lucide {
	width: 18px;
	height: 18px;
}

/* Modal shell */
#view_price_details.price-details-modal .modal-dialog,
#view_price_details.property-page__price-modal .modal-dialog {
	max-width: 500px;
	margin: 1.5rem auto;
}

#view_price_details .price-details-modal__content,
#view_price_details .property-page__price-modal-content,
#view_price_details.price-details-modal .modal-content,
#view_price_details.property-page__price-modal .modal-content {
	border: 0 !important;
	border-radius: 20px !important;
	overflow: hidden;
	box-shadow: 0 24px 60px rgba(16, 36, 32, 0.2);
	font-family: var(--pd-font);
}

#view_price_details .price-details-modal__header,
#view_price_details .property-page__price-modal-header,
#view_price_details.price-details-modal .modal-header,
#view_price_details.property-page__price-modal .modal-header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 1rem;
	margin: 0 !important;
	padding: 1.75rem 1.75rem 1.35rem !important;
	border-bottom: 1px solid var(--pd-line) !important;
}

.price-details-modal__eyebrow,
.property-page__price-modal-eyebrow {
	margin: 0 0 0.4rem;
	font-size: 1.15rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--pd-teal-dark);
}

#view_price_details .modal-title {
	margin: 0;
	font-size: 1.85rem;
	font-weight: 700;
	letter-spacing: -0.02em;
	color: var(--pd-ink);
}

.price-details-modal__close,
.property-page__price-modal-close {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	padding: 0;
	border: 1px solid var(--pd-line);
	border-radius: 10px;
	background: #fff;
	color: var(--pd-muted);
	cursor: pointer;
	transition: border-color 0.15s ease, color 0.15s ease, background 0.15s ease;
}

.price-details-modal__close:hover,
.property-page__price-modal-close:hover {
	border-color: rgba(29, 163, 144, 0.35);
	color: var(--pd-teal-dark);
	background: rgba(29, 163, 144, 0.06);
}

.price-details-modal__close .lucide,
.property-page__price-modal-close .lucide {
	width: 18px;
	height: 18px;
}

#view_price_details .price-details-modal__body,
#view_price_details .property-page__price-modal-body,
#view_price_details.price-details-modal .modal-body,
#view_price_details.property-page__price-modal .modal-body {
	max-height: min(68vh, 560px);
	margin: 0 !important;
	padding: 1.5rem 1.75rem 1.25rem !important;
	overflow-y: auto;
	text-align: left !important;
}

.price-details-modal__state,
.property-page__price-modal-state {
	display: none;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.75rem;
	min-height: 180px;
	padding: 1.5rem 1rem;
	text-align: center;
	font-size: 1.35rem;
	color: var(--pd-muted);
}

.price-details-modal__state.is-active,
.property-page__price-modal-state.is-active {
	display: flex;
}

.price-details-modal__spinner,
.property-page__price-modal-spinner {
	width: 28px;
	height: 28px;
	border: 2px solid rgba(29, 163, 144, 0.2);
	border-top-color: var(--pd-teal);
	border-radius: 50%;
	animation: price-details-spin 0.8s linear infinite;
}

@keyframes price-details-spin {
	to { transform: rotate(360deg); }
}

.price-details-modal__error-icon,
.property-page__price-modal-error-icon {
	display: inline-flex;
	color: #cd2f4c;
}

.price-details-modal__error-icon .lucide,
.property-page__price-modal-error-icon .lucide {
	width: 28px;
	height: 28px;
}

.price-details-modal__details,
.property-page__price-modal-details {
	display: none;
}

.price-details-modal__details.is-active,
.property-page__price-modal-details.is-active {
	display: block;
}

.price-details-period,
.property-page__price-period {
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
	margin-bottom: 1.35rem;
	padding: 1.15rem 1.2rem;
	border-radius: 14px;
	background: var(--pd-surface);
	border: 1px solid var(--pd-line);
}

.price-details-period__label,
.property-page__price-period-label {
	font-size: 1.15rem;
	font-weight: 600;
	color: var(--pd-muted);
}

.price-details-period__value,
.property-page__price-period-value {
	font-size: 1.4rem;
	font-weight: 700;
	color: var(--pd-ink);
}

.price-details-section,
.property-page__price-section {
	margin-bottom: 1.35rem;
	padding: 1.35rem 1.3rem;
	border: 1px solid var(--pd-line);
	border-radius: 14px;
	background: #fff;
}

.price-details-section__header,
.property-page__price-section-header {
	margin-bottom: 1.15rem;
}

.price-details-section__header h6,
.property-page__price-section-header h6 {
	margin: 0 0 0.4rem;
	font-size: 1.45rem;
	font-weight: 700;
	color: var(--pd-ink);
}

.price-details-section__header p,
.property-page__price-section-header p {
	margin: 0;
	font-size: 1.2rem;
	line-height: 1.5;
	color: var(--pd-muted);
}

.price-details-lines,
.property-page__price-lines {
	display: flex;
	flex-direction: column;
	gap: 0.95rem;
}

.price-details-line,
.property-page__price-line {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 1.15rem;
	font-size: 1.3rem;
	line-height: 1.45;
	color: var(--pd-ink);
}

.price-details-line__label span,
.property-page__price-line-label span {
	color: var(--pd-muted);
	font-weight: 500;
}

.price-details-line__amount,
.property-page__price-line-amount {
	flex-shrink: 0;
	font-weight: 700;
}

.price-details-line--muted,
.property-page__price-line--muted {
	font-size: 1.25rem;
	color: var(--pd-muted);
}

.price-details-line--muted .price-details-line__amount,
.property-page__price-line--muted .property-page__price-line-amount {
	font-weight: 600;
}

.price-details-total,
.property-page__price-total {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-top: 1.25rem;
	padding-top: 1.15rem;
	border-top: 1px solid var(--pd-line);
	font-size: 1.4rem;
	font-weight: 700;
	color: var(--pd-ink);
}

.price-details-total strong,
.property-page__price-total strong {
	color: var(--pd-teal-dark);
	font-size: 1.55rem;
}

.price-details-note,
.property-page__price-note {
	margin: 0.85rem 0 0;
	font-size: 1.15rem;
	line-height: 1.55;
	color: var(--pd-muted);
}

.price-details-subbreakdown,
.property-page__price-subbreakdown {
	margin-top: 1.15rem;
	padding-top: 1.05rem;
	border-top: 1px dashed var(--pd-line);
}

.price-details-subbreakdown__title,
.property-page__price-subbreakdown-title {
	margin: 0 0 0.75rem;
	font-size: 1.2rem;
	font-weight: 600;
	color: var(--pd-muted);
}

#view_price_details .price-details-modal__footer,
#view_price_details .property-page__price-modal-footer,
#view_price_details.price-details-modal .modal-footer,
#view_price_details.property-page__price-modal .modal-footer {
	display: flex;
	justify-content: flex-end;
	margin: 0 !important;
	padding: 1rem 1.75rem 1.4rem !important;
	border-top: 1px solid var(--pd-line) !important;
}

.price-details-modal__dismiss,
.property-page__price-modal-dismiss,
#view_price_details .btn.price-details-modal__dismiss,
#view_price_details .btn.property-page__price-modal-dismiss {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: auto;
	min-height: 40px;
	padding: 0.55rem 1.15rem;
	border: 1px solid var(--pd-line) !important;
	border-radius: 10px;
	background: #fff !important;
	color: var(--pd-ink) !important;
	font-size: 1.3rem;
	font-weight: 600;
	box-shadow: none;
}

.price-details-modal__dismiss:hover,
.property-page__price-modal-dismiss:hover,
#view_price_details .btn.price-details-modal__dismiss:hover,
#view_price_details .btn.property-page__price-modal-dismiss:hover {
	background: var(--pd-ink) !important;
	border-color: var(--pd-ink) !important;
	color: #fff !important;
}

/* Property page: hide until dates selected */
.property-page #view_price_details_button:not(.is-visible),
.property-page .view_price_details:not(.is-visible),
.property-page .property-page__price-details:not(.is-visible) {
	display: none !important;
}

.property-page #view_price_details_button.is-visible,
.property-page .view_price_details.is-visible,
.property-page .property-page__price-details.is-visible {
	display: flex !important;
}
