/* LeadHub components – mobile-first, RTL-native (logical properties), WCAG AA contrast. Theme tokens override the fallbacks. */
:root {
	--lh-primary: #0b3a66;
	--lh-primary-600: #0f4c85;
	--lh-accent: #c2410c;
	--lh-accent-700: #9a3412;
	--lh-bg: #f5f7fb;
	--lh-surface: #ffffff;
	--lh-text: #172033;
	--lh-muted: #4b5565;
	--lh-border: #d9dfe8;
	--lh-success: #0a6b2c;
	--lh-danger: #b42318;
	--lh-focus: #1d4ed8;
	--lh-radius: 12px;
	--lh-radius-sm: 8px;
	--lh-shadow: 0 1px 2px rgba(16, 24, 40, .06), 0 8px 24px rgba(16, 24, 40, .08);
	--lh-gap: clamp(1rem, 2.5vw, 1.5rem);
}

.lh-hp { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.screen-reader-text { border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; word-wrap: normal !important; }

/* Buttons */
.lh-btn { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; min-height: 48px; padding: .75rem 1.25rem; border-radius: var(--lh-radius-sm); border: 2px solid transparent; font: inherit; font-weight: 700; line-height: 1.2; text-decoration: none; cursor: pointer; transition: background-color .15s, border-color .15s, color .15s; }
.lh-btn--primary { background: var(--lh-accent); color: #fff; }
.lh-btn--primary:hover { background: var(--lh-accent-700); color: #fff; }
.lh-btn--ghost { background: transparent; color: var(--lh-primary); border-color: var(--lh-border); }
.lh-btn--ghost:hover { border-color: var(--lh-primary); }
.lh-btn--block { width: 100%; }
.lh-btn--lg { min-height: 56px; padding-inline: 2rem; font-size: 1.125rem; }
.lh-btn[disabled] { opacity: .7; cursor: progress; }
.lh-btn:focus-visible, .lh-form :focus-visible, .lh-calc :focus-visible, .lh-faq__q:focus-visible { outline: 3px solid var(--lh-focus); outline-offset: 2px; }

/* Form card */
.lh-form-card { background: var(--lh-surface); border: 1px solid var(--lh-border); border-radius: var(--lh-radius); box-shadow: var(--lh-shadow); padding: clamp(1rem, 3vw, 1.75rem); color: var(--lh-text); }
.lh-form-card__title { margin: 0 0 .25rem; font-size: clamp(1.25rem, 3vw, 1.5rem); line-height: 1.25; color: var(--lh-primary); }
.lh-form-card__subtitle { margin: 0 0 .75rem; color: var(--lh-muted); font-size: .95rem; }
.lh-steps-indicator { margin: 0 0 .5rem; font-size: .875rem; font-weight: 700; color: var(--lh-primary-600); }
.lh-form-card[data-step] .lh-steps-indicator::after { content: ""; display: block; height: 4px; margin-top: .4rem; border-radius: 4px; background: linear-gradient(to left, var(--lh-accent) var(--lh-progress, 33%), var(--lh-border) 0); }
.lh-form-card[data-step="2"] { --lh-progress: 66%; }
.lh-form-card[data-step="3"] { --lh-progress: 100%; }

.lh-form { display: grid; gap: 1rem; }
.lh-step { border: 0; margin: 0; padding: 0; display: grid; gap: 1rem; min-width: 0; }
.lh-step__title { font-weight: 700; font-size: 1.05rem; margin-bottom: .25rem; padding: 0; }
.lh-step__nav { display: flex; gap: .75rem; justify-content: space-between; flex-wrap: wrap; }
.lh-step__nav .lh-btn--primary { flex: 1 1 auto; }
.lh-field { display: grid; gap: .35rem; min-width: 0; border: 0; padding: 0; margin: 0; }
.lh-field > label, .lh-field > legend, .lh-choices > legend { font-weight: 600; font-size: .95rem; padding: 0; }
.lh-field--flush { gap: 0; }
.lh-form input[type="text"], .lh-form input[type="tel"], .lh-form input[type="email"], .lh-form input[type="number"], .lh-form input[type="url"], .lh-form input[type="file"], .lh-form select, .lh-form textarea,
.lh-calc input[type="number"], .lh-calc select {
	width: 100%; min-height: 48px; padding: .65rem .8rem; border: 1px solid #8a94a6; border-radius: var(--lh-radius-sm); background: #fff; color: var(--lh-text); font: inherit; font-size: 1rem; box-sizing: border-box;
}
.lh-form textarea { min-height: 96px; resize: vertical; }
.lh-form input[type="file"] { padding: .5rem; }
.lh-form [aria-invalid="true"] { border-color: var(--lh-danger); box-shadow: 0 0 0 1px var(--lh-danger); }
.lh-req { color: var(--lh-danger); }
.lh-optional, .lh-unit { color: var(--lh-muted); font-weight: 400; font-size: .875rem; }
.lh-help { margin: 0; color: var(--lh-muted); font-size: .875rem; }
.lh-error { margin: 0; color: var(--lh-danger); font-size: .875rem; font-weight: 600; }
.lh-error::before { content: "⚠ "; }
.lh-form__errors { background: #fef3f2; border: 1px solid #fecdca; color: #7a271a; border-radius: var(--lh-radius-sm); padding: .75rem 1rem; }
.lh-form__errors p { margin: 0 0 .25rem; }
.lh-form__errors ul { margin: 0; padding-inline-start: 1.25rem; }
.lh-form__errors a { color: inherit; }
.lh-grid-2 { display: grid; gap: 1rem; }
@media (min-width: 560px) { .lh-grid-2 { grid-template-columns: 1fr 1fr; } }

.lh-choices { display: grid; gap: .5rem; }
.lh-choices--inline { grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); }
.lh-choices > legend { margin-bottom: .35rem; }
.lh-choice { display: flex; align-items: center; gap: .6rem; min-height: 44px; padding: .5rem .75rem; border: 1px solid var(--lh-border); border-radius: var(--lh-radius-sm); cursor: pointer; background: #fff; }
.lh-choice:has(input:checked) { border-color: var(--lh-primary-600); background: #eef4fb; box-shadow: inset 0 0 0 1px var(--lh-primary-600); }
.lh-choice input, .lh-check input { width: 20px; height: 20px; accent-color: var(--lh-primary-600); flex: none; margin: 0; }
.lh-check { display: flex; gap: .6rem; align-items: flex-start; cursor: pointer; line-height: 1.5; }
.lh-check input { margin-top: .15rem; }
.lh-check--secondary { font-size: .9rem; color: var(--lh-muted); margin-top: .5rem; }
.lh-consent { background: var(--lh-bg); border-radius: var(--lh-radius-sm); padding: .75rem; font-size: .9rem; }
.lh-consent a { color: var(--lh-primary-600); }
.lh-disclosure { margin: 0; font-size: .8rem; color: var(--lh-muted); text-align: center; }
.lh-form-success { outline: none; }
.lh-form-success__title { color: var(--lh-success); margin-top: 0; }
.lh-next-steps { padding-inline-start: 1.25rem; line-height: 1.7; }
.lh-checklist { display: grid; gap: .35rem; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); max-height: 320px; overflow: auto; padding: .5rem; border: 1px solid var(--lh-border); border-radius: var(--lh-radius-sm); }
.lh-form[aria-busy="true"] { opacity: .85; }
[data-lh-questions][aria-busy="true"] { opacity: .5; }

/* Notices */
.lh-notice { padding: .75rem 1rem; border-radius: var(--lh-radius-sm); background: var(--lh-bg); border: 1px solid var(--lh-border); }
.lh-notice--success { background: #ecfdf3; border-color: #abefc6; color: #05603a; }
.lh-notice--error { background: #fef3f2; border-color: #fecdca; color: #7a271a; }

/* Price table */
.lh-table-wrap { overflow-x: auto; border: 1px solid var(--lh-border); border-radius: var(--lh-radius); background: var(--lh-surface); }
.lh-table-wrap:focus-visible { outline: 3px solid var(--lh-focus); }
.lh-price-table { width: 100%; border-collapse: collapse; font-size: .95rem; }
.lh-price-table th, .lh-price-table td { padding: .75rem 1rem; text-align: start; border-bottom: 1px solid var(--lh-border); vertical-align: top; }
.lh-price-table thead th { background: var(--lh-bg); font-size: .85rem; color: var(--lh-muted); }
.lh-price-table tbody tr:last-child > * { border-bottom: 0; }
.lh-price-table tbody th small { display: block; font-weight: 400; color: var(--lh-muted); font-size: .8rem; }
.lh-price-table__range { font-weight: 700; white-space: nowrap; color: var(--lh-primary); }
.lh-price-note { font-size: .85rem; color: var(--lh-muted); margin-top: .5rem; }
.lh-price-chip { display: inline-flex; flex-wrap: wrap; gap: .25rem .5rem; align-items: baseline; background: #fff; border: 1px solid var(--lh-border); border-radius: 999px; padding: .4rem 1rem; margin: .5rem 0 0; }
.lh-price-chip span, .lh-price-chip small { color: var(--lh-muted); font-size: .85rem; }
.lh-price-chip strong { color: var(--lh-primary); font-size: 1.1rem; }

/* FAQ */
.lh-faq { display: grid; gap: .5rem; }
.lh-faq__item { background: var(--lh-surface); border: 1px solid var(--lh-border); border-radius: var(--lh-radius-sm); }
.lh-faq__q { cursor: pointer; padding: 1rem 1.25rem; font-weight: 700; list-style: none; display: flex; justify-content: space-between; gap: 1rem; }
.lh-faq__q::-webkit-details-marker { display: none; }
.lh-faq__q::after { content: "+"; font-size: 1.25rem; line-height: 1; color: var(--lh-primary-600); }
.lh-faq__item[open] .lh-faq__q::after { content: "−"; }
.lh-faq__a { padding: 0 1.25rem 1rem; color: var(--lh-text); }
.lh-faq__a p { margin: 0 0 .5rem; }

/* Calculator */
.lh-calc { background: var(--lh-surface); border: 1px solid var(--lh-border); border-radius: var(--lh-radius); padding: clamp(1rem, 3vw, 1.75rem); display: grid; gap: 1.25rem; }
@media (min-width: 900px) { .lh-calc { grid-template-columns: 1.2fr 1fr; align-items: start; } .lh-calc__title, .lh-calc__intro { grid-column: 1 / -1; } }
.lh-calc__title { margin: 0; color: var(--lh-primary); }
.lh-calc__intro { margin: 0; color: var(--lh-muted); }
.lh-calc__form { display: grid; gap: 1rem; }
.lh-calc__num { display: flex; gap: .75rem; align-items: center; }
.lh-calc input[type="range"] { width: 100%; accent-color: var(--lh-primary-600); }
.lh-calc__result { background-color: #0b3a66; background-image: linear-gradient(160deg, #0b3a66, #134f8a); color: #fff; border-radius: var(--lh-radius); padding: 1.25rem; display: grid; gap: .5rem; position: sticky; top: 1rem; }
.lh-calc__result-label { margin: 0; color: #e6eef8; }
.lh-calc__result-value { margin: 0; font-size: clamp(1.5rem, 4vw, 2.1rem); font-weight: 800; letter-spacing: -.01em; }
.lh-calc__extra { display: grid; grid-template-columns: auto 1fr; gap: .25rem 1rem; margin: 0; }
.lh-calc__extra dt { color: #dce7f4; }
.lh-calc__extra dd { margin: 0; font-weight: 700; }
.lh-calc__explanation, .lh-calc__disclaimer { margin: 0; font-size: .875rem; color: #e6eef8; }
.lh-calc__result .lh-btn--primary { background: #fff; color: var(--lh-accent-700); }
.lh-calc__result .lh-btn--primary:hover { background: #fff7ed; }
.lh-calc__result :focus-visible { outline-color: #fff; }

/* Cards / grids */
.lh-services, .lh-cards { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--lh-gap); }
.lh-services { grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); }
.lh-cards--2 { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.lh-cards--3 { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.lh-service-card, .lh-card-item { position: relative; background: var(--lh-surface); border: 1px solid var(--lh-border); border-radius: var(--lh-radius); padding: 1.25rem; transition: box-shadow .15s, border-color .15s; }
.lh-service-card:hover, .lh-card-item--link:hover { box-shadow: var(--lh-shadow); border-color: #b9c3d3; }
.lh-service-card__title, .lh-card-item h3, .lh-card-item__title { margin: 0 0 .35rem; font-size: 1.1rem; }
.lh-service-card__title a, .lh-card-item__title a { color: var(--lh-primary); text-decoration: none; }
.lh-service-card__title a::after, .lh-card-item__title a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.lh-service-card__title a:focus-visible { outline: none; }
.lh-service-card:focus-within { outline: 3px solid var(--lh-focus); outline-offset: 2px; }
.lh-service-card__desc, .lh-card-item p { margin: 0; color: var(--lh-muted); font-size: .95rem; }
.lh-service-card__price { margin: .75rem 0 0; font-weight: 700; color: var(--lh-accent-700); }

.lh-factors { list-style: none; margin: 0; padding: 0; display: grid; gap: .75rem; }
.lh-factor { background: var(--lh-surface); border: 1px solid var(--lh-border); border-inline-start: 4px solid var(--lh-border); border-radius: var(--lh-radius-sm); padding: 1rem 1.25rem; }
.lh-factor--high { border-inline-start-color: var(--lh-accent); }
.lh-factor--medium { border-inline-start-color: #d97706; }
.lh-factor--low { border-inline-start-color: #6b7280; }
.lh-factor h3 { margin: 0 0 .25rem; font-size: 1.05rem; display: flex; gap: .5rem; flex-wrap: wrap; align-items: center; }
.lh-factor__impact { font-size: .75rem; font-weight: 600; background: var(--lh-bg); border-radius: 999px; padding: .1rem .6rem; color: var(--lh-muted); }
.lh-factor p { margin: 0; color: var(--lh-muted); }

.lh-checklist-front { list-style: none; padding: 0; margin: 0; display: grid; gap: .5rem; }
.lh-checklist-front li { padding-inline-start: 2rem; position: relative; }
.lh-checklist-front li::before { content: "✓"; position: absolute; inset-inline-start: 0; top: 0; width: 1.4rem; height: 1.4rem; border-radius: 50%; background: #ecfdf3; color: var(--lh-success); display: grid; place-items: center; font-weight: 800; font-size: .85rem; }

.lh-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--lh-gap); grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); counter-reset: none; }
.lh-steps__item { background: var(--lh-surface); border: 1px solid var(--lh-border); border-radius: var(--lh-radius); padding: 1.5rem; }
.lh-steps__num { display: grid; place-items: center; width: 2.5rem; height: 2.5rem; border-radius: 50%; background: var(--lh-primary); color: #fff; font-weight: 800; margin-bottom: .75rem; }
.lh-steps__item h3 { margin: 0 0 .35rem; font-size: 1.1rem; }
.lh-steps__item p { margin: 0; color: var(--lh-muted); }

.lh-why__list { padding-inline-start: 1.25rem; display: grid; gap: .5rem; line-height: 1.7; }
.lh-reviews { list-style: none; padding: 0; margin: 0; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.lh-review { background: var(--lh-surface); border: 1px solid var(--lh-border); border-radius: var(--lh-radius); padding: 1.25rem; }
.lh-review__stars { color: #b54708; margin: 0; letter-spacing: .1em; }
.lh-review__title { font-weight: 700; margin: .25rem 0; }
.lh-review blockquote { margin: 0; }
.lh-review__meta { color: var(--lh-muted); font-size: .85rem; margin: .5rem 0 0; }
.lh-gallery { display: grid; gap: .75rem; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }
.lh-gallery figure { margin: 0; }
.lh-gallery img { width: 100%; height: auto; border-radius: var(--lh-radius-sm); aspect-ratio: 4 / 3; object-fit: cover; }
.lh-gallery figcaption { font-size: .85rem; color: var(--lh-muted); }
.lh-local-links ul, .lh-article-list { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.lh-local-links a, .lh-article-list a { display: inline-block; padding: .5rem .9rem; border: 1px solid var(--lh-border); border-radius: 999px; background: var(--lh-surface); color: var(--lh-primary); text-decoration: none; }
.lh-article-list { display: grid; }
.lh-article-list a { border-radius: var(--lh-radius-sm); }
.lh-local-links a:hover, .lh-article-list a:hover { border-color: var(--lh-primary); }

/* Portal */
.lh-portal { display: grid; gap: 1rem; }
.lh-portal__filters { display: flex; flex-wrap: wrap; gap: .5rem; }
.lh-portal__filters a { padding: .4rem .8rem; border-radius: 999px; border: 1px solid var(--lh-border); text-decoration: none; }
.lh-portal__filters a[aria-current] { background: var(--lh-primary); color: #fff; border-color: var(--lh-primary); }
.lh-dl { display: grid; grid-template-columns: minmax(100px, max-content) 1fr; gap: .5rem 1rem; margin: 0; }
.lh-dl dt { font-weight: 700; color: var(--lh-muted); }
.lh-dl dd { margin: 0; }
.lh-thanks { max-width: 640px; margin-inline: auto; background: var(--lh-surface); border: 1px solid var(--lh-border); border-radius: var(--lh-radius); padding: 2rem; }

@media (prefers-reduced-motion: reduce) { .lh-btn, .lh-service-card, .lh-card-item { transition: none; } }
@media print { .lh-form-card, .lh-cta-band, .lh-aside { display: none !important; } }
