/**
 * JCR site-wide button system.
 * Loaded last so saved Site Editor blocks cannot fall back to WordPress grey.
 */
:root {
	--jcr-button-navy: var(--jcr-navy);
	--jcr-button-blue: var(--jcr-blue);
	--jcr-button-blue-hover: #0d5578;
	--jcr-button-gold: #ffc247;
	--jcr-button-gold-hover: #ffd064;
	--jcr-button-gold-border: #ffd477;
}

/* Consultation panel: explanation at left, primary actions at right, LINE below. */
.jcr-cta {
	position: relative;
	overflow: hidden;
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(20rem, .85fr);
	gap: clamp(1.5rem, 3vw, 2.25rem);
	padding: clamp(2rem, 4vw, 3.5rem);
	border: 1px solid rgba(255, 255, 255, .14);
	border-radius: 1.25rem;
	background: linear-gradient(135deg, #0d2540 0%, #124a68 62%, #0f3a58 100%);
	color: #fff;
	box-shadow: 0 26px 64px rgba(8, 30, 48, .28);
}
.jcr-cta:before {
	content: "";
	position: absolute;
	top: -140px;
	right: -120px;
	width: 420px;
	height: 420px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(255, 194, 71, .16) 0%, rgba(255, 194, 71, 0) 70%);
	pointer-events: none;
}
.jcr-cta__intro { position: relative; max-width: 48rem; align-self: start; }
.jcr-cta__eyebrow { display: flex; align-items: center; gap: .5rem; margin: 0 0 .65rem; color: var(--jcr-button-gold); font-size: .72rem; font-weight: 850; letter-spacing: .16em; }
.jcr-cta__eyebrow:before { content: ""; width: 1.4rem; height: 2px; background: var(--jcr-button-gold); border-radius: 2px; }
.jcr-cta h2 { margin: 0; color: #fff; font-size: clamp(1.65rem, 3vw, 2.35rem); line-height: 1.35; }
.jcr-cta__lead { max-width: 42rem; margin: 1rem 0 0; color: #d8e7f0; line-height: 1.8; }
.jcr-cta__assurance { display: flex; flex-wrap: wrap; gap: .55rem 1.2rem; margin: 1.35rem 0 0; padding: 0; list-style: none; color: #edf6fa; font-size: .84rem; }
.jcr-cta__assurance li::before { content: "✓"; margin-right: .42rem; color: #7ee0ac; font-weight: 900; }
.jcr-cta__channels { display: contents; }
.jcr-cta__channels > :nth-child(1) { grid-column: 2; grid-row: 1; }
.jcr-cta__channels > :nth-child(2) { grid-column: 2; grid-row: 2; }
.jcr-cta__channels > :nth-child(3) { grid-column: 1; grid-row: 2 / span 2; }
.jcr-cta__channels > :nth-child(4) { grid-column: 2; grid-row: 3; align-self: end; }
.jcr-cta a.jcr-cta__channel { position: relative; display: grid; grid-template-rows: auto auto 1fr; align-content: start; min-height: 148px; margin: 0; padding: 1.35rem 3.4rem 1.35rem 1.4rem; border: 1px solid rgba(255,255,255,.16)!important; border-radius: 1rem; background: rgba(255,255,255,.06)!important; color: #fff!important; text-decoration: none; box-shadow: inset 0 0 0 1px rgba(255,255,255,.03); backdrop-filter: blur(2px); transition: transform .2s ease, background-color .2s ease, border-color .2s ease, box-shadow .2s ease; }
.jcr-cta a.jcr-cta__channel:hover { border-color: rgba(255,255,255,.5)!important; background: rgba(255,255,255,.12)!important; color: #fff!important; transform: translateY(-3px); box-shadow: 0 16px 34px rgba(5,25,42,.24); }
.jcr-cta a.jcr-cta__channel--form { border-color: var(--jcr-button-gold-border)!important; background: linear-gradient(135deg, var(--jcr-button-gold) 0%, #ffb943 100%)!important; color: var(--jcr-button-navy)!important; box-shadow: 0 14px 32px rgba(255, 178, 40, .28); }
.jcr-cta a.jcr-cta__channel--form:hover { border-color: #ffe19a!important; background: linear-gradient(135deg, var(--jcr-button-gold-hover) 0%, #ffc35c 100%)!important; color: #081e32!important; box-shadow: 0 18px 38px rgba(255, 178, 40, .38); }
.jcr-cta__channel-label { margin-bottom: .55rem; color: inherit; font-size: .68rem; font-weight: 850; letter-spacing: .12em; opacity: .72; }
.jcr-cta__channel strong { display: block; color: inherit; font-size: 1.12rem; line-height: 1.4; }
.jcr-cta__channel small { display: block; align-self: end; margin-top: .65rem; color: inherit; font-size: .74rem; font-weight: 650; line-height: 1.5; opacity: .72; }
.jcr-cta__channel>b { position: absolute; right: 1.1rem; bottom: 1.1rem; top: auto; display: flex; align-items: center; justify-content: center; width: 2.1rem; height: 2.1rem; border-radius: 50%; background: rgba(255,255,255,.14); color: inherit; font-size: 1rem; font-style: normal; transform: none; transition: transform .2s ease, background-color .2s ease; }
.jcr-cta a.jcr-cta__channel:hover>b { transform: translateX(2px); background: rgba(255,255,255,.24); }
.jcr-cta a.jcr-cta__channel--form>b { background: rgba(16,40,59,.14); }
.jcr-cta a.jcr-cta__channel--form:hover>b { background: rgba(16,40,59,.22); }
.jcr-cta .jcr-line-qr { display: grid; grid-template-columns: 150px minmax(0,1fr); gap: 1.35rem; align-items: center; }
.jcr-cta .jcr-line-qr img { display: block; width: 150px; height: 150px; padding: 6px; border-radius: .7rem; background: #fff; box-shadow: 0 8px 20px rgba(0,0,0,.2); object-fit: contain; }
.jcr-cta__footer { position: relative; grid-column: 1 / -1; display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem 1.5rem; padding-top: 1.15rem; border-top: 1px solid rgba(255,255,255,.17); color: #d7e6ee; font-size: .76rem; }
.jcr-cta__footer :where(p,span) { margin: 0; }
@media (max-width: 820px) {
	.jcr-cta { grid-template-columns: minmax(0,1fr); }
	.jcr-cta__channels { display: grid; grid-column: 1; grid-template-columns: minmax(0,1fr); grid-template-rows: none; gap: .85rem; }
	.jcr-cta__channels > :nth-child(n) { grid-column: 1; grid-row: auto; }
}
@media (max-width: 600px) {
	.jcr-cta a.jcr-cta__channel { min-height: 118px; }
	.jcr-cta .jcr-line-qr { grid-template-columns: 92px minmax(0,1fr); gap: .85rem; }
	.jcr-cta .jcr-line-qr img { width: 92px; height: 92px; padding: 4px; border-radius: .5rem; }
	.jcr-cta__footer { display: grid; }
}

/* Default action: blue. This replaces the unrelated WordPress grey fallback. */
:where(.wp-block-button:not(.is-style-outline)) > .wp-block-button__link,
:where(.wp-block-button:not(.is-style-outline)) > .wp-element-button,
:where(a.wp-element-button:not(.jcr-header-cta)),
:where(button.wp-element-button) {
	border: 1px solid var(--jcr-button-blue) !important;
	background: var(--jcr-button-blue) !important;
	color: #fff !important;
	font-weight: 800;
	text-decoration: none;
	box-shadow: 0 9px 24px rgba(20, 108, 148, .2);
}

:where(.wp-block-button:not(.is-style-outline)) > .wp-block-button__link:hover,
:where(.wp-block-button:not(.is-style-outline)) > .wp-element-button:hover,
:where(a.wp-element-button:not(.jcr-header-cta)):hover,
:where(button.wp-element-button):hover {
	border-color: var(--jcr-button-blue-hover) !important;
	background: var(--jcr-button-blue-hover) !important;
	color: #fff !important;
	box-shadow: 0 13px 30px rgba(13, 85, 120, .28);
}

/* Secondary action: white surface with a navy outline. */
.wp-block-button.is-style-outline > .wp-block-button__link,
.wp-block-button.is-style-outline > .wp-element-button {
	border: 2px solid var(--jcr-button-navy) !important;
	background: #fff !important;
	color: var(--jcr-button-navy) !important;
	box-shadow: none;
}

.wp-block-button.is-style-outline > .wp-block-button__link:hover,
.wp-block-button.is-style-outline > .wp-element-button:hover {
	background: #edf5f8 !important;
	color: #081e32 !important;
	box-shadow: 0 8px 20px rgba(16, 40, 59, .12);
}

/* Primary conversion actions: JCR gold on every page type. */
.jcr-header-cta > .wp-block-button__link,
.jcr-header-cta > .wp-element-button,
.jcr-cta .wp-block-button__link,
.jcr-cta .wp-element-button,
.jcr-service-inline-cta .wp-block-button__link,
.jcr-service-inline-cta .wp-element-button,
.jcr-service-sidebar .wp-block-buttons:first-of-type .wp-element-button,
.jcr-onboarding-inline-cta > a,
.jcr-editorial-next .wp-block-button__link,
.jcr-editorial-final .wp-block-button__link,
.jcr-contact-submit,
.jcr-submit {
	border: 1px solid var(--jcr-button-gold-border) !important;
	background: var(--jcr-button-gold) !important;
	color: var(--jcr-button-navy) !important;
	font-weight: 850;
	text-decoration: none;
	box-shadow: 0 10px 28px rgba(255, 194, 71, .3);
}

.jcr-header-cta > .wp-block-button__link:hover,
.jcr-header-cta > .wp-element-button:hover,
.jcr-cta .wp-block-button__link:hover,
.jcr-cta .wp-element-button:hover,
.jcr-service-inline-cta .wp-block-button__link:hover,
.jcr-service-inline-cta .wp-element-button:hover,
.jcr-service-sidebar .wp-block-buttons:first-of-type .wp-element-button:hover,
.jcr-onboarding-inline-cta > a:hover,
.jcr-editorial-next .wp-block-button__link:hover,
.jcr-editorial-final .wp-block-button__link:hover,
.jcr-contact-submit:hover,
.jcr-submit:hover {
	border-color: #ffe19a !important;
	background: var(--jcr-button-gold-hover) !important;
	color: #081e32 !important;
	box-shadow: 0 14px 34px rgba(255, 194, 71, .38);
}

/* Dark hero outline buttons need a light outline instead of a white fill. */
.jcr-service-hero .wp-block-button.is-style-outline > .wp-element-button {
	border-color: rgba(255, 255, 255, .9) !important;
	background: transparent !important;
	color: #fff !important;
}

.jcr-service-hero .wp-block-button.is-style-outline > .wp-element-button:hover {
	background: rgba(255, 255, 255, .12) !important;
}

/* Real controls retain their compact, task-specific visual hierarchy. */
.jcr-contact-button {
	border-color: var(--jcr-button-blue) !important;
	background: var(--jcr-button-blue) !important;
	color: #fff !important;
}

.jcr-contact-button--light {
	border: 1px solid var(--jcr-button-navy) !important;
	background: #fff !important;
	color: var(--jcr-button-navy) !important;
	box-shadow: none;
}

.jcr-consent-reopen {
	border-color: var(--jcr-line) !important;
	background: #fff !important;
	color: #172033 !important;
	box-shadow: none !important;
}

/* Consistent keyboard focus on light and dark sections. */
:where(.wp-element-button, .jcr-sales-button, .jcr-about-button, .jcr-contact-button):focus-visible {
	outline: 3px solid #fff !important;
	outline-offset: 3px;
	box-shadow: 0 0 0 6px var(--jcr-button-blue) !important;
}

@media (max-width: 600px) {
	.wp-block-buttons:not(.jcr-header-action) .wp-block-button,
	.wp-block-buttons:not(.jcr-header-action) .wp-element-button {
		max-width: 100%;
	}

	.jcr-cta .wp-block-button,
	.jcr-service-inline-cta .wp-block-button,
	.jcr-editorial-next .wp-block-button {
		width: 100%;
	}

	.jcr-cta .wp-element-button,
	.jcr-service-inline-cta .wp-element-button,
	.jcr-editorial-next .wp-element-button {
		width: 100%;
		white-space: normal;
		text-align: center;
	}
}
