/* =============================================================
   Houston Safe & Lock — Locksmith page design system
   Pixel parity with notes/static/locksmith.html, mapped onto
   block-editor markup via "Additional CSS class(es)" hooks.
   Tokens come from style.css (:root --hsl-*).
   ============================================================= */

/* token fallbacks (style.css defines these on the front end; duplicated
   here so the editor canvas renders identically) */
:root {
	--hsl-navy: #174368;
	--hsl-navy-800: #103450;
	--hsl-navy-50: #eef3f8;
	--hsl-gold: #fcdc69;
	--hsl-gold-dark: #765d14;
	--hsl-ink: #16212c;
	--hsl-muted: #5b6b7a;
	--hsl-line: #e2e8ee;
	--hsl-soft: #f5f7fa;
	--hsl-radius: 14px;
	--hsl-radius-sm: 9px;
	--hsl-shadow-sm: 0 1px 3px rgba(23, 67, 104, 0.08), 0 1px 2px rgba(23, 67, 104, 0.06);
	--hsl-shadow: 0 10px 30px rgba(23, 67, 104, 0.1);
	--hsl-shadow-lg: 0 24px 60px rgba(23, 67, 104, 0.16);
}

/* ---------- shared atoms ---------- */
.hsl-eyebrow {
	color: var(--hsl-gold-dark) !important;
	font-size: 0.76rem !important;
	font-weight: 800;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	margin-bottom: 0.5rem;
}

.hsl-lead {
	color: var(--hsl-muted);
	font-size: 1.08rem;
	line-height: 1.6;
}

.hsl-muted-text {
	color: var(--hsl-muted);
}

mark.hsl-stars,
mark.hsl-x,
mark.hsl-c {
	background: transparent;
}

mark.hsl-stars {
	color: var(--hsl-gold-dark);
	letter-spacing: 0.5px;
}

mark.hsl-x {
	color: #c0392b;
}

mark.hsl-accent {
	background: transparent;
	color: var(--hsl-gold-dark);
}

.hsl-price-amt {
	font-size: 1.9rem !important;
	font-weight: 800;
	color: var(--hsl-navy) !important;
	line-height: 1.1;
}

.hsl-price-line {
	align-items: baseline;
	gap: 0.35rem;
}

.hsl-price-line p {
	margin: 0;
}

.hsl-price-unit {
	color: var(--hsl-muted);
	font-size: 0.88rem !important;
	font-weight: 700;
}

mark.hsl-c {
	color: #2e7d52;
}

.hsl-gold-link a,
a.hsl-gold-link {
	color: var(--hsl-navy);
	font-weight: 800;
	text-decoration: none;
	border-bottom: 2px solid var(--hsl-gold);
	padding-bottom: 1px;
}

.hsl-gold-link a:hover,
a.hsl-gold-link:hover {
	color: var(--hsl-navy-800);
}

/* generic white card */
.hsl-card {
	transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.hsl-card:hover {
	box-shadow: var(--hsl-shadow) !important;
	transform: translateY(-4px);
	border-color: #cfdcea !important;
}

.hsl-card--static:hover {
	transform: none;
	border-color: #e3e3f0 !important;
	box-shadow: var(--wp--preset--shadow--small-light) !important;
}

.hsl-card--gold {
	box-shadow: 0 0 0 1px var(--hsl-gold-dark), var(--hsl-shadow) !important;
}

.hsl-card--gold:hover {
	border-color: var(--hsl-gold-dark) !important;
}

/* icon chips (inline ::before data-URI icons, gold-dark stroke) */
.hsl-ic::before {
	content: "";
	display: inline-block;
	width: 17px;
	height: 17px;
	margin-right: 8px;
	vertical-align: -3px;
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
}

.hsl-ic--shield::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a8841c' stroke-width='2'%3E%3Cpath d='M12 2 4 5v6c0 5 3.4 8.5 8 11 4.6-2.5 8-6 8-11V5l-8-3Z'/%3E%3Cpath d='M9 12l2 2 4-4'/%3E%3C/svg%3E");
}

.hsl-ic--clock::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a8841c' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E");
}

.hsl-ic--badge::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a8841c' stroke-width='2'%3E%3Ccircle cx='12' cy='8' r='5'/%3E%3Cpath d='M8.5 12.5 7 22l5-3 5 3-1.5-9.5'/%3E%3C/svg%3E");
}

.hsl-ic--building::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a8841c' stroke-width='2'%3E%3Cpath d='M3 21h18M5 21V8l7-5 7 5v13'/%3E%3Cpath d='M9 21v-5h6v5'/%3E%3C/svg%3E");
}

.hsl-ic--pin::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a8841c' stroke-width='2'%3E%3Cpath d='M12 21s7-5.7 7-11a7 7 0 1 0-14 0c0 5.3 7 11 7 11Z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/svg%3E");
}

.hsl-ic--phone::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23a8841c'%3E%3Cpath d='M6.6 10.8a15.5 15.5 0 0 0 6.6 6.6l2.2-2.2c.3-.3.7-.4 1-.2 1.2.4 2.4.6 3.6.6.6 0 1 .4 1 1V20c0 .6-.4 1-1 1A17 17 0 0 1 3 4c0-.6.4-1 1-1h3.5c.6 0 1 .4 1 1 0 1.3.2 2.5.6 3.6.1.4 0 .8-.3 1l-2.2 2.2Z'/%3E%3C/svg%3E");
}

/* ---------- buttons ---------- */
.hsl-btn .wp-block-button__link {
	border-radius: var(--hsl-radius-sm);
	font-weight: 700;
	font-size: 1rem;
	padding: 15px 26px;
	line-height: 1;
	transition: 0.18s ease;
	text-decoration: none;
}

.hsl-btn--gold .wp-block-button__link {
	background: var(--hsl-gold);
	color: var(--hsl-navy);
}

.hsl-btn--gold .wp-block-button__link:hover {
	background: var(--hsl-gold-dark);
	color: #fff;
	transform: translateY(-2px);
}

.hsl-btn--navy .wp-block-button__link {
	background: var(--hsl-navy);
	color: #fff;
}

.hsl-btn--navy .wp-block-button__link:hover {
	background: var(--hsl-navy-800);
	transform: translateY(-2px);
}

.hsl-btn--outline-light .wp-block-button__link {
	background: transparent;
	color: #fff;
	border: 2px solid rgba(255, 255, 255, 0.5);
	padding: 13px 24px;
}

.hsl-btn--outline-light .wp-block-button__link:hover {
	background: #fff;
	color: var(--hsl-navy);
	border-color: #fff;
}

/* ---------- HERO ---------- */
.hsl-lk-hero {
	background:
		radial-gradient(620px 320px at 18% 4%, rgba(23, 67, 104, 0.09), transparent 60%),
		radial-gradient(560px 340px at 84% 12%, rgba(252, 220, 105, 0.2), transparent 60%),
		radial-gradient(500px 360px at 60% 120%, rgba(29, 80, 121, 0.08), transparent 60%),
		#fff;
}

.hsl-lk-hero h1 {
	font-weight: 800;
	letter-spacing: -0.025em;
	line-height: 1.12;
	font-size: clamp(2.3rem, 5vw, 3.9rem);
}

.hsl-lk-pill {
	display: flex !important;
	align-items: center;
	gap: 8px;
	background: #fff;
	border: 1px solid var(--hsl-line);
	box-shadow: var(--hsl-shadow-sm);
	border-radius: 999px;
	padding: 8px 16px !important;
	font-size: 0.82rem !important;
	font-weight: 700;
	color: var(--hsl-navy);
	margin-left: auto !important;
	margin-right: auto !important;
	width: fit-content;
}

.hsl-lk-pill::before {
	content: "";
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: #2e7d52;
	flex: 0 0 auto;
}

.hsl-lk-hero .hsl-sub {
	color: var(--hsl-muted);
	font-size: 1.14rem;
	max-width: 56ch;
	margin-left: auto;
	margin-right: auto;
}

/* hero trust row */
.hsl-lk-trustrow {
	justify-content: center;
	font-size: 0.9rem;
	font-weight: 700;
	color: var(--hsl-ink);
}

.hsl-lk-trustrow p {
	margin: 0;
	font-size: 0.9rem;
}

/* ---------- GRAVITY FORMS instant-quote bar ---------- */
.hsl-lk-quotebar .gform_wrapper {
	max-width: 900px;
	margin: 0 auto;
}

.hsl-lk-quotebar .gform_wrapper form {
	display: flex;
	align-items: stretch;
	gap: 8px;
	position: relative;
	background: #fff;
	border: 1px solid var(--hsl-line);
	box-shadow: var(--hsl-shadow);
	border-radius: 16px;
	padding: 8px;
	margin-bottom: 2rem;
	text-align: left;
}

.hsl-lk-quotebar .gform-body {
	flex: 1;
	min-width: 0;
}

.hsl-lk-quotebar .gform_fields {
	display: flex !important;
	gap: 0 !important;
	grid-gap: 0 !important;
	width: 100%;
}

.hsl-lk-quotebar .gfield {
	flex: 1;
	min-width: 0;
	padding: 0 12px;
	position: relative;
}

.hsl-lk-quotebar #field_1_1 {
	flex: 1.15;
}

.hsl-lk-quotebar #field_1_2 {
	flex: 0.65;
}

.hsl-lk-quotebar #field_1_3 {
	flex: 1;
}

.hsl-lk-quotebar .gfield + .gfield {
	border-left: 1px solid var(--hsl-line);
}

.hsl-lk-quotebar .gfield_label,
.hsl-lk-quotebar .gfield_required,
.hsl-lk-quotebar .gfield_description:not(.validation_message):not(#gfield_description_1_3),
.hsl-lk-quotebar .gform_required_legend {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

.hsl-lk-quotebar #gfield_description_1_3 {
	position: absolute;
	top: calc(100% + 9px);
	left: 12px;
	width: max-content;
	max-width: min(420px, 45vw);
	padding: 0;
	color: var(--hsl-muted);
	font-size: 0.75rem;
	font-weight: 600;
	line-height: 1.35;
}

.hsl-lk-quotebar .gfield input,
.hsl-lk-quotebar .gfield select {
	border: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	font-size: 0.98rem !important;
	font-weight: 600;
	color: var(--hsl-navy) !important;
	width: 100%;
	padding: 14px 0 !important;
	outline: none;
}

.hsl-lk-quotebar .gfield select {
	padding: 0 !important;
	height: 48px;
	line-height: 1.3 !important;
	cursor: pointer;
}

.hsl-lk-quotebar .gform_footer {
	margin: 0 !important;
	padding: 0 !important;
	display: flex;
	align-items: stretch;
}

.hsl-lk-quotebar .gform_footer input[type="submit"],
.hsl-lk-quotebar .gform_footer button {
	background: var(--hsl-gold) !important;
	color: var(--hsl-navy) !important;
	border: 0 !important;
	border-radius: var(--hsl-radius-sm) !important;
	font-weight: 700 !important;
	font-size: 1rem !important;
	padding: 0 26px !important;
	cursor: pointer;
	transition: 0.18s ease;
	white-space: nowrap;
	height: 100%;
	min-height: 48px;
}

.hsl-lk-quotebar .gform_footer input[type="submit"]:hover,
.hsl-lk-quotebar .gform_footer button:hover {
	background: var(--hsl-gold-dark) !important;
	color: #fff !important;
}

.hsl-lk-quotebar .gform_validation_errors {
	border-radius: 12px;
	margin-bottom: 10px;
}

.hsl-lk-quotebar .gform_confirmation_message {
	text-align: center;
	font-weight: 700;
	color: #2e7d52;
	background: #e7f4ec;
	border-radius: 12px;
	padding: 16px 20px;
}

@media (max-width: 760px) {

	.hsl-lk-quotebar .gform_wrapper form {
		flex-direction: column;
		margin-bottom: 0;
	}

	.hsl-lk-quotebar .gform_fields {
		flex-direction: column;
	}

	.hsl-lk-quotebar .gfield + .gfield {
		border-left: 0;
		border-top: 1px solid var(--hsl-line);
	}

	.hsl-lk-quotebar #gfield_description_1_3 {
		position: static;
		width: auto;
		max-width: none;
		padding: 0 0 12px;
	}

	.hsl-lk-quotebar .gform_footer input[type="submit"],
	.hsl-lk-quotebar .gform_footer button {
		width: 100% !important;
		min-height: 52px;
	}

	.hsl-lk-quotebar .gform_footer {
		width: 100%;
	}
}

/* ---------- TRUST BAR ---------- */
.hsl-lk-trustbar {
	border-top: 1px solid var(--hsl-line);
	border-bottom: 1px solid var(--hsl-line);
}

.hsl-lk-trustbar p {
	margin: 0;
	font-size: 0.9rem;
	font-weight: 700;
	color: var(--hsl-navy);
}

/* ---------- CATEGORY SECTIONS ---------- */
.hsl-lk-cat h2 {
	font-weight: 800;
	letter-spacing: -0.02em;
	font-size: clamp(1.65rem, 2.9vw, 2.35rem);
}

/* photo card with overlay quote */
.hsl-lk-photo {
	position: relative;
	min-height: 0 !important;
	aspect-ratio: 1 / 1.08;
	border-radius: 20px;
	overflow: hidden;
	box-shadow: var(--hsl-shadow);
}

.hsl-lk-photo .wp-block-cover__image-background {
	display: block;
	width: 100%;
	height: 100%;
	aspect-ratio: auto;
	object-fit: cover;
	border-radius: 0 !important;
}

.hsl-lk-photo .wp-block-cover__inner-container {
	width: 100%;
}

.hsl-lk-qbox {
	position: static;
	width: 100%;
}

.hsl-lk-qbox p {
	margin: 0 0 8px;
}

.hsl-lk-qbox .hsl-lk-quote {
	font-size: 1.04rem;
	font-weight: 600;
	line-height: 1.55;
	color: #fff;
}

.hsl-lk-qbox .hsl-lk-quote mark.hsl-stars {
	color: var(--hsl-gold);
	display: block;
	margin-bottom: 8px;
}

.hsl-lk-qbox .hsl-lk-who {
	font-size: 0.82rem;
	color: #cfe0ee;
	font-weight: 700;
	margin: 0;
}

/* accordions */
.hsl-lk-acc details {
	border-bottom: 1px solid var(--hsl-line);
}

.hsl-lk-acc details:last-child {
	border-bottom: 0;
}

.hsl-lk-acc summary {
	list-style: none;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	padding: 18px 0;
	font-weight: 700;
	font-size: 1.12rem;
	letter-spacing: -0.01em;
	color: var(--hsl-muted);
	transition: color 0.15s;
}

.hsl-lk-acc summary::-webkit-details-marker {
	display: none;
}

.hsl-lk-acc summary::after {
	content: "";
	width: 20px;
	height: 20px;
	flex: 0 0 auto;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a9b3bc' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") center / contain no-repeat;
	transition: 0.2s;
}

.hsl-lk-acc summary:hover,
.hsl-lk-acc details[open] > summary {
	color: var(--hsl-navy);
}

.hsl-lk-acc details[open] > summary::after {
	transform: rotate(180deg);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23174368' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
}

.hsl-lk-acc details > *:not(summary) {
	margin-top: 0;
}

.hsl-lk-acc details p {
	color: var(--hsl-muted);
	font-size: 0.97rem;
	line-height: 1.6;
	margin: 0 0 14px;
}

.hsl-lk-acc details ul {
	list-style: none;
	padding: 0 !important;
	margin: 0 0 18px;
	display: grid;
	gap: 10px;
}

.hsl-lk-acc details ul li {
	font-size: 0.94rem;
	font-weight: 600;
	color: var(--hsl-ink);
	line-height: 1.5;
	padding-left: 24px;
	position: relative;
}

.hsl-lk-acc details ul li::before {
	content: "";
	position: absolute;
	left: 2px;
	top: 4px;
	width: 14px;
	height: 14px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a8841c' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='9 18 15 12 9 6'/%3E%3C/svg%3E") center / contain no-repeat;
}

.hsl-lk-acc details > p:last-of-type {
	margin-bottom: 18px;
}

.hsl-lk-acc details p a {
	color: var(--hsl-navy);
	font-weight: 800;
	font-size: 0.94rem;
	text-decoration: none;
	border-bottom: 2px solid var(--hsl-gold);
	padding-bottom: 1px;
}

/* photo column first on mobile */
@media (max-width: 781px) {

	.hsl-lk-photo-col {
		order: -1;
	}
}

/* ---------- COMPARISON (table desktop / carousel mobile) ---------- */
.hsl-lk-cmp-table .wp-block-columns {
	gap: 0 !important;
	margin-bottom: 0 !important;
}

.hsl-cmp-label p {
	font-weight: 800;
	color: var(--hsl-navy);
	font-size: 0.95rem;
	margin: 0;
	padding: 18px 20px;
}

.hsl-cmp-them p {
	color: var(--hsl-muted);
	font-size: 0.92rem;
	line-height: 1.45;
	margin: 0;
	padding: 18px 20px;
}

.hsl-cmp-us {
	background: #f2f7fc;
	border-left: 2px solid var(--hsl-navy);
	border-right: 2px solid var(--hsl-navy);
}

.hsl-cmp-us p {
	font-size: 0.92rem;
	font-weight: 600;
	color: var(--hsl-ink);
	line-height: 1.45;
	margin: 0;
	padding: 18px 20px;
}

.hsl-cmp-row {
	border-top: 1px solid var(--hsl-line);
}

.hsl-cmp-hdr {
	border-top: 0;
}

.hsl-cmp-hdr .hsl-cmp-hthem p {
	background: #edeff2;
	border-radius: 14px 14px 0 0;
	font-weight: 800;
	color: #4b5560;
	font-size: 0.9rem;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	text-align: center;
	padding: 16px;
	margin: 0;
}

.hsl-cmp-hdr .hsl-cmp-hus p {
	background: var(--hsl-navy);
	border-radius: 14px 14px 0 0;
	border-top: 3px solid var(--hsl-gold);
	color: #fff;
	font-weight: 800;
	font-size: 0.9rem;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	text-align: center;
	padding: 16px;
	margin: 0;
}

.hsl-cmp-ftr .hsl-cmp-fthem p {
	color: var(--hsl-muted);
	font-size: 0.82rem;
	text-align: center;
	padding: 16px;
	margin: 0;
}

.hsl-cmp-ftr .hsl-cmp-fus {
	background: var(--hsl-navy);
	border-radius: 0 0 14px 14px;
	border-left: 2px solid var(--hsl-navy);
	border-right: 2px solid var(--hsl-navy);
	padding: 16px;
	display: flex;
	justify-content: center;
}

/* mobile swipe carousel */
.hsl-lk-car {
	display: none;
}

.hsl-lk-rail {
	display: flex !important;
	gap: 12px !important;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	padding: 4px 24px 8px 4px;
	margin-right: -24px;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
}

.hsl-lk-rail::-webkit-scrollbar {
	display: none;
}

.hsl-lk-slide {
	scroll-snap-align: start;
	flex: 0 0 min(300px, 78vw);
	background: #fff;
	border: 1px solid var(--hsl-line);
	border-radius: 16px;
	overflow: hidden;
	box-shadow: var(--hsl-shadow-sm);
	margin: 0 !important;
}

.hsl-lk-slide > p {
	margin: 0;
}

.hsl-lk-slide .hsl-slide-label {
	padding: 13px 16px 11px;
	font-weight: 800;
	font-size: 0.98rem;
	color: var(--hsl-navy);
}

.hsl-lk-slide .hsl-slide-them {
	padding: 12px 16px;
	background: #f4f5f6;
	font-size: 0.85rem;
	color: var(--hsl-muted);
	line-height: 1.45;
	min-height: 92px;
}

.hsl-lk-slide .hsl-slide-us {
	padding: 13px 16px 16px;
	background: linear-gradient(160deg, var(--hsl-navy-800), var(--hsl-navy));
	font-size: 0.88rem;
	color: #eaf1f7;
	font-weight: 600;
	line-height: 1.45;
	min-height: 96px;
	border-top: 2px solid var(--hsl-gold);
}

.hsl-lk-slide .hsl-slide-us mark.hsl-c {
	color: var(--hsl-gold);
}

.hsl-lk-dots {
	display: flex;
	gap: 6px;
	justify-content: center;
	margin-top: 14px;
}

.hsl-lk-dots i {
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: #cbd4dc;
	transition: 0.2s;
}

.hsl-lk-dots i.on {
	background: var(--hsl-navy);
	width: 18px;
	border-radius: 99px;
}

.hsl-lk-hint {
	text-align: center;
	font-size: 0.74rem;
	font-weight: 700;
	color: var(--hsl-muted);
	letter-spacing: 0.04em;
	margin-top: 8px !important;
}

@media (max-width: 760px) {

	.hsl-lk-cmp-table {
		display: none;
	}

	.hsl-lk-car {
		display: block;
	}
}

/* ---------- REVIEWS ---------- */
.hsl-review-rating {
	width: fit-content;
	max-width: 100%;
	margin-left: auto !important;
	margin-right: auto !important;
	color: var(--hsl-navy);
}

.hsl-review-rating p {
	margin: 0;
	font-size: 0.78rem;
	font-weight: 700;
	line-height: 1.2;
}

.hsl-review-rating .hsl-rating-number {
	font-size: 1.15rem;
	font-weight: 800;
}

.hsl-review-rating .hsl-rating-stars {
	color: var(--hsl-gold-dark);
	font-size: 0.9rem;
	letter-spacing: 0.08em;
}

.hsl-review-rating .hsl-rating-count {
	color: var(--hsl-muted);
}

.hsl-review-rating .hsl-rating-divider {
	color: #aab5bf;
}

.hsl-google-review {
	display: flex;
	align-items: center;
	gap: 0.35rem;
}

.hsl-google-g {
	display: inline-grid;
	place-items: center;
	width: 1.25rem;
	height: 1.25rem;
	border-radius: 50%;
	color: #4285f4;
	font-weight: 900;
	box-shadow: inset 0 0 0 1px #dfe5eb;
}

.hsl-review-tag {
	display: inline-block;
	font-size: 0.7rem !important;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--hsl-navy) !important;
	background: var(--hsl-navy-50);
	border-radius: 999px;
	padding: 4px 11px !important;
	width: fit-content;
}

.hsl-review-quote {
	font-style: italic;
	color: var(--hsl-ink);
}

.hsl-review-meta {
	font-size: 0.82rem !important;
	color: var(--hsl-muted);
}

/* ---------- SERVICE AREA ---------- */
.hsl-area-photo {
	position: relative;
	min-height: 0 !important;
	aspect-ratio: 4 / 3;
	border-radius: 18px;
	overflow: hidden;
	box-shadow: var(--hsl-shadow);
}

.hsl-area-photo .wp-block-cover__image-background {
	display: block;
	width: 100%;
	height: 100%;
	aspect-ratio: auto;
	object-fit: cover;
}

.hsl-area-photo .wp-block-cover__inner-container {
	width: 100%;
}

.hsl-area-photo .hsl-area-cap {
	position: static;
	color: #fff;
	font-weight: 700;
	font-size: 0.95rem;
	margin: 0;
	text-shadow: 0 1px 12px rgba(0, 0, 0, 0.6);
}

.hsl-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 9px;
}

.hsl-pills p {
	background: #fff;
	border: 1px solid var(--hsl-line);
	border-radius: 999px;
	padding: 8px 14px;
	font-size: 0.87rem;
	font-weight: 700;
	color: var(--hsl-navy);
	margin: 0 !important;
}

/* ---------- ACCREDITATION ---------- */
.hsl-accr-icon {
	width: 52px;
	height: 52px;
	min-height: 52px !important;
	aspect-ratio: 1;
	margin: 0 auto 0.85rem !important;
	color: var(--hsl-navy);
	box-shadow: inset 0 0 0 1px rgba(23, 67, 104, 0.12);
}

.hsl-accr-icon p {
	margin: 0;
	font-size: 0.9rem;
	font-weight: 900;
	letter-spacing: -0.04em;
}

.hsl-accr-icon--bbb p {
	font-size: 0.66rem;
	letter-spacing: 0;
}

.hsl-accr-icon--google p {
	color: #4285f4;
	font-size: 1.15rem;
}

/* ---------- FAQ ---------- */
.hsl-lk-faq {
	max-width: 820px;
	margin-left: auto !important;
	margin-right: auto !important;
}

.hsl-lk-faq > .hsl-eyebrow {
	margin-top: 1.75rem;
	margin-bottom: 0.75rem;
}

.hsl-lk-faq > .hsl-eyebrow:first-child {
	margin-top: 0;
}

.hsl-lk-faq details {
	background: #fff;
	border: 1px solid var(--hsl-line);
	border-radius: 10px;
	box-shadow: var(--hsl-shadow-sm);
	margin-bottom: 0.7rem;
	overflow: hidden;
}

.hsl-lk-faq summary {
	list-style: none;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1rem 1.1rem;
	color: var(--hsl-navy);
	font-size: 0.96rem;
	font-weight: 800;
}

.hsl-lk-faq summary::-webkit-details-marker {
	display: none;
}

.hsl-lk-faq summary::after {
	content: "+";
	display: grid;
	place-items: center;
	width: 1.35rem;
	height: 1.35rem;
	flex: 0 0 auto;
	border-radius: 50%;
	background: var(--hsl-navy-50);
	color: var(--hsl-navy);
	font-size: 1rem;
	font-weight: 800;
	line-height: 1;
}

.hsl-lk-faq details[open] > summary::after {
	content: "−";
}

.hsl-lk-faq details > *:not(summary) {
	margin-top: 0;
}

.hsl-lk-faq details > p {
	padding: 0 1.1rem 1rem;
	color: var(--hsl-muted);
	font-size: 0.92rem;
	line-height: 1.6;
	margin-bottom: 0;
}

/* ---------- FINAL CTA ---------- */
.hsl-lk-cta {
	margin-bottom: 0 !important;
}

body.page-id-1074 .site-footer {
	margin-block-start: 0;
}

.hsl-lk-cta h2 {
	color: #fff;
	font-weight: 800;
	letter-spacing: -0.02em;
}

.hsl-lk-cta .hsl-eyebrow {
	color: var(--hsl-gold) !important;
}

.hsl-lk-cta .hsl-lead {
	color: #cfe0ee;
}

/* section rhythm helper */
.hsl-section-head-gap {
	margin-bottom: 2.5rem !important;
}

@media (max-width: 600px) {

	.hsl-review-rating {
		gap: 0.45rem !important;
		border-radius: 16px !important;
	}

	.hsl-review-rating .hsl-rating-divider {
		display: none;
	}
}

@media (prefers-reduced-motion: reduce) {

	.hsl-card,
	.hsl-btn .wp-block-button__link,
	.hsl-lk-acc summary::after,
	.hsl-lk-dots i {
		transition: none;
	}

	.hsl-card:hover,
	.hsl-btn .wp-block-button__link:hover {
		transform: none;
	}
}
