/* Directory guidance: replace the always-expanded wall with one accessible comparison workspace. */
.cq-directory-page .cq-guidance-shell {
	display: grid;
	gap: 48px;
}

.cq-directory-page .cq-guidance-heading {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(320px, .65fr);
	gap: 72px;
	align-items: end;
}

.cq-directory-page .cq-guidance-heading h2 {
	max-width: 820px;
	margin: 0;
	color: var(--cq-dir-ink);
	font-size: clamp(38px, 3.5vw, 54px);
	font-weight: 620;
	line-height: 1.08;
	letter-spacing: 0;
}

.cq-directory-page .cq-guidance-heading > p {
	margin: 0;
	color: var(--cq-dir-copy);
	font-size: 17px;
	line-height: 1.7;
}

.cq-directory-page .cq-guidance-workspace {
	display: grid;
	grid-template-columns: minmax(270px, .58fr) minmax(0, 1.42fr);
	border-top: 1px solid #bcc8d2;
	border-bottom: 1px solid #bcc8d2;
}

.cq-directory-page .cq-guidance-tablist {
	display: grid;
	align-content: start;
	border-right: 1px solid #bcc8d2;
}

.cq-directory-page .cq-guidance-tab {
	display: grid;
	grid-template-columns: 48px minmax(0, 1fr);
	gap: 14px;
	align-items: center;
	min-height: 82px;
	padding: 14px 24px 14px 0;
	border: 0;
	border-bottom: 1px solid #d2dbe2;
	background: transparent;
	color: var(--cq-dir-ink);
	font: inherit;
	text-align: left;
	cursor: pointer;
}

.cq-directory-page .cq-guidance-tab:last-child {
	border-bottom: 0;
}

.cq-directory-page .cq-guidance-tab[aria-selected="true"] {
	box-shadow: inset 4px 0 0 var(--cq-dir-green);
	background: #e9f2e5;
	color: #173d18;
}

.cq-directory-page .cq-guidance-tab > span:not(.cq-local-flag):not(.cq-guidance-tab-icon) {
	display: grid;
	gap: 3px;
}

.cq-directory-page .cq-guidance-tab strong {
	font-size: 16px;
	font-weight: 750;
	line-height: 1.3;
}

.cq-directory-page .cq-guidance-tab small {
	color: var(--cq-dir-muted);
	font-size: 12.5px;
	font-weight: 550;
	line-height: 1.35;
}

.cq-directory-page .cq-guidance-tab[aria-selected="true"] small {
	color: #456247;
}

.cq-directory-page .cq-guidance-tab-icon {
	display: grid;
	width: 42px;
	height: 42px;
	place-items: center;
	border: 1px solid #c8dcbf;
	background: #f1f7ee;
	color: var(--cq-dir-green-dark);
}

.cq-directory-page .cq-guidance-tab-icon svg {
	width: 22px;
	height: 22px;
	stroke: currentColor;
}

.cq-directory-page .cq-guidance-panels {
	display: grid;
	align-items: stretch;
	min-width: 0;
}

.cq-directory-page .cq-guidance-panel {
	align-self: stretch;
	min-width: 0;
	padding: 42px 0 42px 54px;
}

.cq-directory-page .cq-guidance-panel[hidden] {
	display: none;
}

.cq-directory-page .cq-guidance-panel-scope {
	margin: 0 0 10px;
	color: var(--cq-dir-green-dark);
	font-size: 12px;
	font-weight: 800;
	line-height: 1.35;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.cq-directory-page .cq-guidance-panel h3 {
	max-width: 760px;
	margin: 0;
	color: var(--cq-dir-ink);
	font-size: clamp(29px, 2.4vw, 40px);
	font-weight: 650;
	line-height: 1.14;
	letter-spacing: 0;
}

.cq-directory-page .cq-guidance-panel > p:not(.cq-guidance-panel-scope) {
	max-width: 850px;
	margin: 20px 0 0;
	color: var(--cq-dir-copy);
	font-size: 17px;
	line-height: 1.65;
}

.cq-directory-page .cq-guidance-panel ul {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px 34px;
	max-width: 920px;
	margin: 28px 0;
	padding: 0;
	list-style: none;
}

.cq-directory-page .cq-guidance-panel li {
	position: relative;
	padding-left: 22px;
	color: #31475d;
	font-size: 16px;
	line-height: 1.5;
}

.cq-directory-page .cq-guidance-panel li::before {
	position: absolute;
	top: .62em;
	left: 0;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--cq-dir-green);
	content: "";
}

.cq-directory-page .cq-guidance-link {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	color: var(--cq-dir-green-dark);
	font-size: 16px;
	font-weight: 750;
	text-decoration-thickness: 1px;
	text-underline-offset: 5px;
}

.cq-directory-page .cq-guidance-link > span {
	margin-left: 8px;
}

.cq-directory-page .cq-guidance-tab:focus-visible,
.cq-directory-page .cq-guidance-link:focus-visible {
	outline: 3px solid #73ad42;
	outline-offset: 3px;
}

/* Services: native details remain fully expanded on larger screens and become useful disclosures only on phones. */
.cq-service-v3 .cq-service-v3__mobile-disclosure {
	margin: 0;
}

.cq-service-v3 .cq-service-v3__mobile-disclosure > summary {
	list-style: none;
}

.cq-service-v3 .cq-service-v3__mobile-disclosure > summary::-webkit-details-marker {
	display: none;
}

.cq-service-v3 .cq-service-v3__mobile-disclosure > summary > h2,
.cq-service-v3 .cq-service-v3__mobile-disclosure > summary > p {
	margin-top: 0;
}

.cq-service-v3 .cq-service-v3__exchange-panel {
	min-width: 0;
	padding: 10px 70px 10px 0;
}

.cq-service-v3 .cq-service-v3__exchange-panel + .cq-service-v3__exchange-panel {
	border-left: 1px solid #cbd7e2;
	padding: 10px 0 10px 70px;
}

.cq-service-v3 .cq-service-v3__context-panel {
	min-width: 0;
}

.cq-service-v3 .cq-service-v3__context-panel--secondary {
	border-left: 1px solid var(--cq-line);
	padding-left: 64px;
}

.cq-service-v3 .cq-service-v3__context-panel--secondary .cq-service-v3__disclosure-body > p:not(.cq-service-v3__disclaimer) {
	margin: 24px 0 0;
	color: var(--cq-copy);
}

@media (min-width: 768px) {
	.cq-service-v3 .cq-service-v3__mobile-disclosure > summary {
		pointer-events: none;
		cursor: default;
	}
}

/* Large displays: use the available canvas while keeping line lengths controlled. */
@media (min-width: 1600px) {
	.cq-directory-page .cq-directory-inner,
	html body:not(.home) .cq-page.cq-directory-page > section:not(:first-of-type) > .cq-directory-inner,
	.cq-services-v3__inner,
	.cq-service-v3__inner {
		width: min(1420px, calc(100% - 96px)) !important;
		max-width: 1420px !important;
	}

	.cq-services-v3__cards {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

/* Tablet: retain comparison and grid behavior, but remove unnecessary empty columns. */
@media (min-width: 768px) and (max-width: 1100px) {
	.cq-directory-page .cq-guidance-heading {
		grid-template-columns: minmax(0, 1fr) minmax(270px, .72fr);
		gap: 42px;
	}

	.cq-directory-page .cq-guidance-workspace {
		grid-template-columns: minmax(240px, .7fr) minmax(0, 1.3fr);
	}

	.cq-directory-page .cq-guidance-panel {
		padding: 34px 0 34px 36px;
	}

	.cq-directory-page .cq-guidance-panel ul {
		grid-template-columns: 1fr;
	}

	.cq-service-v3 .cq-service-v3__exchange-panel {
		padding-right: 38px;
	}

	.cq-service-v3 .cq-service-v3__exchange-panel + .cq-service-v3__exchange-panel {
		padding-left: 38px;
	}
}

/* Landscape tablet: keep the contextual form beside its explanation instead of creating a long stack. */
@media (min-width: 900px) and (max-width: 1100px) {
	.cq-service-v3 .cq-service-v3__inquiry-grid {
		grid-template-columns: minmax(250px, .72fr) minmax(0, 1.28fr);
		gap: 32px;
	}

	.cq-service-v3 .cq-service-v3__form-shell {
		padding: 30px 26px;
	}
}

/* Phone directories: use a horizontal selector and one focused panel, not a vertical copy of desktop. */
@media (max-width: 767px) {
	.cq-directory-page .cq-guidance-shell {
		grid-template-columns: minmax(0, 1fr);
		gap: 30px;
		min-width: 0;
	}

	.cq-directory-page .cq-guidance-heading {
		grid-template-columns: 1fr;
		gap: 18px;
	}

	.cq-directory-page .cq-guidance-heading h2 {
		font-size: clamp(32px, 9vw, 40px);
	}

	.cq-directory-page .cq-guidance-heading > p {
		font-size: 16px;
		line-height: 1.6;
	}

	.cq-directory-page .cq-guidance-workspace {
		display: block;
		width: 100%;
		max-width: 100%;
		min-width: 0;
		border-top: 0;
	}

	.cq-directory-page .cq-guidance-panels,
	.cq-directory-page .cq-guidance-panel {
		width: 100%;
		max-width: 100%;
		min-width: 0;
	}

	.cq-directory-page .cq-guidance-tablist {
		display: flex;
		gap: 0;
		margin-inline: -16px;
		padding-inline: 16px;
		overflow-x: auto;
		border-right: 0;
		border-bottom: 1px solid #bcc8d2;
		scroll-snap-type: x mandatory;
		scrollbar-width: none;
	}

	.cq-directory-page .cq-guidance-tablist::-webkit-scrollbar {
		display: none;
	}

	.cq-directory-page .cq-guidance-tab {
		flex: 0 0 auto;
		grid-template-columns: 40px auto;
		min-height: 68px;
		max-width: 230px;
		padding: 10px 18px 10px 0;
		border-bottom: 3px solid transparent;
		box-shadow: none;
		scroll-snap-align: start;
	}

	.cq-directory-page .cq-guidance-tab[aria-selected="true"] {
		border-bottom-color: var(--cq-dir-green);
		box-shadow: none;
		background: transparent;
	}

	.cq-directory-page .cq-guidance-tab small {
		display: none;
	}

	.cq-directory-page .cq-guidance-tab strong {
		font-size: 15px;
	}

	.cq-directory-page .cq-guidance-tab .cq-local-flag,
	.cq-directory-page .cq-guidance-tab-icon {
		width: 38px;
		height: 38px;
	}

	.cq-directory-page .cq-guidance-panel {
		padding: 30px 0 34px;
	}

	.cq-directory-page .cq-guidance-panel h3 {
		font-size: clamp(27px, 7.6vw, 33px);
		line-height: 1.16;
	}

	.cq-directory-page .cq-guidance-panel > p:not(.cq-guidance-panel-scope),
	.cq-directory-page .cq-guidance-panel li,
	.cq-directory-page .cq-guidance-link {
		font-size: 16px;
	}

	.cq-directory-page .cq-guidance-panel ul {
		grid-template-columns: 1fr;
		gap: 12px;
		margin: 24px 0 18px;
	}

	/* Services hub: one image-led pathway with the next choice visible, rather than cramped two-column cards. */
	.cq-services-v3 .cq-services-v3__pathways {
		padding-block: 58px;
	}

	.cq-services-v3 .cq-services-v3__section-heading {
		margin-bottom: 30px;
	}

	.cq-services-v3 .cq-services-v3__section-heading h2,
	.cq-services-v3 .cq-services-v3__faq h2,
	.cq-service-v3 .cq-service-v3__faq h2 {
		font-size: clamp(31px, 8.4vw, 36px);
	}

	.cq-services-v3 .cq-services-v3__cards {
		display: flex;
		gap: 16px;
		margin-right: -16px;
		padding: 0 16px 12px 0;
		overflow-x: auto;
		border: 0;
		background: transparent;
		scroll-padding-inline: 0;
		scroll-snap-type: x mandatory;
		scrollbar-width: none;
	}

	.cq-services-v3 .cq-services-v3__cards::-webkit-scrollbar {
		display: none;
	}

	.cq-services-v3 .cq-services-v3__service-card {
		flex: 0 0 min(82vw, 330px);
		border: 1px solid var(--cq-line);
		scroll-snap-align: start;
	}

	.cq-services-v3 .cq-services-v3__service-card > a {
		display: flex;
		grid-template-columns: none;
	}

	.cq-services-v3 .cq-services-v3__service-card figure {
		min-height: 0;
		aspect-ratio: 16 / 10;
	}

	.cq-services-v3 .cq-services-v3__service-card-copy {
		min-height: 245px;
		padding: 24px 22px 22px;
	}

	.cq-services-v3 .cq-services-v3__service-card-copy > p {
		font-size: 11px;
	}

	.cq-services-v3 .cq-services-v3__service-card-copy h3 {
		font-size: 23px;
	}

	.cq-services-v3 .cq-services-v3__service-card-copy > span {
		font-size: 16px;
		line-height: 1.5;
		margin-right: 38px;
	}

	/* Services process: a horizontal four-stage journey avoids another long vertical stack. */
	.cq-services-v3 .cq-services-v3__process,
	.cq-service-v3 .cq-service-v3__process {
		padding-block: 56px;
	}

	.cq-services-v3 .cq-services-v3__process ol,
	.cq-service-v3 .cq-service-v3__process ol {
		display: flex;
		gap: 0;
		margin-right: -16px;
		padding: 0 16px 10px 0;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		scrollbar-width: none;
	}

	.cq-services-v3 .cq-services-v3__process ol::-webkit-scrollbar,
	.cq-service-v3 .cq-service-v3__process ol::-webkit-scrollbar {
		display: none;
	}

	.cq-services-v3 .cq-services-v3__process li,
	.cq-services-v3 .cq-services-v3__process li:nth-child(even),
	.cq-service-v3 .cq-service-v3__process li,
	.cq-service-v3 .cq-service-v3__process li:nth-child(even) {
		flex: 0 0 min(78vw, 310px);
		min-height: 236px;
		padding: 22px 24px;
		border: 0;
		border-right: 1px solid rgba(255, 255, 255, .18);
		scroll-snap-align: start;
	}

	.cq-services-v3 .cq-services-v3__process li:first-child,
	.cq-service-v3 .cq-service-v3__process li:first-child {
		padding-left: 0;
	}

	/* Service details: horizontal in-page navigation and compact disclosure groups are phone-specific. */
	.cq-service-v3 .cq-service-v3__anchor-nav .cq-service-v3__inner {
		display: flex;
		flex-wrap: nowrap;
		gap: 18px;
		padding-block: 0;
		overflow-x: auto;
		scrollbar-width: none;
	}

	.cq-service-v3 .cq-service-v3__anchor-nav .cq-service-v3__inner::-webkit-scrollbar {
		display: none;
	}

	.cq-service-v3 .cq-service-v3__anchor-nav a,
	.cq-service-v3 .cq-service-v3__anchor-nav a:first-child {
		flex: 0 0 auto;
		min-height: 50px;
		padding: 0;
	}

	.cq-services-v3 .cq-services-v3__breadcrumb a,
	.cq-service-v3 .cq-service-v3__breadcrumb a {
		display: inline-flex;
		align-items: center;
		min-height: 44px;
	}

	.cq-service-v3 .cq-service-v3__section,
	.cq-service-v3 .cq-service-v3__inquiry,
	.cq-service-v3 .cq-service-v3__faq {
		padding-block: 52px;
	}

	.cq-service-v3 .cq-service-v3__challenge-grid,
	.cq-service-v3 .cq-service-v3__exchange-grid,
	.cq-service-v3 .cq-service-v3__context-grid {
		gap: 28px;
	}

	.cq-service-v3 .cq-service-v3__challenge h2,
	.cq-service-v3 .cq-service-v3__exchange h2,
	.cq-service-v3 .cq-service-v3__context h2,
	.cq-service-v3 .cq-service-v3__process header h2 {
		font-size: clamp(30px, 8vw, 35px);
	}

	.cq-service-v3 .cq-service-v3__mobile-disclosure {
		padding: 0;
		border: 0;
		border-top: 1px solid #c5d0da;
		background: transparent;
	}

	.cq-service-v3 .cq-service-v3__mobile-disclosure:last-child {
		border-bottom: 1px solid #c5d0da;
	}

	.cq-service-v3 .cq-service-v3__mobile-disclosure > summary {
		position: relative;
		min-height: 82px;
		padding: 18px 42px 18px 0;
		cursor: pointer;
	}

	.cq-service-v3 .cq-service-v3__mobile-disclosure > summary::after {
		position: absolute;
		top: 50%;
		right: 4px;
		color: var(--cq-green-dark);
		font-size: 26px;
		font-weight: 500;
		line-height: 1;
		content: "+";
		transform: translateY(-50%);
	}

	.cq-service-v3 .cq-service-v3__mobile-disclosure[open] > summary::after {
		content: "\2212";
	}

	.cq-service-v3 .cq-service-v3__mobile-disclosure > summary .cq-service-v3__kicker {
		margin-bottom: 8px;
	}

	.cq-service-v3 .cq-service-v3__mobile-disclosure > summary h2 {
		font-size: clamp(25px, 7vw, 30px);
		line-height: 1.17;
	}

	.cq-service-v3 .cq-service-v3__disclosure-body {
		padding: 0 0 28px;
	}

	.cq-service-v3 .cq-service-v3__review-scope {
		border: 0;
		background: var(--cq-navy);
		color: #fff;
	}

	.cq-service-v3 .cq-service-v3__review-scope > summary {
		padding: 24px 50px 24px 24px;
	}

	.cq-service-v3 .cq-service-v3__review-scope > summary::after {
		right: 24px;
		color: #9edb6b;
	}

	.cq-service-v3 .cq-service-v3__review-scope .cq-service-v3__disclosure-body {
		padding: 0 24px 24px;
	}

	.cq-service-v3 .cq-service-v3__exchange-panel + .cq-service-v3__exchange-panel,
	.cq-service-v3 .cq-service-v3__context-panel--secondary {
		padding-left: 0;
		border-left: 0;
	}

	.cq-service-v3 .cq-service-v3__exchange-grid > .cq-service-v3__mobile-disclosure,
	.cq-service-v3 .cq-service-v3__exchange-grid > .cq-service-v3__mobile-disclosure + .cq-service-v3__mobile-disclosure {
		padding-block: 0;
	}

	.cq-service-v3 .cq-service-v3__exchange ul,
	.cq-service-v3 .cq-service-v3__context ul {
		margin-top: 8px;
	}

	/* Service form: ask for product intent first, then contact details, without changing submission fields. */
	.cq-service-v3 .cq-service-v3__inquiry-grid {
		gap: 30px;
	}

	.cq-service-v3 .cq-service-v3__form-shell {
		padding: 26px 18px;
	}

	.cq-service-v3 .cq-service-form-progress {
		display: block;
		margin: 0 0 20px;
		padding: 0 0 12px;
		border-bottom: 3px solid #dfe8e7;
		color: var(--cq-green-dark);
		font-size: 14px;
		font-weight: 800;
	}

	.cq-service-v3 .cq-mobile-form[data-cq-mobile-step="1"] .cqb-service-fields__group:not(.cqb-service-fields__group--product),
	.cq-service-v3 .cq-mobile-form[data-cq-mobile-step="2"] .cqb-service-fields__group--product {
		display: none;
	}

	.cq-service-v3 .cq-mobile-form .cqb-service-fields,
	.cq-service-v3 .cq-mobile-form .cqb-service-fields__group,
	.cq-service-v3 .cq-mobile-form .cqb-service-fields__group--product {
		display: block;
		margin: 0;
		padding: 0;
		border: 0;
	}

	.cq-service-v3 .cq-mobile-form[data-cq-mobile-step="1"] .cqb-privacy-consent,
	.cq-service-v3 .cq-mobile-form[data-cq-mobile-step="1"] > .btn-primary,
	.cq-service-v3 .cq-mobile-form[data-cq-mobile-step="1"] .cq-service-form-back,
	.cq-service-v3 .cq-mobile-form[data-cq-mobile-step="2"] .cq-service-form-next {
		display: none !important;
	}

	.cq-service-v3 .cq-service-form-navigation {
		display: flex;
		gap: 12px;
		margin-top: 22px;
	}

	.cq-service-v3 .cq-service-form-next,
	.cq-service-v3 .cq-service-form-back {
		min-height: 50px;
		border: 2px solid var(--cq-green);
		font: inherit;
		font-size: 16px;
		font-weight: 750;
		cursor: pointer;
	}

	.cq-service-v3 .cq-service-form-next {
		width: 100%;
		background: var(--cq-green);
		color: #fff;
	}

	.cq-service-v3 .cq-service-form-back {
		padding-inline: 22px;
		background: #fff;
		color: var(--cq-green-dark);
	}

	.cq-service-v3 .cq-mobile-form[data-cq-mobile-step="2"] .cqb-privacy-consent {
		margin-top: 22px;
	}

	/* Related services: linked pathway rail keeps discovery available without another vertical list. */
	.cq-service-v3 .cq-service-v3__related {
		padding-block: 48px;
	}

	.cq-service-v3 .cq-service-v3__related ul {
		display: flex;
		gap: 14px;
		margin-right: -16px;
		padding: 0 16px 10px 0;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		scrollbar-width: none;
	}

	.cq-service-v3 .cq-service-v3__related ul::-webkit-scrollbar {
		display: none;
	}

	.cq-service-v3 .cq-service-v3__related li,
	.cq-service-v3 .cq-service-v3__related li + li {
		flex: 0 0 min(78vw, 300px);
		border: 1px solid #cbd7e2;
		scroll-snap-align: start;
	}

	.cq-service-v3 .cq-service-v3__related a,
	.cq-service-v3 .cq-service-v3__related li:first-child a {
		min-height: 78px;
		padding: 14px 16px;
	}

	/* Mobile process controls: icon buttons make non-link rails operable without touch gestures. */
	.cq-services-v3 .cq-process-rail-controls,
	.cq-service-v3 .cq-process-rail-controls {
		display: flex;
		gap: 10px;
		justify-content: flex-end;
		margin-top: 18px;
	}

	.cq-services-v3 .cq-process-rail-controls button,
	.cq-service-v3 .cq-process-rail-controls button {
		display: inline-grid;
		width: 46px;
		height: 46px;
		place-items: center;
		border: 1px solid rgba(255, 255, 255, .45);
		border-radius: 50%;
		background: transparent;
		color: #fff;
		font: inherit;
		font-size: 22px;
		cursor: pointer;
	}

	.cq-services-v3 .cq-process-rail-controls button:disabled,
	.cq-service-v3 .cq-process-rail-controls button:disabled {
		opacity: .38;
		cursor: default;
	}

	.cq-services-v3 .cq-services-v3__process ol:focus-visible,
	.cq-service-v3 .cq-service-v3__process ol:focus-visible,
	.cq-services-v3 .cq-process-rail-controls button:focus-visible,
	.cq-service-v3 .cq-process-rail-controls button:focus-visible {
		outline: 3px solid #9bd866;
		outline-offset: 3px;
	}
}

/* Desktop forms do not display the mobile step controls inserted by JavaScript. */
@media (min-width: 768px) {
	.cq-service-v3 .cq-service-form-progress,
	.cq-service-v3 .cq-service-form-navigation,
	.cq-services-v3 .cq-process-rail-controls,
	.cq-service-v3 .cq-process-rail-controls {
		display: none;
	}
}

/* Motion safety: horizontal journeys remain usable without animated transitions. */
@media (prefers-reduced-motion: reduce) {
	.cq-directory-page .cq-guidance-panel,
	.cq-services-v3 .cq-services-v3__cards,
	.cq-services-v3 .cq-services-v3__process ol,
	.cq-service-v3 .cq-service-v3__process ol,
	.cq-service-v3 .cq-service-v3__related ul {
		scroll-behavior: auto !important;
	}
}
