/*
 * HomeService components.
 * Colors, radii and spacing come from the design tokens defined by the theme
 * (homeservice-child/assets/css/base.css, :root). No animation or transition
 * is used anywhere: state changes are immediate.
 */

/* Shared primitives ------------------------------------------------------ */

.hs-icon {
	width: 1.25em;
	height: 1.25em;
	flex: none;
	fill: currentColor;
}

.hs-card {
	background: var(--hs-surface);
	border: 1px solid var(--hs-border);
	border-radius: var(--hs-radius);
}

.hs-card__link::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: var(--hs-radius);
}

.hs-heading {
	margin-block-end: var(--hs-gap-lg);
	max-width: 46rem;
}

.hs-heading__title {
	margin: 0;
}

.hs-heading__text {
	margin: 0.625rem 0 0;
	color: var(--hs-muted);
}

.hs-grid {
	display: grid;
	gap: var(--hs-gap);
	grid-template-columns: minmax(0, 1fr);
}

@media (min-width: 640px) {
	.hs-grid--2,
	.hs-grid--3,
	.hs-grid--4 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 1024px) {
	.hs-grid--3 {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.hs-grid--4 {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

.hs-more {
	margin: var(--hs-gap) 0 0;
}

.hs-more__link {
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
	min-height: 2.75rem;
	font-weight: 600;
	color: var(--hs-ink);
	text-decoration: underline;
	text-decoration-color: var(--hs-accent);
	text-decoration-thickness: 2px;
	text-underline-offset: 0.3em;
}

.hs-more__link:hover {
	color: var(--hs-accent-ink);
}

.hs-notice {
	margin: 0;
	padding: 0.5rem 0.75rem;
	border: 1px dashed var(--hs-border);
	border-radius: var(--hs-radius-sm);
	font-size: 0.875rem;
	color: var(--hs-muted);
}

/* Buttons ---------------------------------------------------------------- */

.hs-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	min-height: 2.75rem;
	padding: 0.5rem 1.125rem;
	border: 1px solid transparent;
	border-radius: var(--hs-radius-sm);
	font-weight: 600;
	font-size: 1rem;
	line-height: 1.25;
	text-decoration: none;
	white-space: nowrap;
}

.hs-btn--primary {
	background: var(--hs-accent);
	color: var(--hs-on-accent);
}

.hs-btn--primary:hover,
.hs-btn--primary:focus-visible {
	background: var(--hs-accent-hover);
	color: var(--hs-on-accent);
}

.hs-btn--outline {
	background: var(--hs-surface);
	border-color: var(--hs-ink);
	color: var(--hs-ink);
}

.hs-btn--outline:hover,
.hs-btn--outline:focus-visible {
	background: var(--hs-ink);
	color: var(--hs-bg);
}

.hs-btn--link {
	min-height: 2.75rem;
	padding-inline: 0;
	color: var(--hs-ink);
}

.hs-btn--link:hover {
	color: var(--hs-accent-ink);
}

.hs-phone-btn__short {
	display: none;
}

/* Lists ------------------------------------------------------------------ */

.hs-check-list,
.hs-link-list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.hs-check-list li {
	display: flex;
	gap: 0.625rem;
	align-items: flex-start;
	padding-block: 0.375rem;
}

.hs-check-list .hs-icon {
	margin-top: 0.25em;
	color: var(--hs-accent);
}

.hs-check-list a {
	color: var(--hs-ink);
	text-decoration: none;
}

.hs-check-list a:hover {
	text-decoration: underline;
}

.hs-check-list--muted .hs-icon {
	color: var(--hs-muted);
}

.hs-check-list--boxed {
	padding: 1.25rem 1.5rem;
}

@media (min-width: 768px) {
	.hs-check-list--columns {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		column-gap: var(--hs-gap-lg);
	}
}

.hs-link-list li + li {
	margin-top: 0.125rem;
}

.hs-link-list a {
	display: inline-block;
	padding-block: 0.375rem;
	color: var(--hs-ink);
	text-decoration: none;
}

.hs-link-list a:hover {
	color: var(--hs-accent-ink);
	text-decoration: underline;
}

/* Header ----------------------------------------------------------------- */

/*
 * The header stays in normal document flow (never sticky or fixed). Heights
 * are reserved in CSS, so neither font loading nor JavaScript can move it.
 */
.hs-header,
.e-con.hs-header {
	--z-index: 20;
	position: relative;
	z-index: 20;
	min-height: var(--hs-header-height);
	background: var(--hs-bg);
	border-bottom: 1px solid var(--hs-border);
}

.hs-header .e-con-inner,
.hs-header .elementor-widget-hs-nav-menu,
.hs-header .elementor-widget-hs-nav-menu > .elementor-widget-container {
	position: static;
}

.hs-header .elementor-widget-hs-site-logo {
	margin-inline-end: auto;
}

.hs-logo {
	display: inline-flex;
	align-items: center;
	gap: 0.625rem;
	height: var(--hs-logo-height, 2.25rem);
	color: var(--hs-ink);
	text-decoration: none;
}

.hs-logo__img {
	display: block;
	width: auto;
	height: var(--hs-logo-height, 2.25rem);
}

.hs-logo__mark {
	display: grid;
	place-items: center;
	width: var(--hs-logo-height, 2.25rem);
	height: var(--hs-logo-height, 2.25rem);
	border-radius: var(--hs-radius-sm);
	background: var(--hs-accent);
	color: var(--hs-on-accent);
}

.hs-logo__mark .hs-icon {
	width: 1.375rem;
	height: 1.375rem;
}

.hs-logo__text {
	font-size: 1.25rem;
	font-weight: 700;
	line-height: 1;
	white-space: nowrap;
}

.hs-logo__tld {
	color: var(--hs-accent-ink);
}

.hs-nav__list {
	display: flex;
	gap: 0.25rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.hs-nav__list a {
	display: flex;
	align-items: center;
	min-height: 2.75rem;
	padding-inline: 0.875rem;
	border-radius: var(--hs-radius-sm);
	color: var(--hs-ink);
	font-weight: 500;
	text-decoration: none;
	white-space: nowrap;
}

.hs-nav__list a:hover {
	background: var(--hs-bg-soft);
}

.hs-nav__list .current-menu-item > a,
.hs-nav__list .current_page_parent > a,
.hs-nav__list .current-menu-ancestor > a {
	color: var(--hs-accent-ink);
}

.hs-nav--vertical .hs-nav__list {
	flex-direction: column;
	gap: 0;
}

.hs-nav--vertical .hs-nav__list a {
	min-height: 0;
	padding: 0.2rem 0;
	font-weight: 400;
	white-space: normal;
}

.hs-nav--vertical .hs-nav__list a:hover {
	background: none;
	color: var(--hs-accent-ink);
	text-decoration: underline;
}

.hs-nav__toggle {
	display: none;
	place-items: center;
	width: 2.75rem;
	height: 2.75rem;
	padding: 0;
	border: 1px solid var(--hs-border);
	border-radius: var(--hs-radius-sm);
	background: var(--hs-surface);
	color: var(--hs-ink);
	cursor: pointer;
}

.hs-nav__toggle .hs-icon {
	display: block;
	width: 1.5rem;
	height: 1.5rem;
}

.hs-nav__toggle-close,
.hs-nav__toggle[aria-expanded="true"] .hs-nav__toggle-open {
	display: none;
}

.hs-nav__toggle[aria-expanded="true"] .hs-nav__toggle-close {
	display: block;
}

/* Georgian menu labels are wide: the menu collapses below 1140px. */
@media (max-width: 1139.98px) {
	.hs-header .elementor-widget-hs-nav-menu {
		order: 3;
	}

	.hs-nav--collapsible .hs-nav__toggle {
		display: grid;
	}

	.hs-nav--collapsible .hs-nav__list {
		display: none;
		position: absolute;
		inset-inline: 0;
		top: 100%;
		flex-direction: column;
		gap: 0;
		padding: 0.5rem var(--hs-gutter) 1rem;
		background: var(--hs-bg);
		border-bottom: 1px solid var(--hs-border);
	}

	.hs-nav--collapsible.is-open .hs-nav__list {
		display: flex;
	}

	.hs-nav--collapsible .hs-nav__list a {
		min-height: 3rem;
		padding-inline: 0.75rem;
		white-space: normal;
	}

	/* Without JavaScript the menu is simply always visible below the header. */
	.no-js .hs-nav--collapsible .hs-nav__toggle {
		display: none;
	}

	.no-js .hs-nav--collapsible .hs-nav__list {
		display: flex;
		position: static;
		padding: 0;
		border: 0;
	}
}

@media (max-width: 519.98px) {
	.hs-header .hs-phone-btn {
		padding-inline: 0.75rem;
	}

	.hs-header .hs-phone-btn__number {
		display: none;
	}

	.hs-header .hs-phone-btn__short {
		display: inline;
	}

	.hs-logo {
		gap: 0.5rem;
	}

	.hs-logo__mark {
		width: 2rem;
		height: 2rem;
	}

	.hs-logo__text {
		font-size: 1rem;
	}

	.hs-header .hs-phone-btn {
		gap: 0.375rem;
		font-size: 0.9375rem;
	}
}

@media (max-width: 419.98px) {
	.hs-header .hs-phone-btn {
		width: 2.75rem;
		padding-inline: 0;
	}

	.hs-header .hs-phone-btn__short {
		display: none;
	}
}

/* Breadcrumbs ------------------------------------------------------------ */

.hs-breadcrumbs {
	font-size: 0.875rem;
	line-height: 1.5;
	color: var(--hs-muted);
}

.hs-breadcrumbs a {
	color: var(--hs-muted);
	text-decoration: underline;
	text-decoration-color: var(--hs-border);
	text-underline-offset: 0.25em;
}

.hs-breadcrumbs a:hover {
	color: var(--hs-ink);
}

.hs-breadcrumbs .breadcrumb_last {
	color: var(--hs-ink);
}

/* Service cards ---------------------------------------------------------- */

.hs-service-card {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	padding: 1.25rem;
}

.hs-service-card:hover,
.hs-post-card:hover {
	border-color: var(--hs-ink);
}

.hs-service-card:focus-within,
.hs-post-card:focus-within {
	outline: 2px solid var(--hs-ink);
	outline-offset: 2px;
}

.hs-service-card .hs-card__link:focus-visible,
.hs-post-card .hs-card__link:focus-visible {
	outline: none;
}

.hs-service-card__icon {
	display: grid;
	place-items: center;
	width: 2.5rem;
	height: 2.5rem;
	margin-bottom: 0.25rem;
	border-radius: var(--hs-radius-sm);
	background: var(--hs-accent-soft);
	color: var(--hs-accent-ink);
}

.hs-service-card__icon .hs-icon {
	width: 1.375rem;
	height: 1.375rem;
}

.hs-service-card__title {
	margin: 0;
	font-size: 1.0625rem;
	line-height: 1.35;
	font-weight: 600;
}

.hs-service-card__title a {
	color: var(--hs-ink);
	text-decoration: none;
}

.hs-service-card__text {
	margin: 0;
	font-size: 0.9375rem;
	line-height: 1.55;
	color: var(--hs-muted);
}

.hs-service-card__price {
	margin: auto 0 0;
	padding-top: 0.5rem;
	font-weight: 700;
	color: var(--hs-accent-ink);
}

.hs-service-card__price.is-request {
	font-weight: 500;
	color: var(--hs-muted);
}

/* Category cards --------------------------------------------------------- */

.hs-category-card {
	display: flex;
	flex-direction: column;
	padding: clamp(1.25rem, 0.9rem + 1.4vw, 2rem);
}

.hs-category-card__head {
	display: flex;
	align-items: center;
	gap: 0.875rem;
}

.hs-category-card__icon {
	display: grid;
	place-items: center;
	width: 3rem;
	height: 3rem;
	border-radius: var(--hs-radius-sm);
	background: var(--hs-ink);
	color: var(--hs-bg);
}

.hs-category-card__icon .hs-icon {
	width: 1.5rem;
	height: 1.5rem;
}

.hs-category-card__title {
	margin: 0;
	font-size: clamp(1.25rem, 1.1rem + 0.6vw, 1.5rem);
	line-height: 1.3;
}

.hs-category-card__title a {
	color: var(--hs-ink);
	text-decoration: none;
}

.hs-category-card__title a:hover {
	color: var(--hs-accent-ink);
}

.hs-category-card__text {
	margin: 1rem 0 0.75rem;
	color: var(--hs-muted);
}

.hs-category-card .hs-more {
	margin-top: auto;
	padding-top: 0.75rem;
}

/* Pricing ---------------------------------------------------------------- */

.hs-pricing__card {
	padding: 0.25rem clamp(1rem, 0.7rem + 1.2vw, 1.5rem);
}

.hs-pricing__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.hs-pricing__row {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1rem;
	padding-block: 0.875rem;
}

.hs-pricing__row + .hs-pricing__row {
	border-top: 1px solid var(--hs-border);
}

.hs-pricing__name {
	min-width: 0;
}

.hs-pricing__name a {
	color: var(--hs-ink);
	text-decoration: none;
}

.hs-pricing__name a:hover {
	text-decoration: underline;
	text-decoration-color: var(--hs-accent);
	text-underline-offset: 0.25em;
}

.hs-pricing__price {
	flex: none;
	font-weight: 700;
	color: var(--hs-accent-ink);
	white-space: nowrap;
}

@media (min-width: 1024px) {
	.hs-pricing--cols .hs-pricing__list {
		columns: 2;
		column-gap: clamp(2rem, 1rem + 3vw, 4rem);
		column-rule: 1px solid var(--hs-border);
	}

	.hs-pricing--cols .hs-pricing__row {
		break-inside: avoid;
		border-top: 0;
		border-bottom: 1px solid var(--hs-border);
	}

	.hs-pricing--cols .hs-pricing__card {
		padding-block: 0.5rem 1rem;
	}
}

.hs-pricing-compact .hs-heading {
	margin-block-end: 0.875rem;
}

.hs-pricing-compact .hs-heading__title {
	font-size: 1.1875rem;
	line-height: 1.4;
}

.hs-btn-lg .hs-btn {
	min-height: 3.25rem;
	padding-inline: 1.5rem;
	font-size: 1.0625rem;
}

.hs-narrow > .hs-pricing,
.hs-narrow > .hs-faq,
.hs-narrow > .elementor-widget-container > .hs-pricing,
.hs-narrow > .elementor-widget-container > .hs-faq {
	max-width: 52rem;
}

.hs-pricing__note {
	margin: 0.875rem 0 0;
	font-size: 0.9375rem;
	color: var(--hs-muted);
}

/* FAQ -------------------------------------------------------------------- */

.hs-faq__list {
	border-top: 1px solid var(--hs-border);
}

.hs-faq__item {
	border-bottom: 1px solid var(--hs-border);
}

.hs-faq__question {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	min-height: 3.5rem;
	padding-block: 0.875rem;
	font-weight: 600;
	cursor: pointer;
	list-style: none;
}

.hs-faq__question::-webkit-details-marker {
	display: none;
}

.hs-faq__question:hover {
	color: var(--hs-accent-ink);
}

.hs-faq__minus,
.hs-faq__item[open] .hs-faq__plus {
	display: none;
}

.hs-faq__item[open] .hs-faq__minus {
	display: block;
}

.hs-faq__answer {
	max-width: 46rem;
	padding-bottom: 1.125rem;
	color: var(--hs-muted);
}

.hs-faq__answer p {
	margin: 0;
}

.hs-faq__answer p + p {
	margin-top: 0.75rem;
}

/* CTA -------------------------------------------------------------------- */

.hs-cta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--hs-gap-lg);
	padding: clamp(1.5rem, 1rem + 2.4vw, 2.75rem);
	border-radius: var(--hs-radius);
	background: var(--hs-ink);
	color: var(--hs-bg);
}

.hs-cta__body {
	flex: 1 1 22rem;
	max-width: 40rem;
}

.hs-cta .hs-cta__title {
	margin: 0;
	color: inherit;
}

.hs-cta__text {
	margin: 0.625rem 0 0;
	color: var(--hs-on-ink-muted);
}

.hs-cta__actions {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.5rem;
}

.hs-cta .hs-btn {
	min-height: 3.25rem;
	padding-inline: 1.5rem;
	font-size: 1.125rem;
}

.hs-cta__hint {
	font-size: 0.875rem;
	color: var(--hs-on-ink-muted);
}

/* Blog cards ------------------------------------------------------------- */

.hs-post-card {
	position: relative;
	display: flex;
	flex-direction: column;
	overflow: hidden;
}

.hs-post-card__media {
	aspect-ratio: 16 / 10;
	background: var(--hs-bg-soft);
}

.hs-post-card__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.hs-post-card__body {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	padding: 1.25rem;
}

.hs-post-card__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem 0.75rem;
	margin: 0;
	font-size: 0.875rem;
	color: var(--hs-muted);
}

.hs-post-card__cat {
	color: var(--hs-accent-ink);
	font-weight: 500;
}

.hs-post-card__title {
	margin: 0;
	font-size: 1.125rem;
	line-height: 1.4;
	font-weight: 600;
}

.hs-post-card__title a {
	color: var(--hs-ink);
	text-decoration: none;
}

.hs-post-card__text {
	margin: 0;
	font-size: 0.9375rem;
	line-height: 1.6;
	color: var(--hs-muted);
}

/* Contact details -------------------------------------------------------- */

.hs-contact__list {
	display: grid;
	gap: 0.875rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.hs-contact__item {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	column-gap: 0.75rem;
	align-items: start;
}

.hs-contact__item .hs-icon {
	grid-row: span 2;
	margin-top: 0.2em;
	color: var(--hs-accent-ink);
}

.hs-contact__label {
	font-size: 0.875rem;
	color: var(--hs-muted);
}

.hs-contact__value {
	grid-column: 2;
	font-weight: 600;
	color: var(--hs-ink);
	text-decoration: none;
	overflow-wrap: anywhere;
}

a.hs-contact__value:hover {
	color: var(--hs-accent-ink);
	text-decoration: underline;
}

@media (min-width: 640px) {
	.hs-contact--cards .hs-contact__list {
		grid-template-columns: repeat(auto-fit, minmax(19rem, 1fr));
		gap: var(--hs-gap);
	}
}

.hs-contact--cards .hs-contact__item {
	padding: 1.25rem;
	border: 1px solid var(--hs-border);
	border-radius: var(--hs-radius);
	background: var(--hs-surface);
}

.hs-contact--cards .hs-contact__value {
	font-size: 1.0625rem;
}

/* Footer ----------------------------------------------------------------- */

.hs-social {
	display: flex;
	gap: 0.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.hs-social__link {
	display: grid;
	place-items: center;
	width: 2.75rem;
	height: 2.75rem;
	border: 1px solid var(--hs-border);
	border-radius: var(--hs-radius-sm);
	background: var(--hs-surface);
	color: var(--hs-ink);
}

.hs-social__link:hover {
	border-color: var(--hs-ink);
}

.hs-social__link .hs-icon {
	width: 1.375rem;
	height: 1.375rem;
}

.hs-footer-links {
	border-block: 1px solid var(--hs-border);
}

.hs-footer-links__summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	min-height: 3.5rem;
	font-weight: 600;
	cursor: pointer;
	list-style: none;
}

.hs-footer-links__summary::-webkit-details-marker {
	display: none;
}

.hs-footer-links[open] .hs-footer-links__summary .hs-icon {
	rotate: 180deg;
}

.hs-footer-links__list {
	display: grid;
	gap: 0.25rem var(--hs-gap-lg);
	margin: 0;
	padding: 0 0 1.25rem;
	list-style: none;
}

@media (min-width: 640px) {
	.hs-footer-links__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 1024px) {
	.hs-footer-links__list {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

.hs-footer-links__list a {
	display: inline-block;
	padding-block: 0.375rem;
	color: var(--hs-ink);
	text-decoration: none;
}

.hs-footer-links__list a:hover {
	color: var(--hs-accent-ink);
	text-decoration: underline;
}

.hs-copyright {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 0.5rem 1.5rem;
	font-size: 0.875rem;
	color: var(--hs-muted);
}

.hs-copyright__text {
	margin: 0;
}

.hs-copyright__link {
	color: var(--hs-muted);
}

.hs-copyright__link:hover {
	color: var(--hs-ink);
}

/* Single service --------------------------------------------------------- */

.hs-service-hero {
	display: grid;
	gap: var(--hs-gap-lg);
	align-items: center;
}

@media (min-width: 1024px) {
	.hs-service-hero.has-aside {
		grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
		gap: clamp(2rem, 1rem + 3vw, 4rem);
	}
}

.hs-service-hero__cat {
	margin: 0 0 0.625rem;
	font-size: 0.9375rem;
	font-weight: 600;
}

.hs-service-hero__cat a {
	color: var(--hs-accent-ink);
	text-decoration: none;
}

.hs-service-hero__cat a:hover {
	text-decoration: underline;
}

.hs-service-hero__title {
	margin: 0;
}

.hs-service-hero__subtitle {
	margin: 0.75rem 0 0;
	font-size: 1.1875rem;
	line-height: 1.5;
	font-weight: 500;
}

.hs-service-hero__text {
	margin: 0.75rem 0 0;
	max-width: 38rem;
	color: var(--hs-muted);
}

.hs-service-hero__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1rem 1.75rem;
	margin-top: 1.5rem;
}

.hs-service-hero__actions .hs-btn {
	min-height: 3.25rem;
	padding-inline: 1.5rem;
	font-size: 1.0625rem;
}

.hs-service-hero__price {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0 0.5rem;
	margin: 0;
}

.hs-service-hero__price-label {
	flex-basis: 100%;
	font-size: 0.875rem;
	color: var(--hs-muted);
}

.hs-service-hero__price-value {
	font-size: 1.5rem;
	line-height: 1.3;
	color: var(--hs-accent-ink);
}

.hs-service-hero__price-unit {
	color: var(--hs-muted);
}

.hs-service-hero__img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: var(--hs-radius);
}

.hs-service-block__section + .hs-service-block__section {
	margin-top: var(--hs-space-block);
}

.hs-def-grid {
	display: grid;
	gap: 0;
	margin: 0;
	border-top: 1px solid var(--hs-border);
}

@media (min-width: 768px) {
	.hs-def-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		column-gap: var(--hs-gap-lg);
	}
}

.hs-def-grid__item {
	padding-block: 1.125rem;
	border-bottom: 1px solid var(--hs-border);
}

.hs-def-grid dt {
	font-weight: 600;
}

.hs-def-grid dd {
	margin: 0.375rem 0 0;
	color: var(--hs-muted);
}

.hs-steps {
	display: grid;
	gap: var(--hs-gap);
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: hs-step;
}

@media (min-width: 640px) {
	.hs-steps {
		grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr));
	}
}

.hs-steps__item {
	counter-increment: hs-step;
	padding-top: 1rem;
	border-top: 2px solid var(--hs-ink);
}

.hs-steps__item::before {
	content: counter(hs-step);
	display: block;
	margin-bottom: 0.5rem;
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1.2;
	color: var(--hs-accent-ink);
}

.hs-steps__title {
	margin: 0;
	font-size: 1.0625rem;
	line-height: 1.4;
	font-weight: 600;
}

.hs-steps__text {
	margin: 0.375rem 0 0;
	font-size: 0.9375rem;
	color: var(--hs-muted);
}

.hs-gallery {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 16rem), 1fr));
	gap: var(--hs-gap);
	margin: 0;
	padding: 0;
	list-style: none;
}

.hs-gallery img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: var(--hs-radius);
}

/* Menu dropdown ---------------------------------------------------------- */

.hs-nav__list li {
	position: relative;
}

.hs-nav__list .sub-menu {
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	z-index: 30;
	min-width: 15rem;
	margin: 0;
	padding: 0.375rem;
	list-style: none;
	background: var(--hs-bg);
	border: 1px solid var(--hs-border);
	border-radius: var(--hs-radius);
}

.hs-nav__list li:hover > .sub-menu,
.hs-nav__list li:focus-within > .sub-menu {
	display: block;
}

.hs-nav__list .menu-item-has-children > a::after {
	content: "";
	width: 0.45em;
	height: 0.45em;
	margin: -0.25em 0 0 0.5em;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	rotate: 45deg;
}

.hs-nav__list .sub-menu a {
	font-weight: 400;
}

@media (max-width: 1139.98px) {
	.hs-nav--collapsible .hs-nav__list .sub-menu {
		display: block;
		position: static;
		min-width: 0;
		padding: 0 0 0.25rem 1rem;
		border: 0;
	}

	.hs-nav--collapsible .hs-nav__list .menu-item-has-children > a::after {
		display: none;
	}

	.hs-nav--collapsible .hs-nav__list .sub-menu a {
		min-height: 2.75rem;
		color: var(--hs-muted);
	}
}

/* Photo / video ---------------------------------------------------------- */

.hs-media {
	position: relative;
	overflow: hidden;
	border-radius: var(--hs-radius);
	background: var(--hs-bg-soft);
	aspect-ratio: 4 / 3;
}

.hs-media--16-9 {
	aspect-ratio: 16 / 9;
}

.hs-media--1-1 {
	aspect-ratio: 1;
}

.hs-media--3-4 {
	aspect-ratio: 3 / 4;
}

.hs-media__img,
.hs-media__video {
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
	object-fit: cover;
}

.hs-media__play {
	position: absolute;
	inset: 0;
	display: grid;
	place-items: center;
	width: 100%;
	padding: 0;
	border: 0;
	background: rgb(0 0 71 / 0.3);
	cursor: pointer;
}

.hs-media__play::before {
	content: "";
	width: 4.5rem;
	height: 4.5rem;
	border-radius: 50%;
	background: var(--hs-accent);
}

.hs-media__play::after {
	content: "";
	position: absolute;
	margin-left: 0.35rem;
	border-style: solid;
	border-width: 0.8rem 0 0.8rem 1.3rem;
	border-color: transparent transparent transparent var(--hs-on-accent);
}

.hs-media__play:hover::before,
.hs-media__play:focus-visible::before {
	background: var(--hs-accent-hover);
}

/* Works gallery ---------------------------------------------------------- */

.hs-works__grid {
	margin: 0;
	padding: 0;
	list-style: none;
}

.hs-works__figure {
	margin: 0;
}

.hs-works__img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: var(--hs-radius);
	background: var(--hs-bg-soft);
}

.hs-works__caption {
	margin-top: 0.5rem;
	font-size: 0.9375rem;
	color: var(--hs-muted);
}

/* Request form (Contact Form 7) ------------------------------------------ */

.hs-form-card {
	padding: clamp(1.25rem, 0.9rem + 1.6vw, 2rem);
}

.hs-form-card .hs-heading {
	margin-block-end: 1.25rem;
}

.hs-form-card .hs-heading__title {
	font-size: clamp(1.25rem, 1.1rem + 0.6vw, 1.5rem);
	line-height: 1.3;
}

.hs-form-card .hs-heading__text {
	margin-top: 0.375rem;
}

.hs-form-card .wpcf7-form {
	display: grid;
	gap: 0.875rem;
}

.hs-form-card .hidden-fields-container {
	display: none;
}

.hs-form-card .wpcf7-form > div:first-child,
.hs-form-card .wpcf7 .screen-reader-response {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
}

.hs-form-card label {
	display: grid;
	gap: 0.375rem;
	font-size: 0.9375rem;
	font-weight: 600;
}

.hs-form-card .wpcf7-form-control-wrap {
	display: block;
}

.hs-form-card input:not([type="submit"]) {
	width: 100%;
	min-height: 3rem;
	padding: 0.5rem 0.875rem;
	border: 1px solid #94a3b8;
	border-radius: var(--hs-radius-sm);
	background: var(--hs-surface);
	font-size: 1rem;
	font-weight: 400;
	color: var(--hs-ink);
}

.hs-form-card input:not([type="submit"]):focus {
	border-color: var(--hs-ink);
	outline: 2px solid var(--hs-ink);
	outline-offset: 1px;
}

.hs-form-card input.wpcf7-not-valid {
	border-color: #b91c1c;
}

.hs-form-card .wpcf7-not-valid-tip {
	display: block;
	margin-top: 0.25rem;
	font-size: 0.875rem;
	font-weight: 400;
	color: #b91c1c;
}

.hs-form-card .wpcf7-submit {
	width: 100%;
	min-height: 3.25rem;
	margin-top: 0.25rem;
	padding: 0.625rem 1.5rem;
	border: 0;
	border-radius: var(--hs-radius-sm);
	background: var(--hs-accent);
	color: var(--hs-on-accent);
	font-size: 1.0625rem;
	font-weight: 600;
	cursor: pointer;
}

.hs-form-card .wpcf7-submit:hover,
.hs-form-card .wpcf7-submit:focus-visible {
	background: var(--hs-accent-hover);
}

.hs-form-card .wpcf7-submit:disabled,
.hs-form-card form.submitting .wpcf7-submit {
	opacity: 0.6;
	cursor: default;
}

.hs-form-card .wpcf7-spinner {
	display: none;
}

.hs-form-card .wpcf7-response-output {
	margin: 0;
	padding: 0.75rem 0.875rem;
	border: 1px solid var(--hs-border);
	border-radius: var(--hs-radius-sm);
	font-size: 0.9375rem;
}

.hs-form-card .wpcf7-response-output:empty,
.hs-form-card form.init .wpcf7-response-output,
.hs-form-card form.resetting .wpcf7-response-output,
.hs-form-card form.submitting .wpcf7-response-output {
	display: none;
}

.hs-form-card form.sent .wpcf7-response-output {
	border-color: #15803d;
	background: #f0fdf4;
	color: #14532d;
}

.hs-form-card form.invalid .wpcf7-response-output,
.hs-form-card form.unaccepted .wpcf7-response-output,
.hs-form-card form.failed .wpcf7-response-output,
.hs-form-card form.aborted .wpcf7-response-output,
.hs-form-card form.spam .wpcf7-response-output {
	border-color: #b91c1c;
	background: #fef2f2;
	color: #7f1d1d;
}

/* Honeypot field: off-screen for people, visible to bots. */
.hs-hp {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

/* Thin-line service icons -------------------------------------------------- */

.hs-icon--line {
	fill: none;
	stroke: currentColor;
	stroke-width: 5;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.hs-service-card__icon:has(.hs-icon--line),
.hs-category-card__icon:has(.hs-icon--line) {
	display: block;
	width: 4.375rem;
	height: 3.625rem;
	margin-bottom: 0.5rem;
	border-radius: 0;
	background: none;
	color: var(--hs-ink);
}

.hs-service-card__icon .hs-icon--line,
.hs-category-card__icon .hs-icon--line {
	display: block;
	width: 4.375rem;
	height: 3.625rem;
}

.hs-category-card__head:has(.hs-icon--line) {
	flex-direction: column;
	align-items: flex-start;
	gap: 0.25rem;
}

/* Customer reviews slider --------------------------------------------------- */

.hs-heading--center {
	max-width: none;
	text-align: center;
}

.hs-reviews__summary {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.625rem;
	margin: 0.875rem 0 0;
	font-weight: 600;
}

.hs-reviews__track {
	display: flex;
	gap: var(--hs-gap);
	margin: 0;
	padding: 0.25rem 0.125rem 0.5rem;
	list-style: none;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	overscroll-behavior-x: contain;
}

.hs-reviews__track::-webkit-scrollbar {
	display: none;
}

.hs-review {
	display: flex;
	flex: 0 0 86%;
	flex-direction: column;
	gap: 0.875rem;
	padding: clamp(1.25rem, 1rem + 1vw, 2rem);
	scroll-snap-align: start;
}

@media (min-width: 640px) {
	.hs-review {
		flex-basis: calc((100% - var(--hs-gap)) / 1.8);
	}
}

@media (min-width: 1024px) {
	.hs-review {
		flex-basis: calc((100% - 2 * var(--hs-gap)) / 2.8);
	}
}

.hs-review:hover {
	border-color: var(--hs-accent);
}

.hs-review__rating {
	display: flex;
	align-items: center;
	gap: 0.625rem;
	margin: 0;
}

.hs-review__stars {
	display: inline-flex;
	gap: 0.125rem;
	color: var(--hs-accent);
}

.hs-review__stars .hs-icon {
	width: 1.125rem;
	height: 1.125rem;
}

.hs-review__score {
	padding: 0.0625rem 0.5rem;
	border-radius: 3rem;
	background: var(--hs-accent-soft);
	color: var(--hs-accent);
	font-size: 0.8125rem;
	font-weight: 700;
}

.hs-review__text {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 1.0625rem;
	font-style: italic;
	line-height: 1.65;
	color: var(--hs-ink);
}

.hs-review__service {
	margin: 0;
	font-size: 0.875rem;
	color: var(--hs-muted);
}

.hs-review__author {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin: auto 0 0;
	padding-top: 1.125rem;
	border-top: 1px solid var(--hs-border);
}

.hs-review__avatar {
	display: grid;
	flex: none;
	place-items: center;
	width: 2.75rem;
	height: 2.75rem;
	border-radius: 50%;
	background: var(--hs-accent);
	color: var(--hs-on-accent);
	font-size: 0.9375rem;
	font-weight: 700;
}

.hs-review__who {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.hs-review__name {
	font-weight: 700;
}

.hs-review__role {
	font-size: 0.875rem;
	color: var(--hs-muted);
}

.hs-reviews__nav {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1.5rem;
	margin-top: var(--hs-gap-lg);
}

.hs-reviews__arrow {
	display: grid;
	place-items: center;
	width: 2.75rem;
	height: 2.75rem;
	padding: 0;
	border: 1px solid var(--hs-border);
	border-radius: 50%;
	background: transparent;
	color: var(--hs-ink);
	cursor: pointer;
}

.hs-reviews__arrow:hover,
.hs-reviews__arrow:focus-visible {
	border-color: var(--hs-accent);
	color: var(--hs-accent);
}

.hs-reviews__prev {
	rotate: 90deg;
}

.hs-reviews__next {
	rotate: -90deg;
}

.hs-reviews__link {
	font-weight: 600;
	color: var(--hs-accent);
	text-decoration: none;
}

.hs-reviews__link:hover {
	text-decoration: underline;
}

/* Service page: "how the work goes" as a soft panel with numbered cards ----- */

.hs-service-block--process {
	padding: clamp(1.5rem, 1rem + 2.6vw, 3.25rem);
	border-radius: var(--hs-radius-section, var(--hs-radius));
	background: var(--hs-bg-soft);
}

.hs-service-block--process .hs-steps {
	gap: var(--hs-gap);
}

@media (min-width: 640px) {
	.hs-service-block--process .hs-steps {
		grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
	}
}

.hs-service-block--process .hs-steps__item {
	position: relative;
	padding: clamp(1.25rem, 1rem + 1vw, 1.75rem);
	border: 1px solid transparent;
	border-radius: var(--hs-radius);
	background: var(--hs-surface);
	transition: border-color var(--hs-hover, 0.3s ease), transform var(--hs-hover, 0.3s ease);
}

.hs-service-block--process .hs-steps__item:hover {
	border-color: var(--hs-accent);
	transform: translateY(-2px);
}

.hs-service-block--process .hs-steps__item::before {
	content: counter(hs-step, decimal-leading-zero);
	display: grid;
	place-items: center;
	width: 3rem;
	height: 3rem;
	margin-bottom: 1.125rem;
	border-radius: 50%;
	background: var(--hs-ink);
	color: #ffffff;
	font-size: 1.0625rem;
	line-height: 1;
}

.hs-service-block--process .hs-steps__item:hover::before {
	background: var(--hs-accent);
}

.hs-service-block--process .hs-steps__title {
	font-size: 1.125rem;
}

.hs-service-block--process .hs-steps__text {
	line-height: 1.6;
}

/* Card hover: the border and the title change colour, nothing moves --------- */

.hs-service-card,
.hs-post-card,
.hs-category-card,
.hs-review,
.hs-steps__item {
	transition: border-color var(--hs-hover, 0.3s ease);
}

.hs-service-card:hover,
.hs-post-card:hover,
.hs-category-card:hover,
.hs-review:hover,
.hs-service-block--process .hs-steps__item:hover {
	border-color: var(--hs-accent);
	box-shadow: none;
	transform: none;
}

.hs-service-card__title a,
.hs-post-card__title a,
.hs-category-card__title a {
	transition: color var(--hs-hover, 0.3s ease);
}

.hs-service-card:hover .hs-service-card__title a,
.hs-post-card:hover .hs-post-card__title a,
.hs-category-card:hover .hs-category-card__title a {
	color: var(--hs-accent);
}

/* FAQ: rounded soft cards with a round toggle -------------------------------- */

.hs-faq__list {
	display: grid;
	gap: 0.75rem;
	border: 0;
}

.hs-faq__item {
	border: 1px solid transparent;
	border-radius: 1.25rem;
	background: var(--hs-bg-soft);
	transition: background-color var(--hs-hover, 0.3s ease), border-color var(--hs-hover, 0.3s ease);
}

.hs-faq__item[open] {
	border-color: #cfd8f7;
	background: var(--hs-bg);
}

.hs-faq__question {
	gap: 1rem;
	min-height: 4.75rem;
	padding: 0.875rem 0.875rem 0.875rem clamp(1.125rem, 0.8rem + 1.4vw, 2rem);
	font-size: clamp(1rem, 0.95rem + 0.25vw, 1.125rem);
	font-weight: 600;
	color: var(--hs-ink);
}

.hs-faq__question:hover {
	color: var(--hs-ink);
}

.hs-faq__question:focus-visible {
	border-radius: 1.25rem;
}

.hs-faq__plus,
.hs-faq__minus {
	box-sizing: border-box;
	width: 2.75rem;
	height: 2.75rem;
	padding: 0.8125rem;
	border-radius: 50%;
	background: #ffffff;
	color: var(--hs-ink);
	transition: background-color var(--hs-hover, 0.3s ease), color var(--hs-hover, 0.3s ease);
}

.hs-faq__question:hover .hs-faq__plus {
	background: var(--hs-accent);
	color: #ffffff;
}

.hs-faq__item[open] .hs-faq__minus {
	background: var(--hs-ink);
	color: #ffffff;
}

.hs-faq__answer {
	max-width: none;
	padding: 0 clamp(1.125rem, 0.8rem + 1.4vw, 2rem) 1.5rem;
	line-height: 1.7;
	color: var(--hs-muted);
}

/* On a soft or dark background the closed cards are white instead. */
.hs-bg-soft .hs-faq__item:not([open]) {
	background: var(--hs-bg);
}

.hs-bg-soft .hs-faq__plus {
	background: var(--hs-bg-soft);
}

/* Blog cards: borderless, photo on top, category pill ----------------------- */

.hs-post-card {
	position: relative;
	display: flex;
	flex-direction: column;
	overflow: visible;
	border: 0;
	border-radius: 0;
	background: none;
}

.hs-post-card:hover {
	border: 0;
}

.hs-post-card:focus-within {
	outline: 0;
}

.hs-post-card .hs-card__link::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: var(--hs-radius-img, 12px);
}

.hs-post-card .hs-card__link:focus-visible::after {
	outline: 2px solid var(--hs-ink);
	outline-offset: 4px;
}

.hs-main .hs-post-card__media,
.hs-post-card__media {
	margin: 0;
	overflow: hidden;
	aspect-ratio: 3 / 2;
	border-radius: var(--hs-radius-img, 12px);
	background: var(--hs-bg-soft);
}

.hs-post-card__body {
	gap: 0.75rem;
	padding: 1.25rem 0 0;
}

.hs-post-card__cat {
	display: inline-block;
	padding: 0.3125rem 0.875rem;
	border-radius: 3rem;
	background: var(--hs-bg-soft);
	color: var(--hs-ink);
	font-size: 0.875rem;
	font-weight: 500;
}

.hs-post-card__title {
	font-size: clamp(1.125rem, 1.05rem + 0.4vw, 1.3125rem);
	line-height: 1.4;
	font-weight: 600;
}

.hs-post-card__more {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	margin: 0.25rem 0 0;
	font-size: 0.9375rem;
	font-weight: 500;
	color: var(--hs-ink);
}

.hs-post-card__more .hs-icon {
	width: 1rem;
	height: 1rem;
	color: var(--hs-accent);
}

.hs-blog__grid {
	gap: clamp(1.5rem, 1rem + 2vw, 2.5rem) var(--hs-gap);
}

/* Heading row with a pill button on the right */
.hs-blog__head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1rem 2rem;
	margin-block-end: var(--hs-gap-lg);
}

.hs-blog__head .hs-heading {
	margin: 0;
}

.hs-pill-link {
	display: inline-flex;
	align-items: center;
	gap: 0.875rem;
	min-height: 3.25rem;
	padding: 0.375rem 0.375rem 0.375rem 1.5rem;
	border-radius: 3rem;
	background: var(--hs-ink);
	color: #ffffff;
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;
	transition: background-color var(--hs-hover, 0.3s ease);
}

.hs-pill-link:hover,
.hs-pill-link:focus-visible {
	background: #16309f;
	color: #ffffff;
}

.hs-pill-link__icon {
	display: grid;
	place-items: center;
	width: 2.5rem;
	height: 2.5rem;
	border-radius: 50%;
	background: var(--hs-accent);
	color: #ffffff;
}

.hs-pill-link__icon .hs-icon {
	width: 1.125rem;
	height: 1.125rem;
}

/* Heading row: title on the left, pill button on the right ------------------ */

.hs-head-row {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1rem 2rem;
	margin-block-end: var(--hs-gap-lg);
}

.hs-head-row .hs-heading {
	margin: 0;
}

/* One button shape everywhere: pills ----------------------------------------- */

.hs-btn,
.hs-form-card .wpcf7-submit,
.hs-search .hs-btn {
	min-height: 3.25rem;
	padding: 0.625rem 1.75rem;
	border-radius: var(--hs-radius-btn, 3rem);
	font-size: 1rem;
	font-weight: 600;
}

.hs-header .hs-btn {
	min-height: 2.75rem;
}

.hs-btn--link {
	min-height: 2.75rem;
	padding-inline: 0;
	border-radius: 0;
}

.hs-search__input {
	min-height: 3.25rem;
	padding-inline: 1.25rem;
	border-radius: var(--hs-radius-btn, 3rem);
}

.hs-nav__toggle {
	border-radius: 50%;
}

.hs-social__link {
	border-radius: 50%;
}

@media (max-width: 419.98px) {
	.hs-header .hs-phone-btn {
		min-height: 2.75rem;
		padding: 0;
	}
}

/* Service cards: on hover a solid accent edge appears at the bottom right ---- */

.hs-grid .hs-service-card {
	transition:
		transform var(--hs-hover, 0.3s ease),
		box-shadow var(--hs-hover, 0.3s ease),
		border-color var(--hs-hover, 0.3s ease);
}

.hs-grid .hs-service-card:hover,
.hs-grid .hs-service-card:focus-within {
	border-color: transparent;
	box-shadow: 6px 6px 0 var(--hs-accent);
	transform: translate(-3px, -3px);
}

@media (prefers-reduced-motion: reduce) {
	.hs-grid .hs-service-card:hover,
	.hs-grid .hs-service-card:focus-within {
		transform: none;
	}
}

/* Card hover, final: a small shift with a thin accent edge (all boxed cards) -- */

.hs-grid .hs-service-card,
.hs-grid .hs-category-card,
.hs-service-block--process .hs-steps__item,
.hs-contact--cards .hs-contact__item,
.hs-reviews .hs-review {
	transition:
		transform var(--hs-hover, 0.3s ease),
		box-shadow var(--hs-hover, 0.3s ease),
		border-color var(--hs-hover, 0.3s ease);
}

.hs-grid .hs-service-card:hover,
.hs-grid .hs-service-card:focus-within,
.hs-grid .hs-category-card:hover,
.hs-service-block--process .hs-steps__item:hover,
.hs-contact--cards .hs-contact__item:hover,
.hs-reviews .hs-review:hover {
	border-color: transparent;
	box-shadow: 4px 4px 0 var(--hs-accent);
	transform: translate(-1.5px, -1.5px);
}

@media (prefers-reduced-motion: reduce) {
	.hs-grid .hs-service-card:hover,
	.hs-grid .hs-service-card:focus-within,
	.hs-grid .hs-category-card:hover,
	.hs-service-block--process .hs-steps__item:hover,
	.hs-contact--cards .hs-contact__item:hover,
	.hs-reviews .hs-review:hover {
		transform: none;
	}
}

/* Card hover keeps the normal border; only the accent edge is added. */
.hs-grid .hs-service-card:hover,
.hs-grid .hs-service-card:focus-within,
.hs-grid .hs-category-card:hover,
.hs-contact--cards .hs-contact__item:hover,
.hs-reviews .hs-review:hover {
	border-color: var(--hs-border);
}

.hs-service-block--process .hs-steps__item {
	border-color: var(--hs-border);
}

.hs-service-block--process .hs-steps__item:hover {
	border-color: var(--hs-border);
}

/* No dark frame when a card is clicked: the focus frame is for keyboard use only. */
.hs-service-card:focus-within,
.hs-post-card:focus-within,
.hs-category-card:focus-within {
	outline: 0;
}

.hs-service-card:has(.hs-card__link:focus-visible) {
	outline: 2px solid var(--hs-ink);
	outline-offset: 2px;
}

.hs-grid .hs-service-card:focus-within:not(:hover) {
	box-shadow: none;
	transform: none;
}

/* Step cards ("how the work goes"): back to the earlier hover, accent border and number. */
.hs-service-block--process .hs-steps__item:hover {
	border-color: var(--hs-accent);
	box-shadow: none;
	transform: none;
}

/* Review cards: only the border changes colour on hover, nothing moves. */
.hs-reviews .hs-review.hs-review:hover {
	border-color: var(--hs-accent);
	box-shadow: none;
	transform: none;
}

/* Uploaded or SVG-code logo: sized by height, width follows. */
.hs-logo .hs-logo__img,
.elementor .hs-logo img.hs-logo__img,
.hs-logo .hs-logo__svg svg {
	display: block;
	width: auto;
	max-width: 14rem;
	height: var(--hs-logo-height, 3.5rem);
	border-radius: 0;
	object-fit: contain;
}

.hs-logo:has(.hs-logo__img, .hs-logo__svg) {
	height: auto;
}

.hs-logo__svg {
	display: block;
	line-height: 0;
}

@media (max-width: 639.98px) {
	.hs-logo .hs-logo__img,
	.elementor .hs-logo img.hs-logo__img,
	.hs-logo .hs-logo__svg svg {
		max-width: 10rem;
		height: 2.25rem;
	}
}

/* Header logo sits exactly on the vertical middle of the header row. */
.hs-header .elementor-widget:has(.hs-logo),
.hs-header .elementor-widget:has(.hs-logo) > .elementor-widget-container {
	display: flex;
	align-items: center;
	align-self: center;
}

.hs-header .hs-logo {
	display: flex;
}

/* Areas (უბნები) ------------------------------------------------------------ */

.hs-area-card {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 0.625rem;
	padding: 1.25rem 1.375rem;
	transition: border-color var(--hs-hover, 0.3s ease), box-shadow var(--hs-hover, 0.3s ease), transform var(--hs-hover, 0.3s ease);
}

.hs-area-card__title {
	display: flex;
	align-items: flex-start;
	gap: 0.625rem;
	margin: 0;
	font-size: 1.0625rem;
	font-weight: 700;
	line-height: 1.35;
}

.hs-area-card__title .hs-icon {
	flex: none;
	width: 1.375rem;
	height: 1.375rem;
	margin-top: 0.0625rem;
	color: var(--hs-accent);
}

.hs-area-card__title a {
	color: var(--hs-ink);
	text-decoration: none;
	transition: color var(--hs-hover, 0.3s ease);
}

/* The whole card is one link. */
.hs-area-card__title a::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
}

.hs-area-card__text {
	margin: 0;
	color: var(--hs-muted, #5b5f7a);
	font-size: 0.9375rem;
	line-height: 1.6;
}

.hs-area-card__more {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	margin: auto 0 0;
	padding-top: 0.25rem;
	color: var(--hs-ink);
	font-size: 0.9375rem;
	font-weight: 600;
	transition: color var(--hs-hover, 0.3s ease);
}

.hs-area-card__more .hs-icon {
	width: 1.125rem;
	height: 1.125rem;
	transition: transform var(--hs-hover, 0.3s ease);
}

.hs-grid .hs-area-card:hover,
.hs-grid .hs-area-card:focus-within {
	box-shadow: 4px 4px 0 var(--hs-accent);
	transform: translate(-1.5px, -1.5px);
}

.hs-area-card:hover .hs-area-card__title a,
.hs-area-card:hover .hs-area-card__more {
	color: var(--hs-accent);
}

.hs-area-card:hover .hs-area-card__more .hs-icon {
	transform: translateX(3px);
}

.hs-areas--compact .hs-area-card {
	gap: 0.375rem;
	padding: 1.125rem 1.25rem;
}

/* Single area */

.hs-page-header__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-top: 1.5rem;
}

.hs-area-body {
	display: grid;
	gap: var(--hs-gap, 1.5rem);
	align-items: start;
}

@media (min-width: 1024px) {
	.hs-area-body:has(.hs-area-body__places) {
		grid-template-columns: minmax(0, 1fr) minmax(16rem, 22rem);
		gap: 3rem;
	}
}

.hs-area-body__text > :first-child {
	margin-top: 0;
}

.hs-area-body__places {
	padding: 1.5rem;
	background: var(--hs-bg-soft);
	border-color: transparent;
}

.hs-area-body__places-title {
	margin: 0 0 1rem;
	font-size: 1.125rem;
	line-height: 1.35;
}

.hs-area-places {
	display: grid;
	gap: 0.625rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.hs-area-places li {
	display: flex;
	align-items: center;
	gap: 0.625rem;
	padding: 0.625rem 0.875rem;
	border-radius: var(--hs-radius, 12px);
	background: #ffffff;
	color: var(--hs-ink);
	font-weight: 500;
}

.hs-area-places .hs-icon {
	flex: none;
	width: 1.125rem;
	height: 1.125rem;
	color: var(--hs-accent);
}

@media (prefers-reduced-motion: reduce) {
	.hs-grid .hs-area-card:hover,
	.hs-grid .hs-area-card:focus-within {
		transform: none;
	}
}

.hs-grid .hs-area-card--static:hover {
	box-shadow: none;
	transform: none;
}

/* Call + WhatsApp buttons in page heading sections -------------------------- */

.hs-contact-buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
}

.hs-contact-buttons .hs-btn {
	min-height: 3rem;
	padding-inline: 1.375rem;
	border-radius: var(--hs-radius-btn, 3rem);
	font-weight: 600;
}

.hs-contact-buttons .hs-phone-btn .hs-phone-btn__number {
	display: inline;
}

.hs-contact-buttons .hs-phone-btn .hs-phone-btn__short {
	display: none;
}

.hs-whatsapp-btn {
	background: #ffffff;
	border-color: var(--hs-ink);
	color: var(--hs-ink);
	text-decoration: none;
	transition: background-color var(--hs-hover, 0.3s ease), border-color var(--hs-hover, 0.3s ease), color var(--hs-hover, 0.3s ease);
}

.hs-whatsapp-btn .hs-icon {
	width: 1.25rem;
	height: 1.25rem;
}

.hs-whatsapp-btn:hover,
.hs-whatsapp-btn:focus-visible {
	background: var(--hs-ink);
	border-color: var(--hs-ink);
	color: #ffffff;
}

@media (max-width: 479.98px) {
	.hs-contact-buttons .hs-btn {
		flex: 1 1 auto;
	}
}

/* Area list (homepage): districts, then links to the area pages -------------- */

.hs-area-list {
	max-width: 62rem;
	margin-inline: auto;
}

.hs-area-list__head {
	max-width: 44rem;
	margin: 0 auto 2.25rem;
	text-align: center;
}

.hs-area-list__eyebrow {
	margin: 0 0 0.75rem;
	color: var(--hs-accent);
	font-size: 0.875rem;
	font-weight: 700;
	letter-spacing: 0.04em;
}

.hs-area-list__title {
	margin: 0;
	color: var(--hs-ink);
	font-size: clamp(1.625rem, 1.2rem + 1.9vw, 2.5rem);
	line-height: 1.2;
}

.hs-area-list__text {
	margin: 1rem 0 0;
	color: var(--hs-muted, #5b5f7a);
	font-size: 1.0625rem;
	line-height: 1.6;
}

.hs-area-list__districts {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.875rem 1.5rem;
	margin: 0 0 2rem;
	padding: 0;
	list-style: none;
}

@media (min-width: 640px) {
	.hs-area-list__districts {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (min-width: 960px) {
	.hs-area-list__districts {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

.hs-area-list__districts li {
	display: flex;
	align-items: center;
	gap: 0.625rem;
	color: var(--hs-ink);
	font-weight: 700;
}

.hs-area-list__districts .hs-icon {
	flex: none;
	width: 1.25rem;
	height: 1.25rem;
	color: var(--hs-accent);
}

.hs-area-list__links {
	margin: 0 0 0.875rem;
	color: var(--hs-muted, #5b5f7a);
	font-size: 0.9375rem;
	line-height: 2;
	text-align: center;
}

.hs-area-list__links a {
	color: var(--hs-ink);
	font-weight: 600;
	text-decoration: underline;
	text-decoration-color: rgb(0 0 71 / 0.25);
	text-underline-offset: 0.25em;
	transition: color var(--hs-hover, 0.3s ease), text-decoration-color var(--hs-hover, 0.3s ease);
}

.hs-area-list__links a:hover {
	color: var(--hs-accent);
	text-decoration-color: var(--hs-accent);
}

.hs-area-list__more {
	display: flex;
	justify-content: center;
	margin: 1.75rem 0 0;
}

/* Area list: one card per service with district chips ----------------------- */

.hs-area-list__groups {
	display: grid;
	gap: 1.25rem;
}

@media (min-width: 900px) {
	.hs-area-list__groups {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.hs-area-list__group {
	padding: 1.5rem;
	border-radius: var(--hs-radius, 12px);
	background: #ffffff;
}

.hs-area-list__group-title {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin: 0 0 1.125rem;
	color: var(--hs-ink);
	font-size: 1.125rem;
	line-height: 1.3;
}

.hs-area-list__group-icon {
	display: grid;
	flex: none;
	place-items: center;
	width: 2.5rem;
	height: 2.5rem;
	border-radius: 50%;
	background: var(--hs-bg-soft);
	color: var(--hs-accent);
}

.hs-area-list__group-icon .hs-icon {
	width: 1.375rem;
	height: 1.375rem;
}

.hs-area-list__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.hs-area-list__chips a {
	display: inline-flex;
	align-items: center;
	min-height: 2.25rem;
	padding: 0.25rem 0.875rem;
	border: 1px solid var(--hs-border, #dfe3f3);
	border-radius: 3rem;
	color: var(--hs-ink);
	font-size: 0.9375rem;
	font-weight: 500;
	line-height: 1.2;
	text-decoration: none;
	transition: background-color var(--hs-hover, 0.3s ease), border-color var(--hs-hover, 0.3s ease), color var(--hs-hover, 0.3s ease);
}

.hs-area-list__chips a:hover,
.hs-area-list__chips a:focus-visible {
	border-color: var(--hs-accent);
	background: var(--hs-accent);
	color: #ffffff;
}

@media (max-width: 479.98px) {
	.hs-area-list__group {
		padding: 1.25rem;
	}
}

/* Floating call button, bottom right ---------------------------------------- */

.hs-float-call {
	position: fixed;
	right: max(1rem, env(safe-area-inset-right));
	bottom: max(1rem, env(safe-area-inset-bottom));
	z-index: 90;
	display: grid;
	place-items: center;
	width: 3.5rem;
	height: 3.5rem;
	border-radius: 50%;
	background: var(--hs-accent);
	color: #ffffff;
	box-shadow: 0 10px 24px rgb(0 0 71 / 0.25);
	transition: background-color var(--hs-hover, 0.3s ease), transform var(--hs-hover, 0.3s ease), box-shadow var(--hs-hover, 0.3s ease);
}

.hs-float-call .hs-icon {
	width: 1.625rem;
	height: 1.625rem;
}

/* Soft pulse ring to draw the eye without moving the button. */
.hs-float-call::before {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
	border: 2px solid var(--hs-accent);
	opacity: 0;
	animation: hs-float-call-ring 2.4s ease-out infinite;
}

@keyframes hs-float-call-ring {
	0% {
		opacity: 0.6;
		transform: scale(1);
	}

	70%,
	100% {
		opacity: 0;
		transform: scale(1.45);
	}
}

.hs-float-call:hover,
.hs-float-call:focus-visible {
	background: var(--hs-ink);
	color: #ffffff;
	transform: translateY(-2px);
	box-shadow: 0 14px 28px rgb(0 0 71 / 0.3);
}

@media (min-width: 1024px) {
	.hs-float-call {
		right: 1.5rem;
		bottom: 1.5rem;
		width: 3.75rem;
		height: 3.75rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.hs-float-call::before {
		animation: none;
	}

	.hs-float-call:hover {
		transform: none;
	}
}

@media print {
	.hs-float-call {
		display: none;
	}
}

/* Price list, refined: icon, name, dotted leader and a price pill ------------ */

.hs-pricing .hs-pricing__card {
	padding: 0.75rem;
	border-color: var(--hs-border);
	border-radius: 1rem;
	background: #ffffff;
}

.hs-pricing .hs-pricing__list {
	display: grid;
	gap: 0.125rem;
}

.hs-pricing .hs-pricing__row,
.hs-pricing--cols .hs-pricing__row {
	display: flex;
	align-items: center;
	gap: 0.875rem;
	min-height: 3.5rem;
	padding: 0.5rem 0.75rem;
	border: 0;
	border-radius: 0.75rem;
	transition: background-color var(--hs-hover, 0.3s ease);
}

.hs-pricing .hs-pricing__row + .hs-pricing__row {
	border: 0;
}

.hs-pricing .hs-pricing__row:hover {
	background: var(--hs-bg-soft);
}

.hs-pricing__icon {
	display: grid;
	flex: none;
	place-items: center;
	width: 2.5rem;
	height: 2.5rem;
	border-radius: 0.75rem;
	background: var(--hs-bg-soft);
	color: var(--hs-ink);
	transition: background-color var(--hs-hover, 0.3s ease), color var(--hs-hover, 0.3s ease);
}

.hs-pricing__icon .hs-icon {
	width: 1.5rem;
	height: 1.5rem;
}

.hs-pricing__row:hover .hs-pricing__icon {
	background: #ffffff;
	color: var(--hs-accent);
}

.hs-pricing .hs-pricing__name {
	flex: 0 1 auto;
	min-width: 0;
	color: var(--hs-ink);
	font-weight: 600;
	line-height: 1.35;
}

.hs-pricing .hs-pricing__name a {
	color: inherit;
	text-decoration: none;
	transition: color var(--hs-hover, 0.3s ease);
}

.hs-pricing .hs-pricing__row:hover .hs-pricing__name a {
	color: var(--hs-accent);
}

/* Extra price lines of a service sit under it, lighter and indented. */
.hs-pricing .hs-pricing__row--sub {
	min-height: 2.75rem;
	padding-left: 4.125rem;
}

.hs-pricing .hs-pricing__row--sub .hs-pricing__name {
	color: var(--hs-muted, #5b5f7a);
	font-size: 0.9375rem;
	font-weight: 500;
}

.hs-pricing__dots {
	flex: 1 1 1.5rem;
	min-width: 1rem;
	height: 0;
	border-bottom: 1px dashed rgb(0 0 71 / 0.18);
}

.hs-pricing .hs-pricing__price {
	flex: none;
	padding: 0.375rem 0.875rem;
	border-radius: 3rem;
	background: rgb(255 109 72 / 0.12);
	color: var(--hs-accent);
	font-size: 0.9375rem;
	font-weight: 700;
	line-height: 1.2;
	white-space: nowrap;
}

.hs-pricing .hs-pricing__price--request {
	background: var(--hs-bg-soft);
	color: var(--hs-ink);
	font-weight: 600;
}

@media (min-width: 1024px) {
	.hs-pricing--cols .hs-pricing__list {
		column-gap: 1.5rem;
	}
}

@media (max-width: 559.98px) {
	.hs-pricing .hs-pricing__card {
		padding: 0.375rem;
	}

	.hs-pricing .hs-pricing__row {
		flex-wrap: wrap;
		gap: 0.5rem 0.75rem;
		padding: 0.75rem 0.625rem;
	}

	.hs-pricing .hs-pricing__name {
		flex: 1 1 0;
	}

	.hs-pricing__dots {
		display: none;
	}

	.hs-pricing .hs-pricing__row--sub {
		padding-left: 3.875rem;
	}
}

@media (min-width: 1024px) {
	/* Two-column price list keeps CSS columns, so rows flow top to bottom. */
	.hs-pricing.hs-pricing--cols .hs-pricing__list {
		display: block;
		columns: 2;
		column-gap: 2.5rem;
		column-rule: 1px solid var(--hs-border);
	}

	.hs-pricing.hs-pricing--cols .hs-pricing__row {
		break-inside: avoid;
		margin-bottom: 0.125rem;
		border: 0;
	}

	.hs-pricing.hs-pricing--cols .hs-pricing__card {
		padding: 1rem 1.25rem;
	}
}

@media (max-width: 559.98px) {
	/* Phones: the price sits under the service name, so long names keep their width. */
	.hs-pricing .hs-pricing__row {
		display: grid;
		grid-template-columns: auto minmax(0, 1fr);
		align-items: center;
		gap: 0.375rem 0.75rem;
	}

	.hs-pricing .hs-pricing__icon {
		grid-row: span 2;
		align-self: start;
	}

	.hs-pricing .hs-pricing__price {
		justify-self: start;
	}

	.hs-pricing .hs-pricing__row--sub {
		grid-template-columns: minmax(0, 1fr);
		padding-left: 3.875rem;
	}
}
