/* ==========================================================================
   Contact page (page 88, /contact-us/) + enquiry forms ([cg_contact_forms]).
   Hero uses the shared resource-hero.css + hero-photo.css. Loaded by
   cg_contact_page_assets() in functions.php.

   Elementor hooks: .cgct-channels / .cgct-channel (icon boxes), .cgct-aside,
   .cgct-promise, .cgct-card, .cgct-include (list in the text widget),
   .cgct-stats, .cgct-formcard, .cgct-location, .cgct-map, .cgct-address.
   Form markup (.cgf-*) is rendered by the Commercial Gear Core plugin.
   ========================================================================== */

body.page-id-88 {
	--ct-navy: #07111F;
	--ct-navy-2: #0C1A2E;
	--ct-accent: #1B3FA0;
	--ct-accent-2: #3563E0;
	--ct-ice: #9DB8FF;
	--ct-ink: #0C1825;
	--ct-body: #5A6678;
	--ct-line: #E1E5EB;
	--ct-mist: #F4F6F9;
	--ct-err: #C2352F;
	--ct-ok: #1E7A45;
	--ct-mono: "Geist Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
	--ct-head: "Space Grotesk", Inter, sans-serif;
	--ct-ease: cubic-bezier(.2, .7, .2, 1);
	background: var(--ct-mist);
}
body.page-id-88 [id] { scroll-margin-top: 120px; }
/* 1200px content boxes never wider than the screen. */
body.page-id-88 .elementor .elementor-element:is(.elementor-element-ct1grid, .elementor-element-ct2row, .elementor-element-ct3inner).e-con { max-width: 100%; }
body.page-id-88 .elementor .elementor-element:is(.elementor-element-ct2aside, .elementor-element-ct2formcard).e-con { min-width: 0; }

/* Shared eyebrow */
.cgct-eyebrow .elementor-heading-title {
	display: inline-flex !important;
	align-items: center;
	gap: 12px;
	font: 500 11.5px/1.3 var(--ct-mono) !important;
	letter-spacing: .2em !important;
	text-transform: uppercase !important;
	color: var(--ct-accent) !important;
}
.cgct-eyebrow .elementor-heading-title::before { content: ""; width: 28px; height: 1px; background: currentColor; }

/* ── Hero (shared .cgh-hero) ─────────────────────────────────────────────
   The photo is the hero's own Elementor background (Hero → Style →
   Background), so it can be swapped in the editor. It is toned to the navy
   (luminosity blend) and a navy wash + drafting grid sits on top in ::after,
   darker on the left so the headline stays readable.
   ──────────────────────────────────────────────────────────────────────── */
body.page-id-88 .elementor-element.cgct-hero { min-height: 520px; }
/* Photo treatment for .cgh-hero--photo now lives in resource-hero.css (shared). */

/* ── Contact channels: one white panel, four columns split by hairlines ── */
body.page-id-88 .elementor-element.cgct-channels-wrap { position: relative; z-index: 3; align-items: center; }
body.page-id-88 .elementor-element.cgct-channels.e-con {
	max-width: 100%;
	overflow: hidden;
	background: #fff;
	border: 1px solid var(--ct-line);
	border-radius: 20px;
	box-shadow: 0 44px 80px -44px rgba(7, 17, 31, .5), 0 2px 6px rgba(7, 17, 31, .04);
}
.cgct-channel { height: 100%; }
.cgct-channel > .elementor-widget-container { height: 100%; }
.cgct-channel .elementor-icon-box-wrapper {
	position: relative;
	display: flex !important;
	flex-direction: column !important;
	align-items: flex-start !important;
	gap: 18px;
	height: 100%;
	padding: 30px 28px 28px;
	text-align: left !important;
	/* Hairlines on the left/top edges; the panel clips the outer ones. */
	box-shadow: -1px 0 0 var(--ct-line), 0 -1px 0 var(--ct-line);
	transition: background-color .35s ease;
}
.cgct-channel .elementor-icon-box-wrapper:hover { background: #F6F8FE; }
/* Arrow in the top-right corner, nudges on hover */
.cgct-channel .elementor-icon-box-wrapper::before {
	content: "";
	position: absolute;
	top: 32px;
	right: 26px;
	width: 16px;
	height: 16px;
	background: #B4BECC;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17L17 7M8 7h9v9'/%3E%3C/svg%3E") center / contain no-repeat;
	        mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17L17 7M8 7h9v9'/%3E%3C/svg%3E") center / contain no-repeat;
	transition: transform .35s var(--ct-ease), background-color .3s ease;
}
.cgct-channel .elementor-icon-box-wrapper:hover::before { background: var(--ct-accent); transform: translate(3px, -3px); }
.cgct-channel .elementor-icon-box-icon { margin: 0 !important; flex: none; }
.cgct-channel .elementor-icon {
	display: grid !important;
	place-items: center;
	width: 46px;
	height: 46px;
	padding: 0 !important;
	border-radius: 12px !important;
	font-size: 18px !important;
	background: #EAF0FD !important;
	color: var(--ct-accent) !important;
	transition: background-color .35s ease, color .35s ease;
}
.cgct-channel .elementor-icon svg { width: 18px; height: 18px; fill: currentColor !important; }
.cgct-channel .elementor-icon-box-wrapper:hover .elementor-icon { background: var(--ct-accent) !important; color: #fff !important; }
.cgct-channel .elementor-icon-box-content { min-width: 0; width: 100%; }
.cgct-channel .elementor-icon-box-title { margin: 0 0 6px !important; }
.cgct-channel .elementor-icon-box-title,
.cgct-channel .elementor-icon-box-title a {
	font-family: var(--ct-head) !important;
	font-size: 19px !important;
	font-weight: 600 !important;
	line-height: 1.3 !important;
	letter-spacing: -.01em;
	color: var(--ct-ink) !important;
	transition: color .3s ease;
}
.cgct-channel .elementor-icon-box-wrapper:hover .elementor-icon-box-title a { color: var(--ct-accent) !important; }
.cgct-channel .elementor-icon-box-description {
	margin: 0 !important;
	font: 400 14px/1.55 var(--ct-body-font, Inter, sans-serif) !important;
	letter-spacing: normal !important;
	text-transform: none !important;
	color: var(--ct-body) !important;
}
/* The email address is the longest value; keep it on one line. */
.elementor-element-ct1c3 .elementor-icon-box-title,
.elementor-element-ct1c3 .elementor-icon-box-title a { font-size: 17px !important; white-space: nowrap; letter-spacing: -.015em; }
/* Whole cell is the link (Elementor links title + icon; stretch it). */
.cgct-channel .elementor-icon-box-title a::after { content: ""; position: absolute; inset: 0; }

@media (max-width: 767px) {
	.cgct-channel .elementor-icon-box-wrapper {
		flex-direction: row !important;
		align-items: center !important;
		gap: 16px;
		padding: 20px 48px 20px 20px;
	}
	.cgct-channel .elementor-icon-box-wrapper::before { top: 50%; right: 20px; margin-top: -8px; }
	.cgct-channel .elementor-icon-box-title,
	.cgct-channel .elementor-icon-box-title a { font-size: 17px !important; }
}

/* ── Main: aside + form card ──────────────────────────────────────────── */
body.page-id-88 .elementor-element.cgct-main {
	background:
		linear-gradient(rgba(27, 63, 160, .03) 1px, transparent 1px),
		linear-gradient(90deg, rgba(27, 63, 160, .03) 1px, transparent 1px),
		var(--ct-mist) !important;
	background-size: 56px 56px, 56px 56px, auto !important;
}
@media (min-width: 1025px) {
	.cgct-aside { position: sticky !important; top: 130px; }
}
.cgct-promise {
	--padding-top: 20px !important;
	--padding-right: 22px !important;
	--padding-bottom: 20px !important;
	--padding-left: 22px !important;
	border-radius: 16px;
	background: linear-gradient(120deg, var(--ct-accent), #2A55C9) !important;
	box-shadow: 0 24px 44px -26px rgba(27, 63, 160, .8);
	flex-wrap: nowrap !important;
}
.cgct-promise__icon { flex: none; margin: 0 !important; }
.cgct-promise__icon .elementor-icon {
	display: grid !important;
	place-items: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: rgba(255, 255, 255, .14);
	color: #fff !important;
	font-size: 20px !important;
}
.cgct-promise__icon svg { width: 20px; height: 20px; fill: currentColor !important; }
.cgct-promise__text .elementor-heading-title { font: 500 15.5px/1.5 Inter, sans-serif !important; color: #DCE7FF !important; }
.cgct-promise__text strong { color: #fff; font-weight: 700; }

.cgct-card {
	--padding-top: 30px !important;
	--padding-right: 30px !important;
	--padding-bottom: 26px !important;
	--padding-left: 30px !important;
	border-radius: 20px;
	background: #fff !important;
	border: 1px solid var(--ct-line);
	gap: 0 !important;
}
.cgct-card__title { margin-top: 12px !important; }
.cgct-card__title .elementor-heading-title { font-family: var(--ct-head) !important; font-size: 22px !important; font-weight: 600 !important; line-height: 1.3 !important; color: var(--ct-ink) !important; }
.cgct-include { counter-reset: ct-step; list-style: none; margin: 18px 0 0 !important; padding: 0 !important; }
.cgct-include li {
	position: relative;
	counter-increment: ct-step;
	padding: 14px 0 14px 46px;
	border-top: 1px solid var(--ct-line);
}
.cgct-include li::before {
	content: counter(ct-step, decimal-leading-zero);
	position: absolute;
	left: 0;
	top: 15px;
	display: grid;
	place-items: center;
	width: 30px;
	height: 30px;
	border-radius: 8px;
	background: #EAF0FD;
	font: 500 11px/1 var(--ct-mono);
	color: var(--ct-accent);
}
.cgct-include strong { display: block; font-family: var(--ct-head); font-size: 15.5px; font-weight: 600; color: var(--ct-ink); }
.cgct-include span { display: block; margin-top: 3px; font-size: 14px; line-height: 1.55; color: var(--ct-body); }

.cgct-stats {
	gap: 0 !important;
	border-radius: 16px;
	background: var(--ct-navy) !important;
	overflow: hidden;
}
.cgct-stat { flex: 1 1 0 !important; --padding-top: 20px !important; --padding-bottom: 18px !important; --padding-left: 16px !important; --padding-right: 12px !important; gap: 6px !important; }
.cgct-stat + .cgct-stat { border-left: 1px solid rgba(157, 184, 255, .16); }
.cgct-stat__v .elementor-heading-title { font-family: var(--ct-head) !important; font-size: 26px !important; font-weight: 600 !important; line-height: 1 !important; color: #fff !important; }
.cgct-stat__l .elementor-heading-title { font: 500 10.5px/1.35 var(--ct-mono) !important; letter-spacing: .1em; text-transform: uppercase; color: #9FB0C8 !important; }

.cgct-formcard {
	--padding-top: 40px !important;
	--padding-right: 40px !important;
	--padding-bottom: 36px !important;
	--padding-left: 40px !important;
	border-radius: 24px;
	background: #fff !important;
	border: 1px solid var(--ct-line);
	box-shadow: 0 50px 90px -60px rgba(7, 17, 31, .55);
	gap: 0 !important;
}
.cgct-formcard__title { margin-top: 12px !important; }
.cgct-formcard__title .elementor-heading-title { font-family: var(--ct-head) !important; font-size: clamp(26px, 2.4vw, 34px) !important; font-weight: 600 !important; line-height: 1.2 !important; letter-spacing: -.02em; color: var(--ct-ink) !important; }
.cgct-formcard__text { margin-top: 10px !important; }
.cgct-formcard__text p { margin: 0; font-size: 15.5px; line-height: 1.65; color: var(--ct-body); }
.cgct-forms { margin-top: 26px !important; }

/* ── Location ─────────────────────────────────────────────────────────── */
body.page-id-88 .elementor-element.cgct-location { background: #fff !important; padding-top: 96px !important; padding-bottom: 96px !important; }
.cgct-location__inner { position: relative; }
.cgct-map { margin: 0 !important; }
.cgct-map iframe { display: block; border-radius: 22px; filter: grayscale(.35) contrast(1.05); border: 1px solid var(--ct-line) !important; }
.cgct-address {
	position: absolute !important;
	top: 32px;
	right: 32px;
	z-index: 2;
	width: min(380px, calc(100% - 64px)) !important;
	--padding-top: 30px !important;
	--padding-right: 30px !important;
	--padding-bottom: 30px !important;
	--padding-left: 30px !important;
	border-radius: 18px;
	background: rgba(7, 17, 31, .94) !important;
	-webkit-backdrop-filter: blur(8px);
	        backdrop-filter: blur(8px);
	box-shadow: 0 40px 70px -36px rgba(7, 17, 31, .8);
	gap: 0 !important;
}
.cgct-address .cgct-eyebrow .elementor-heading-title { color: var(--ct-ice) !important; }
.cgct-address__title { margin-top: 12px !important; }
.cgct-address__title .elementor-heading-title { font-family: var(--ct-head) !important; font-size: 20px !important; font-weight: 600 !important; line-height: 1.3 !important; color: #fff !important; }
.cgct-address__text { margin-top: 14px !important; }
.cgct-address__text p { margin: 0 0 12px; font-size: 15px; line-height: 1.65; color: #B4C1D4; }
.cgct-address__text a { color: #fff; text-decoration: none; font-weight: 600; }
.cgct-address__text a:hover { color: var(--ct-ice); }
.cgct-address__btn { margin-top: 6px !important; }
.cgct-address__btn .elementor-button {
	background: var(--ct-accent) !important;
	border-radius: 6px !important;
	padding: 14px 22px !important;
	font-size: 13px !important;
	letter-spacing: .08em;
	text-transform: uppercase;
	transition: background-color .3s ease !important;
}
.cgct-address__btn .elementor-button:hover { background: var(--ct-accent-2) !important; }
.cgct-address__btn .elementor-button-icon svg { width: 12px; fill: currentColor; }

/* ==========================================================================
   Enquiry forms (.cgf)
   ========================================================================== */
.cgf { --f-h: 50px; }
.cgf [hidden] { display: none !important; }

/* Tabs */
.cgf-tabs {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 6px;
	padding: 6px;
	margin-bottom: 30px;
	border-radius: 16px;
	background: var(--ct-mist);
	border: 1px solid var(--ct-line);
}
.cgf-tab {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 4px;
	padding: 14px 18px;
	border: 0;
	border-radius: 11px;
	background: transparent;
	text-align: left;
	cursor: pointer;
	transition: background-color .3s ease, box-shadow .3s ease;
}
.cgf-tab:hover { background: rgba(255, 255, 255, .6); }
.cgf-tab.is-active {
	background: rgba(220, 38, 38, .1);
	box-shadow: 0 0 0 1px rgba(220, 38, 38, .35), 0 10px 24px -16px rgba(185, 28, 28, .6);
}
.cgf-tab:focus-visible { outline: 2px solid var(--ct-accent); outline-offset: 2px; }
.cgf-tab__title { font-family: var(--ct-head); font-size: 16px; font-weight: 600; color: var(--ct-body); display: flex; align-items: center; gap: 8px; }
.cgf-tab.is-active .cgf-tab__title { color: #B91C1C; }
.cgf-tab__title::before { content: ""; width: 8px; height: 8px; border-radius: 50%; border: 2px solid #B7C0CC; transition: all .3s ease; }
.cgf-tab.is-active .cgf-tab__title::before { border-color: #DC2626; background: #DC2626; box-shadow: 0 0 0 3px rgba(220, 38, 38, .18); }
.cgf-tab { min-width: 0; }
.cgf-tab__sub { font-size: 12.5px; line-height: 1.4; color: #8793A3; white-space: normal; overflow-wrap: anywhere; }
.cgf-tab.is-active .cgf-tab__sub { color: #7F3B3B; }

/* Maths captcha — tinted red panel so it stands out */
.cgf-field--captcha {
	align-self: start;
	padding: 14px 16px 16px;
	border-radius: 14px;
	background: rgba(220, 38, 38, .08);
	border: 1px solid rgba(220, 38, 38, .25);
}
.cgf-field--captcha .cgf-label, .cgf-field--captcha .cgf-req { color: #B91C1C; }
.cgf-captcha { display: flex; align-items: center; gap: 10px; }
.cgf-captcha__q {
	flex: none;
	display: inline-flex;
	align-items: center;
	min-height: var(--f-h);
	padding: 0 16px;
	border-radius: 10px;
	background: rgba(220, 38, 38, .12);
	border: 1px solid rgba(220, 38, 38, .3);
	font: 600 17px/1 var(--ct-mono);
	letter-spacing: .04em;
	color: #B91C1C;
	white-space: nowrap;
	user-select: none;
}
.cgf-captcha.is-new .cgf-captcha__q { animation: cgfCap .4s var(--ct-ease); }
@keyframes cgfCap { from { opacity: .2; transform: scale(.94); } to { opacity: 1; transform: none; } }
.cgf .cgf-captcha input[type=text] { width: 96px; flex: none; text-align: center; font-weight: 600; }
.cgf-captcha__new {
	flex: none;
	width: 42px;
	height: 42px;
	padding: 0;
	border: 1px solid var(--ct-line);
	border-radius: 50%;
	background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B91C1C' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 12a9 9 0 1 1-2.64-6.36'/%3E%3Cpath d='M21 3v6h-6'/%3E%3C/svg%3E") center / 18px no-repeat;
	cursor: pointer;
	transition: border-color .2s ease, transform .4s var(--ct-ease);
}
.cgf-captcha__new:hover { border-color: #DC2626; transform: rotate(90deg); }
.cgf-captcha__new:focus-visible { outline: 2px solid var(--ct-accent); outline-offset: 2px; }
.cgf-panel { animation: cgfIn .45s var(--ct-ease) both; }
@keyframes cgfIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

/* Grid */
.cgf-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 20px 18px; }
.cgf-field { grid-column: span 6; min-width: 0; }
.cgf-field--half { grid-column: span 3; }
.cgf-field--third { grid-column: span 2; }
.cgf fieldset { margin: 0; padding: 0; border: 0; min-width: 0; }

.cgf-label {
	display: block;
	margin: 0 0 8px;
	font: 600 13.5px/1.3 Inter, sans-serif;
	color: var(--ct-ink);
}
.cgf-req { color: var(--ct-accent); }
.cgf-hint { font-weight: 400; color: #8793A3; font-size: 12.5px; }

.cgf input[type=text], .cgf input[type=email], .cgf input[type=tel], .cgf input[type=date], .cgf textarea, .cgf select {
	display: block;
	width: 100%;
	min-height: var(--f-h);
	padding: 12px 15px;
	border: 1px solid #D5DBE3;
	border-radius: 10px;
	background: #fff;
	font: 400 15px/1.4 Inter, sans-serif;
	color: var(--ct-ink);
	box-shadow: 0 1px 2px rgba(12, 24, 37, .04);
	transition: border-color .2s ease, box-shadow .2s ease, background-color .2s ease;
	-webkit-appearance: none;
	        appearance: none;
}
.cgf textarea { min-height: 132px; resize: vertical; }
.cgf input::placeholder, .cgf textarea::placeholder { color: #9AA6B8; }
.cgf input:hover, .cgf textarea:hover, .cgf select:hover { border-color: #B7C3D3; }
.cgf input:focus, .cgf textarea:focus, .cgf select:focus { outline: 0; border-color: var(--ct-accent); box-shadow: 0 0 0 4px rgba(27, 63, 160, .12); }
.cgf-select { position: relative; }
.cgf-select::after {
	content: "";
	position: absolute;
	right: 16px;
	top: 50%;
	width: 8px;
	height: 8px;
	margin-top: -6px;
	border-right: 2px solid var(--ct-body);
	border-bottom: 2px solid var(--ct-body);
	transform: rotate(45deg);
	pointer-events: none;
}
.cgf select { padding-right: 40px; cursor: pointer; }

/* Errors */
.cgf-error { margin: 7px 0 0 !important; font-size: 13px; line-height: 1.4; color: var(--ct-err); }
.cgf-error:empty { display: none; }
.cgf-field.has-error input, .cgf-field.has-error textarea, .cgf-field.has-error select { border-color: var(--ct-err); background: #FFF8F7; }
.cgf-field.has-error input:focus, .cgf-field.has-error textarea:focus, .cgf-field.has-error select:focus { box-shadow: 0 0 0 4px rgba(194, 53, 47, .12); }

/* Choice chips (checkboxes / radios) */
.cgf-choices { display: flex; flex-wrap: wrap; gap: 8px; }
.cgf-choice { position: relative; margin: 0; cursor: pointer; }
.cgf-choice input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.cgf-choice span {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 9px 14px;
	border: 1px solid #D5DBE3;
	border-radius: 999px;
	background: #fff;
	font: 500 13.5px/1.2 Inter, sans-serif;
	color: var(--ct-ink);
	transition: all .2s ease;
}
.cgf-choice span::before {
	content: "";
	width: 14px;
	height: 14px;
	border: 1.5px solid #B7C0CC;
	border-radius: 4px;
	transition: all .2s ease;
}
.cgf-field--radio .cgf-choice span::before { border-radius: 50%; }
.cgf-choice:hover span { border-color: var(--ct-accent); }
.cgf-choice input:checked + span { border-color: var(--ct-accent); background: #EEF3FD; color: var(--ct-accent); }
.cgf-choice input:checked + span::before {
	border-color: var(--ct-accent);
	background: var(--ct-accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E") center / 10px no-repeat;
}
.cgf-field--radio .cgf-choice input:checked + span::before { background-image: none; box-shadow: inset 0 0 0 3px #fff; }
.cgf-choice input:focus-visible + span { outline: 2px solid var(--ct-accent); outline-offset: 2px; }

/* Multi-select dropdown (checkbox list in a pop-up; enquiries.js adds .is-js) */
.cgf-multi { position: relative; }
.cgf-multi__btn { display: none; }
.cgf-multi.is-js .cgf-multi__btn {
	display: flex;
	align-items: center;
	width: 100%;
	min-height: var(--f-h);
	padding: 12px 44px 12px 15px;
	border: 1px solid #D5DBE3;
	border-radius: 10px;
	background: #fff;
	box-shadow: 0 1px 2px rgba(12, 24, 37, .04);
	font: 400 15px/1.4 Inter, sans-serif;
	color: #9AA6B8;
	text-align: left;
	text-transform: none;
	letter-spacing: normal;
	cursor: pointer;
	transition: border-color .2s ease, box-shadow .2s ease;
}
.cgf-multi.is-js.has-value .cgf-multi__btn { color: var(--ct-ink); }
.cgf-multi__value { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.cgf-multi.is-js .cgf-multi__btn::after {
	content: "";
	position: absolute;
	right: 16px;
	top: 50%;
	width: 8px;
	height: 8px;
	margin-top: -6px;
	border-right: 2px solid var(--ct-body);
	border-bottom: 2px solid var(--ct-body);
	transform: rotate(45deg);
	transition: transform .25s ease, margin .25s ease;
}
.cgf-multi.is-open .cgf-multi__btn::after { transform: rotate(-135deg); margin-top: -2px; }
.cgf-multi.is-js .cgf-multi__btn:hover { border-color: #B7C3D3; background: #fff; color: #9AA6B8; }
.cgf-multi.is-js.has-value .cgf-multi__btn:hover { color: var(--ct-ink); }
.cgf-multi.is-js .cgf-multi__btn:focus-visible,
.cgf-multi.is-open .cgf-multi__btn { outline: 0; border-color: var(--ct-accent); box-shadow: 0 0 0 4px rgba(27, 63, 160, .12); }
.cgf-field.has-error .cgf-multi__btn { border-color: var(--ct-err); background: #FFF8F7; }

/* Without JS the options simply show inline. */
.cgf-multi__list { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 2px; }
.cgf-multi.is-js .cgf-multi__list {
	position: absolute;
	top: calc(100% + 6px);
	left: 0;
	right: 0;
	z-index: 30;
	grid-template-columns: 1fr 1fr;
	max-height: 320px;
	overflow-y: auto;
	padding: 6px;
	background: #fff;
	border: 1px solid var(--ct-line);
	border-radius: 12px;
	box-shadow: 0 24px 48px -20px rgba(7, 17, 31, .35);
	opacity: 0;
	visibility: hidden;
	transform: translateY(-4px);
	transition: opacity .18s ease, transform .18s ease, visibility 0s linear .18s;
}
.cgf-multi.is-open .cgf-multi__list { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.cgf-multi__opt { position: relative; display: block; margin: 0; cursor: pointer; }
@media (max-width: 600px) { .cgf-multi.is-js .cgf-multi__list { grid-template-columns: 1fr; } }
.cgf-multi__opt input { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; }
.cgf-multi__opt span {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 10px 12px;
	border-radius: 8px;
	font: 500 14px/1.3 Inter, sans-serif;
	color: var(--ct-ink);
	transition: background-color .15s ease, color .15s ease;
}
.cgf-multi__opt span::before {
	content: "";
	flex: none;
	width: 16px;
	height: 16px;
	border: 1.5px solid #B7C0CC;
	border-radius: 4px;
	transition: all .15s ease;
}
.cgf-multi__opt:hover span,
.cgf-multi__opt input:focus-visible + span { background: var(--ct-mist); }
.cgf-multi__opt input:focus-visible + span { box-shadow: inset 0 0 0 2px rgba(27, 63, 160, .35); }
.cgf-multi__opt input:checked + span { color: var(--ct-accent); }
.cgf-multi__opt input:checked + span::before {
	border-color: var(--ct-accent);
	background: var(--ct-accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E") center / 11px no-repeat;
}

/* File drop zone */
.cgf-drop {
	position: relative;
	display: grid;
	justify-items: center;
	gap: 6px;
	padding: 26px 18px;
	border: 1.5px dashed #BFC9D8;
	border-radius: 14px;
	background: #FAFBFD;
	text-align: center;
	cursor: pointer;
	transition: border-color .2s ease, background-color .2s ease;
}
.cgf-drop input[type=file] { position: absolute; inset: 0; opacity: 0; cursor: pointer; width: 100%; }
.cgf-drop:hover, .cgf-drop.is-drag { border-color: var(--ct-accent); background: #F1F5FE; }
.cgf-drop:focus-within { border-color: var(--ct-accent); box-shadow: 0 0 0 4px rgba(27, 63, 160, .12); }
.cgf-drop__icon {
	width: 42px;
	height: 42px;
	border-radius: 12px;
	background: #EAF0FD url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231B3FA0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4M17 8l-5-5-5 5M12 3v12'/%3E%3C/svg%3E") center / 20px no-repeat;
}
.cgf-drop__text { font-size: 14.5px; color: var(--ct-ink); }
.cgf-drop__text u { color: var(--ct-accent); text-underline-offset: 3px; }
.cgf-drop__meta { font: 500 10.5px/1.5 var(--ct-mono); letter-spacing: .06em; color: #8793A3; }
.cgf-files { list-style: none; margin: 10px 0 0 !important; padding: 0 !important; display: grid; gap: 8px; }
.cgf-files li {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 10px 12px 10px 14px;
	border: 1px solid var(--ct-line);
	border-radius: 10px;
	background: #fff;
	font-size: 14px;
}
.cgf-files li::before { content: ""; flex: none; width: 18px; height: 18px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231B3FA0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 2v6h6'/%3E%3C/svg%3E") center / contain no-repeat; }
.cgf-files__name { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--ct-ink); }
.cgf-files__size { font: 500 11px/1 var(--ct-mono); color: #8793A3; }
.cgf-files__rm { width: 28px; height: 28px; padding: 0; border: 0; border-radius: 8px; background: transparent; font-size: 20px; line-height: 1; color: var(--ct-body); cursor: pointer; }
.cgf-files__rm:hover { background: #FBE9E9; color: var(--ct-err); }

/* Honeypot */
.cgf-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

/* Footer + submit */
.cgf-foot { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 24px; margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--ct-line); }
.cgf-submit {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	min-height: 54px;
	padding: 0 30px;
	border: 0;
	border-radius: 10px;
	background: var(--ct-accent);
	font: 600 14px/1 Inter, sans-serif;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: #fff;
	cursor: pointer;
	box-shadow: 0 16px 30px -16px rgba(27, 63, 160, .9);
	transition: background-color .3s ease, transform .3s var(--ct-ease), box-shadow .3s ease;
}
.cgf-submit::after {
	content: "";
	width: 14px;
	height: 14px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M12 5l7 7-7 7'/%3E%3C/svg%3E") center / contain no-repeat;
	        mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M12 5l7 7-7 7'/%3E%3C/svg%3E") center / contain no-repeat;
	transition: transform .3s var(--ct-ease);
}
.cgf-submit:hover { background: var(--ct-accent-2); transform: translateY(-2px); }
.cgf-submit:hover::after { transform: translateX(4px); }
.cgf-submit:focus-visible { outline: 3px solid rgba(27, 63, 160, .35); outline-offset: 3px; }
.cgf-submit[disabled] { cursor: progress; opacity: .85; transform: none; }
.cgf-submit__spin { display: none; width: 16px; height: 16px; border: 2px solid rgba(255, 255, 255, .35); border-top-color: #fff; border-radius: 50%; animation: cgfSpin .7s linear infinite; }
.cgf-form.is-sending .cgf-submit__spin { display: inline-block; }
.cgf-form.is-sending .cgf-submit::after { display: none; }
@keyframes cgfSpin { to { transform: rotate(360deg); } }
.cgf-privacy {
	flex: 1 1 240px;
	margin: 0 !important;
	padding-left: 24px;
	font-size: 13px;
	line-height: 1.55;
	color: #8793A3;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238793A3' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='11' width='18' height='11' rx='2'/%3E%3Cpath d='M7 11V7a5 5 0 0 1 10 0v4'/%3E%3C/svg%3E") 0 2px / 15px no-repeat;
}
.cgf-status { margin-top: 14px; font-size: 14px; color: var(--ct-body); }
.cgf-status:empty { display: none; }
.cgf-status.is-error, .cgf-alert--error {
	padding: 12px 16px;
	border-radius: 10px;
	background: #FDF1F0;
	border: 1px solid #F3C9C6;
	color: var(--ct-err);
}
.cgf-alert--error { margin-bottom: 20px; }

/* Success */
.cgf-success {
	padding: 42px 34px;
	border-radius: 18px;
	background: linear-gradient(180deg, #F3F8F5, #fff 70%);
	border: 1px solid #CDE8D7;
	text-align: center;
	outline: 0;
	animation: cgfIn .5s var(--ct-ease) both;
}
.cgf-success__icon {
	display: grid;
	place-items: center;
	width: 64px;
	height: 64px;
	margin: 0 auto 18px;
	border-radius: 50%;
	background: var(--ct-ok) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E") center / 28px no-repeat;
	box-shadow: 0 0 0 8px rgba(30, 122, 69, .12);
}
.cgf-success__ref { margin: 0 0 6px !important; font: 500 12px/1.4 var(--ct-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--ct-body); }
.cgf-success__ref strong { color: var(--ct-ink); }
.cgf-success__title { margin: 0 0 10px !important; font-family: var(--ct-head); font-size: 26px; font-weight: 600; color: var(--ct-ink); }
.cgf-success__msg { max-width: 480px; margin: 0 auto 22px !important; font-size: 15.5px; line-height: 1.65; color: var(--ct-body); }
.cgf-success__steps { display: grid; gap: 8px; max-width: 420px; margin: 0 auto 26px !important; padding: 0 !important; list-style: none; counter-reset: s; text-align: left; }
.cgf-success__steps li { counter-increment: s; display: flex; gap: 12px; align-items: center; padding: 10px 14px; border-radius: 10px; background: #fff; border: 1px solid var(--ct-line); font-size: 14px; color: var(--ct-ink); }
.cgf-success__steps li::before { content: counter(s); flex: none; display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: #EAF0FD; font: 600 12px/1 var(--ct-mono); color: var(--ct-accent); }
.cgf-again { padding: 12px 20px; border: 1px solid var(--ct-line); border-radius: 10px; background: #fff; font: 600 13px/1 Inter, sans-serif; color: var(--ct-accent); cursor: pointer; }
.cgf-again:hover { border-color: var(--ct-accent); }

/* ── Responsive ───────────────────────────────────────────────────────── */
@media (max-width: 1024px) {
	.cgct-formcard { --padding-top: 32px !important; --padding-right: 28px !important; --padding-bottom: 28px !important; --padding-left: 28px !important; }
	.cgct-address { position: relative !important; top: auto; right: auto; width: 100% !important; margin-top: -60px; margin-left: 0; }
	.cgct-map iframe { height: 380px !important; }
}
@media (max-width: 767px) {
	body.page-id-88 .elementor-element.cgct-hero { min-height: 0; }
	body.page-id-88 .elementor-element.cgct-channels-wrap { margin-top: -64px !important; }
	.cgf-grid { gap: 18px 12px; }
	.cgf-field--half, .cgf-field--third { grid-column: span 6; }
	.cgf-tabs { grid-template-columns: 1fr; }
	.cgf-tab__sub { display: none; }
	.cgct-formcard { --padding-top: 26px !important; --padding-right: 18px !important; --padding-bottom: 24px !important; --padding-left: 18px !important; border-radius: 18px; }
	.cgf-submit { width: 100%; }
	.cgf-privacy { flex-basis: 100%; }
	.cgct-stat__v .elementor-heading-title { font-size: 22px !important; }
	body.page-id-88 .elementor-element.cgct-location { padding-top: 60px !important; padding-bottom: 60px !important; }
	.cgct-address { margin-top: -40px; --padding-top: 24px !important; --padding-left: 22px !important; --padding-right: 22px !important; --padding-bottom: 24px !important; }
}
@media (prefers-reduced-motion: reduce) {
	.cgf-panel, .cgf-success, .cgf-captcha.is-new .cgf-captcha__q { animation: none; }
}

/* Delivery date: native calendar picker */
.cgf input[type=date] { cursor: pointer; color: var(--ct-ink); }
.cgf input[type=date]::-webkit-calendar-picker-indicator {
	cursor: pointer;
	padding: 4px;
	border-radius: 6px;
	opacity: .75;
	transition: opacity .2s ease, background-color .2s ease;
}
.cgf input[type=date]::-webkit-calendar-picker-indicator:hover { opacity: 1; background-color: #EEF3FD; }
