/*
 * com_panditji wizard styling.
 * Scoped entirely under .panditji-wizard; reuses the Avyani template's own
 * design tokens (--c-*, --font-*, --sp-*, --radius-*, --shadow-*) so this
 * never has to duplicate or diverge from the site's visual language.
 */

.panditji-wizard {
	--pj-max: 46rem;
	max-width: var(--pj-max);
	margin: var(--sp-7, 3rem) auto;
	padding: var(--sp-6, 2rem);
	font-family: var(--font-body, inherit);
	background: var(--c-surface, #fff);
	border: 1px solid var(--c-border, #ede2cd);
	border-radius: var(--radius-lg, 22px);
	box-shadow: var(--shadow-sm, 0 1px 3px rgba(0, 0, 0, 0.06));
	color: var(--c-ink, #2b2622);
}

.panditji-wizard--intro {
	text-align: center;
}

/* ---------------------------------------------------------------
   Header
--------------------------------------------------------------- */
.panditji-header {
	margin-bottom: var(--sp-6, 2rem);
	text-align: center;
}

.panditji-header h1 {
	font-family: var(--font-heading, serif);
	font-size: var(--fs-h2, 1.75rem);
	line-height: var(--lh-heading, 1.25);
	margin: 0 0 0.15em;
	color: var(--c-ink, #2b2622);
}

.panditji-header__hi {
	display: block;
	font-family: var(--font-heading, serif);
	font-size: 0.62em;
	font-weight: 400;
	color: var(--c-saffron-dark, #a35c16);
	margin-top: 0.15em;
}

.panditji-header__tagline {
	color: var(--c-ink-soft, #6b6259);
	font-size: var(--fs-small, 0.9rem);
	max-width: 34rem;
	margin: 0.5em auto 0;
}

.panditji-lead {
	color: var(--c-ink-soft, #555);
	margin-bottom: 1.5rem;
}

/* Section headings inside a single-page multi-section form (e.g. the
   Yajman profile's Basic/Address/Family/Vedic/Preferences sections) —
   distinct from .panditji-header, which is the page's own top title. */
.panditji-section-title {
	font-family: var(--font-heading, serif);
	font-size: var(--fs-h4, 1.1rem);
	color: var(--c-saffron-dark, #a35c16);
	margin: 2rem 0 1rem;
	padding-bottom: 0.4rem;
	border-bottom: 1px solid var(--c-border, #ede2cd);
}

.panditji-section-title:first-of-type {
	margin-top: 0.5rem;
}

/* Major page-level sections (h2, e.g. "Edit Your Profile", "Guidance
   Requests") vs. individual fieldset groupings within a long form (h3,
   e.g. "Basic Info & Identity") share .panditji-section-title but need
   distinct visual weight so a reader can tell them apart at a glance —
   otherwise a form's own subsection headings look identical to the
   page's own major section breaks. */
h3.panditji-section-title {
	font-size: 0.8rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--c-ink-soft, #6b6259);
	border-bottom-color: transparent;
	margin: 2rem 0 0.75rem;
}

/* ---------------------------------------------------------------
   Stepper
--------------------------------------------------------------- */
.panditji-stepper {
	display: flex;
	flex-wrap: nowrap;
	overflow-x: auto;
	gap: 0;
	margin: 0 0 var(--sp-5, 1.5rem);
	list-style: none;
	padding: 0 0 0.35rem;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: thin;
}

.panditji-step {
	display: flex;
	align-items: center;
	flex: 0 0 auto;
	gap: 0.5rem;
	font-size: 0.82rem;
	color: var(--c-ink-faint, #8f867a);
	white-space: nowrap;
	padding-right: 0.9rem;
}

.panditji-step:not(:last-child)::after {
	content: "";
	width: 1.5rem;
	height: 1px;
	background: var(--c-border-strong, #e2d3b3);
	margin: 0 0.4rem 0 0.1rem;
	flex: 0 0 auto;
}

.panditji-step__num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.9rem;
	height: 1.9rem;
	flex: 0 0 auto;
	border-radius: 50%;
	border: 1.5px solid var(--c-border-strong, #ccc);
	font-size: 0.78rem;
	font-weight: 700;
	background: var(--c-surface, #fff);
	color: var(--c-ink-faint, #999);
	transition: background-color var(--transition-fast, 150ms ease), border-color var(--transition-fast, 150ms ease), color var(--transition-fast, 150ms ease);
}

.panditji-step__label {
	font-weight: 500;
}

.panditji-step--done {
	color: var(--c-success, #2e7d32);
}

.panditji-step--done .panditji-step__num {
	background: var(--c-success, #2e7d32);
	border-color: var(--c-success, #2e7d32);
	color: #fff;
}

.panditji-step--current {
	color: var(--c-saffron-dark, #b45309);
}

.panditji-step--current .panditji-step__num {
	border-color: var(--c-saffron, #dd8a2e);
	background: var(--c-saffron, #dd8a2e);
	color: #fff;
	box-shadow: 0 0 0 3px var(--c-saffron-tint, #fbead2);
}

.panditji-step--current .panditji-step__label {
	font-weight: 700;
}

.panditji-step--error .panditji-step__num {
	border-color: var(--c-danger, #8a3a32);
	background: var(--c-danger-bg, #f7e4e1);
	color: var(--c-danger, #8a3a32);
}

.panditji-step--error .panditji-step__label {
	color: var(--c-danger, #8a3a32);
}

@media (min-width: 640px) {
	.panditji-stepper {
		flex-wrap: wrap;
		overflow-x: visible;
		row-gap: 0.6rem;
	}
}

/* ---------------------------------------------------------------
   Progress
--------------------------------------------------------------- */
.panditji-completion {
	margin-bottom: var(--sp-6, 2rem);
	font-size: 0.85rem;
}

.panditji-completion__head {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	margin-bottom: 0.35rem;
	color: var(--c-ink-soft, #555);
}

.panditji-completion__head strong {
	color: var(--c-saffron-dark, #b45309);
}

.panditji-completion__bar {
	height: 8px;
	background: var(--c-bg-alt, #eee);
	border-radius: var(--radius-pill, 4px);
	overflow: hidden;
}

.panditji-completion__fill {
	height: 100%;
	background: var(--c-saffron, #b45309);
	transition: width 0.3s ease;
}

.panditji-regid,
.panditji-regid-big {
	font-weight: 700;
	color: var(--c-saffron-dark, #b45309);
}

.panditji-regid-big {
	font-size: 1.5rem;
	margin: 1rem 0;
}

/* ---------------------------------------------------------------
   Correction items list (Panditji dashboard, CORRECTION_REQUIRED)
--------------------------------------------------------------- */
.panditji-correction-list {
	display: flex;
	flex-direction: column;
	gap: 0.6rem;
	margin: 1.25rem 0;
	text-align: left;
}

.panditji-correction-item {
	display: flex;
	align-items: flex-start;
	gap: 0.6rem;
	padding: 0.85rem 1rem;
	border-radius: var(--radius-md, 14px);
	border: 1px solid var(--c-warning-border, #f3e3bf);
	background: var(--c-warning-bg, #fbf0da);
	color: var(--c-ink, #333);
	text-decoration: none;
	transition: box-shadow var(--transition-fast, 150ms ease);
}

.panditji-correction-item:hover {
	box-shadow: var(--shadow-sm, 0 1px 3px rgba(0, 0, 0, 0.08));
}

.panditji-correction-item__icon {
	flex: 0 0 auto;
	font-size: 1.1rem;
	line-height: 1.4;
}

.panditji-correction-item__note {
	display: block;
	font-size: 0.85rem;
	color: var(--c-ink-soft, #6b6259);
	margin-top: 0.15rem;
}

/* ---------------------------------------------------------------
   Messages
--------------------------------------------------------------- */
.panditji-messages {
	margin-bottom: 1rem;
}

.panditji-message {
	padding: 0.6rem 0.9rem;
	border-radius: var(--radius-sm, 6px);
	margin-bottom: 0.5rem;
	font-size: 0.9rem;
}

.panditji-message--error {
	background: var(--c-danger-bg, #fdecea);
	color: var(--c-danger, #b71c1c);
	border: 1px solid var(--c-danger-border, #f5c6cb);
}

.panditji-message--message,
.panditji-message--notice {
	background: var(--c-success-bg, #eef7ee);
	color: var(--c-success, #1b5e20);
	border: 1px solid var(--c-success-border, #c8e6c9);
}

/* ---------------------------------------------------------------
   Section heading
--------------------------------------------------------------- */
.panditji-section {
	margin: 1.25rem 0 1.4rem;
	padding-bottom: 1rem;
	border-bottom: 1px solid var(--c-border, #eee);
}

.panditji-section h2 {
	font-family: var(--font-heading, serif);
	font-size: var(--fs-h4, 1.2rem);
	margin: 0 0 0.1em;
	color: var(--c-ink, #222);
}

.panditji-section__hi {
	display: block;
	font-size: 0.7em;
	font-weight: 400;
	color: var(--c-saffron-dark, #a35c16);
	margin-bottom: 0.3em;
}

.panditji-section__help {
	color: var(--c-ink-soft, #666);
	font-size: 0.88rem;
	margin: 0;
}

/* ---------------------------------------------------------------
   Fields
--------------------------------------------------------------- */
.panditji-field {
	margin-bottom: 1.1rem;
}

.panditji-field label {
	display: block;
	font-weight: 600;
	margin-bottom: 0.3rem;
	font-size: 0.92rem;
	color: var(--c-ink, #333);
}

.panditji-field label .star {
	color: var(--c-danger, #a33);
}

.panditji-field input[type="text"],
.panditji-field input[type="tel"],
.panditji-field input[type="email"],
.panditji-field input[type="number"],
.panditji-field input[type="date"],
.panditji-field textarea,
.panditji-field select,
.panditji-input {
	width: 100%;
	max-width: 480px;
	padding: 0.6rem 0.75rem;
	border: 1px solid var(--c-border-strong, #ccc);
	border-radius: var(--radius-sm, 6px);
	font-size: 1rem;
	font-family: inherit;
	box-sizing: border-box;
	background: var(--c-bg, #fff);
	color: var(--c-ink, #222);
	transition: border-color var(--transition-fast, 150ms ease), box-shadow var(--transition-fast, 150ms ease);
}

.panditji-field input:focus-visible,
.panditji-field textarea:focus-visible,
.panditji-field select:focus-visible,
.panditji-btn:focus-visible,
.panditji-input:focus-visible {
	outline: none;
	border-color: var(--c-saffron, #dd8a2e);
	box-shadow: 0 0 0 3px var(--c-saffron-tint, #fbead2);
}

.panditji-field input.invalid,
.panditji-field textarea.invalid,
.panditji-field select.invalid {
	border-color: var(--c-danger, #a33);
}

.panditji-field-error {
	color: var(--c-danger, #a33);
	font-size: 0.82rem;
	margin-top: 0.3rem;
}

.panditji-field small,
.panditji-field .form-text {
	display: block;
	color: var(--c-ink-faint, #888);
	font-size: 0.8rem;
	margin-top: 0.3rem;
}

/* ---------------------------------------------------------------
   Checkboxes, checkbox groups, and plain radio options.

   Joomla renders every checkboxes/checkbox/plain-radio option as
   Bootstrap's standard `.form-check` pair — an <input> immediately
   followed by a <label class="form-check-label">. This site loads no
   Bootstrap CSS at all, so with nothing here that label falls back to
   the generic ".panditji-field label" rule above (display:block,
   its own margin) and renders as a separate full-width block UNDER the
   checkbox instead of beside it — the large-gap, checkbox-detached-
   from-its-text bug. Fixed by making each .form-check its own flex row
   (input + label side by side, vertically centred) and overriding the
   label back to an inline, no-margin element specifically inside it.
   The <label for="..."> already toggles its checkbox natively — no JS
   needed for "click the text to select it".
--------------------------------------------------------------- */
.panditji-field fieldset.checkboxes,
.panditji-field fieldset.radio {
	border: 1px solid var(--c-border, #eee);
	border-radius: var(--radius-sm, 6px);
	padding: 0.5rem 0.85rem;
	margin: 0;
}

.panditji-field .form-check {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	padding: 0.45rem 0.1rem;
	border-bottom: 1px solid var(--c-border, #f2ede2);
}

.panditji-field .form-check:last-child {
	border-bottom: none;
}

.panditji-field .form-check-input {
	flex: 0 0 auto;
	width: 1.15rem;
	height: 1.15rem;
	margin: 0;
	accent-color: var(--c-saffron, #dd8a2e);
	cursor: pointer;
}

.panditji-field .form-check-label,
.panditji-field label.form-check-label {
	display: inline;
	font-weight: 400;
	margin: 0;
	font-size: 0.95rem;
	color: var(--c-ink, #333);
	cursor: pointer;
	flex: 1 1 auto;
}

/* The single "I agree to the declaration" checkbox uses the same
   .form-check markup but has no surrounding fieldset border. */
.panditji-field--checkbox .form-check {
	border-bottom: none;
	padding: 0.2rem 0;
}

.panditji-input--otp {
	max-width: 220px;
	letter-spacing: 0.35rem;
	text-align: center;
	font-size: 1.3rem;
}

.panditji-field--checkbox label {
	font-weight: 400;
	cursor: pointer;
}

.panditji-radio-inline {
	display: inline-block;
	font-weight: 400;
	margin: 0 1.25rem 0.4rem 0;
	cursor: pointer;
}

.panditji-declaration-text,
.panditji-help {
	font-size: 0.85rem;
	color: var(--c-ink-soft, #666);
	background: var(--c-bg-alt, #faf7f2);
	border: 1px solid var(--c-border, #eee);
	border-radius: var(--radius-sm, 6px);
	padding: 0.85rem 1rem;
	margin: 1rem 0;
}

/* ---------------------------------------------------------------
   Mobile verification (Phase 9)
--------------------------------------------------------------- */
.panditji-mobile-verify {
	display: flex;
	align-items: center;
	gap: var(--sp-3, 0.75rem);
	flex-wrap: wrap;
	margin-top: -0.5rem;
	margin-bottom: 1.5rem;
	padding: 0.75rem 1rem;
	background: var(--c-bg-alt, #faf7f2);
	border: 1px solid var(--c-border, #eee);
	border-radius: var(--radius-sm, 6px);
	font-size: 0.88rem;
}

.panditji-mobile-verify__status {
	color: var(--c-ink-soft, #666);
}

.panditji-mobile-verify__status--verified {
	color: var(--c-success, #2f7d4f);
	font-weight: 600;
}

/* ---------------------------------------------------------------
   Photo upload
--------------------------------------------------------------- */
.panditji-photo {
	display: flex;
	align-items: center;
	gap: 1rem;
	flex-wrap: wrap;
}

.panditji-photo__preview {
	width: 84px;
	height: 84px;
	border-radius: 50%;
	object-fit: cover;
	border: 2px solid var(--c-border-strong, #e2d3b3);
	background: var(--c-bg-alt, #f4ecd8);
	flex: 0 0 auto;
}

.panditji-photo__placeholder {
	width: 84px;
	height: 84px;
	border-radius: 50%;
	border: 2px dashed var(--c-border-strong, #e2d3b3);
	background: var(--c-bg-alt, #f4ecd8);
	color: var(--c-ink-faint, #b98f3f);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.6rem;
	flex: 0 0 auto;
}

.panditji-photo__controls {
	flex: 1 1 200px;
	min-width: 200px;
}

.panditji-photo__controls input[type="file"] {
	font-size: 0.85rem;
}

/* ---------------------------------------------------------------
   Repeatable subform cards (qualifications / service locations /
   yajman references) — styling Joomla's native subform-repeatable
   markup, not replacing it.

   Joomla renders TWO controls per row (a per-row "Add" AND "Remove"
   button, both bound by the <joomla-field-subform> web component to the
   same "add a row" / "remove this row" actions) plus one more master
   "Add" button before the first row. Each button's only visible content
   is an empty <span class="icon-plus">/<span class="icon-minus"> — these
   come from Joomla's ADMIN icon font, which isn't loaded on the site
   side, so with no CSS the buttons render as blank, unlabeled pills.
   Fix: hide the redundant per-row Add (one clearly-labelled master Add
   is enough), inject real bilingual text via ::after + a CSS custom
   property (same technique as --panditji-row-label below), and use flex
   ordering to move both the master Add button and each row's own Remove
   button to the bottom of their container — "add" reads naturally as
   "add another, after what's already here" and "remove" as a clear,
   separate action per card, not two mystery icons stacked at the top.
--------------------------------------------------------------- */
.panditji-field--Subform .subform-repeatable-wrapper {
	counter-reset: panditji-row;
}

.panditji-field--Subform joomla-field-subform {
	display: flex;
	flex-direction: column;
}

/* The master "Add" button (rendered once, before any rows) — push it
   below every row card. */
.panditji-field--Subform joomla-field-subform > .btn-toolbar {
	order: 999;
	margin-top: 0.25rem;
}

.panditji-field--Subform .subform-repeatable-group {
	display: flex;
	flex-direction: column;
	border: 1px solid var(--c-border, #ede2cd);
	border-radius: var(--radius-md, 14px);
	padding: 1rem;
	margin-bottom: 1rem;
	background: var(--c-bg, #fffdf9);
	counter-increment: panditji-row;
}

.panditji-field--Subform .subform-repeatable-group::before {
	content: var(--panditji-row-label, "Item") " " counter(panditji-row);
	display: block;
	font-weight: 700;
	font-size: 0.85rem;
	color: var(--c-saffron-dark, #a35c16);
	margin-bottom: 0.5rem;
}

/* Each row's own toolbar (Add + Remove) — pushed below that row's own
   fields, with a divider so "Remove" reads as a distinct footer action. */
.panditji-field--Subform .subform-repeatable-group > .btn-toolbar {
	order: 999;
	margin-top: 0.75rem;
	padding-top: 0.75rem;
	border-top: 1px solid var(--c-border, #ede2cd);
	text-align: right;
}

/* The per-row Add is redundant with the one master Add button below the
   list — hide it so there is exactly one, unambiguous "add another". */
.panditji-field--Subform .subform-repeatable-group .group-add {
	display: none;
}

.panditji-field--Subform .group-add,
.panditji-field--Subform .group-remove {
	border-radius: var(--radius-pill, 999px);
	border: 1px solid var(--c-border-strong, #ccc);
	background: var(--c-surface, #fff);
	color: var(--c-ink, #333);
	font-size: 0.85rem;
	font-weight: 600;
	padding: 0.55rem 1.1rem;
	cursor: pointer;
}

/* The icon-font span is empty on the site (no icon font loaded) —
   remove it from flow entirely and show real bilingual text instead. */
.panditji-field--Subform .group-add span,
.panditji-field--Subform .group-remove span {
	display: none;
}

.panditji-field--Subform .group-add {
	border-color: var(--c-saffron, #dd8a2e);
	color: var(--c-saffron-dark, #a35c16);
}

.panditji-field--Subform .group-add::after {
	content: var(--panditji-add-label, "+ Add");
}

.panditji-field--Subform .group-remove {
	color: var(--c-danger, #8a3a32);
	border-color: var(--c-danger-border, #f0d2cd);
}

.panditji-field--Subform .group-remove::after {
	content: "Remove / \0939\091f\093e\090f\0902";
}

/* Joomla's native calendar-picker button icon relies on an icon font not
   loaded on this site — the template's own sitewide rule hides
   `.icon-calendar` entirely (correct for its other, purely decorative
   uses, e.g. article meta rows), which leaves this FUNCTIONAL button
   blank with nothing to click. Override scoped to just the picker
   button (`.field-calendar`) with a visible emoji fallback. */
.field-calendar .icon-calendar {
	display: inline-block;
}

.field-calendar .icon-calendar::before {
	content: "\1F4C5";
}

/* ---------------------------------------------------------------
   Document upload status
--------------------------------------------------------------- */
.panditji-doc {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 1rem;
	flex-wrap: wrap;
	border: 1px solid var(--c-border, #ede2cd);
	border-radius: var(--radius-md, 14px);
	padding: 0.85rem 1rem;
	margin-bottom: 0.75rem;
	background: var(--c-bg, #fffdf9);
}

.panditji-doc__info {
	flex: 1 1 220px;
}

.panditji-doc__type {
	font-weight: 700;
	font-size: 0.92rem;
}

.panditji-doc__filename {
	color: var(--c-ink-soft, #666);
	font-size: 0.82rem;
	word-break: break-all;
}

.panditji-doc__status {
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
	font-size: 0.78rem;
	font-weight: 700;
	padding: 0.2rem 0.6rem;
	border-radius: var(--radius-pill, 999px);
	white-space: nowrap;
}

.panditji-doc__status--uploaded {
	background: var(--c-success-bg, #e6efe4);
	color: var(--c-success, #35603f);
}

.panditji-doc__status--required {
	background: var(--c-danger-bg, #f7e4e1);
	color: var(--c-danger, #8a3a32);
}

.panditji-doc__status--optional {
	background: var(--c-bg-alt, #f4ecd8);
	color: var(--c-ink-soft, #8f867a);
}

.panditji-doc__upload {
	flex: 1 1 100%;
	margin-top: 0.4rem;
}

.panditji-doc__upload input[type="file"] {
	font-size: 0.85rem;
	width: 100%;
}

/* The wizard's own uploaded-documents summary (step_documentslist.php)
   had no styling at all for its own heading or the upload date next to
   each filename — genuinely missing, not merely undecorated: the "Uploaded
   Documents" heading fell back to the browser's default <h3>, and the
   date ran straight into the filename with no visual separation. */
.panditji-uploaded-docs h3 {
	font-family: var(--font-heading, serif);
	font-size: var(--fs-h4, 1.05rem);
	margin: 1.5rem 0 0.75rem;
	color: var(--c-ink, #2b2622);
}

.panditji-uploaded-docs h3:first-child {
	margin-top: 0;
}

.panditji-doc-date {
	display: inline-block;
	margin-left: 0.5rem;
	color: var(--c-ink-faint, #8f867a);
}

/* ---------------------------------------------------------------
   "Add new" forms (My Services: add a service / a weekly slot / a
   blocked date) — previously plain unboxed forms sitting directly under
   a section heading, easy to miss as a distinct action versus the
   read-only list just above them. A dashed border reads as "this is
   where you create something new", distinct from the solid-border
   .panditji-summary-card used for existing items.
--------------------------------------------------------------- */
.panditji-add-card {
	border: 1.5px dashed var(--c-border-strong, #e2d3b3);
	border-radius: var(--radius-md, 14px);
	padding: var(--sp-4, 1rem) var(--sp-5, 1.25rem);
	margin-top: var(--sp-3, 0.75rem);
	background: var(--c-bg-alt, #faf7f2);
}

.panditji-add-card__title {
	font-family: var(--font-heading, serif);
	font-size: 0.95rem;
	font-weight: 700;
	color: var(--c-saffron-dark, #a35c16);
	margin: 0 0 0.85rem;
}

/* ---------------------------------------------------------------
   Bank / privacy notice
--------------------------------------------------------------- */
.panditji-privacy-notice {
	display: flex;
	align-items: flex-start;
	gap: 0.6rem;
	background: var(--c-info-bg, #e6f0f1);
	border: 1px solid var(--c-info-border, #d3e3e5);
	color: var(--c-info, #3a5f66);
	border-radius: var(--radius-sm, 6px);
	padding: 0.85rem 1rem;
	font-size: 0.85rem;
	margin-bottom: 1.25rem;
}

.panditji-privacy-notice__icon {
	flex: 0 0 auto;
	font-size: 1.1rem;
	line-height: 1;
}

/* ---------------------------------------------------------------
   Actions / navigation
--------------------------------------------------------------- */
.panditji-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-top: 1.75rem;
	align-items: center;
}

.panditji-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	gap: 0.4rem;
	padding: 0.65rem 1.4rem;
	border-radius: var(--radius-pill, 999px);
	border: 1px solid transparent;
	font-size: 0.92rem;
	font-weight: 600;
	cursor: pointer;
	text-decoration: none;
	text-align: center;
	transition: background-color var(--transition-fast, 150ms ease), color var(--transition-fast, 150ms ease), border-color var(--transition-fast, 150ms ease);
}

.panditji-btn--primary,
.panditji-btn--submit {
	/* 1.63.0: the theme's saffron (#dd8a2e) gives white text 2.7:1; the dark saffron gives 5:1 */
	background: var(--c-saffron-dark, #a35c16);
	color: #fff;
}

.panditji-btn--primary:hover,
.panditji-btn--submit:hover {
	background: #8a4d12;
}

.panditji-btn--primary::after {
	content: "\2192";
}

.panditji-btn--secondary {
	background: transparent;
	border-color: var(--c-border-strong, #ccc);
	color: var(--c-ink, #333);
}

.panditji-btn--secondary:hover {
	border-color: var(--c-saffron, #dd8a2e);
	color: var(--c-saffron-dark, #a35c16);
}

.panditji-btn--secondary::before {
	content: "\2190";
}

.panditji-btn--link {
	background: transparent;
	border-color: transparent;
	color: var(--c-ink-soft, #666);
	text-decoration: underline;
	font-weight: 500;
}

.panditji-btn--submit {
	font-size: 1.05rem;
	padding: 0.85rem 2.2rem;
}

.panditji-btn--submit::after {
	content: none;
}

.panditji-submit-form {
	margin-top: 1rem;
	padding-top: 1.25rem;
	border-top: 1px solid var(--c-border, #eee);
}

/* ---------------------------------------------------------------
   My Profile
--------------------------------------------------------------- */
.panditji-profile-nav {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.3rem;
	margin-bottom: var(--sp-5, 1.25rem);
	padding: 0.35rem;
	background: var(--c-bg-alt, #faf7f2);
	border: 1px solid var(--c-border, #ede2cd);
	border-radius: var(--radius-pill, 999px);
}

/* Turn the plain underlined "link" buttons into a proper pill/tab menu
   when they live inside the page nav bar — scoped to this container only
   so every OTHER use of .panditji-btn--link (inline Cancel/Decline
   actions inside a card, etc.) keeps its original, appropriately lighter
   look. */
.panditji-profile-nav .panditji-btn--link {
	border: 1px solid transparent;
	color: var(--c-ink-soft, #6b6259);
	text-decoration: none;
	font-weight: 600;
	font-size: 0.85rem;
	padding: 0.5rem 1rem;
	border-radius: var(--radius-pill, 999px);
}

.panditji-profile-nav .panditji-btn--link:hover {
	background: var(--c-surface, #fff);
	color: var(--c-saffron-dark, #a35c16);
	box-shadow: var(--shadow-sm, 0 1px 3px rgba(0, 0, 0, 0.06));
}

.panditji-profile-nav .panditji-nav-icon {
	margin-right: 0.35rem;
}

/* The Logout form is the one "leave" action among "go somewhere" links —
   pushed to the far end of the pill bar so it reads as visually separate
   from the primary navigation choices next to it. */
.panditji-profile-nav form.panditji-form--inline {
	margin-left: auto;
}

/* Compact role-local and in-page navigation. My Avyani remains the global
   account/logout surface; these links only move within the active role. */
.panditji-section-nav {
	position: sticky;
	top: calc(4.75rem + var(--sp-2, 0.5rem));
	z-index: 10;
	overflow: visible;
	flex-wrap: wrap;
}

.panditji-section-nav .panditji-btn {
	flex: 0 0 auto;
	white-space: nowrap;
}

.panditji-section-panel,
.panditji-form-section {
	scroll-margin-top: 8rem;
	border: 1px solid var(--c-border, #e5ddcf);
	border-radius: var(--radius-md, 10px);
	background: var(--c-surface, #fff);
	padding: var(--sp-5, 1.5rem);
	margin-block: var(--sp-5, 1.5rem);
}

.panditji-form-section > .panditji-section-title:first-child,
.panditji-section-panel > .panditji-section-title:first-child {
	margin-block-start: 0;
}

@media (max-width: 47.99em) {
	.panditji-section-nav {
		position: static;
		padding: var(--sp-2, 0.5rem);
	}

	.panditji-section-nav .panditji-btn {
		max-width: 100%;
		white-space: normal;
		text-align: left;
	}

	.panditji-section-panel,
	.panditji-form-section {
		padding: var(--sp-4, 1rem);
	}
}

.panditji-profile-photo {
	display: block;
	width: 96px;
	height: 96px;
	border-radius: 50%;
	object-fit: cover;
	margin-bottom: var(--sp-3, 0.75rem);
	border: 1px solid var(--c-border, #eee);
}

/* ---------------------------------------------------------------
   Dashboard
--------------------------------------------------------------- */
.panditji-dashboard-status {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--sp-4, 1rem);
	margin: var(--sp-4, 1rem) 0 var(--sp-5, 1.25rem);
	padding-bottom: var(--sp-4, 1rem);
	border-bottom: 1px solid var(--c-border, #eee);
}

.panditji-status-badge {
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	padding: 0.35rem 0.85rem;
	border-radius: var(--radius-pill, 999px);
	white-space: nowrap;
}

/* A quick-glance icon per status family — helps a card's status register
   before the eye even reads the text, without adding any new markup
   (every status badge already carries one of these modifier classes). */
.panditji-status-badge--success::before {
	content: "\2713";
}

.panditji-status-badge--danger::before {
	content: "\2715";
}

.panditji-status-badge--warning::before {
	content: "\26A0";
}

.panditji-status-badge--info::before {
	content: "\23F3";
}

.panditji-status-badge--neutral {
	background: var(--c-bg-alt, #f4ecd8);
	color: var(--c-ink-soft, #6b6259);
}

.panditji-status-badge--info {
	background: var(--c-info-bg, #e3edf7);
	color: var(--c-info, #2c5a8a);
}

.panditji-status-badge--warning {
	background: var(--c-warning-bg, #fbf0da);
	color: #775c14; /* 1.63.0: 5.6:1 on the tint (was 4.3) */
}

.panditji-status-badge--success {
	background: var(--c-success-bg, #e6efe4);
	color: #27672b; /* 1.63.0: 5.8:1 on the tint (was 4.35) */
}

.panditji-status-badge--danger {
	background: var(--c-danger-bg, #f7e4e1);
	color: var(--c-danger, #8a3a32);
}

.panditji-dashboard-meta {
	display: flex;
	flex-wrap: wrap;
	gap: var(--sp-5, 1.5rem);
	margin: 0;
}

.panditji-dashboard-meta dt {
	font-size: 0.75rem;
	color: var(--c-ink-faint, #8f867a);
	text-transform: uppercase;
	letter-spacing: 0.02em;
}

.panditji-dashboard-meta dd {
	margin: 0.1rem 0 0;
	font-weight: 600;
	color: var(--c-ink, #2b2622);
}

.panditji-dashboard-meta .panditji-regid {
	color: var(--c-saffron-dark, #b45309);
}

.panditji-dashboard-action {
	border-radius: var(--radius-md, 14px);
	padding: var(--sp-4, 1rem) var(--sp-5, 1.25rem);
	margin-bottom: var(--sp-4, 1rem);
	background: var(--c-bg-alt, #f4ecd8);
}

.panditji-dashboard-action p {
	margin: 0;
}

.panditji-dashboard-action--info {
	background: var(--c-info-bg, #e3edf7);
	color: var(--c-info, #2c5a8a);
}

.panditji-dashboard-action--warning {
	background: var(--c-warning-bg, #fbf0da);
	color: var(--c-warning, #8a6d1d);
}

.panditji-dashboard-action--success {
	background: var(--c-success-bg, #e6efe4);
	color: var(--c-success, #2e7d32);
}

.panditji-dashboard-action--danger {
	background: var(--c-danger-bg, #f7e4e1);
	color: var(--c-danger, #8a3a32);
}

.panditji-dashboard-reason {
	margin-top: 0.5rem;
}

.panditji-dashboard-reason span {
	display: block;
	font-size: 0.78rem;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	opacity: 0.8;
	margin-bottom: 0.2rem;
}

.panditji-correction-progress {
	font-weight: 700;
	color: var(--c-saffron-dark, #b45309);
}

.panditji-correction-item__cta {
	display: block;
	font-size: 0.78rem;
	font-weight: 700;
	color: var(--c-saffron-dark, #a35c16);
	margin-top: 0.3rem;
}

.panditji-dashboard-section {
	margin-top: var(--sp-6, 1.75rem);
}

.panditji-dashboard-section h2 {
	font-family: var(--font-heading, inherit);
	font-size: 1.05rem;
	margin: 0 0 var(--sp-4, 1rem);
	color: var(--c-ink, #2b2622);
	padding-left: 0.65rem;
	border-left: 3px solid var(--c-saffron, #dd8a2e);
}

.panditji-doc__status--pending {
	background: var(--c-bg-alt, #f4ecd8);
	color: var(--c-ink-soft, #6b6259);
}

.panditji-dashboard-summary {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: var(--sp-4, 1rem);
}

.panditji-dashboard-summary h2 {
	grid-column: 1 / -1;
}

.panditji-summary-card {
	border: 1px solid var(--c-border, #ede2cd);
	border-radius: var(--radius-md, 14px);
	padding: var(--sp-4, 1rem);
	background: var(--c-bg, #fffdf9);
	box-shadow: var(--shadow-sm, 0 1px 3px rgba(0, 0, 0, 0.04));
}

.panditji-summary-card--action {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	min-height: 8rem;
}

.panditji-summary-card--action .panditji-btn {
	margin-top: auto;
}

.panditji-summary-card h3 {
	font-size: 0.85rem;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	color: var(--c-ink-faint, #8f867a);
	margin: 0 0 0.5rem;
}

.panditji-summary-card p,
.panditji-summary-card ul {
	margin: 0 0 0.3rem;
	font-size: 0.92rem;
	color: var(--c-ink, #2b2622);
}

.panditji-summary-card ul {
	padding-left: 1.1rem;
}

.panditji-summary-sub {
	color: var(--c-ink-soft, #6b6259) !important;
	font-size: 0.85rem !important;
}

/* ---------------------------------------------------------------
   Public directory + profile
--------------------------------------------------------------- */
.panditji-directory {
	max-width: 1100px;
}

.panditji-directory-filters {
	margin: var(--sp-5, 1.5rem) 0;
}

.panditji-directory-filters__row {
	display: flex;
	flex-wrap: wrap;
	gap: var(--sp-3, 0.75rem);
	align-items: center;
}

.panditji-directory-filters__search {
	flex: 1 1 220px;
	min-width: 0;
}

.panditji-directory-filters select.panditji-input {
	flex: 0 1 180px;
	width: auto;
}

.panditji-directory-empty {
	text-align: center;
	padding: var(--sp-7, 3rem) var(--sp-4, 1rem);
	color: var(--c-ink-soft, #6b6259);
}

.panditji-directory-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: var(--sp-5, 1.25rem);
}

.panditji-directory-card {
	display: block;
	border: 1px solid var(--c-border, #ede2cd);
	border-radius: var(--radius-lg, 18px);
	overflow: hidden;
	background: var(--c-bg, #fffdf9);
	text-decoration: none;
	color: inherit;
	transition: box-shadow 0.15s ease, transform 0.15s ease;
}

.panditji-directory-card:hover {
	box-shadow: var(--shadow-md, 0 6px 18px rgba(0, 0, 0, 0.08));
	transform: translateY(-2px);
}

.panditji-directory-card__photo {
	aspect-ratio: 1 / 1;
	background: var(--c-bg-alt, #f4ecd8);
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}

.panditji-directory-card__photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.panditji-directory-card__placeholder {
	font-size: 3rem;
	opacity: 0.35;
}

.panditji-directory-card__body {
	padding: var(--sp-4, 1rem);
}

.panditji-directory-card__name {
	font-family: var(--font-heading, inherit);
	font-size: 1.05rem;
	margin: 0.4rem 0 0.2rem;
	color: var(--c-ink, #2b2622);
}

.panditji-directory-card__specialization {
	color: var(--c-saffron-dark, #a35c16);
	font-weight: 600;
	font-size: 0.88rem;
	margin: 0 0 0.2rem;
}

.panditji-directory-card__rating {
	color: var(--c-ink-soft, #6b6259);
	font-size: 0.85rem;
	margin: 0 0 0.3rem;
}

.panditji-directory-card__meta {
	color: var(--c-ink-soft, #6b6259);
	font-size: 0.82rem;
	margin: 0 0 0.15rem;
}

.panditji-directory-pagination {
	margin-top: var(--sp-6, 1.75rem);
	display: flex;
	justify-content: center;
}

.panditji-verified-badge {
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	color: var(--c-success, #2e7d32);
	background: var(--c-success-bg, #e6efe4);
	padding: 0.2rem 0.55rem;
	border-radius: var(--radius-pill, 999px);
}

.panditji-profile {
	max-width: 760px;
}

.panditji-profile__back {
	margin: 0 0 var(--sp-4, 1rem);
}

.panditji-profile__back a {
	color: var(--c-ink-soft, #6b6259);
	text-decoration: none;
	font-size: 0.9rem;
}

.panditji-profile__header {
	display: flex;
	gap: var(--sp-5, 1.25rem);
	align-items: center;
	flex-wrap: wrap;
}

.panditji-profile__photo {
	width: 120px;
	height: 120px;
	border-radius: 50%;
	overflow: hidden;
	background: var(--c-bg-alt, #f4ecd8);
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

.panditji-profile__photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.panditji-profile__placeholder {
	font-size: 3.5rem;
}

/* Each "About / Karmakand / Education / Locations / Languages / Services /
   Availability / Reviews / Request a Booking" block on the public profile
   was previously a plain heading + paragraphs with no visual boundary
   between one section and the next, relying on the reader to notice a new
   <h2>. Boxing each one as its own card makes the whole page scannable at
   a glance, matching the same card language already used for individual
   services/reviews inside it. */
.panditji-profile .panditji-dashboard-section {
	border: 1px solid var(--c-border, #ede2cd);
	border-radius: var(--radius-lg, 18px);
	padding: var(--sp-5, 1.25rem) var(--sp-5, 1.25rem);
	margin-top: var(--sp-5, 1.25rem);
	background: var(--c-surface, #fff);
}

.panditji-profile .panditji-dashboard-section h2 {
	margin-top: 0;
}

/* Cards-within-a-card (each service/review) read better on a faint tint
   than the identical white as their own section card. */
.panditji-profile .panditji-summary-card {
	background: var(--c-bg-alt, #faf7f2);
}

.panditji-profile__name {
	font-family: var(--font-heading, inherit);
	font-size: 1.6rem;
	margin: 0.3rem 0 0.2rem;
	color: var(--c-ink, #2b2622);
}

.panditji-profile__regid {
	color: var(--c-ink-soft, #6b6259);
	font-size: 0.85rem;
	margin: 0;
}

/* ---------------------------------------------------------------
   Mobile
--------------------------------------------------------------- */
@media (max-width: 560px) {
	.panditji-wizard {
		margin: 0;
		padding: var(--sp-4, 1.1rem);
		border-radius: 0;
		border-left: none;
		border-right: none;
	}

	.panditji-field input[type="text"],
	.panditji-field input[type="tel"],
	.panditji-field input[type="email"],
	.panditji-field input[type="number"],
	.panditji-field input[type="date"],
	.panditji-field textarea,
	.panditji-field select,
	.panditji-input {
		max-width: 100%;
	}

	.panditji-actions {
		flex-direction: column;
		align-items: stretch;
	}

	.panditji-btn {
		width: 100%;
	}

	.panditji-summary-card--action {
		min-height: 0;
	}

	.panditji-summary-card form,
	.panditji-summary-card details {
		width: 100%;
	}

	.panditji-doc {
		flex-direction: column;
	}

	.panditji-dashboard-status {
		flex-direction: column;
		align-items: flex-start;
	}

	.panditji-dashboard-meta {
		gap: var(--sp-4, 1rem);
	}

	.panditji-dashboard-summary {
		grid-template-columns: 1fr;
	}

	.panditji-directory-filters__row {
		flex-direction: column;
		align-items: stretch;
	}

	.panditji-directory-filters select.panditji-input {
		flex: 1 1 auto;
		width: 100%;
	}

	.panditji-directory-grid {
		grid-template-columns: 1fr;
	}

	.panditji-profile__header {
		flex-direction: column;
		align-items: flex-start;
	}
}

/* ----------------------------------------------------------------
   mod_panditji_vani — Public Mentor Vani homepage module (Phase 8).
   Reuses .panditji-summary-card/.panditji-summary-sub as-is; only the
   grid wrapper and mentor-name line below are new.
---------------------------------------------------------------- */
.mod-panditji-vani__title {
	font-family: var(--font-heading, serif);
	font-size: 1.4rem;
	color: var(--c-saffron-dark, #a35c16);
	margin: 0 0 var(--sp-4, 1rem);
}

.mod-panditji-vani__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: var(--sp-5, 1.25rem);
}

.mod-panditji-vani__card {
	display: block;
	text-decoration: none;
	color: inherit;
	transition: box-shadow 0.15s ease;
}

.mod-panditji-vani__card:hover {
	box-shadow: var(--shadow-md, 0 4px 10px rgba(0, 0, 0, 0.08));
}

.mod-panditji-vani__mentor {
	color: var(--c-saffron-dark, #a35c16) !important;
	font-size: 0.85rem !important;
	font-weight: 600;
	margin: 0 !important;
}

@media (max-width: 640px) {
	.mod-panditji-vani__grid {
		grid-template-columns: 1fr;
	}
}

/* Dakshina QR preview (Mentor dashboard + Offer Dakshina reveal), 2026-08-20 */
.panditji-dakshina-qr {
	display: block;
	max-width: 180px;
	width: 100%;
	height: auto;
	margin-block-start: var(--sp-2, 0.5rem);
	border: 1px solid var(--c-border, #e5ddcf);
	border-radius: var(--radius-sm, 6px);
}

/* Short-field grid layout (2026-08-20 UI/UX pass) — pairs up short
   single-line fields side by side instead of one-per-row on long
   profile/registration forms, cutting scroll length. Opt-in via
   .panditji-field-grid on the wrapping <form>/element; direct children
   that aren't .panditji-field (section headers, notices, action rows,
   hidden inputs) always span full width so they can't share a row with
   a field, and only genuinely short field types get the 50% column —
   textarea/checkboxes/file/subform/note/photo stay full width by not
   being listed. */
.panditji-field-grid {
	display: flex;
	flex-wrap: wrap;
	column-gap: var(--sp-5, 1.5rem);
}

.panditji-field-grid > .panditji-field {
	flex: 1 1 100%;
	min-width: 0;
}

.panditji-field-grid > :not(.panditji-field) {
	flex: 1 1 100%;
}

@media (min-width: 48em) {
	.panditji-field-grid > .panditji-field--text,
	.panditji-field-grid > .panditji-field--email,
	.panditji-field-grid > .panditji-field--telephone,
	.panditji-field-grid > .panditji-field--number,
	.panditji-field-grid > .panditji-field--calendar,
	.panditji-field-grid > .panditji-field--date,
	.panditji-field-grid > .panditji-field--time,
	.panditji-field-grid > .panditji-field--list,
	.panditji-field-grid > .panditji-field--spiritualidentity,
	.panditji-field-grid > .panditji-field--radio {
		flex: 1 1 calc(50% - var(--sp-5, 1.5rem) / 2);
	}
}

/* Checkbox option groups: compact flex-wrap chip layout on desktop
   instead of one option per full-width row. Mobile keeps the original
   stacked layout (already fine at narrow widths). */
@media (min-width: 48em) {
	.panditji-field--checkboxes fieldset.checkboxes {
		display: flex;
		flex-wrap: wrap;
		gap: var(--sp-2, 0.5rem);
		border: none;
		padding: 0;
	}

	.panditji-field--checkboxes fieldset.checkboxes .form-check {
		flex: 0 0 auto;
		border: 1px solid var(--c-border, #eee);
		border-radius: var(--radius-pill, 999px);
		padding: 0.4rem 0.9rem;
	}

	.panditji-field--checkboxes fieldset.checkboxes .form-check:has(.form-check-input:checked) {
		border-color: var(--c-saffron, #dd8a2e);
		background: var(--c-saffron-tint, #fdf1e2);
	}
}

/* Rolepicker role-card icons (2026-08-20 UI/UX pass) — reuses the
   homepage's own SVG icon sprite (defined once in templates/avyani/
   index.php, available on every page) rather than a new icon library. */
.panditji-role-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.5rem;
	height: 2.5rem;
	margin-bottom: var(--sp-2, 0.5rem);
	border-radius: var(--radius-pill, 999px);
	background: var(--c-saffron-tint, #fbead2);
	color: var(--c-saffron-dark, #a35c16);
}

.panditji-role-icon svg {
	width: 1.3rem;
	height: 1.3rem;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.6;
}

/* ---------------------------------------------------------------------
   Public Samagri detail page (Phase C, v1.32.0).

   Reuses the existing .panditji-profile header, .panditji-dashboard-section
   card and .panditji-status-badge chrome — these rules only add the
   definition-list layout those did not already cover. Mobile-first: the
   facts list stacks by default and becomes a two-column grid from 34rem up,
   so a long Devanagari label never squeezes its value into a sliver.
   --------------------------------------------------------------------- */

.panditji-samagri__alt {
	margin: 0.15rem 0 0;
	font-size: 1.05rem;
	opacity: 0.75;
}

.panditji-samagri__facts {
	margin: 0;
}

.panditji-samagri__fact {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0.15rem 1rem;
	padding: 0.6rem 0;
	border-bottom: 1px solid rgba(0, 0, 0, 0.07);
}

.panditji-samagri__fact:last-child {
	border-bottom: 0;
}

.panditji-samagri__fact dt {
	font-weight: 600;
	opacity: 0.7;
	font-size: 0.92rem;
}

.panditji-samagri__fact dd {
	margin: 0;
}

@media (min-width: 34rem) {
	.panditji-samagri__fact {
		grid-template-columns: 12rem 1fr;
		align-items: baseline;
	}
}

.panditji-samagri__hint {
	display: inline-block;
	font-size: 0.86rem;
	opacity: 0.65;
}

.panditji-samagri__related {
	list-style: none;
	margin: 0;
	padding: 0;
}

.panditji-samagri__related li {
	padding: 0.5rem 0;
	border-bottom: 1px solid rgba(0, 0, 0, 0.07);
}

.panditji-samagri__related li:last-child {
	border-bottom: 0;
}

/* 44px minimum tap target on the related-item links, matching the
   established P2 accessibility convention for this component. */
.panditji-samagri__related a {
	display: inline-block;
	min-height: 44px;
	line-height: 44px;
	margin-inline-end: 0.5rem;
}

.panditji-samagri__note {
	margin-top: 1.25rem;
	font-size: 0.88rem;
	opacity: 0.7;
}

/* ---------------------------------------------------------------------
   Panditji Samagri checklist builder (Phase D, v1.33.0).

   Reuses the existing .panditji-dashboard-section card, .panditji-btn and
   .panditji-status-badge chrome; these rules only add the row/picker layout.
   Mobile-first: rows stack, and the field strip becomes a single wrapping
   flex line so a long Devanagari name never squeezes the inputs.
   --------------------------------------------------------------------- */

.panditji-samagri__templates,
.panditji-samagri__rows {
	list-style: none;
	margin: 0 0 1rem;
	padding: 0;
}

.panditji-samagri__templates li {
	padding: 0.5rem 0;
	border-bottom: 1px solid rgba(0, 0, 0, 0.07);
}

.panditji-samagri__templates li:last-child {
	border-bottom: 0;
}

.panditji-samagri__templates form {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	align-items: center;
	justify-content: space-between;
}

.panditji-samagri__template-name {
	font-weight: 600;
}

.panditji-samagri__blank {
	margin-top: 0.75rem;
}

.panditji-samagri__row {
	padding: 0.75rem 0;
	border-bottom: 1px solid rgba(0, 0, 0, 0.07);
}

.panditji-samagri__row:last-of-type {
	border-bottom: 0;
}

.panditji-samagri__row-name {
	margin-bottom: 0.4rem;
}

.panditji-samagri__row-fields {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 0.9rem;
	align-items: flex-end;
}

.panditji-samagri__field {
	display: inline-flex;
	flex-direction: column;
	gap: 0.15rem;
	font-size: 0.9rem;
}

.panditji-samagri__field label {
	font-size: 0.8rem;
	opacity: 0.7;
}

.panditji-samagri__field input[type="number"] {
	width: 6rem;
}

.panditji-samagri__field--wide {
	flex: 1 1 16rem;
}

.panditji-samagri__field--wide input,
.panditji-samagri__field--wide textarea {
	width: 100%;
}

.panditji-samagri__field--narrow input[type="number"] {
	width: 4.5rem;
}

.panditji-samagri__unit {
	display: inline-block;
	padding-top: 0.35rem;
	opacity: 0.75;
}

/* 44px minimum tap targets, per the established P2 accessibility convention. */
.panditji-samagri__remove,
.panditji-samagri__learn {
	min-height: 44px;
	line-height: 44px;
	display: inline-block;
}

.panditji-samagri__learn {
	margin-inline-start: 0.5rem;
	font-size: 0.86rem;
}

.panditji-samagri__newrow {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem 0.9rem;
	align-items: flex-end;
	border: 1px dashed rgba(0, 0, 0, 0.2);
	border-radius: 0.4rem;
	padding: 0.75rem;
	margin: 1rem 0;
}

.panditji-samagri__newrow legend {
	font-size: 0.9rem;
	font-weight: 600;
	padding: 0 0.35rem;
}

.panditji-samagri__search {
	width: 100%;
	margin-bottom: 0.6rem;
}

.panditji-samagri__picker {
	max-height: 30rem;
	overflow-y: auto;
	border: 1px solid rgba(0, 0, 0, 0.12);
	border-radius: 0.4rem;
}

.panditji-samagri__picker-group {
	padding: 0.5rem 0.75rem;
	border-bottom: 1px solid rgba(0, 0, 0, 0.07);
}

.panditji-samagri__picker-group h3 {
	font-size: 0.92rem;
	margin: 0 0 0.35rem;
	opacity: 0.8;
}

.panditji-samagri__picker-item {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	align-items: center;
	justify-content: space-between;
	padding: 0.3rem 0;
	font-size: 0.92rem;
}

@media (min-width: 48rem) {
	.panditji-samagri__row {
		display: grid;
		grid-template-columns: 18rem 1fr;
		gap: 0.5rem 1rem;
		align-items: start;
	}

	.panditji-samagri__row-name {
		margin-bottom: 0;
	}
}

/* ---------------------------------------------------------------------
   Samagri sharing + Yajman marking (Phase E, v1.34.0).
   Builds on the Phase D row/picker rules; adds the progress bar, the
   three-state marking control and the read-only locked presentation.
   --------------------------------------------------------------------- */

.panditji-samagri__bar {
	display: block;
	height: 8px;
	border-radius: 4px;
	background: rgba(0, 0, 0, 0.09);
	overflow: hidden;
	margin: 0.35rem 0 0.6rem;
}

.panditji-samagri__bar > span {
	display: block;
	height: 100%;
	background: currentColor;
	opacity: 0.55;
}

.panditji-samagri__note-box {
	border-inline-start: 3px solid rgba(0, 0, 0, 0.15);
	padding: 0.4rem 0 0.4rem 0.75rem;
	margin: 0.75rem 0 0;
}

.panditji-samagri__instruction {
	font-size: 0.88rem;
	opacity: 0.8;
	margin-top: 0.2rem;
}

/* Three-state marking. Each state is a full 44px tap target with a visible
   selected state, per the established P2 accessibility convention — a Yajman
   will most often use this on a phone while shopping. */
.panditji-samagri__states {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
}

.panditji-samagri__state {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 0 0.75rem;
	border: 1px solid rgba(0, 0, 0, 0.2);
	border-radius: 999px;
	cursor: pointer;
	font-size: 0.9rem;
	gap: 0.4rem;
}

.panditji-samagri__state input {
	margin: 0;
}

.panditji-samagri__state:has(input:checked) {
	border-color: currentColor;
	box-shadow: inset 0 0 0 1px currentColor;
	font-weight: 600;
}

/* Fallback for browsers without :has() — the radio itself still shows state. */
.panditji-samagri__state--undo {
	opacity: 0.75;
	font-size: 0.85rem;
}

.panditji-samagri__row--mark .panditji-samagri__row-fields {
	gap: 0.6rem 0.9rem;
}

@media (min-width: 48rem) {
	.panditji-samagri__row--mark {
		grid-template-columns: 20rem 1fr;
	}
}

/* ---------------------------------------------------------------------
   Samagri print sheet + WhatsApp text (Phase F, v1.35.0).

   The print sheet is served with &tmpl=component, so it has no site chrome
   and these rules are the whole design. Screen styles stay deliberately
   plain; the @media print block is what actually matters.
   --------------------------------------------------------------------- */

.panditji-samagri__watext {
	width: 100%;
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 0.88rem;
	line-height: 1.5;
	white-space: pre;
	overflow-x: auto;
}

.samagri-print {
	max-width: 48rem;
	margin: 0 auto;
	padding: 1.25rem;
	font-size: 0.95rem;
	line-height: 1.45;
}

.samagri-print__title {
	margin: 0 0 0.15rem;
	font-size: 1.5rem;
}

.samagri-print__subtitle {
	margin: 0 0 1rem;
	opacity: 0.7;
	font-size: 0.9rem;
}

.samagri-print__meta {
	margin: 0 0 1rem;
	display: grid;
	grid-template-columns: 1fr;
	gap: 0.2rem 1rem;
}

.samagri-print__meta > div {
	display: flex;
	gap: 0.5rem;
}

.samagri-print__meta dt {
	font-weight: 600;
	min-width: 7rem;
	opacity: 0.75;
}

.samagri-print__meta dd {
	margin: 0;
}

.samagri-print__panditji-note {
	border-inline-start: 3px solid rgba(0, 0, 0, 0.25);
	padding: 0.35rem 0 0.35rem 0.7rem;
	margin: 0 0 1rem;
}

.samagri-print__group {
	font-size: 1.05rem;
	margin: 1.1rem 0 0.35rem;
	padding-bottom: 0.2rem;
	border-bottom: 2px solid rgba(0, 0, 0, 0.35);
}

.samagri-print__table {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 0.5rem;
}

.samagri-print__caption {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

.samagri-print__table th,
.samagri-print__table td {
	text-align: start;
	padding: 0.3rem 0.4rem;
	border-bottom: 1px solid rgba(0, 0, 0, 0.15);
	vertical-align: top;
}

.samagri-print__table thead th {
	font-size: 0.82rem;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	opacity: 0.7;
}

.samagri-print__tick {
	width: 1.6rem;
	font-size: 1.15rem;
	line-height: 1;
}

.samagri-print__qty {
	white-space: nowrap;
}

.samagri-print__status {
	white-space: nowrap;
	font-size: 0.88rem;
}

.samagri-print__muted {
	opacity: 0.65;
	font-size: 0.85rem;
}

.samagri-print__note {
	font-size: 0.85rem;
	opacity: 0.8;
	margin-top: 0.1rem;
}

.samagri-print__progress {
	margin: 0.75rem 0 0;
	font-weight: 600;
}

.samagri-print__footer {
	margin-top: 1.25rem;
	padding-top: 0.5rem;
	border-top: 1px solid rgba(0, 0, 0, 0.2);
	font-size: 0.82rem;
	opacity: 0.75;
}

@media (min-width: 34rem) {
	.samagri-print__meta {
		grid-template-columns: 1fr 1fr;
	}
}

@media print {
	.samagri-print {
		max-width: none;
		padding: 0;
		font-size: 11pt;
	}

	/* Anything interactive is meaningless on paper. */
	.samagri-print__noprint {
		display: none !important;
	}

	/* Never split a Samagri row across two pages — a half-printed item is
	   worse than a slightly shorter page. */
	.samagri-print__table tr {
		break-inside: avoid;
		page-break-inside: avoid;
	}

	.samagri-print__group {
		break-after: avoid;
		page-break-after: avoid;
	}

	.samagri-print__table th,
	.samagri-print__table td {
		border-bottom: 1px solid #999;
	}
}

/* ---------------------------------------------------------------------------
   H2 — the public Puja catalogue. Reuses the existing panditji-* vocabulary;
   these rules only add what the catalogue's own shapes need.
   --------------------------------------------------------------------------- */
.panditji-puja__search {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 1rem;
	align-items: flex-end;
}

.panditji-puja__search .panditji-samagri__field {
	flex: 1 1 12rem;
	min-width: 0;
}

.panditji-puja__search .panditji-samagri__field--wide {
	flex: 2 1 20rem;
}

.panditji-puja__cats {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 0.75rem;
	grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr));
}

.panditji-puja__cat {
	border: 1px solid var(--panditji-border, #e5ddd0);
	border-radius: 0.5rem;
	padding: 0.85rem 1rem;
	background: var(--panditji-surface, #fffdf9);
}

.panditji-puja__cat > a {
	text-decoration: none;
}

.panditji-puja__desc {
	margin-top: 0.35rem;
	font-size: 0.9rem;
	line-height: 1.45;
	opacity: 0.85;
}

.panditji-puja__name {
	text-decoration: none;
}

.panditji-puja__name:hover,
.panditji-puja__name:focus {
	text-decoration: underline;
}

.panditji-puja__article :is(p, ul, ol) {
	line-height: 1.65;
}

/* One column on a phone; the grid above already collapses, the search row
   needs telling. */
@media (max-width: 40rem) {
	.panditji-puja__search {
		flex-direction: column;
		align-items: stretch;
	}

	.panditji-puja__search .panditji-samagri__field,
	.panditji-puja__search .panditji-samagri__field--wide {
		flex: 1 1 auto;
	}
}

/* H4 — the template mapped to this booking's Puja. Lifted, not preselected:
   the Panditji still chooses. */
.panditji-samagri__template--recommended {
	border-left: 3px solid var(--avy-accent, #b45309);
	padding-left: 0.75rem;
}

/* ---------------------------------------------------------------
 * 1.41.3 — wizard steps as clickable tabs.
 *
 * The stepper markup became <a> elements so any step is reachable
 * directly. These rules only neutralise the anchor defaults the
 * browser adds and give the affordances a tab needs (pointer, hover,
 * focus ring); the existing .panditji-step--done/current/error
 * styling above is untouched and still drives the colours.
 * --------------------------------------------------------------- */
a.panditji-step {
	text-decoration: none;
	color: inherit;
	cursor: pointer;
	border-radius: var(--radius-sm, 6px);
	transition: background-color 0.15s ease;
}

a.panditji-step:hover,
a.panditji-step:focus-visible {
	background: var(--c-saffron-tint, #fbead2);
	text-decoration: none;
}

a.panditji-step:focus-visible {
	outline: 2px solid var(--c-saffron, #dd8a2e);
	outline-offset: 2px;
}

/* The connector line is decorative; it must not pick up hover paint. */
a.panditji-step:hover::after,
a.panditji-step:focus-visible::after {
	background: var(--c-border-strong, #e2d3b3);
}

.panditji-help--warning {
	color: var(--c-danger, #8a3a32);
	font-weight: 600;
}

/* 1.41.5: consistent controls and readable spacing across self-service pages. */
.panditji-wizard { padding: clamp(1rem, 3vw, 2.25rem); margin-block: 2rem; }
.panditji-wizard--samvad, .panditji-wizard--mentor { --pj-max: 68rem; }
.panditji-wizard--samvad .panditji-dashboard-section { text-align: start; margin-block: 2rem; }
.panditji-wizard--samvad .panditji-lead { max-width: 52rem; margin-inline: auto; }
.panditji-wizard .panditji-dashboard-summary { grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 1rem; }
.panditji-wizard .panditji-summary-card { min-width: 0; padding: 1.25rem; overflow-wrap: anywhere; }
.panditji-wizard .panditji-summary-card h3 { line-height: 1.55; letter-spacing: normal; text-transform: none; }
.panditji-wizard .panditji-summary-card--action { display: flex; flex-direction: column; align-items: start; }
.panditji-wizard .panditji-summary-card--action > a { margin-top: auto; }
.panditji-wizard .panditji-btn { min-height: 44px; border-radius: .65rem; line-height: 1.45; text-decoration: none !important; padding: .65rem 1rem; font: inherit; font-weight: 600; max-width: 100%; }
.panditji-wizard .panditji-btn--primary, .panditji-wizard .panditji-btn--submit { color: #fff; background: #87551d; border-color: #87551d; }
.panditji-wizard .panditji-btn--primary:hover, .panditji-wizard .panditji-btn--submit:hover { background: #694016; }
.panditji-wizard .panditji-btn--link { color: #68431d; background: #fffaf2; border-color: #d7c4a8; }
.panditji-wizard .panditji-btn--link:hover { background: #f3e9d9; }
.panditji-wizard .panditji-btn:disabled { opacity: .5; cursor: not-allowed; box-shadow: none; }
.panditji-wizard :is(a, button, input, select, textarea):focus-visible { outline: 3px solid #926629; outline-offset: 3px; }
.panditji-wizard .panditji-actions { gap: .65rem; flex-wrap: wrap; margin-top: 1rem; }
.panditji-wizard .panditji-actions .panditji-form { margin: 0; flex: 0 1 auto; }
.panditji-wizard .panditji-profile-nav { border-radius: .85rem; gap: .5rem; padding: .6rem; }
.panditji-wizard .panditji-section-nav { position: static; }
.panditji-wizard .panditji-section-nav .panditji-btn { flex: 1 1 150px; white-space: normal; text-align: center; }
.panditji-wizard .panditji-section-panel { padding: clamp(.85rem, 2.5vw, 1.5rem); margin-block: 1.5rem; }
.panditji-wizard .panditji-field { margin-bottom: 1.2rem; }
.panditji-wizard .panditji-field > label { display: block; font-weight: 600; margin-bottom: .45rem; }
.panditji-wizard :is(.panditji-input, .panditji-select, .panditji-textarea) { width: 100%; box-sizing: border-box; min-height: 44px; border-radius: .55rem; }
.panditji-wizard .panditji-status-badge { white-space: normal; max-width: 100%; letter-spacing: normal; text-transform: none; }
@media (max-width: 575px) {
    .panditji-wizard { margin-block: 1rem; border-radius: 1rem; }
    .panditji-wizard .panditji-summary-card { padding: 1rem; }
    .panditji-wizard .panditji-actions { align-items: stretch; }
    .panditji-wizard .panditji-actions > :is(a,button,form) { flex: 1 1 100%; width: 100%; }
    .panditji-wizard .panditji-actions form .panditji-btn { width: 100%; }
    .panditji-wizard .panditji-section-nav .panditji-btn { flex-basis: 100%; }
}

/* ================================================================
   1.42.0 — booking programme, release 1
   ================================================================ */

/* The site template paints every `.page-grid__main a:not(.btn)` saffron.
   That rule (0,2,1) outranked `.panditji-wizard .panditji-btn--primary`
   (0,2,0), so primary LINK buttons showed saffron text on a brown fill.
   Two classes + one class here (0,3,0) beat it without !important, and the
   colour is stated on hover/focus too because the template also sets those. */
.panditji-wizard .panditji-btn.panditji-btn--primary,
.panditji-wizard .panditji-btn.panditji-btn--primary:hover,
.panditji-wizard .panditji-btn.panditji-btn--primary:focus,
.panditji-wizard .panditji-btn.panditji-btn--submit,
.panditji-wizard .panditji-btn.panditji-btn--submit:hover,
.panditji-wizard .panditji-btn.panditji-btn--submit:focus {
	color: #fff;
	text-decoration: none;
}
.panditji-wizard .panditji-btn.panditji-btn--secondary,
.panditji-wizard .panditji-btn.panditji-btn--secondary:hover,
.panditji-wizard .panditji-btn.panditji-btn--secondary:focus {
	color: #68431d;
	background: #fffaf2;
	border-color: #b98a4e;
	text-decoration: none;
}
.panditji-wizard .panditji-btn.panditji-btn--link,
.panditji-wizard .panditji-btn.panditji-btn--link:hover,
.panditji-wizard .panditji-btn.panditji-btn--link:focus {
	color: #68431d;
	text-decoration: none;
}
.panditji-wizard .panditji-btn--small {
	min-height: 36px;
	padding: .4rem .85rem;
	font-size: .85rem;
}
.panditji-actions--center {
	justify-content: center;
}

/* Status pills are information, not controls. */
.panditji-status-badge {
	cursor: default;
}

/* Directory filters: on a phone the row becomes a column, and the search
   box's flex-basis of 220px then became its HEIGHT. */
@media (max-width: 560px) {
	.panditji-directory-filters__search {
		flex: 0 0 auto;
		width: 100%;
	}
	/* One Panditji per screen was too little: a compact row card instead. */
	.panditji-directory-card {
		display: grid;
		grid-template-columns: 96px 1fr;
		align-items: start;
	}
	.panditji-directory-card__photo {
		aspect-ratio: 1 / 1;
		border-radius: 0;
	}
	.panditji-directory-card__body {
		padding: .75rem .9rem;
	}
	.panditji-directory-card__name {
		font-size: 1.05rem;
	}
}

/* Booking form */
.panditji-fieldset {
	border: 0;
	padding: 0;
	margin: 0 0 1.2rem;
	min-width: 0;
}
.panditji-fieldset > legend {
	font-weight: 600;
	margin-bottom: .45rem;
	padding: 0;
}
.panditji-field-error {
	color: #9b1c1c;
	font-weight: 600;
	margin: .35rem 0 0;
}
.panditji-field-error[hidden] {
	display: none;
}
.panditji-input.is-invalid {
	border-color: #9b1c1c;
	outline-color: #9b1c1c;
}
.panditji-profile__cta {
	margin-top: .75rem;
}
.panditji-contact a {
	overflow-wrap: anywhere;
}

/* "Find a Panditji for this Puja" — one card per Panditji, services inside. */
.panditji-puja-cards {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 1rem;
}
.panditji-puja-card {
	display: grid;
	grid-template-columns: 88px 1fr;
	gap: 1rem;
	border: 1px solid var(--c-border, #ede2cd);
	border-radius: var(--radius-lg, 18px);
	padding: 1rem;
	background: var(--c-bg, #fffdf9);
}
.panditji-puja-card__photo {
	width: 88px;
	height: 88px;
	border-radius: 50%;
	overflow: hidden;
	background: var(--c-bg-alt, #f4ecd8);
	display: flex;
	align-items: center;
	justify-content: center;
}
.panditji-puja-card__photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.panditji-puja-card__photo .panditji-directory-card__placeholder {
	font-size: 2.2rem;
}
.panditji-puja-card__body {
	min-width: 0;
}
.panditji-puja-card__name {
	margin: 0 0 .25rem;
	display: flex;
	flex-wrap: wrap;
	gap: .4rem .6rem;
	align-items: center;
}
.panditji-puja-card__meta {
	margin: 0 0 .6rem;
	color: var(--c-ink-soft, #6b6259);
	font-size: .9rem;
}
.panditji-puja-card__services {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: .5rem;
}
.panditji-puja-card__services li {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .35rem .75rem;
	padding: .55rem .75rem;
	border-radius: .65rem;
	background: var(--c-bg-alt, #f7f0e3);
}
.panditji-puja-card__service-title {
	font-weight: 600;
	flex: 1 1 12rem;
}
.panditji-puja-card__service-meta {
	color: var(--c-ink-soft, #6b6259);
	font-size: .9rem;
}
@media (max-width: 560px) {
	.panditji-puja-card {
		grid-template-columns: 64px 1fr;
		padding: .85rem;
	}
	.panditji-puja-card__photo {
		width: 64px;
		height: 64px;
	}
	.panditji-puja-card__services li .panditji-btn {
		flex: 1 1 100%;
	}
}

/* ================================================================
   1.43.0 — booking core: timeline, amounts, receipt links
   ================================================================ */
.panditji-timeline {
	margin-top: 1.5rem;
	border-top: 1px solid var(--c-border, #ede2cd);
	padding-top: 1rem;
}
.panditji-timeline__heading,
.panditji-amounts__heading {
	font-size: 1rem;
	margin: 0 0 .75rem;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .5rem;
}
.panditji-timeline__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: .6rem;
}
.panditji-timeline__item {
	display: grid;
	grid-template-columns: 2rem 1fr;
	gap: .5rem;
	align-items: start;
}
.panditji-timeline__icon {
	width: 2rem;
	height: 2rem;
	border-radius: 50%;
	background: var(--c-bg-alt, #f4ecd8);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: .95rem;
}
.panditji-timeline__item--cancelled .panditji-timeline__icon,
.panditji-timeline__item--declined .panditji-timeline__icon,
.panditji-timeline__item--expired .panditji-timeline__icon {
	background: #f6dcdc;
}
.panditji-timeline__item--confirmed .panditji-timeline__icon,
.panditji-timeline__item--completed .panditji-timeline__icon,
.panditji-timeline__item--payment_recorded .panditji-timeline__icon {
	background: #dff0dc;
}
.panditji-timeline__body {
	display: grid;
	gap: .15rem;
	min-width: 0;
}
.panditji-timeline__label {
	font-weight: 600;
}
.panditji-timeline__meta {
	color: var(--c-ink-soft, #6b6259);
	font-size: .85rem;
}
.panditji-timeline__note {
	font-size: .9rem;
	overflow-wrap: anywhere;
}

.panditji-amounts {
	margin-top: 1.25rem;
	padding: 1rem;
	border-radius: .85rem;
	background: var(--c-bg-alt, #f7f0e3);
}
.panditji-amounts__list {
	margin: 0;
	display: grid;
	gap: .35rem;
}
.panditji-amounts__list > div {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
}
.panditji-amounts__list dt {
	color: var(--c-ink-soft, #6b6259);
}
.panditji-amounts__list dd {
	margin: 0;
	font-weight: 600;
	text-align: right;
}
.panditji-amounts__total {
	border-top: 1px solid var(--c-border, #ded0b6);
	padding-top: .35rem;
	margin-top: .2rem;
}
.panditji-amounts__total dd {
	font-size: 1.05rem;
}
.panditji-amounts__note {
	margin: .6rem 0 0;
	font-size: .9rem;
}

/* ================================================================
   1.44.0 — search and matching: calendar, directory extras, muhurat
   ================================================================ */
.panditji-calendar {
	margin: 0 0 1.2rem;
	padding: .85rem;
	border: 1px solid var(--c-border, #ede2cd);
	border-radius: .85rem;
	background: var(--c-bg, #fffdf9);
	max-width: 26rem;
}
.panditji-calendar__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: .5rem;
}
.panditji-calendar__nav {
	min-width: 2.2rem;
	min-height: 2.2rem;
	border: 1px solid var(--c-border, #ded0b6);
	border-radius: .5rem;
	background: #fff;
	font-size: 1.2rem;
	cursor: pointer;
}
.panditji-calendar__grid {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: .25rem;
}
.panditji-calendar__dow {
	text-align: center;
	font-size: .75rem;
	color: var(--c-ink-soft, #6b6259);
	padding-bottom: .2rem;
}
.panditji-calendar__day,
.panditji-calendar__blank {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 2.4rem;
	border-radius: .5rem;
	font: inherit;
	border: 1px solid transparent;
	color: var(--c-ink-soft, #b0a595);
}
.panditji-calendar__day--free {
	background: #dff0dc;
	border-color: #b9dcb1;
	color: #1f3d1a;
	font-weight: 600;
	cursor: pointer;
}
.panditji-calendar__day--free:hover,
.panditji-calendar__day--free:focus-visible {
	background: #c9e6c2;
}
.panditji-calendar__day--free.is-selected {
	background: #87551d;
	border-color: #87551d;
	color: #fff;
}

.panditji-directory-filters__more {
	margin-top: .5rem;
}
.panditji-directory-filters__more > summary {
	list-style: none;
	display: inline-flex;
	width: auto;
}
.panditji-directory-filters__more > summary::-webkit-details-marker {
	display: none;
}
.panditji-directory-filters__more[open] > summary {
	margin-bottom: .5rem;
}
.panditji-directory-filters__date-label {
	display: flex;
	flex-direction: column;
	gap: .25rem;
	flex: 1 1 10rem;
	min-width: 0;
}
.panditji-directory-filters__date-label > select.panditji-input,
.panditji-directory-filters__date-label > input.panditji-input {
	flex: 0 0 auto;
	width: 100%;
	height: auto;
}
/* Must follow the rule above: on a phone the row is a column, and the
   10rem basis would otherwise become the label's height. */
@media (max-width: 560px) {
	.panditji-directory-filters__date-label {
		flex: 0 0 auto;
		width: 100%;
	}
}
.panditji-directory-filters__date-text {
	font-size: .85rem;
	color: var(--c-ink-soft, #6b6259);
}
.panditji-directory-count {
	margin: 0 0 .75rem;
}
.panditji-directory-card__facts {
	display: flex;
	flex-wrap: wrap;
	gap: .35rem .75rem;
	margin: .5rem 0 0;
	font-size: .9rem;
}
.panditji-directory-card__fee {
	font-weight: 700;
	color: #68431d;
}
.panditji-directory-card__next {
	color: #1f5e2a;
}
.panditji-directory-card__next--none {
	color: var(--c-ink-soft, #6b6259);
}
.panditji-directory-card__place {
	font-weight: 600;
}

.panditji-muhurat {
	list-style: none;
	margin: 0 0 .75rem;
	padding: 0;
	display: grid;
	gap: .4rem;
}
.panditji-muhurat li {
	display: flex;
	flex-wrap: wrap;
	gap: .35rem .75rem;
	align-items: baseline;
	padding: .5rem .75rem;
	border-radius: .65rem;
	background: var(--c-bg-alt, #f7f0e3);
}
.panditji-muhurat a {
	font-weight: 600;
}

/* ---------------------------------------------------------------------------
   1.45.0 — trust and admin: verification levels, review facets, replies,
   Panditji concerns.
   --------------------------------------------------------------------------- */
.panditji-verified-badge--identity {
	color: #5b6b7a;
}
.panditji-verified-badge--trusted {
	color: #8a5a00;
}
.panditji-review-facets {
	border: 1px solid var(--c-line, #e6ded2);
	border-radius: 8px;
	padding: .5rem .75rem;
	margin: 0 0 .75rem;
}
.panditji-review-facets legend {
	font-size: .85rem;
	padding: 0 .25rem;
	color: var(--c-ink-soft, #6b6259);
}
.panditji-field--inline {
	display: flex;
	align-items: center;
	gap: .75rem;
	margin-bottom: .35rem;
}
.panditji-field--inline label {
	flex: 0 0 9rem;
	margin: 0;
}
.panditji-field--inline select.panditji-input {
	flex: 1 1 auto;
	width: auto;
	max-width: 12rem;
}
.panditji-review-facets__list {
	list-style: none;
	margin: .25rem 0 .5rem;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: .25rem 1rem;
	font-size: .85rem;
}
.panditji-review-facets__label {
	color: var(--c-ink-soft, #6b6259);
	margin-right: .25rem;
}
.panditji-review-facets__value {
	color: #b8860b;
	letter-spacing: .05em;
}
.panditji-review-facets__num {
	margin-left: .25rem;
	color: var(--c-ink-soft, #6b6259);
}
.panditji-review-reply {
	margin: .5rem 0 0 1rem;
	padding: .5rem .75rem;
	border-left: 3px solid var(--c-accent, #87551d);
	background: rgba(135, 85, 29, .05);
	border-radius: 0 6px 6px 0;
}
.panditji-review-reply p {
	margin: 0 0 .25rem;
}
.panditji-review-block {
	margin-top: 1rem;
	padding-top: .75rem;
	border-top: 1px solid var(--c-line, #e6ded2);
}
.panditji-review-block h4 {
	margin: 0 0 .35rem;
	font-size: 1rem;
}
.panditji-concern-list {
	list-style: none;
	margin: 0;
	padding: 0;
}
.panditji-concern-list li {
	padding: .6rem 0;
	border-bottom: 1px solid var(--c-line, #e6ded2);
	font-size: .92rem;
}
.panditji-concern-note {
	margin-top: .75rem;
}
@media (max-width: 560px) {
	.panditji-field--inline {
		flex-direction: column;
		align-items: stretch;
		gap: .25rem;
	}
	.panditji-field--inline label,
	.panditji-field--inline select.panditji-input {
		flex: 0 0 auto;
		width: 100%;
		max-width: none;
	}
}

/* 1.47.0 — online advance */
.panditji-advance {
	margin: .75rem 0;
}
.panditji-advance .panditji-form--inline {
	margin-top: .5rem;
}
.panditji-payment .panditji-summary-card {
	max-width: 36rem;
}

/* 1.48.0 — packages and preparation */
.panditji-packages {
	margin-top: .75rem;
}
.panditji-packages__heading {
	font-size: 1rem;
	margin: 0 0 .5rem;
}
.panditji-package {
	border: 1px solid var(--c-line, #e6ded2);
	border-radius: 10px;
	padding: .6rem .8rem;
	margin: 0 0 .5rem;
	background: #fff;
}
.panditji-package.is-selected,
.panditji-package:has(input:checked) {
	border-color: var(--c-accent, #87551d);
	box-shadow: 0 0 0 2px rgba(135, 85, 29, .12);
}
.panditji-package__head {
	display: flex;
	align-items: center;
	gap: .5rem;
	margin: 0;
	cursor: pointer;
}
.panditji-package__title {
	font-weight: 700;
	flex: 1 1 auto;
}
.panditji-package__fee {
	font-weight: 700;
	color: var(--c-accent, #87551d);
	white-space: nowrap;
}
.panditji-package__desc {
	margin: .35rem 0 0;
	font-size: .92rem;
}
.panditji-package__facts {
	list-style: none;
	margin: .35rem 0 0;
	padding: 0;
	font-size: .88rem;
	color: var(--c-ink-soft, #6b6259);
}
.panditji-package__facts li::before {
	content: "·";
	margin-right: .35rem;
}
.panditji-package__facts li.is-in::before {
	content: "✓";
	color: var(--c-success, #2e7d32);
}
.panditji-package__facts li.is-out::before {
	content: "✗";
	color: #a33;
}
.panditji-package--none {
	display: flex;
	gap: .5rem;
	align-items: center;
}
.panditji-packages__row.is-inactive .panditji-package {
	opacity: .6;
}
.panditji-field--check label {
	display: flex;
	gap: .5rem;
	align-items: center;
}
.panditji-prep {
	margin: 1rem 0;
	padding: .75rem 1rem;
	border: 1px solid var(--c-line, #e6ded2);
	border-radius: 10px;
	background: rgba(135, 85, 29, .04);
}
.panditji-prep__heading {
	margin: 0 0 .5rem;
	font-size: 1.05rem;
}
.panditji-prep__list {
	list-style: none;
	margin: 0;
	padding: 0;
}
.panditji-prep__item {
	display: grid;
	grid-template-columns: 1.5rem 9rem 1fr;
	gap: .25rem .5rem;
	padding: .35rem 0;
	border-bottom: 1px dashed var(--c-line, #e6ded2);
	font-size: .95rem;
}
.panditji-prep__item:last-child {
	border-bottom: 0;
}
.panditji-prep__icon {
	font-weight: 700;
}
.panditji-prep__item.is-done .panditji-prep__icon { color: var(--c-success, #2e7d32); }
.panditji-prep__item.is-todo .panditji-prep__icon { color: #b8860b; }
.panditji-prep__item.is-wait .panditji-prep__icon { color: var(--c-ink-soft, #6b6259); }
.panditji-prep__label {
	font-weight: 600;
}
.panditji-prep__pre {
	white-space: pre-wrap;
	font-family: inherit;
	font-size: .9rem;
	margin: .35rem 0 0;
}
@media (max-width: 560px) {
	.panditji-prep__item {
		grid-template-columns: 1.5rem 1fr;
	}
	.panditji-prep__detail {
		grid-column: 2;
	}
}

/* 1.48.0 — enquiry */
.panditji-hp {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}
.panditji-field-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0 1rem;
}
.panditji-radio {
	display: block;
	margin: .25rem 0;
}
.panditji-enquiry .panditji-form,
.panditji-enquiry .panditji-summary-card,
.panditji-myenquiries .panditji-summary-card {
	text-align: left;
}
.panditji-enquiry .panditji-form .panditji-actions {
	text-align: center;
}
.panditji-proposal ul {
	margin: .5rem 0;
}
@media (max-width: 560px) {
	.panditji-field-row {
		grid-template-columns: 1fr;
	}
}

/* 1.49.0 — muhurat chips, replacement page, samagri supplier */
.panditji-muhurat {
	display: flex;
	flex-wrap: wrap;
	gap: .35rem .5rem;
	align-items: center;
	margin: .25rem 0 .5rem;
}
.panditji-muhurat__chip {
	font-size: .9rem;
}
.panditji-muhurat__chip.is-active {
	outline: 2px solid var(--c-accent, #c9822b);
	border-radius: 999px;
}
.panditji-muhurat__link {
	font-size: .8rem;
	margin-right: .5rem;
}
.panditji-replace__card {
	margin-bottom: 1rem;
}
.panditji-replace__who {
	display: flex;
	gap: 1rem;
	align-items: flex-start;
}
.panditji-replace__photo {
	width: 64px;
	height: 64px;
	border-radius: 50%;
	object-fit: cover;
	flex: 0 0 64px;
}
.panditji-replace-offer {
	margin: 1rem 0;
}
.panditji-directory-card__customs {
	font-size: .85rem;
	opacity: .85;
}

/* 1.50.0 — phone usability pass */
.panditji-puja__name,
.panditji-muhurat a,
.panditji-puja__cat > a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding-block: .35rem;
}
.panditji-muhurat__chip {
	min-height: 40px;
}
.panditji-status-badge {
	font-size: .85rem;
}
.panditji-verified-badge {
	font-size: .8rem;
}
.panditji-summary-card > h2.panditji-summary-title,
.panditji-summary-card > h2 {
	font-size: 1.05rem;
	margin: 0 0 .35rem;
	line-height: 1.4;
}
.panditji-form__heading {
	font-size: 1.05rem;
	margin: 1.25rem 0 .5rem;
}
.panditji-directory-filters__quick > summary {
	list-style: none;
	cursor: pointer;
	width: 100%;
	text-align: left;
}
.panditji-directory-filters__quick > summary::-webkit-details-marker {
	display: none;
}
.panditji-directory-filters__quick > summary::before {
	content: "\2630\00a0";
}
.panditji-directory-filters__quick-body {
	display: grid;
	gap: .5rem;
}
@media (min-width: 768px) {
	.panditji-directory-filters__quick > summary {
		display: none;
	}
	.panditji-directory-filters__quick,
	.panditji-directory-filters__quick-body {
		display: contents;
	}
}
.panditji-sticky-cta {
	display: none;
}
@media (max-width: 767px) {
	.panditji-sticky-cta {
		display: flex;
		gap: .5rem;
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 40;
		padding: .5rem max(.75rem, env(safe-area-inset-left)) max(.5rem, env(safe-area-inset-bottom));
		background: var(--c-surface, #fff);
		border-top: 1px solid var(--c-border, #e5ddcf);
		box-shadow: 0 -4px 16px rgba(0, 0, 0, .08);
	}
	.panditji-sticky-cta .panditji-btn {
		flex: 1 1 0;
		justify-content: center;
		white-space: normal;
		text-align: center;
	}
	.panditji-profile {
		padding-bottom: 5.5rem;
	}
	#panditji-booking {
		scroll-margin-top: 4rem;
	}
}

/* 1.50.1 — account navigation: one segmented bar, same on every page, current page filled */
.panditji-wizard .panditji-profile-nav--tabs {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: .25rem;
	margin: 0 0 1.25rem;
	padding: .25rem;
	background: #fffaf2;
	border: 1px solid #e5d8c3;
	border-radius: .75rem;
}
.panditji-wizard .panditji-profile-nav--tabs .panditji-profile-nav__item {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 42px;
	padding: .45rem .5rem;
	border-radius: .5rem;
	font-size: .9rem;
	font-weight: 600;
	line-height: 1.3;
	text-align: center;
	text-decoration: none !important;
	color: #68431d;
	background: transparent;
}
.panditji-wizard .panditji-profile-nav--tabs .panditji-profile-nav__item:hover {
	background: #f3e9d9;
}
.panditji-wizard .panditji-profile-nav--tabs .panditji-profile-nav__item.is-active {
	background: #87551d;
	color: #fff;
}
.panditji-wizard .panditji-profile-nav--tabs .panditji-profile-nav__item:focus-visible {
	outline: 3px solid #926629;
	outline-offset: 2px;
}
@media (max-width: 575px) {
	.panditji-wizard .panditji-profile-nav--tabs {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* 1.51.0 — samagri kit */
.panditji-kit__price {
	font-size: 1.05rem;
	margin: .25rem 0 .5rem;
}
.panditji-kit__items > summary {
	list-style: none;
	cursor: pointer;
}
.panditji-kit__items > summary::-webkit-details-marker {
	display: none;
}
.panditji-kit__list {
	columns: 2;
	column-gap: 1.5rem;
	padding-left: 1.1rem;
	margin: .5rem 0;
}
@media (max-width: 575px) {
	.panditji-kit__list {
		columns: 1;
	}
}

/* 1.52.0 — multi-day events and teams */
.panditji-team__days {
	margin: .25rem 0 1rem 1.2rem;
	padding: 0;
}
.panditji-team__members {
	list-style: none;
	margin: .5rem 0 1rem;
	padding: 0;
}
.panditji-team__members > li {
	padding: .4rem 0;
	border-bottom: 1px solid var(--c-border, #ede2cd);
}
.panditji-team__members > li > * {
	margin-right: .4rem;
}
.panditji-team__members .panditji-form--inline {
	display: inline;
}
.panditji-team__invite {
	margin-top: .75rem;
}

/* 1.53.0 — urgent (short-notice) requests */
.panditji-status-badge--danger {
	background: #b3261e;
	color: #fff;
}
.panditji-urgent-note {
	margin: .5rem 0 0;
	padding: .6rem .8rem;
	border-left: 4px solid #b3261e;
	background: #fff4f2;
	border-radius: .4rem;
	font-size: .95rem;
}
.panditji-urgent-note--refused {
	border-left-color: #8a6d3b;
	background: #fff8e6;
}
.panditji-directory-card__urgent {
	display: inline-block;
	margin-right: .5rem;
	color: #b3261e;
	font-weight: 600;
}
.panditji-directory-filters__urgent .panditji-checkbox {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	min-height: 44px;
}

/* 1.55.0 — balance after the Puja */
.panditji-balance {
	border-left: 4px solid #2e7d32;
}

/* 1.57.0 — earnings statement */
.panditji-table-wrap {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	margin: 1rem 0;
}
.panditji-table {
	width: 100%;
	border-collapse: collapse;
	font-size: .95rem;
}
.panditji-table th,
.panditji-table td {
	padding: .5rem .6rem;
	border-bottom: 1px solid var(--c-border, #ede2cd);
	text-align: left;
	vertical-align: top;
}
.panditji-table th {
	font-weight: 600;
	white-space: nowrap;
}
.panditji-table .panditji-num {
	text-align: right;
	white-space: nowrap;
}
.panditji-earnings__figure {
	font-size: 1.4rem;
	font-weight: 700;
	margin: .25rem 0 0;
}
.panditji-earnings__filter {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
	align-items: center;
	margin: 1rem 0;
}

/* 1.58.0 — Panditji → Yajman feedback */
.panditji-rating-field {
	border: 0;
	padding: 0;
	margin: 0 0 .5rem;
}
.panditji-rating-field legend {
	font-weight: 600;
	margin-bottom: .25rem;
}
.panditji-rating-field .panditji-radio {
	display: inline-block;
	margin-right: .6rem;
}
.panditji-yajman-score {
	margin-top: -.25rem;
}

/* 1.59.0 — per-day slots */
#panditji-day-slots {
	margin-top: .5rem;
	padding: .5rem .75rem;
	border-left: 3px solid var(--c-border, #ede2cd);
}

/* 1.60.0 — urgent offers, panchang */
.panditji-urgent-offer {
	border-left: 4px solid #b3261e;
}
.panditji-observances {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr));
	gap: .35rem .75rem;
}
.panditji-panchang-hint {
	color: #6b4a1e;
}

/* 1.61.0: Yajman dashboard lists, kit coupon field */
.panditji-dashboard-list {
	list-style: none;
	margin: 0 0 .5rem;
	padding: 0;
}
.panditji-dashboard-list li {
	padding: .6rem 0;
	border-bottom: 1px solid #ede2cd;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .35rem .6rem;
}
.panditji-dashboard-list li:last-child {
	border-bottom: 0;
}
.panditji-dashboard-list li > a:first-child {
	flex: 1 1 14rem;
	min-width: 0;
}
.panditji-yajman-dashboard__pay {
	border-left: 4px solid #c8811b;
}
.panditji-input--short {
	max-width: 14rem;
	text-transform: uppercase;
}
.panditji-kit-coupon {
	margin-top: .5rem;
}
.panditji-kit-coupon__applied {
	color: #2f6b2f;
}

/* 1.63.0: honour the visitor's reduced-motion preference */
@media (prefers-reduced-motion: reduce) {
	.panditji-wizard *,
	.panditji-dashboard *,
	.panditji-directory *,
	.panditji-profile * {
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		scroll-behavior: auto !important;
	}
}

/* 1.65.0: Avyani for Android page */
.panditji-app__header { display: flex; align-items: center; gap: 1rem; }
.panditji-app__icon { width: 96px; height: 96px; border-radius: 22px; box-shadow: 0 2px 8px rgba(43, 38, 34, .18); flex: none; }
.panditji-app__button { font-size: 1.05rem; padding: .9rem 1.6rem; }
.panditji-app__facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); gap: .5rem 1rem; margin: 1rem 0 0; }
.panditji-app__facts div { display: flex; flex-direction: column; gap: .15rem; }
.panditji-app__facts dt { color: #6b6259; font-size: .85rem; }
.panditji-app__facts dd { margin: 0; }
.panditji-app__hash { font-size: .75rem; word-break: break-all; }
.panditji-app__steps li, .panditji-app__what li { margin: .4rem 0; }
.panditji-directory-app { margin-left: .5rem; white-space: nowrap; }

/* 1.66.0: app home tiles */
.panditji-apphome { padding: .25rem 0 1rem; }
.panditji-apphome__hello { margin: .5rem 0 1rem; }
.panditji-apphome__greeting { margin: 0; color: #8a5a1e; font-size: .95rem; }
.panditji-apphome__title { margin: .1rem 0 .25rem; font-size: 1.6rem; }
.panditji-apphome__sub { margin: 0; color: #6b6259; font-size: .95rem; }
.panditji-apphome__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
@media (min-width: 560px) { .panditji-apphome__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 900px) { .panditji-apphome__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.panditji-tile { display: flex; flex-direction: column; align-items: flex-start; gap: .35rem; min-height: 7.5rem; padding: .9rem .9rem .8rem; border-radius: 18px; background: #fff; border: 1px solid #ede2cd; box-shadow: 0 2px 8px rgba(43, 38, 34, .06); text-decoration: none !important; color: #2b2622; transition: transform .12s ease, box-shadow .12s ease; }
.panditji-tile:active { transform: scale(.98); }
.panditji-tile:focus-visible { outline: 3px solid #dd8a2e; outline-offset: 2px; }
.panditji-tile__icon { width: 44px; height: 44px; border-radius: 14px; display: grid; place-items: center; background: #fbead2; color: #a35c16; }
.panditji-tile__icon svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.panditji-tile--kundali .panditji-tile__icon { background: #efe3f7; color: #5b3a8a; }
.panditji-tile--panchang .panditji-tile__icon { background: #fdf0c8; color: #8a6d1d; }
.panditji-tile--puja .panditji-tile__icon { background: #fbe4d6; color: #b3421e; }
.panditji-tile--panditji .panditji-tile__icon { background: #e3edf7; color: #2c5a8a; }
.panditji-tile--samagri .panditji-tile__icon { background: #e6efe4; color: #27672b; }
.panditji-tile--samvad .panditji-tile__icon { background: #fbead2; color: #8a5a1e; }
.panditji-tile--vamshavali .panditji-tile__icon { background: #e8f1ee; color: #1f6b5a; }
.panditji-tile--dravya .panditji-tile__icon { background: #f7e4e1; color: #8a3a32; }
.panditji-tile--library .panditji-tile__icon { background: #eee9de; color: #5f4b2a; }
.panditji-tile--bookings .panditji-tile__icon, .panditji-tile--login .panditji-tile__icon, .panditji-tile--account .panditji-tile__icon { background: #2b2622; color: #f4ecd8; }
.panditji-tile__label { font-weight: 700; font-size: 1.02rem; line-height: 1.25; }
.panditji-tile__hint { color: #6b6259; font-size: .8rem; line-height: 1.3; }
.panditji-apphome__lang { text-align: center; margin: 1.25rem 0 0; font-size: .9rem; }

/* 1.70.0: the Mentor's own pages elsewhere */
.panditji-social-links { list-style: none; margin: 0 0 .5rem; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem .75rem; }
.panditji-social-links__item a { display: inline-flex; align-items: center; gap: .4rem; padding: .45rem .8rem; border: 1px solid #e3dccb; border-radius: 999px; background: #fbf8f1; text-decoration: none; color: #2b2622; min-height: 44px; }
.panditji-social-links__item a:hover, .panditji-social-links__item a:focus { border-color: #c8732a; }
.panditji-social-links__name { font-weight: 700; }
.panditji-social-links__host { color: #6b6259; font-size: .85rem; word-break: break-all; }

/* 1.73.0: the pages elsewhere, as icons under the name */
.panditji-social { list-style: none; margin: .6rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.panditji-social__item a { display: inline-flex; align-items: center; gap: .4rem; min-height: 44px; padding: .4rem .85rem .4rem .6rem; border: 1px solid #e3dccb; border-radius: 999px; background: #fbf8f1; color: #2b2622; text-decoration: none; font-size: .9rem; font-weight: 600; }
.panditji-social__item a:hover, .panditji-social__item a:focus { border-color: #c8732a; color: #8a3b12; }
.panditji-social__item svg { width: 22px; height: 22px; flex: 0 0 22px; }
.panditji-social__item--facebook svg { color: #1877f2; }
.panditji-social__item--youtube svg { color: #e53935; }
.panditji-social__item--instagram svg { color: #c13584; }
.panditji-social__item--telegram svg { color: #2aabee; }
.panditji-social__item--website svg, .panditji-social__item--x svg { color: #2b2622; }

/* 1.75.0: the signed-in person's own roles on the role picker */
.panditji-myroles__list { list-style: none; margin: .5rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: .6rem; }
.mentor-dashboard-public { margin: .25rem 0 0; }
