/* ==========================================================================
   Client plugins, aligned with the site design (tokens.css).
   Labtest Zote Forms (.lztf-*) and Labtest Zote Price Table (.lzt-table).
   Scoped under body.ltz so these rules win over the plugins' own stylesheets
   without editing the plugins (they stay upgradable from the client's ZIPs).
   ========================================================================== */

/* -------------------------------------------------------------- Forms */
.ltz .lztf-form-wrap { --lztf-blue: var(--c-brand); --lztf-green: var(--c-accent); --lztf-border: var(--c-border-strong); --lztf-error: var(--c-danger);
	max-width: 720px; margin: var(--sp-8) auto; color: var(--c-text); font-family: var(--font-body); }
.ltz .lztf-form-wrap .lztf-form { background: var(--c-white); border: 1px solid var(--c-border); border-radius: var(--r-lg); box-shadow: none; padding: var(--sp-8); font-size: var(--fs-base); }
.ltz .lztf-form-wrap .lztf-grid { gap: var(--sp-5) var(--sp-5); }
.ltz .lztf-form-wrap .lztf-field label,
.ltz .lztf-form-wrap .lztf-field legend { font: 600 var(--fs-sm)/1.4 var(--font-head); color: var(--c-ink); margin-bottom: var(--sp-2); padding: 0; }
.ltz .lztf-form-wrap .lztf-field label span[aria-hidden], .ltz .lztf-form-wrap .lztf-field legend span[aria-hidden] { color: var(--c-danger); }
.ltz .lztf-form-wrap .lztf-field input:not([type=checkbox]):not([type=radio]),
.ltz .lztf-form-wrap .lztf-field select,
.ltz .lztf-form-wrap .lztf-field textarea {
	min-height: 48px; padding: 12px 14px; border: 1px solid var(--c-border-strong); border-radius: var(--r-md);
	background: var(--c-white); color: var(--c-ink); font: 400 var(--fs-base)/1.4 var(--font-body);
	transition: border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);
}
.ltz .lztf-form-wrap .lztf-field textarea { min-height: 120px; }
.ltz .lztf-form-wrap .lztf-field input:focus, .ltz .lztf-form-wrap .lztf-field select:focus, .ltz .lztf-form-wrap .lztf-field textarea:focus { outline: none; border-color: var(--c-brand); box-shadow: var(--ring); }
.ltz .lztf-form-wrap .lztf-field [aria-invalid="true"] { border-color: var(--c-danger); }
.ltz .lztf-form-wrap fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.ltz .lztf-form-wrap .lztf-choice { display: flex; align-items: flex-start; gap: var(--sp-2); font: 400 var(--fs-sm)/1.5 var(--font-body) !important; color: var(--c-text); margin: var(--sp-2) 0 !important; cursor: pointer; }
.ltz .lztf-form-wrap .lztf-choice input { width: 18px; height: 18px; margin: 2px 0 0; flex: none; accent-color: var(--c-brand); }
.ltz .lztf-form-wrap .lztf-section h3 { font-size: var(--fs-md); margin: var(--sp-2) 0 0; }
.ltz .lztf-form-wrap .lztf-step > h3 { grid-column: 1 / -1; font-size: var(--fs-lg); margin: 0 0 var(--sp-1); }
.ltz .lztf-form-wrap .lztf-info { background: var(--c-surface); border: 0; border-left: 3px solid var(--c-brand); border-radius: var(--r-sm); padding: var(--sp-3) var(--sp-4); font-size: var(--fs-sm); }
.ltz .lztf-form-wrap .lztf-info p { margin: 0; }
.ltz .lztf-form-wrap .lztf-help { font-size: var(--fs-xs); color: var(--c-muted); }
.ltz .lztf-form-wrap .lztf-error { font-size: var(--fs-xs); font-weight: 600; color: var(--c-danger); }
.ltz .lztf-form-wrap .lztf-progress { margin-bottom: var(--sp-6); font: 400 var(--fs-xs)/1 var(--font-mono); color: var(--c-muted); }
.ltz .lztf-form-wrap .lztf-progress progress { height: 4px; border: 0; border-radius: 2px; background: var(--c-surface-2); appearance: none; -webkit-appearance: none; }
.ltz .lztf-form-wrap .lztf-progress progress::-webkit-progress-bar { background: var(--c-surface-2); border-radius: 2px; }
.ltz .lztf-form-wrap .lztf-progress progress::-webkit-progress-value { background: var(--c-accent); border-radius: 2px; }
.ltz .lztf-form-wrap .lztf-progress progress::-moz-progress-bar { background: var(--c-accent); border-radius: 2px; }
.ltz .lztf-form-wrap .lztf-actions { margin-top: var(--sp-6); gap: var(--sp-3); }
.ltz .lztf-form-wrap .lztf-actions button { min-height: 48px; padding: 12px 24px; border-radius: var(--r-pill); font: 600 var(--fs-base)/1.2 var(--font-head); transition: background var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out); }
.ltz .lztf-form-wrap .lztf-submit, .ltz .lztf-form-wrap .lztf-next { background: var(--c-brand); color: var(--c-white); border: 1px solid var(--c-brand); }
.ltz .lztf-form-wrap .lztf-submit:hover, .ltz .lztf-form-wrap .lztf-next:hover { background: var(--c-brand-hover); }
.ltz .lztf-form-wrap .lztf-back { background: var(--c-white); color: var(--c-ink); border: 1px solid var(--c-border-strong); }
.ltz .lztf-form-wrap .lztf-back:hover { border-color: var(--c-brand); color: var(--c-brand); }
.ltz .lztf-form-wrap .lztf-actions button:focus-visible { outline: none; box-shadow: var(--ring); }
.ltz .lztf-form-wrap .lztf-actions button[disabled] { opacity: .6; cursor: progress; }
.ltz .lztf-form-wrap .lztf-success, .ltz .lztf-form-wrap .lztf-failure { border-radius: var(--r-md); padding: var(--sp-4) var(--sp-5); font-size: var(--fs-sm); }
.ltz .lztf-form-wrap .lztf-success { background: var(--c-success-soft); border: 1px solid #b7dfc6; color: var(--c-ink); }
.ltz .lztf-form-wrap .lztf-failure { background: var(--c-danger-soft); border: 1px solid #f1c4bf; color: var(--c-ink); }
/* Telephone + country chooser */
.ltz .lztf-form-wrap .lztf-phone { gap: var(--sp-2); }
.ltz .lztf-form-wrap .lztf-country-list { border-color: var(--c-border-strong); border-radius: var(--r-md); box-shadow: var(--shadow-md); }
.ltz .lztf-form-wrap .lztf-country-list li[aria-selected=true], .ltz .lztf-form-wrap .lztf-country-list li:hover { background: var(--c-brand-soft); color: var(--c-brand); }
/* Inside the imported-page layout (content section body / prose) */
.ltz .content-section__body .lztf-form-wrap, .ltz .prose .lztf-form-wrap { margin-left: 0; }
.ltz .prose .lztf-form-wrap ul { padding: 4px; }
.ltz .prose .lztf-form-wrap li::before { display: none; }
@media (max-width: 600px) {
	.ltz .lztf-form-wrap .lztf-form { padding: var(--sp-5); }
	.ltz .lztf-form-wrap .lztf-actions button { flex: 1; }
}

/* -------------------------------------------------------------- Price table */
.ltz .lzt-table { --lzt-blue: var(--c-brand); --lzt-green: var(--c-accent); --lzt-border: var(--c-border); color: var(--c-text); font: 400 var(--fs-base)/1.5 var(--font-body); margin: var(--sp-6) 0; }
.ltz .lzt-table .lzt-tools { background: var(--c-surface); border: 1px solid var(--c-border); border-radius: var(--r-lg); padding: var(--sp-5); gap: var(--sp-4); }
.ltz .lzt-table label { font: 600 var(--fs-sm)/1.4 var(--font-head); color: var(--c-ink); }
.ltz .lzt-table input, .ltz .lzt-table select { min-height: 48px; margin-top: var(--sp-2); padding: 10px 14px; border: 1px solid var(--c-border-strong); border-radius: var(--r-md); color: var(--c-ink); font: 400 var(--fs-base)/1.4 var(--font-body); }
.ltz .lzt-table input:focus, .ltz .lzt-table select:focus { outline: none; border-color: var(--c-brand); box-shadow: var(--ring); }
.ltz .lzt-table .lzt-reset { background: var(--c-white); color: var(--c-ink); border: 1px solid var(--c-border-strong); border-radius: var(--r-pill); min-height: 48px; padding: 10px 20px; font: 600 var(--fs-sm)/1 var(--font-head); }
.ltz .lzt-table .lzt-reset:hover { border-color: var(--c-brand); color: var(--c-brand); }
.ltz .lzt-table a:focus-visible, .ltz .lzt-table button:focus-visible { outline: none; box-shadow: var(--ring); border-radius: var(--r-sm); }
.ltz .lzt-table table { border: 1px solid var(--c-border); border-radius: var(--r-lg); border-collapse: separate; border-spacing: 0; overflow: hidden; }
.ltz .lzt-table thead th { background: var(--c-surface); color: var(--c-muted); font: 400 var(--fs-xs)/1.2 var(--font-mono); text-transform: none; letter-spacing: 0; padding: var(--sp-3) var(--sp-4); border-bottom: 1px solid var(--c-border); }
.ltz .lzt-table th, .ltz .lzt-table td { padding: var(--sp-3) var(--sp-4); border-bottom: 1px solid var(--c-border); }
.ltz .lzt-table tbody tr:last-child th, .ltz .lzt-table tbody tr:last-child td { border-bottom: 0; }
.ltz .lzt-table tbody tr:hover { background: #fbfbf9; }
.ltz .lzt-table tbody th { font-weight: 500; }
.ltz .lzt-table tbody th a { color: var(--c-ink); text-decoration: none; font-weight: 600; }
.ltz .lzt-table tbody th a:hover { color: var(--c-brand); text-decoration: underline; }
.ltz .lzt-table .lzt-price { color: var(--c-ink); font-variant-numeric: tabular-nums; white-space: nowrap; }
.ltz .lzt-table .lzt-price del { color: var(--c-muted); }
.ltz .lzt-table .lzt-price ins { color: var(--c-accent); }
.ltz .lzt-table .lzt-enquire { display: inline-flex; align-items: center; gap: 6px; background: var(--c-accent); color: var(--c-white); border-radius: var(--r-pill); padding: 8px 14px; min-height: 36px; font: 600 var(--fs-sm)/1 var(--font-head); text-decoration: none; }
.ltz .lzt-table .lzt-enquire:hover { background: var(--c-accent-hover); color: var(--c-white); }
.ltz .lzt-table .lzt-count { font: 400 var(--fs-xs)/1 var(--font-mono); color: var(--c-muted); margin: var(--sp-5) 0 var(--sp-3); }
.ltz .lzt-table .lzt-note { font-size: var(--fs-sm); color: var(--c-muted); }
.ltz .lzt-table .lzt-empty { background: var(--c-surface); border-radius: var(--r-md); padding: var(--sp-6); text-align: center; }
.ltz .prose .lzt-table table { margin: 0; display: table; width: 100%; table-layout: fixed; overflow: hidden; }
.ltz .prose .lzt-table th, .ltz .prose .lzt-table td { font-size: var(--fs-sm); }
@media (max-width: 760px) {
	.ltz .lzt-table .lzt-tools { padding: var(--sp-4); }
	.ltz .lzt-table th, .ltz .lzt-table td { padding: var(--sp-3); }
	.ltz .lzt-table .lzt-enquire { padding: 8px 10px; font-size: var(--fs-xs); }
}
