/* ==========================================================================
   Infinite Contact — "Let's Talk" section: info column + white form card.
   Form styles are scoped to .ibb-contact__form and work with Contact Form 7,
   WPForms, Gravity Forms and plain HTML forms. They also neutralise the
   Ketofitt/WGL theme's boxed inputs and offset-shadow submit button.
   ========================================================================== */

.ibb-contact {
	--ibb-k-red: #C62828;
	--ibb-k-red-bright: #ED3131;
	--ibb-k-red-deep: #781515;
	--ibb-k-bg: #0b0b0b;
	--ibb-k-title: #ffffff;
	--ibb-k-text: #c4c4c4;
	--ibb-k-card: #ffffff;
	--ibb-k-ink: #151515;
	--ibb-k-muted: #6a6a6a;
	--ibb-k-field: #f6f6f6;
	--ibb-k-field-border: #e3e3e3;
	--ibb-k-radius: 22px;
	--ibb-k-max: 1200px;
	--ibb-k-pad-y: clamp(56px, 8vw, 104px);
	--ibb-k-font-head: inherit;

	container-type: inline-size;
	container-name: ibb-contact;
	position: relative;
	isolation: isolate;
	overflow: hidden;
	box-sizing: border-box;
	margin: 0;
	padding: var(--ibb-k-pad-y) 0;
	background-color: var(--ibb-k-bg);
	color: var(--ibb-k-text);
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
}
.ibb-contact *,
.ibb-contact *::before,
.ibb-contact *::after { box-sizing: border-box; }

/* Optional photo + the dark/red overlay from the original. */
.ibb-contact__bg { position: absolute; inset: 0; z-index: -2; }
.ibb-contact__bg img { display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; }
.ibb-contact::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	pointer-events: none;
	background:
		radial-gradient(55% 70% at 0% 100%, color-mix(in srgb, var(--ibb-k-red) 30%, transparent) 0%, transparent 70%),
		linear-gradient(100deg, rgba(8,8,8,.94) 0%, rgba(8,8,8,.86) 45%, rgba(8,8,8,.62) 100%);
}
/* Without a photo, add the faint grid used across the Infinite sections. */
.ibb-contact:not(:has(.ibb-contact__bg))::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	pointer-events: none;
	background-image: linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
	background-size: 56px 56px;
	-webkit-mask-image: radial-gradient(ellipse at 30% 40%, #000 0%, transparent 70%);
	        mask-image: radial-gradient(ellipse at 30% 40%, #000 0%, transparent 70%);
}

.ibb-contact.ibb-contact--bleed {
	--ibb-vw: calc(100vw - var(--ibb-sbw, 0px));
	width: var(--ibb-vw) !important;
	max-width: none !important;
	margin-left: calc((100% - var(--ibb-vw)) / 2) !important;
	margin-right: 0 !important;
}

.ibb-contact__wrap {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	align-items: center;
	gap: clamp(32px, 5vw, 72px);
	max-width: var(--ibb-k-max);
	margin: 0 auto;
	padding: 0 clamp(18px, 4vw, 32px);
}

/* ---- Left column ----------------------------------------------------- */
.ibb-contact .ibb-contact__eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 14px;
	padding: 0;
	font-family: var(--ibb-k-font-head);
	font-size: 13px;
	font-weight: 700;
	line-height: 1.5;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--ibb-k-red-bright);
}
.ibb-contact .ibb-contact__eyebrow::before { content: ""; width: 28px; height: 2px; background: currentColor; }

.ibb-contact .ibb-contact__title {
	margin: 0;
	padding: 0;
	font-family: var(--ibb-k-font-head);
	font-size: clamp(38px, 5vw, 60px);
	font-weight: 800;
	line-height: 1.04;
	letter-spacing: -.02em;
	text-transform: none;
	color: var(--ibb-k-title);
}
.ibb-contact .ibb-contact__sub {
	max-width: 520px;
	margin: 18px 0 0;
	padding: 0;
	font-size: clamp(16px, 1.6vw, 18px);
	line-height: 1.6;
	color: var(--ibb-k-text);
}

.ibb-contact .ibb-contact__list {
	display: grid;
	gap: 12px;
	max-width: 520px;
	margin: 30px 0 0;
	padding: 0;
	list-style: none;
}
.ibb-contact .ibb-contact__item {
	display: flex;
	align-items: center;
	gap: 14px;
	margin: 0;
	padding: 14px 16px;
	list-style: none;
	background: rgba(255,255,255,.05);
	border: 1px solid rgba(255,255,255,.1);
	border-radius: 14px;
	-webkit-backdrop-filter: blur(6px);
	        backdrop-filter: blur(6px);
}
.ibb-contact .ibb-contact__item::marker { content: none; }
.ibb-contact__icon {
	display: inline-flex;
	flex: none;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	border-radius: 10px;
	background: var(--ibb-k-red);
	color: #fff;
}
.ibb-contact__icon svg { width: 22px; height: 22px; }
.ibb-contact__icon svg:not(.ibb-icon) { fill: currentColor; }
.ibb-contact__icon i { font-size: 18px; line-height: 1; }
.ibb-contact__body { display: flex; flex-direction: column; min-width: 0; }
.ibb-contact .ibb-contact__label {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: #9d9d9d;
}
.ibb-contact .ibb-contact__value {
	font-family: var(--ibb-k-font-head);
	font-size: 16px;
	font-weight: 600;
	line-height: 1.4;
	color: #fff;
	text-decoration: none;
	overflow-wrap: anywhere;
}
.ibb-contact a.ibb-contact__value:hover { color: var(--ibb-k-red-bright); }
.ibb-contact a.ibb-contact__value:focus-visible { outline: 2px solid #fff; outline-offset: 3px; border-radius: 4px; }

.ibb-contact__steps {
	max-width: 520px;
	margin-top: 32px;
	padding-top: 26px;
	border-top: 1px solid rgba(255,255,255,.12);
}
.ibb-contact .ibb-contact__steps-title {
	margin: 0 0 16px;
	font-family: var(--ibb-k-font-head);
	font-size: 15px;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: #fff;
}
.ibb-contact .ibb-contact__steps-list { display: grid; gap: 14px; margin: 0; padding: 0; list-style: none; }
.ibb-contact .ibb-contact__step {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 15px;
	line-height: 1.5;
	color: #d0d0d0;
}
.ibb-contact .ibb-contact__step::marker { content: none; }
.ibb-contact__step-num {
	display: inline-flex;
	flex: none;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border: 1.5px solid var(--ibb-k-red-bright);
	border-radius: 50%;
	font-family: var(--ibb-k-font-head);
	font-size: 13px;
	font-weight: 700;
	color: #fff;
}

/* ---- Form card ------------------------------------------------------- */
.ibb-contact__card {
	position: relative;
	overflow: hidden;
	padding: clamp(24px, 3vw, 40px);
	border-radius: var(--ibb-k-radius);
	background: var(--ibb-k-card);
	box-shadow: 0 30px 70px rgba(0,0,0,.45);
	color: var(--ibb-k-ink);
}
.ibb-contact__card::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 5px;
	background: linear-gradient(90deg, var(--ibb-k-red-deep), var(--ibb-k-red));
}
.ibb-contact .ibb-contact__card-title {
	margin: 0 0 18px;
	font-family: var(--ibb-k-font-head);
	font-size: 22px;
	font-weight: 700;
	line-height: 1.25;
	color: var(--ibb-k-ink);
}
.ibb-contact__placeholder {
	padding: 28px;
	border: 2px dashed #d6d6d6;
	border-radius: 14px;
	font-size: 14px;
	line-height: 1.6;
	color: var(--ibb-k-muted);
}

/* Layout resets for form plugins / theme grid inside the card */
.ibb-contact__form form { margin: 0 !important; }
.ibb-contact__form p { margin: 0; }
.ibb-contact__form .row { display: block; margin: 0 !important; }
.ibb-contact__form .row > [class*="wgl_col-"],
.ibb-contact__form [class*="wgl_col-"] { width: 100%; padding: 0 !important; }
.ibb-contact__form .wpcf7-form-control-wrap { display: block; }
.ibb-contact__form .hidden-fields-container { display: none; border: 0; padding: 0; margin: 0; }
.ibb-contact__form br { display: none; }

/* Labels */
.ibb-contact .ibb-contact__form label {
	display: block;
	margin: 0 0 16px;
	padding: 0;
	font-family: var(--ibb-k-font-head);
	font-size: 12.5px;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--ibb-k-ink);
}
.ibb-contact .ibb-contact__form label > .wpcf7-form-control-wrap,
.ibb-contact .ibb-contact__form label > input,
.ibb-contact .ibb-contact__form label > textarea,
.ibb-contact .ibb-contact__form label > select { margin-top: 7px; }
.ibb-contact .ibb-contact__form .ibb-req { color: var(--ibb-k-red); }

/* Fields */
.ibb-contact .ibb-contact__form input:is([type="text"], [type="email"], [type="tel"], [type="url"], [type="number"], [type="date"], [type="search"], [type="password"]),
.ibb-contact .ibb-contact__form select,
.ibb-contact .ibb-contact__form textarea {
	display: block;
	width: 100% !important;
	max-width: 100%;
	height: auto !important;
	min-height: 52px;
	margin: 0 0 16px !important;
	padding: 13px 16px !important;
	background: var(--ibb-k-field) !important;
	border: 1px solid var(--ibb-k-field-border) !important;
	border-radius: 12px !important;
	box-shadow: none !important;
	font-family: inherit;
	font-size: 15px !important;
	font-weight: 400;
	line-height: 1.4 !important;
	letter-spacing: normal;
	text-transform: none;
	color: var(--ibb-k-ink) !important;
	transition: border-color .2s, box-shadow .2s, background .2s;
}
.ibb-contact .ibb-contact__form label input,
.ibb-contact .ibb-contact__form label select,
.ibb-contact .ibb-contact__form label textarea { margin-bottom: 0 !important; }
.ibb-contact .ibb-contact__form textarea { height: 140px !important; min-height: 110px; resize: vertical; }
.ibb-contact .ibb-contact__form ::placeholder { color: #9a9a9a; opacity: 1; font-size: 15px; }
.ibb-contact .ibb-contact__form input:hover,
.ibb-contact .ibb-contact__form select:hover,
.ibb-contact .ibb-contact__form textarea:hover { border-color: #cfcfcf !important; }
.ibb-contact .ibb-contact__form input:focus,
.ibb-contact .ibb-contact__form select:focus,
.ibb-contact .ibb-contact__form textarea:focus {
	background: #fff !important;
	border-color: var(--ibb-k-red) !important;
	box-shadow: 0 0 0 4px color-mix(in srgb, var(--ibb-k-red) 14%, transparent) !important;
	outline: none !important;
}

/* Checkboxes / acceptance */
.ibb-contact .ibb-contact__form input[type="checkbox"],
.ibb-contact .ibb-contact__form input[type="radio"] { width: 18px; height: 18px; margin: 0 8px 0 0; accent-color: var(--ibb-k-red); vertical-align: -3px; }
.ibb-contact .ibb-contact__form .wpcf7-list-item { margin: 0; }
.ibb-contact .ibb-contact__form .wpcf7-list-item label,
.ibb-contact .ibb-contact__form label:has(> input[type="checkbox"]),
.ibb-contact .ibb-contact__form label:has(> input[type="radio"]) { display: flex; align-items: flex-start; gap: 0; margin-bottom: 12px; font-weight: 400; letter-spacing: normal; text-transform: none; line-height: 1.5; }
.ibb-contact .ibb-contact__form .wpcf7-list-item-label,
.ibb-contact .ibb-contact__form .wpcf7-acceptance label { font-size: 13px; font-weight: 400; letter-spacing: normal; text-transform: none; color: var(--ibb-k-muted); }

/* Submit — also undoes the theme's span.wgl-button wrapper and its offset shadow */
.ibb-contact .ibb-contact__form .wgl-button {
	display: block !important;
	width: 100% !important;
	margin: 4px 0 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
	transform: none !important;
	box-shadow: none !important;
}
.ibb-contact .ibb-contact__form .wgl-button::before,
.ibb-contact .ibb-contact__form .wgl-button::after { display: none !important; content: none !important; }
.ibb-contact .ibb-contact__form :is(input[type="submit"], button[type="submit"], .wpcf7-submit, .wpforms-submit, .gform_button) {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100% !important;
	height: auto !important;
	min-height: 56px;
	margin: 4px 0 0 !important;
	padding: 0 28px !important;
	background: var(--ibb-k-red) !important;
	border: 0 !important;
	border-radius: 12px !important;
	box-shadow: 0 10px 24px color-mix(in srgb, var(--ibb-k-red) 30%, transparent) !important;
	font-family: var(--ibb-k-font-head);
	font-size: 16px !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
	letter-spacing: .02em !important;
	text-transform: none !important;
	color: #fff !important;
	cursor: pointer;
	transition: background .2s, transform .2s, box-shadow .2s;
}
.ibb-contact .ibb-contact__form :is(input[type="submit"], button[type="submit"], .wpcf7-submit, .wpforms-submit, .gform_button):hover {
	background: var(--ibb-k-red-deep) !important;
	box-shadow: 0 14px 30px color-mix(in srgb, var(--ibb-k-red-deep) 40%, transparent) !important;
	transform: translateY(-1px);
}
.ibb-contact .ibb-contact__form :is(input[type="submit"], button[type="submit"]):focus-visible { outline: 3px solid var(--ibb-k-ink) !important; outline-offset: 3px; }

/* Contact Form 7 states */
.ibb-contact .ibb-contact__form .wpcf7-spinner { display: none; }
.ibb-contact .ibb-contact__form .submitting .wpcf7-spinner { display: block; margin: 12px auto 0; }
.ibb-contact .ibb-contact__form .wpcf7-not-valid { border-color: var(--ibb-k-red) !important; }
.ibb-contact .ibb-contact__form .wpcf7-not-valid-tip {
	display: block;
	margin: -10px 0 14px !important;
	font-size: 13px;
	font-weight: 500;
	letter-spacing: normal;
	text-transform: none;
	color: var(--ibb-k-red);
}
.ibb-contact .ibb-contact__form label .wpcf7-not-valid-tip { margin: 6px 0 0 !important; }
.ibb-contact .ibb-contact__form .wpcf7-response-output {
	margin: 16px 0 0 !important;
	padding: 12px 16px !important;
	border-radius: 12px;
	font-size: 14px;
	line-height: 1.5;
	color: var(--ibb-k-ink);
}
.ibb-contact .ibb-contact__form .wpcf7-response-output:empty { display: none; }

/* Consent / fine print under the form */
.ibb-contact__consent {
	margin-top: 20px;
	padding-top: 18px;
	border-top: 1px solid #ececec;
	font-size: 12px;
	line-height: 1.6;
	color: var(--ibb-k-muted);
}
.ibb-contact .ibb-contact__consent p { margin: 0 0 .7em; font-size: inherit; line-height: inherit; color: inherit; }
.ibb-contact .ibb-contact__consent p:last-child { margin-bottom: 0; }
.ibb-contact .ibb-contact__consent a { color: var(--ibb-k-red); text-decoration: underline; text-underline-offset: 2px; }

/* ---- Narrow: stack (reacts to the section's own width) ------------------ */
@container ibb-contact (max-width: 900px) {
	.ibb-contact__wrap { grid-template-columns: 1fr; }
	.ibb-contact__intro { max-width: 640px; }
}
@media (max-width: 767px) {
	.ibb-contact::after { background: linear-gradient(180deg, rgba(8,8,8,.92) 0%, rgba(8,8,8,.85) 100%); }
}

@media (prefers-reduced-motion: reduce) {
	.ibb-contact .ibb-contact__form * { transition: none !important; }
	.ibb-contact .ibb-contact__form :is(input[type="submit"], button[type="submit"]):hover { transform: none; }
}
