/* ═══════════════════════════════════════════════════════════════════════
   contact.css — Public contact page (/contact).

   Mirrors the enquiry-form / login validation language (.is-invalid /
   .is-valid on the field wrap, red focus glow) but in its own gg-cnt
   namespace. Dropdown is the same bootstrap-select used in the search
   bar, restyled to fit the contact card. No max-width on the wrapper.

   Block: .gg-cnt  (Contact)
   ═══════════════════════════════════════════════════════════════════════ */

/* ── Body / page wrapper ─────────────────────────────────────────────── */
.gg-cnt-body{ background: var(--gg-off-white, #FAFAFA); }
.gg-cnt-body::before{
	content: "";
	position: fixed; inset: 0;
	background:
		radial-gradient(1100px 460px at 8% -8%, rgba(237,41,56,.06), transparent 70%),
		radial-gradient(900px 420px at 110% 12%, rgba(237,41,56,.04), transparent 75%);
	pointer-events: none; z-index: 0;
}
.gg-cnt{ width: 100%; padding: 24px 28px 32px; position: relative; z-index: 1; }
@media (max-width: 700px){ .gg-cnt{ padding: 14px 14px 56px; } }

/* ── Shared atoms ────────────────────────────────────────────────────── */
.gg-cnt__eyebrow{
	display: inline-flex; align-items: center; gap: 8px;
	font-family: var(--gg-font-head);
	font-size: var(--gg-text-2xs, 11px);
	font-weight: 700;
	color: var(--gg-red-deep, #B91C28);
	letter-spacing: .14em; text-transform: uppercase;
}
.gg-cnt__eyebrow::before{
	content: ""; width: 22px; height: 2px;
	background: var(--gg-red, #ED2938); border-radius: 2px;
}
.gg-cnt__eyebrow i{ font-size: 13px; color: var(--gg-red, #ED2938); }
.gg-cnt__eyebrow--light{ color: rgba(255,255,255,.78); }
.gg-cnt__eyebrow--light::before{ background: rgba(255,255,255,.55); }

.gg-cnt__btn{
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	padding: 13px 22px;
	border-radius: 12px;
	font-family: var(--gg-font-head);
	font-size: var(--gg-text-xs, 12px);
	font-weight: 700;
	letter-spacing: .04em;
	white-space: nowrap;
	transition: all 200ms ease;
	cursor: pointer;
	border: 1.5px solid transparent;
}
.gg-cnt__btn i{ transition: transform 200ms ease; }
.gg-cnt__btn--primary{
	background: linear-gradient(135deg, var(--gg-red, #ED2938), var(--gg-red-deep, #B91C28));
	color: #fff;
	box-shadow: 0 10px 26px -10px rgba(237,41,56,.6), inset 0 1px 0 rgba(255,255,255,.18);
}
.gg-cnt__btn--primary:hover{ filter: brightness(1.05); transform: translateY(-1px); color: #fff; }
.gg-cnt__btn--primary:hover i{ transform: translateX(2px); }
.gg-cnt__btn--white{
	background: var(--gg-white, #fff);
	color: var(--gg-red-deep, #B91C28);
	box-shadow: 0 10px 26px -10px rgba(0,0,0,.4);
}
.gg-cnt__btn--white:hover{ transform: translateY(-1px); }
.gg-cnt__btn--white:hover i{ transform: translateX(2px); }

/* ── Breadcrumb ──────────────────────────────────────────────────────── */
.gg-cnt__crumbs{ margin-bottom: clamp(14px, 2vw, 20px); }
.gg-cnt__crumbs-list{
	list-style: none; padding: 0; margin: 0;
	display: flex; flex-wrap: wrap; align-items: center; gap: 8px;
	font-family: var(--gg-font-head);
	font-size: var(--gg-text-xs, 12px);
	font-weight: 600;
	color: var(--gg-gray-500, #6B7280);
}
.gg-cnt__crumbs-list li{ display: inline-flex; align-items: center; gap: 8px; }
.gg-cnt__crumbs-list li:not(:last-child)::after{ content: "/"; color: var(--gg-gray-300, #D1D5DB); font-weight: 500; }
.gg-cnt__crumbs-list a{ color: var(--gg-gray-500, #6B7280); transition: color 180ms ease; }
.gg-cnt__crumbs-list a:hover{ color: var(--gg-red-deep, #B91C28); }
.gg-cnt__crumbs-list span[aria-current]{ color: var(--gg-gray-800, #1F2937); }

/* ── Hero ────────────────────────────────────────────────────────────── */
.gg-cnt__hero{
	position: relative;
	overflow: hidden;
	margin-bottom: clamp(18px, 2.4vw, 24px);
	padding: clamp(22px, 2.8vw, 36px) clamp(20px, 2.8vw, 36px);
	background:
		radial-gradient(ellipse at top left, rgba(237,41,56,.08) 0%, transparent 55%),
		radial-gradient(ellipse at bottom right, rgba(237,41,56,.05) 0%, transparent 55%),
		var(--gg-white, #fff);
	border-radius: var(--gg-r-xl, 16px);
	box-shadow: 0 1px 2px rgba(237,41,56,.04), 0 12px 32px rgba(237,41,56,.08);
}
.gg-cnt__hero-glow{
	position: absolute; top: -80px; right: -80px;
	width: 320px; height: 320px; border-radius: 50%;
	background: radial-gradient(circle, rgba(237,41,56,.22) 0%, transparent 60%);
	filter: blur(36px); pointer-events: none;
}
.gg-cnt__hero-inner{
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: clamp(20px, 3vw, 36px);
	align-items: center;
}
.gg-cnt__hero-text{ min-width: 0; display: flex; flex-direction: column; gap: 10px; }
.gg-cnt__hero-title{
	font-family: var(--gg-font-head);
	font-size: clamp(var(--gg-text-2xl, 28px), 3.4vw, var(--gg-text-4xl, 44px));
	font-weight: 800;
	line-height: 1.08;
	letter-spacing: -.025em;
	color: var(--gg-black, #0A0A0A);
	margin: 4px 0 0;
}
.gg-cnt__hero-accent{ color: var(--gg-red, #ED2938); }
.gg-cnt__hero-dek{
	font-family: var(--gg-font-body);
	font-size: clamp(var(--gg-text-base, 15px), 1vw, var(--gg-text-lg, 17px));
	color: var(--gg-gray-600, #4B5563);
	line-height: 1.55;
	margin: 0;
	max-width: 68ch;
}
.gg-cnt__hero-mark{
	width: clamp(80px, 9vw, 116px);
	height: clamp(80px, 9vw, 116px);
	border-radius: 24px;
	display: grid; place-items: center;
	background: linear-gradient(135deg, var(--gg-red, #ED2938), var(--gg-red-deep, #B91C28));
	color: #fff;
	font-size: clamp(36px, 4vw, 50px);
	box-shadow: 0 18px 36px -14px rgba(237,41,56,.5), inset 0 1px 0 rgba(255,255,255,.18);
}
@media (max-width: 720px){
	.gg-cnt__hero-inner{ grid-template-columns: 1fr; }
	.gg-cnt__hero-mark{ order: -1; width: 64px; height: 64px; border-radius: 16px; font-size: 28px; }
}

.gg-cnt__hero-meta{
	list-style: none; padding: 14px 0 0; margin: 6px 0 0;
	border-top: 1px dashed var(--gg-gray-200, #E5E7EB);
	display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px;
}
@media (max-width: 720px){ .gg-cnt__hero-meta{ grid-template-columns: 1fr; } }
.gg-cnt__hero-meta li{ display: inline-flex; align-items: center; gap: 10px; }
.gg-cnt__hero-meta-ico{
	flex-shrink: 0;
	display: inline-grid; place-items: center;
	width: 36px; height: 36px;
	border-radius: 11px;
	background: var(--gg-red-light, #FFF1F2);
	color: var(--gg-red, #ED2938);
	font-size: 16px;
}
.gg-cnt__hero-meta li > span:nth-child(2){ display: inline-flex; flex-direction: column; line-height: 1.15; }
.gg-cnt__hero-meta strong{
	font-family: var(--gg-font-head);
	font-size: var(--gg-text-sm, 13px);
	font-weight: 800;
	color: var(--gg-black, #0A0A0A);
	letter-spacing: -.01em;
}
.gg-cnt__hero-meta small{
	font-family: var(--gg-font-body);
	font-size: var(--gg-text-2xs, 11px);
	color: var(--gg-gray-500, #6B7280);
}

/* ── Channels grid ───────────────────────────────────────────────────── */
.gg-cnt__channels{
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 14px;
	margin-bottom: clamp(20px, 2.4vw, 28px);
}
@media (max-width: 1100px){ .gg-cnt__channels{ grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px){  .gg-cnt__channels{ grid-template-columns: 1fr; } }
.gg-cnt__channel{
	position: relative;
	display: flex; align-items: flex-start; gap: 14px;
	padding: 18px;
	background: var(--gg-white, #fff);
	border: 1px solid var(--gg-gray-200, #E5E7EB);
	border-radius: 16px;
	box-shadow: 0 1px 2px rgba(15,23,42,.04);
	color: inherit;
	transition: transform 320ms cubic-bezier(.16,1,.3,1), box-shadow 320ms ease, border-color 320ms ease;
	overflow: hidden;
}
.gg-cnt__channel::after{
	content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3px;
	background: linear-gradient(90deg, var(--gg-red, #ED2938), var(--gg-red-deep, #B91C28));
	transform: scaleX(0); transform-origin: left;
	transition: transform 380ms cubic-bezier(.16,1,.3,1);
}
.gg-cnt__channel:hover{
	transform: translateY(-4px);
	border-color: var(--gg-red-subtle, rgba(237,41,56,.32));
	box-shadow: 0 1px 2px rgba(237,41,56,.06), 0 18px 36px -16px rgba(237,41,56,.22);
}
.gg-cnt__channel:hover::after{ transform: scaleX(1); }
.gg-cnt__channel-ico{
	flex-shrink: 0;
	display: inline-grid; place-items: center;
	width: 44px; height: 44px;
	border-radius: 12px;
	background: var(--gg-red-light, #FFF1F2);
	color: var(--gg-red, #ED2938);
	font-size: 19px;
	transition: all 280ms cubic-bezier(.22,1,.36,1);
}
.gg-cnt__channel:hover .gg-cnt__channel-ico{
	background: linear-gradient(135deg, var(--gg-red, #ED2938), var(--gg-red-deep, #B91C28));
	color: #fff;
}
.gg-cnt__channel-body{ display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.gg-cnt__channel-label{
	font-family: var(--gg-font-head);
	font-size: var(--gg-text-2xs, 11px);
	font-weight: 700;
	letter-spacing: .12em; text-transform: uppercase;
	color: var(--gg-gray-500, #6B7280);
}
.gg-cnt__channel-value{
	font-family: var(--gg-font-head);
	font-size: var(--gg-text-md, 15px);
	font-weight: 800;
	color: var(--gg-black, #0A0A0A);
	letter-spacing: -.01em;
	word-break: break-word;
}
.gg-cnt__channel-sub{
	font-family: var(--gg-font-body);
	font-size: var(--gg-text-xs, 12px);
	color: var(--gg-gray-500, #6B7280);
}

/* ── Two-column body: form (left) + helpful aside (right) ────────────── */
.gg-cnt__body{
	display: grid;
	grid-template-columns: minmax(0, 1.45fr) minmax(280px, 1fr);
	gap: clamp(20px, 3vw, 32px);
	align-items: start;
}
@media (max-width: 1000px){
	.gg-cnt__body{ grid-template-columns: 1fr; gap: 16px; }
}

/* ── Form card ───────────────────────────────────────────────────────── */
.gg-cnt__form-card{
	background: var(--gg-white, #fff);
	border-radius: var(--gg-r-xl, 16px);
	padding: clamp(24px, 2.6vw, 36px);
	box-shadow: 0 1px 2px rgba(237,41,56,.04), 0 4px 16px rgba(237,41,56,.05);
}
.gg-cnt__form-head{ margin-bottom: 18px; }
.gg-cnt__form-eyebrow{
	display: inline-block;
	font-family: var(--gg-font-head);
	font-size: var(--gg-text-2xs, 11px);
	font-weight: 700;
	color: var(--gg-red, #ED2938);
	letter-spacing: .14em; text-transform: uppercase;
	margin-bottom: 4px;
}
.gg-cnt__form-title{
	font-family: var(--gg-font-head);
	font-size: clamp(var(--gg-text-xl, 22px), 2.2vw, var(--gg-text-2xl, 26px));
	font-weight: 800;
	letter-spacing: -.02em;
	color: var(--gg-black, #0A0A0A);
	margin: 0 0 4px;
}
.gg-cnt__form-sub{
	font-family: var(--gg-font-body);
	font-size: var(--gg-text-sm, 13px);
	color: var(--gg-gray-600, #4B5563);
	margin: 0;
}

/* Alert banner (above the form) */
.gg-cnt__alert{
	display: flex; gap: 12px; align-items: flex-start;
	padding: 14px 16px;
	border-radius: 12px;
	margin-bottom: 18px;
	font-family: var(--gg-font-body);
}
.gg-cnt__alert i{ font-size: 20px; flex-shrink: 0; line-height: 1.1; }
.gg-cnt__alert strong{
	display: block;
	font-family: var(--gg-font-head);
	font-weight: 700;
	margin-bottom: 2px;
}
.gg-cnt__alert span{ font-size: var(--gg-text-sm, 13px); }
.gg-cnt__alert--ok{
	background: rgba(22,163,74,.07);
	border: 1px solid rgba(22,163,74,.25);
	color: #14532d;
}
.gg-cnt__alert--ok i{ color: var(--gg-success, #16A34A); }
.gg-cnt__alert--err{
	background: var(--gg-red-light, #FFF1F2);
	border: 1px solid var(--gg-red-subtle, rgba(237,41,56,.25));
	color: var(--gg-red-deep, #B91C28);
}
.gg-cnt__alert--err i{ color: var(--gg-red, #ED2938); }

/* Honeypot hidden from real users (off-screen). */
.gg-cnt__honey{
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden; clip: rect(0 0 0 0);
	white-space: nowrap; border: 0; padding: 0; margin: -1px;
}

/* ── Fields (validation pattern mirrors gg-dt__field on detail.php) ──── */
.gg-cnt__form{ display: grid; gap: 16px; }
.gg-cnt__field{ display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.gg-cnt__field-row{
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
}
@media (max-width: 640px){ .gg-cnt__field-row{ grid-template-columns: 1fr; } }
.gg-cnt__field-label{
	font-family: var(--gg-font-head);
	font-size: var(--gg-text-sm, 13px);
	font-weight: 700;
	color: var(--gg-gray-800, #1F2937);
	letter-spacing: -.01em;
	display: inline-flex; align-items: baseline; gap: 6px;
}
.gg-cnt__field-req{ color: var(--gg-red, #ED2938); font-weight: 700; }
.gg-cnt__field-hint{
	color: var(--gg-gray-400, #9CA3AF);
	font-weight: 500;
	font-size: var(--gg-text-xs, 12px);
}

.gg-cnt__field-wrap{
	position: relative;
	display: flex; align-items: center;
	background: var(--gg-gray-50, #F9FAFB);
	border: 1.5px solid var(--gg-gray-200, #E5E7EB);
	border-radius: var(--gg-r-lg, 12px);
	transition: background 200ms ease, border-color 200ms ease, box-shadow 200ms ease, transform 200ms ease;
}
.gg-cnt__field-wrap:focus-within{
	background: var(--gg-white, #fff);
	border-color: var(--gg-red, #ED2938);
	box-shadow: 0 0 0 4px var(--gg-red-subtle, rgba(237,41,56,.12));
	transform: translateY(-1px);
}
.gg-cnt__field-icon{
	position: absolute; left: 14px;
	color: var(--gg-gray-400, #9CA3AF);
	font-size: 16px;
	pointer-events: none;
	transition: color 200ms ease, transform 200ms ease;
}
.gg-cnt__field-wrap:focus-within .gg-cnt__field-icon{
	color: var(--gg-red, #ED2938);
	transform: scale(1.06);
}
.gg-cnt__field-wrap input,
.gg-cnt__field-wrap textarea{
	width: 100%;
	padding: 13px 14px 13px 42px;
	background: transparent;
	border: none; outline: none;
	font-family: var(--gg-font-body);
	font-size: var(--gg-text-sm, 14px);
	color: var(--gg-gray-800, #1F2937);
	border-radius: inherit;
}
.gg-cnt__field-wrap input::placeholder,
.gg-cnt__field-wrap textarea::placeholder{
	color: var(--gg-gray-400, #9CA3AF);
}
/* Subtle "empty-box" pulse on the focus ring of an empty required field —
   draws the eye without being noisy. Triggers only when the field is
   currently focused AND still empty. */
.gg-cnt__field-wrap:focus-within input:placeholder-shown,
.gg-cnt__field-wrap:focus-within textarea:placeholder-shown{
	animation: gg-cnt-empty-pulse 1.6s ease-in-out infinite;
}
@keyframes gg-cnt-empty-pulse{
	0%, 100% { box-shadow: inset 0 0 0 0 transparent; }
	50%      { box-shadow: inset 0 0 0 1px rgba(237,41,56,.08); }
}

/* Phone field with country prefix */
.gg-cnt__field-wrap--phone{ position: relative; }
.gg-cnt__phone-country{
	position: absolute; left: 14px;
	display: inline-flex; align-items: center; gap: 6px;
	font-family: var(--gg-font-head);
	font-size: var(--gg-text-sm, 13px);
	font-weight: 700;
	color: var(--gg-gray-700, #374151);
	pointer-events: none;
	transition: color 200ms ease;
}
.gg-cnt__phone-country-flag{ font-size: 16px; line-height: 1; }
.gg-cnt__field-wrap--phone:focus-within .gg-cnt__phone-country{ color: var(--gg-red, #ED2938); }
.gg-cnt__field-wrap--phone input{ padding-left: 78px; }

/* Textarea wrap with char counter */
.gg-cnt__field-wrap--area{ align-items: stretch; }
.gg-cnt__field-wrap--area textarea{
	padding: 14px 14px 32px;
	resize: vertical;
	min-height: 130px;
	line-height: 1.6;
}
.gg-cnt__field-count{
	position: absolute; right: 14px; bottom: 10px;
	font-family: var(--gg-font-head);
	font-size: var(--gg-text-2xs, 11px);
	font-weight: 600;
	color: var(--gg-gray-400, #9CA3AF);
	letter-spacing: .04em;
	pointer-events: none;
}
.gg-cnt__field-wrap--area:focus-within .gg-cnt__field-count{ color: var(--gg-red, #ED2938); }

/* Field error message */
.gg-cnt__field-error{
	display: none;
	font-family: var(--gg-font-body);
	font-size: var(--gg-text-xs, 12px);
	color: var(--gg-red, #ED2938);
	padding-left: 6px;
	margin-top: 2px;
}
.gg-cnt__field-error::before{
	content: "\F33A";              /* bi-exclamation-circle */
	font-family: 'bootstrap-icons';
	margin-right: 6px;
	font-size: 11px;
}

/* Invalid + valid states (set by contact.js on blur / submit) */
.gg-cnt__field-wrap.is-invalid,
.gg-cnt__field.is-invalid > .gg-cnt__field-wrap,
.gg-cnt__field.is-invalid > .gg-cnt__field-wrap--phone,
.gg-cnt__field.is-invalid > .gg-cnt__field-wrap--area{
	background: rgba(237,41,56,.04);
	border-color: var(--gg-red, #ED2938);
}
.gg-cnt__field-wrap.is-invalid .gg-cnt__field-icon,
.gg-cnt__field.is-invalid .gg-cnt__field-icon{ color: var(--gg-red, #ED2938); }
.gg-cnt__field.is-invalid > .gg-cnt__field-error,
.gg-cnt__consent.is-invalid > .gg-cnt__field-error{ display: block; }

.gg-cnt__field-wrap.is-valid{
	border-color: var(--gg-success, #16A34A);
	background: rgba(22,163,74,.04);
}
.gg-cnt__field-wrap.is-valid .gg-cnt__field-icon{ color: var(--gg-success, #16A34A); }

/* ── Bootstrap-select (Reason dropdown) — match input field styling ─── */
.gg-cnt__field--picker{ position: relative; }
.gg-cnt__field--picker .bootstrap-select{
	--bs-dropdown-link-active-bg:    var(--gg-red-subtle, rgba(237,41,56,.07));
	--bs-dropdown-link-active-color: var(--gg-red-deep, #B91C28);
	--bs-dropdown-link-hover-bg:     var(--gg-red-subtle, rgba(237,41,56,.07));
	--bs-dropdown-link-hover-color:  var(--gg-red-deep, #B91C28);
	width: 100% !important;
}
.gg-cnt__field--picker .bootstrap-select > .dropdown-toggle{
	position: relative;
	width: 100%; height: 48px;
	display: flex !important; align-items: center; justify-content: flex-start !important;
	padding: 0 36px 0 14px;
	background: var(--gg-gray-50, #F9FAFB) !important;
	border: 1.5px solid var(--gg-gray-200, #E5E7EB) !important;
	border-radius: var(--gg-r-lg, 12px) !important;
	box-shadow: none !important; outline: 0 !important;
	font-family: var(--gg-font-body);
	font-size: var(--gg-text-sm, 14px);
	font-weight: 600;
	color: var(--gg-gray-800, #1F2937) !important;
	text-align: left; white-space: nowrap;
	transition: background 200ms ease, border-color 200ms ease, box-shadow 200ms ease, transform 200ms ease;
}
.gg-cnt__field--picker .bootstrap-select.show > .dropdown-toggle,
.gg-cnt__field--picker .bootstrap-select > .dropdown-toggle:focus,
.gg-cnt__field--picker .bootstrap-select > .dropdown-toggle:focus-visible{
	background: var(--gg-white, #fff) !important;
	border-color: var(--gg-red, #ED2938) !important;
	box-shadow: 0 0 0 4px var(--gg-red-subtle, rgba(237,41,56,.12)) !important;
	transform: translateY(-1px);
}
/* Caret pinned right; rotates when open */
.gg-cnt__field--picker .bootstrap-select > .dropdown-toggle::after{
	content: '\F282';          /* bi-chevron-down */
	font-family: 'bootstrap-icons';
	position: absolute; right: 14px; top: 50%;
	transform: translateY(-50%);
	border: 0 !important; margin: 0 !important;
	font-size: 12px; line-height: 1;
	color: var(--gg-gray-500, #6B7280);
	transition: transform 180ms ease, color 180ms ease;
}
.gg-cnt__field--picker .bootstrap-select.show > .dropdown-toggle::after{
	transform: translateY(-50%) rotate(180deg);
	color: var(--gg-red, #ED2938);
}
.gg-cnt__field--picker .bootstrap-select .filter-option,
.gg-cnt__field--picker .bootstrap-select .filter-option-inner,
.gg-cnt__field--picker .bootstrap-select .filter-option-inner-inner{
	display: flex; align-items: center; width: 100%; height: 100%;
	overflow: hidden; text-overflow: ellipsis; white-space: nowrap; line-height: 1.2;
}
/* Placeholder state — when title is showing (nothing selected), pulse the
   subtle ring so the box draws the eye like the empty inputs above. */
.gg-cnt__field--picker .bootstrap-select > .dropdown-toggle.bs-placeholder{
	color: var(--gg-gray-400, #9CA3AF) !important;
	animation: gg-cnt-empty-ring 2.4s ease-in-out infinite;
}
@keyframes gg-cnt-empty-ring{
	0%, 100% { box-shadow: 0 0 0 0 rgba(237,41,56,0); }
	50%      { box-shadow: 0 0 0 4px rgba(237,41,56,.06); }
}

.gg-cnt__field--picker .bootstrap-select .dropdown-menu{
	z-index: 1100;
	border: 0; border-radius: 12px;
	box-shadow: 0 1px 2px rgba(15,23,42,.04), 0 20px 40px -8px rgba(15,23,42,.18);
	margin-top: 6px !important;
	padding: 6px;
	min-width: 100%;
	overflow: hidden;
}
.gg-cnt__field--picker .bootstrap-select .dropdown-menu li > a,
.gg-cnt__field--picker .bootstrap-select .dropdown-menu .dropdown-item{
	padding: 10px 12px;
	border-radius: 8px;
	font-family: var(--gg-font-body);
	font-size: var(--gg-text-sm, 13px);
	color: var(--gg-gray-800, #1F2937);
	transition: background 150ms ease, color 150ms ease;
}
.gg-cnt__field--picker .bootstrap-select .dropdown-menu li > a:hover,
.gg-cnt__field--picker .bootstrap-select .dropdown-menu li.selected > a,
.gg-cnt__field--picker .bootstrap-select .dropdown-menu .dropdown-item.active{
	background: var(--gg-red-subtle, rgba(237,41,56,.07)) !important;
	color: var(--gg-red-deep, #B91C28) !important;
}
/* Invalid + valid states on the selectpicker — wire matches inputs */
.gg-cnt__field--picker.is-invalid .bootstrap-select > .dropdown-toggle{
	background: rgba(237,41,56,.04) !important;
	border-color: var(--gg-red, #ED2938) !important;
}
.gg-cnt__field--picker.is-valid .bootstrap-select > .dropdown-toggle{
	background: rgba(22,163,74,.04) !important;
	border-color: var(--gg-success, #16A34A) !important;
}

/* ── Consent row ─────────────────────────────────────────────────────── */
.gg-cnt__consent{
	display: grid;
	grid-template-columns: auto 1fr;
	column-gap: 12px; row-gap: 4px;
	align-items: start;
	padding: 12px 14px;
	background: var(--gg-gray-50, #F9FAFB);
	border: 1px solid var(--gg-gray-200, #E5E7EB);
	border-radius: 12px;
	font-family: var(--gg-font-body);
	font-size: var(--gg-text-sm, 13px);
	color: var(--gg-gray-700, #374151);
	line-height: 1.5;
	transition: border-color 180ms ease, background 180ms ease;
}
.gg-cnt__consent input[type="checkbox"]{
	margin-top: 2px;
	width: 18px; height: 18px;
	accent-color: var(--gg-red, #ED2938);
}
.gg-cnt__consent a{
	color: var(--gg-red-deep, #B91C28);
	border-bottom: 1px solid rgba(237,41,56,.25);
	font-weight: 600;
}
.gg-cnt__consent.is-invalid{
	border-color: var(--gg-red, #ED2938);
	background: rgba(237,41,56,.04);
}
.gg-cnt__consent.is-invalid > span{ color: var(--gg-red-deep, #B91C28); }
.gg-cnt__consent .gg-cnt__field-error{ grid-column: 1 / -1; }

/* ── Submit row ──────────────────────────────────────────────────────── */
.gg-cnt__form-foot{
	display: flex; align-items: center; justify-content: space-between;
	gap: 14px; flex-wrap: wrap;
	margin-top: 4px;
}
.gg-cnt__form-foot-note{
	display: inline-flex; align-items: center; gap: 6px;
	font-family: var(--gg-font-body);
	font-size: var(--gg-text-xs, 12px);
	color: var(--gg-gray-500, #6B7280);
}
.gg-cnt__form-foot-note i{ color: var(--gg-success, #16A34A); }

/* ── Aside (FAQ + office card) ───────────────────────────────────────── */
.gg-cnt__aside{ display: flex; flex-direction: column; gap: 16px; }
.gg-cnt__card{
	background: var(--gg-white, #fff);
	border-radius: var(--gg-r-xl, 16px);
	border: 1px solid var(--gg-gray-200, #E5E7EB);
	padding: clamp(18px, 2vw, 24px);
	box-shadow: 0 1px 2px rgba(15,23,42,.04);
}
.gg-cnt__card-title{
	display: flex; align-items: center; gap: 10px;
	font-family: var(--gg-font-head);
	font-size: var(--gg-text-md, 16px);
	font-weight: 800;
	color: var(--gg-black, #0A0A0A);
	letter-spacing: -.01em;
	margin: 0 0 14px;
}
.gg-cnt__card-title i{
	display: grid; place-items: center;
	width: 32px; height: 32px;
	border-radius: 9px;
	background: var(--gg-red-light, #FFF1F2);
	color: var(--gg-red, #ED2938);
	font-size: 15px;
}

/* FAQ accordion (details/summary) */
.gg-cnt__faq{ list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 4px; }
.gg-cnt__faq li{ border-bottom: 1px dashed var(--gg-gray-200, #E5E7EB); }
.gg-cnt__faq li:last-child{ border-bottom: 0; }
.gg-cnt__faq details{ padding: 12px 0; }
.gg-cnt__faq summary{
	list-style: none;
	cursor: pointer;
	display: flex; align-items: center; gap: 10px;
	font-family: var(--gg-font-head);
	font-size: var(--gg-text-sm, 13px);
	font-weight: 700;
	color: var(--gg-gray-800, #1F2937);
	letter-spacing: -.01em;
}
.gg-cnt__faq summary::-webkit-details-marker{ display: none; }
.gg-cnt__faq summary::after{
	content: '\F282';
	font-family: 'bootstrap-icons';
	margin-left: auto;
	color: var(--gg-gray-400, #9CA3AF);
	font-size: 14px;
	transition: transform 200ms ease, color 200ms ease;
}
.gg-cnt__faq details[open] summary::after{
	transform: rotate(180deg); color: var(--gg-red, #ED2938);
}
.gg-cnt__faq details p{
	margin: 8px 0 0;
	font-family: var(--gg-font-body);
	font-size: var(--gg-text-sm, 13px);
	color: var(--gg-gray-600, #4B5563);
	line-height: 1.6;
}
.gg-cnt__faq details a{
	color: var(--gg-red-deep, #B91C28);
	border-bottom: 1px solid rgba(237,41,56,.25);
	font-weight: 600;
}

/* Dark office card */
.gg-cnt__card--dark{
	background: linear-gradient(135deg, var(--gg-black, #0A0A0A), var(--gg-black-soft, #141414));
	border-color: transparent;
	color: rgba(255,255,255,.85);
	position: relative; overflow: hidden;
}
.gg-cnt__card--dark::before{
	content: ""; position: absolute; inset: 0;
	background:
		radial-gradient(420px 220px at 12% 120%, rgba(237,41,56,.34), transparent 70%),
		radial-gradient(360px 200px at 110% -20%, rgba(237,41,56,.22), transparent 70%);
	pointer-events: none;
}
.gg-cnt__card--dark > *{ position: relative; }
.gg-cnt__card--dark .gg-cnt__card-title{ color: #fff; }
.gg-cnt__card--dark .gg-cnt__card-title i{
	background: rgba(255,255,255,.08);
	color: #fff;
}
.gg-cnt__address{
	font-family: var(--gg-font-body);
	font-size: var(--gg-text-sm, 13px);
	color: rgba(255,255,255,.78);
	font-style: normal;
	margin: 0 0 14px;
	line-height: 1.7;
}
.gg-cnt__address strong{ color: #fff; font-weight: 700; }

.gg-cnt__hours{ margin: 0 0 14px; padding: 12px 0; border-top: 1px dashed rgba(255,255,255,.14); border-bottom: 1px dashed rgba(255,255,255,.14); }
.gg-cnt__hours div{
	display: flex; align-items: center; justify-content: space-between;
	padding: 5px 0;
	font-family: var(--gg-font-head);
	font-size: var(--gg-text-sm, 13px);
}
.gg-cnt__hours dt{ color: rgba(255,255,255,.7); font-weight: 600; }
.gg-cnt__hours dd{ color: #fff; font-weight: 700; margin: 0; }

.gg-cnt__socials{ display: flex; flex-wrap: wrap; gap: 8px; }
.gg-cnt__socials a{
	display: grid; place-items: center;
	width: 36px; height: 36px;
	border-radius: 10px;
	background: rgba(255,255,255,.08);
	color: #fff;
	font-size: 15px;
	transition: background 200ms ease, transform 200ms ease;
}
.gg-cnt__socials a:hover{
	background: linear-gradient(135deg, var(--gg-red, #ED2938), var(--gg-red-deep, #B91C28));
	transform: translateY(-2px);
}

/* ── Bottom CTA ──────────────────────────────────────────────────────── */
.gg-cnt__cta{
	position: relative; overflow: hidden;
	margin-top: clamp(32px, 4vw, 56px);
	border-radius: var(--gg-r-xl, 16px);
	background: linear-gradient(135deg, var(--gg-black, #0A0A0A), var(--gg-black-soft, #141414));
}
.gg-cnt__cta-glow{
	position: absolute; inset: 0;
	background:
		radial-gradient(600px 300px at 12% 120%, rgba(237,41,56,.4), transparent 70%),
		radial-gradient(500px 260px at 95% -20%, rgba(237,41,56,.28), transparent 70%);
	pointer-events: none;
}
.gg-cnt__cta-inner{
	position: relative;
	display: flex; align-items: center; justify-content: space-between;
	gap: clamp(20px, 4vw, 48px); flex-wrap: wrap;
	padding: clamp(28px, 4vw, 48px) clamp(22px, 4vw, 56px);
}
.gg-cnt__cta-title{
	font-family: var(--gg-font-head);
	font-size: clamp(var(--gg-text-xl, 22px), 3vw, var(--gg-text-3xl, 32px));
	font-weight: 800; letter-spacing: -.02em;
	color: #fff; margin: 0 0 8px; line-height: 1.15;
}
.gg-cnt__cta-sub{
	font-family: var(--gg-font-body);
	font-size: var(--gg-text-base, 15px);
	color: rgba(255,255,255,.72);
	margin: 0; max-width: 520px;
}
.gg-cnt__cta-actions{ flex-shrink: 0; }
@media (max-width: 640px){
	.gg-cnt__cta-actions{ width: 100%; }
	.gg-cnt__cta-actions .gg-cnt__btn{ width: 100%; }
}

/* ── Reduced motion ──────────────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce){
	.gg-cnt__channel, .gg-cnt__channel-ico,
	.gg-cnt__field-wrap, .gg-cnt__field-icon,
	.gg-cnt__field--picker .bootstrap-select > .dropdown-toggle,
	.gg-cnt__socials a{ transition: none !important; animation: none !important; }
}
