/* Hub circle with soft rings */
.va-hub{width:168px;height:168px;margin:0 auto;border-radius:50%;background:#fff;
  display:flex;align-items:center;justify-content:center;position:relative;
  box-shadow:0 0 0 1px #e1e7f6,0 14px 40px rgba(43,87,196,.18)}
.va-hub::before,.va-hub::after{content:"";position:absolute;border-radius:50%;
  border:1px solid #d9e2f7;pointer-events:none}
.va-hub::before{inset:-30px}
.va-hub::after{inset:-62px;opacity:.6}

/* Dotted connectors from each card towards the hub */
.va-card{position:relative}
.va-left .va-card::after,.va-right .va-card::before{content:"";position:absolute;
  top:50%;width:70px;border-top:2px dotted #bccbf0}
.va-left .va-card::after{right:-70px}
.va-right .va-card::before{left:-70px}

/* Tablet and mobile: stack, hub first, no side connectors */
@media (max-width:1024px){
  .va-left .va-card::after,.va-right .va-card::before{display:none}
  .va-hub-col{order:-1;margin-bottom:24px}
}
/* Equal-height step cards */
.va-steps .va-step,
.va-steps .va-step .kt-blocks-info-box-link-wrap{height:100%}
.va-step{position:relative;--va-gap:56px}

/* Dotted line across the gap */
.va-step.has-arrow::before{content:"";position:absolute;top:50%;
  right:calc(var(--va-gap) * -1);width:var(--va-gap);
  border-top:2px dotted #bccbf0;z-index:1}

/* Arrow badge in the middle of the gap */
.va-step.has-arrow::after{content:"";position:absolute;top:50%;
  right:calc(var(--va-gap) / -2 - 18px);width:36px;height:36px;margin-top:-18px;
  border-radius:50%;z-index:2;
  background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%232b57c4' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 8h10M9 4l4 4-4 4'/%3E%3C/svg%3E") center/16px no-repeat;
  box-shadow:0 0 0 1px #e1e7f6,0 6px 16px rgba(43,87,196,.15)}

/* Mobile: cards stack, arrows point down */
@media (max-width:767px){
  .va-steps .va-step{height:auto}
  .va-step.has-arrow::before{top:auto;right:auto;left:50%;
    bottom:calc(var(--va-gap) * -1);width:0;height:var(--va-gap);
    border-top:0;border-left:2px dotted #bccbf0}
  .va-step.has-arrow::after{top:auto;right:auto;left:50%;
    bottom:calc(var(--va-gap) / -2 - 18px);margin:0 0 0 -18px;
    transform:rotate(90deg)}
}
/* Two-directional arrow variant */
.va-step.has-arrow.arrow-both::after{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%232b57c4' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.5 8h11M5.5 5 2.5 8l3 3M10.5 5l3 3-3 3'/%3E%3C/svg%3E");
  background-size:18px}

/* ===== Jetpack form: tighter layout ===== */

/* Message box about a third shorter */
.wp-block-jetpack-contact-form textarea {
	height: 135px !important;
	min-height: 0 !important;
}

/* Less space between each label and its input */
.wp-block-jetpack-contact-form .grunion-field-label,
.wp-block-jetpack-contact-form label {
	margin-bottom: 4px !important;
	padding-bottom: 0 !important;
	line-height: 1.3;
}

/* Closer vertical spacing between field rows */
.wp-block-jetpack-contact-form {
	row-gap: 12px !important;
}

.wp-block-jetpack-contact-form .grunion-field-wrap,
.wp-block-jetpack-contact-form > div,
.wp-block-jetpack-contact-form .wp-block-jetpack-field-text,
.wp-block-jetpack-contact-form .wp-block-jetpack-field-name,
.wp-block-jetpack-contact-form .wp-block-jetpack-field-email,
.wp-block-jetpack-contact-form .wp-block-jetpack-field-select,
.wp-block-jetpack-contact-form .wp-block-jetpack-field-textarea {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}

/* ===== Thank you message: vertically centred ===== */

/* Make the Kadence column holding the message centre its content */
.wp-block-kadence-column:has(.contact-form-submission) > .kt-inside-inner-col {
	display: flex !important;
	flex-direction: column;
	justify-content: center;
	height: 100%;
}

/* Remove stray margins so it centres cleanly */
.contact-form-submission {
	margin: 0 !important;
}

.contact-form-submission > *:first-child {
	margin-top: 0 !important;
}

.contact-form-submission > *:last-child {
	margin-bottom: 0 !important;
}