/* DAHC Pricing Tables — matches the Distinction "Aged Care Pricing" mockup.
   Desktop table >= 900px, mobile cards < 900px (the breakpoint is configurable in Pricing Tables → Design).

   Every colour / size / spacing is a CSS custom property with the original value as fallback, so:
   - nothing set            → the original look,
   - Pricing Tables → Design → site-wide values (printed as `.dahc-pricing{--dahc-…}`),
   - Elementor widget Style  → per-widget values (`{{WRAPPER}} .dahc-pricing{--dahc-…}`), which win. */
.dahc-pricing {
	--dahc-font: "Figtree", system-ui, -apple-system, "Segoe UI", sans-serif;
	--dahc-primary: #5B2392;
	--dahc-primary-dark: #3A0F6B;
	--dahc-ink: #3A0F6B;
	--dahc-text: #3A3346;
	--dahc-muted: #8A7F99;
	--dahc-label: #4A4A5A;
	--dahc-lav: #F6F1FC;
	--dahc-lav-2: #EFE6F8;
	--dahc-line: #EEE7F5;
	--dahc-border: #E6DCF2;
	--dahc-surface: #FFFFFF;
	--dahc-radius: 18px;
	font-family: var(--dahc-font);
	color: var(--dahc-text);
	width: 100%;
	max-width: var(--dahc-max-w, none);
	margin-left: auto;
	margin-right: auto;
	box-sizing: border-box;
}
.dahc-pricing *, .dahc-pricing *::before, .dahc-pricing *::after { box-sizing: border-box; }
.dahc-pricing p { margin: 0; }
.dahc-pricing .screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}

/* ---------- Option selector (pill toggle) ---------- */
.dahc-pr-selector {
	display: flex; align-items: center; justify-content: var(--dahc-sel-justify, center); gap: 18px;
	margin: 0 auto 22px;
}
.dahc-pr-selector__label { font-size: var(--dahc-label-size, 15px); font-weight: 500; color: var(--dahc-label); }
.dahc-pr-switch {
	display: inline-flex; gap: 4px; padding: 6px;
	background: var(--dahc-pill-track, var(--dahc-lav));
	border: 1px solid var(--dahc-pill-track-border, var(--dahc-border));
	border-radius: var(--dahc-pill-radius, 999px);
}
.dahc-pricing .dahc-pr-pill {
	-webkit-appearance: none; appearance: none;
	display: inline-flex; align-items: center; justify-content: center; gap: 9px;
	min-height: var(--dahc-pill-h, 46px); padding: 0 24px; margin: 0;
	border: 0; border-radius: var(--dahc-pill-radius, 999px); background: transparent; box-shadow: none;
	font-family: inherit; font-size: var(--dahc-pill-size, 16px); font-weight: 600; line-height: 1.2; letter-spacing: 0;
	color: var(--dahc-pill-text, var(--dahc-ink)); text-transform: none; cursor: pointer;
	transition: background-color .2s ease, color .2s ease;
}
.dahc-pricing .dahc-pr-pill:hover {
	background: var(--dahc-pill-hover, rgba(91, 35, 146, .08)); color: var(--dahc-pill-text, var(--dahc-ink));
}
.dahc-pricing .dahc-pr-pill .dahc-pr-ico { display: none; flex: none; }
.dahc-pricing .dahc-pr-pill.is-active,
.dahc-pricing .dahc-pr-pill.is-active:hover {
	background: var(--dahc-pill-active-bg, var(--dahc-primary)); color: var(--dahc-pill-active-text, #fff); font-weight: 700;
}
.dahc-pricing .dahc-pr-pill.is-active .dahc-pr-ico { display: var(--dahc-pill-tick, block); }
.dahc-pricing .dahc-pr-pill:focus-visible { outline: 3px solid rgba(91, 35, 146, .35); outline-offset: 2px; }

.dahc-pr-single {
	text-align: var(--dahc-note-align, center); font-size: var(--dahc-single-size, 20px); font-weight: 800; line-height: 1.3;
	color: var(--dahc-ink); margin: 0 0 10px !important;
}
.dahc-pr-note {
	text-align: var(--dahc-note-align, center); font-size: var(--dahc-note-size, 14px); line-height: 1.5;
	color: var(--dahc-note-color, var(--dahc-muted)); margin: 0 0 30px !important;
}
.dahc-pr-panel[hidden] { display: none !important; }

/* ---------- Desktop table ---------- */
.dahc-pr-desktop { display: flex; flex-direction: column; gap: var(--dahc-table-gap, 30px); }
.dahc-pr-mobile { display: none; }
.dahc-pr-tablewrap {
	border: 1px solid var(--dahc-border); border-radius: var(--dahc-radius); overflow: hidden;
	background: var(--dahc-surface);
	box-shadow: var(--dahc-shadow, 0 12px 34px rgba(59, 15, 107, .07));
}
.dahc-pricing table.dahc-pr-table {
	width: 100%; margin: 0; border-collapse: collapse; border-spacing: 0; border: 0;
	table-layout: fixed; font-size: var(--dahc-size, 15px); line-height: 1.35; background: var(--dahc-surface);
}
.dahc-pr-table col.dahc-pr-col-service { width: var(--dahc-col1, 34.8%); }
.dahc-pricing .dahc-pr-table th,
.dahc-pricing .dahc-pr-table td {
	border: 0; border-bottom: 1px solid var(--dahc-line);
	padding: var(--dahc-cell-py, 17px) var(--dahc-cell-px, 16px); vertical-align: middle;
	text-align: center; background: transparent; font-family: inherit;
}
.dahc-pricing .dahc-pr-table .dahc-pr-service {
	text-align: left; padding-left: var(--dahc-service-px, 26px); padding-right: 20px;
}
.dahc-pricing .dahc-pr-table thead th {
	background: var(--dahc-head-bg, var(--dahc-primary)); color: var(--dahc-head-text, #fff);
	font-size: var(--dahc-head-size, 14.5px); font-weight: var(--dahc-head-weight, 600);
	padding-top: var(--dahc-head-py, 20px); padding-bottom: var(--dahc-head-py, 20px); border-bottom: 0;
}
.dahc-pricing .dahc-pr-table thead th.is-hl { background: var(--dahc-primary-dark); }
.dahc-pricing .dahc-pr-table tr.dahc-pr-cat th {
	background: var(--dahc-cat-bg, var(--dahc-lav-2)); color: var(--dahc-cat-text, var(--dahc-ink)); text-align: left;
	padding: 14px var(--dahc-service-px, 26px);
	font-size: var(--dahc-cat-size, 15.5px); font-weight: var(--dahc-cat-weight, 700); border-bottom: 0;
}
.dahc-pricing .dahc-pr-table tbody th[scope="row"] {
	color: var(--dahc-service-color, var(--dahc-ink)); font-weight: var(--dahc-service-weight, 600);
}
.dahc-pricing .dahc-pr-table tbody td { color: var(--dahc-text); font-weight: var(--dahc-price-weight, 400); }
.dahc-pricing .dahc-pr-table tbody td.is-hl {
	background: var(--dahc-hl-bg, var(--dahc-lav)); color: var(--dahc-hl-text, var(--dahc-ink));
	font-weight: var(--dahc-hl-weight, 800); font-size: var(--dahc-hl-size, 16.5px);
}
.dahc-pricing .dahc-pr-table tbody td.is-na { color: var(--dahc-na, var(--dahc-muted)); }
.dahc-pricing .dahc-pr-table tbody tr:last-child th,
.dahc-pricing .dahc-pr-table tbody tr:last-child td { border-bottom: 0; }
.dahc-pricing .dahc-pr-table tbody tr:not(.dahc-pr-cat):hover > * { background-color: var(--dahc-row-hover, transparent); }
.dahc-pricing .dahc-pr-table tbody tr:not(.dahc-pr-cat):hover > td.is-hl { background-color: var(--dahc-row-hover, var(--dahc-hl-bg, var(--dahc-lav))); }

/* ---------- Info box ---------- */
.dahc-pr-info {
	display: flex; align-items: center; gap: 20px; margin-top: 30px;
	background: var(--dahc-info-bg, var(--dahc-lav)); border: 1px solid var(--dahc-border); border-radius: var(--dahc-radius);
	padding: 26px 30px;
}
.dahc-pr-info__icon {
	flex: none; width: 48px; height: 48px; border-radius: 50%;
	background: var(--dahc-info-icon-bg, #fff); color: var(--dahc-info-icon, var(--dahc-primary));
	display: inline-flex; align-items: center; justify-content: center;
	font-family: Georgia, "Times New Roman", serif; font-size: 22px; font-weight: 700; line-height: 1;
}
.dahc-pr-info__title {
	font-size: var(--dahc-info-title-size, 17px); font-weight: 800; color: var(--dahc-ink); margin-bottom: 4px !important;
}
.dahc-pr-info__text { font-size: var(--dahc-info-text-size, 15px); line-height: 1.6; color: var(--dahc-label); }

/* ---------- Mobile cards ---------- */
@media (max-width: 899px) {
	.dahc-pr-desktop { display: none; }
	.dahc-pr-mobile { display: flex; flex-direction: column; gap: 16px; }

	.dahc-pr-selector { flex-direction: column; align-items: stretch; gap: 10px; margin-bottom: 18px; }
	.dahc-pr-selector__label { font-size: var(--dahc-label-size, 15px); }
	.dahc-pr-switch { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
	.dahc-pricing .dahc-pr-pill {
		min-height: calc(var(--dahc-pill-h, 46px) + 2px); padding: 0 10px; gap: 7px;
		font-size: calc(var(--dahc-pill-size, 16px) - 1px); white-space: nowrap;
	}
	.dahc-pr-note { text-align: left; margin-bottom: 20px !important; }
	.dahc-pr-single { text-align: left; }

	.dahc-pr-group { margin: 0; }
	.dahc-pr-group > summary {
		list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 12px;
		background: var(--dahc-cat-bg, var(--dahc-lav-2)); border-radius: var(--dahc-group-radius, 12px); padding: 14px 18px;
		font-size: var(--dahc-m-group-size, 17px); font-weight: 800; color: var(--dahc-cat-text, var(--dahc-ink)); line-height: 1.3;
	}
	.dahc-pr-group > summary::-webkit-details-marker { display: none; }
	.dahc-pr-group > summary::marker { content: ""; }
	.dahc-pr-group > summary:focus-visible { outline: 3px solid rgba(91, 35, 146, .35); outline-offset: 2px; }
	.dahc-pr-group .dahc-pr-chev { flex: none; color: var(--dahc-primary); transition: transform .2s ease; }
	.dahc-pr-group:not([open]) .dahc-pr-chev { transform: rotate(180deg); }

	.dahc-pr-cards { display: flex; flex-direction: column; gap: 14px; padding-top: 14px; }
	.dahc-pr-card {
		background: var(--dahc-surface); border: 1px solid var(--dahc-border); border-radius: var(--dahc-card-radius, 16px);
		padding: var(--dahc-card-pad, 18px) var(--dahc-card-pad, 18px) calc(var(--dahc-card-pad, 18px) - 2px);
	}
	.dahc-pr-card__top {
		display: flex; align-items: center; justify-content: space-between; gap: 14px;
		padding-bottom: 14px; margin-bottom: 14px; border-bottom: 1px solid var(--dahc-line);
	}
	.dahc-pr-card__name {
		font-size: var(--dahc-m-title-size, 16.5px); font-weight: 800; line-height: 1.3; color: var(--dahc-service-color, var(--dahc-ink));
	}
	.dahc-pr-badge {
		flex: none; display: flex; flex-direction: column; align-items: flex-end;
		background: var(--dahc-badge-bg, var(--dahc-hl-bg, var(--dahc-lav))); border-radius: var(--dahc-badge-radius, 10px);
		padding: 8px 12px; min-width: 82px;
	}
	.dahc-pr-badge span { font-size: 13px; color: var(--dahc-badge-label, var(--dahc-primary)); line-height: 1.3; }
	.dahc-pr-badge strong {
		font-size: var(--dahc-m-badge-size, 21px); font-weight: 800; color: var(--dahc-hl-text, var(--dahc-ink)); line-height: 1.2;
	}
	.dahc-pricing dl.dahc-pr-card__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 16px; margin: 0; }
	.dahc-pr-card__grid > div { margin: 0; }
	.dahc-pricing .dahc-pr-card__grid dt {
		font-size: var(--dahc-m-label-size, 13px); font-weight: 400; color: var(--dahc-card-label, #6B6478); line-height: 1.3; margin: 0;
	}
	.dahc-pricing .dahc-pr-card__grid dd {
		font-size: var(--dahc-m-value-size, 16px); font-weight: 700; color: var(--dahc-card-value, #2E2A3A);
		line-height: 1.35; margin: 0; min-height: 1.35em;
	}
	.dahc-pricing .dahc-pr-card__grid .is-na dd { color: var(--dahc-na, var(--dahc-muted)); font-weight: 500; }

	.dahc-pr-info { align-items: flex-start; gap: 16px; padding: 20px 18px; margin-top: 24px; }
	.dahc-pr-info__icon { width: 40px; height: 40px; font-size: 19px; }
	.dahc-pr-info__title { font-size: var(--dahc-info-title-size, 17px); }
	.dahc-pr-info__text { font-size: var(--dahc-info-text-size, 15px); }
}

@media (max-width: 420px) {
	.dahc-pr-switch { padding: 5px; gap: 2px; }
	.dahc-pricing .dahc-pr-pill { padding: 0 6px; gap: 6px; font-size: calc(var(--dahc-pill-size, 16px) - 2px); }
	.dahc-pricing .dahc-pr-pill .dahc-pr-ico { width: 11px; height: 8px; }
}
@media (max-width: 350px) {
	.dahc-pricing .dahc-pr-pill { font-size: calc(var(--dahc-pill-size, 16px) - 3px); }
}

/* ---------- Accordion (1.0.4): each category is a bar with a + that opens its prices ---------- */
.dahc-pr-acc { display: flex; flex-direction: column; gap: var(--dahc-acc-gap, 14px); }
.dahc-pr-acc .dahc-pr-desktop { display: block; }
.dahc-pr-acc__item > summary {
	list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 16px;
	background: var(--dahc-head-bg, var(--dahc-primary)); color: var(--dahc-head-text, #fff);
	border-radius: var(--dahc-radius); padding: 18px 22px 18px 26px;
	font-size: var(--dahc-acc-size, 17px); font-weight: 700; line-height: 1.3;
	transition: background-color .2s ease, border-radius .2s ease;
}
.dahc-pr-acc__item > summary::-webkit-details-marker { display: none; }
.dahc-pr-acc__item > summary::marker { content: ""; }
.dahc-pr-acc__item > summary:hover { background: var(--dahc-primary-dark); }
.dahc-pr-acc__item > summary:focus-visible { outline: 3px solid rgba(91, 35, 146, .35); outline-offset: 3px; }
.dahc-pr-acc__item[open] > summary { border-radius: var(--dahc-radius) var(--dahc-radius) 0 0; }
.dahc-pr-plus { flex: none; position: relative; width: 30px; height: 30px; border-radius: 50%; background: rgba(255, 255, 255, .18); }
.dahc-pr-plus::before,
.dahc-pr-plus::after {
	content: ""; position: absolute; left: 50%; top: 50%; width: 12px; height: 2px; margin: -1px 0 0 -6px;
	background: currentColor; border-radius: 2px; transition: transform .2s ease;
}
.dahc-pr-plus::after { transform: rotate(90deg); }
.dahc-pr-acc__item[open] .dahc-pr-plus::after { transform: rotate(0deg); }
.dahc-pr-acc__item[open] .dahc-pr-tablewrap { border-top: 0; border-radius: 0 0 var(--dahc-radius) var(--dahc-radius); }
.dahc-pricing .dahc-pr-acc .dahc-pr-table thead th {
	background: var(--dahc-cat-bg, var(--dahc-lav-2)); color: var(--dahc-cat-text, var(--dahc-ink));
	padding-top: 14px; padding-bottom: 14px;
}
.dahc-pricing .dahc-pr-acc .dahc-pr-table thead th.is-hl { background: var(--dahc-primary-dark); color: #fff; }
@media (prefers-reduced-motion: reduce) {
	.dahc-pr-acc__item > summary, .dahc-pr-plus::before, .dahc-pr-plus::after { transition: none; }
}
@media (max-width: 899px) {
	.dahc-pr-acc { gap: 12px; }
	.dahc-pr-acc .dahc-pr-desktop { display: none; }
	.dahc-pr-acc .dahc-pr-mobile { display: block; }
	.dahc-pr-acc__item > summary,
	.dahc-pr-acc__item[open] > summary {
		border-radius: var(--dahc-group-radius, 12px); padding: 14px 14px 14px 18px; font-size: var(--dahc-m-group-size, 17px);
	}
	.dahc-pr-plus { width: 26px; height: 26px; }
}
