.hero-newsletter {
	background: linear-gradient(165deg,#0b1f52 0%,#01153c 82%);
	padding: 92px 32px 120px;
	position: relative;
	overflow: hidden;
}
.hero-newsletter .hero-form-inner {
	max-width: 760px;
	margin: 0 auto;
	text-align: left;
}
.hero-newsletter h1.hero-form-title-sm {
	color: #C6FF1A;
	text-align: center;
	font-family: var(--Typography-font-family-title, 'Space Grotesk');
	font-size: 40px;
	font-weight: 500;
	line-height: 44px;
	margin: 0 0 28px;
}
.hero-newsletter .hero-form-sub-sm {
	font-size: 18px;
	max-width: 620px;
	margin: 0 auto 34px;
	opacity: .85;
	text-align: center;
}
.hero-newsletter .hero-form-wrapper--compact .lead-form-box {
	margin: 0 auto;
	max-width: 520px;
}

.office-card {
	height: 716px;
}
.office-card img {
	height: 520px;
	max-height: 520px;
	object-fit: cover;
}
.office-body {
	flex: 1 1 auto;
	min-height: 196px;
	height: auto;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
}

/* Contact page new design */
.contact-page { font-family: var(--Typography-font-family-body, Montserrat); color:#fff; }
/* Simplified hero form (no video) */
.contact-form-hero { background:linear-gradient(165deg,#022d75 0%,#01153c 82%); padding:92px 32px 120px; position:relative; overflow:hidden; }
.contact-form-hero:before, .contact-form-hero:after { content:""; position:absolute; inset:0; pointer-events:none; background:radial-gradient(circle at 80% 10%, rgba(255,255,255,.08), transparent 60%), radial-gradient(circle at 10% 90%, rgba(255,255,255,.06), transparent 65%); mix-blend-mode:overlay; }
.contact-form-hero:after { background:linear-gradient(rgba(255,255,255,.04),rgba(255,255,255,0)); opacity:.4; }
.contact-form-hero .inner { max-width:760px; margin:0 auto; }
.contact-form-hero h1, .contact-lead-title { text-align:center; font-family: var(--Typography-font-family-title, 'Space Grotesk'); font-size:clamp(2.7rem,4.8vw,3.4rem); font-weight:700; line-height:1.1; margin:0 auto 54px; letter-spacing:.2px; max-width:840px; }
.contact-form-hero h1 .hl, .contact-lead-title .hl { color:#C6FF1A; font-weight:700; }
@media (max-width:880px){ .lead-grid .field-half { grid-column:1 / span 12; } .lead-avatar { top:65px; } }
@media (max-width:640px){ .contact-form-hero { padding:70px 20px 90px; } .hero-submit-btn { width:100%; justify-content:center; } .lead-form-box { max-width:100%; } }
/* Old contact-hero styles removed per redesign */
.hero-form-box.hero-box{min-height:auto;height:auto;padding:120px 0 120px;}
.hero-form-text{position:relative;inset:auto;opacity:1;filter:none;animation:none;padding:0;}
.hero-form-text .hero-form-inner{width:100%;max-width:840px;margin:0 auto;text-align: left;}
.hero-form-text .hero-form-title-sm,.hero-form-text .hero-form-sub-sm{max-width:622px;margin-left:auto;margin-right:auto;}
.hero-form-text .hero-form-title-sm{color:var(--CG-colors-Grey-White,#FFF);text-align:center;font-family:var(--Typography-font-family-title,'Space Grotesk');font-size:40px;font-style:normal;font-weight:500;line-height:44px;margin:0 0 28px;}
.hero-form-sub-sm{font-size:18px;max-width:620px;margin:0 auto 34px;opacity:.85;}
.hero-form-wrapper{margin-top:0;}
.hero-form-wrapper--compact .lead-form-box{margin:0 auto;max-width:760px;}
.hero-form-wrapper--compact .lead-form-box .lead-grid{row-gap:16px;}
.hero-form-wrapper--compact .lead-form-box .submit-row{margin-top:6px;}
.hero-form-wrapper--compact .lead-form-box .hero-submit-btn{margin-top:18px;}
.contact-offices-section { background:#fff; color:#000; padding:0;border-top:1px solid rgba(0,0,0,.15); }
.offices-wrapper { max-width:1320px; margin:0 auto; padding:0 40px; }
.offices-header { text-align:center; margin:0 auto 70px; max-width:760px; }
.offices-header h2 {
	color: var(--CG-colors-Grey-Black, #000);
	text-align: center;

	/* Head 2 */
	font-family: var(--Typography-font-family-title, "Space Grotesk");
	font-size: 40px;
	font-style: normal;
	font-weight: 500;
	line-height: 44px; /* 110% */
	margin: 0 0 20px;
}
.offices-header p {
	color: var(--CG-colors-Shadows-Black-80, rgba(0, 0, 0, 0.80));
	text-align: center;

	/* Body 4 */
	font-family: var(--Typography-font-family-body, Montserrat);
	font-size: 20px;
	font-style: normal;
	font-weight: 400;
	line-height: 26px; /* 130% */
	max-width: 628px;
	margin: 0 auto;
}
.offices-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 40px;
    margin: 0 20px; }
/* Decorative vertical lines for Offices section (reused from team.css) */
.contact-offices-section { position: relative; }
.contact-offices-section .vertical-line {
	position: absolute;
	top: 0;
	bottom: 0;
	width: 1px;
	background: var(--CG-colors-Shadows-Black-15, rgba(0, 0, 0, 0.15));
	pointer-events: none;
}
.contact-offices-section .vertical-line--one { left: 420px; }
.contact-offices-section .vertical-line--two { left: 900px; transform: translateX(-0.5px); }

@media (max-width:1100px){ .contact-offices-section .vertical-line { display: none; } }
.office-card { background:#f8f9fa; border-radius:8px; overflow:hidden; display:flex; flex-direction:column; }
.office-card img { width:100%; aspect-ratio:4/3; object-fit:cover; display:block; }
.office-body { padding:20px; display:flex; flex-direction:column; gap:24px; }
.office-title {
	color: var(--CG-colors-Grey-Black, #000);

	/* Body 5 - medium */
	font-family: var(--Typography-font-family-body, Montserrat);
	font-size: 24px;
	font-style: normal;
	font-weight: 500;
	line-height: 31.2px; /* 130% */
	margin: 0;
}

.office-info {
	color: var(--CG-colors-Shadows-Black-80, rgba(0, 0, 0, 0.80));

	/* Body 2 - medium */
	font-family: var(--Typography-font-family-body, Montserrat);
	font-size: 16px;
	font-style: normal;
	font-weight: 500;
	line-height: 24px; /* 150% */
	margin: 0;
}

.office-meta {
	display: flex;
	flex-direction: column;
	gap: 6px;
	/* inherit body 2 medium for meta items */
	color: var(--CG-colors-Shadows-Black-80, rgba(0, 0, 0, 0.80));
	font-family: var(--Typography-font-family-body, Montserrat);
	font-size: 16px;
	font-style: normal;
	font-weight: 500;
	line-height: 24px; /* 150% */
}
.office-link a { display:inline-flex; align-items:center; gap:6px; font-size:12px; text-decoration:none; color:#000; font-weight:500; padding:6px 10px; border-radius:4px; background:#e9f0ff; border:1px solid #c2d9ff; transition:.25s; }
.office-link a:hover { background:#d0e6ff; }
.newsletter-section { background:#0b1f52; color:#fff; padding:110px 0 120px; border-top:1px solid rgba(255,255,255,.08); }
.newsletter-grid { max-width:1320px; margin:0 auto; padding:0 40px; display:grid; grid-template-columns: 1fr 1fr; gap:120px; border-left:1px solid rgba(255,255,255,.15); border-right:1px solid rgba(255,255,255,.15); }
.newsletter-left h3 { font-size:2.2rem; font-weight:600; margin:0 0 30px; }
.newsletter-left p { font-size:16px; line-height:1.5; color:rgba(255,255,255,.75); margin:0 0 30px; max-width:420px; }
.social-links a { display:inline-flex; align-items:center; gap:8px; font-size:13px; font-weight:500; color:#fff; text-decoration:none; padding:8px 14px; background:#041d4a; border:1px solid rgba(255,255,255,.15); border-radius:40px; transition:.3s; }
.social-links a:hover { background:#062964; border-color:#C4F222; }
.newsletter-form { max-width:520px; }
.newsletter-form form .form-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.newsletter-form .form-group { margin-bottom:16px; }
.newsletter-actions { margin-top:8px; }
.newsletter-submit { background:#C4F222; color:#000; font-weight:600; border:0; padding:14px 28px; border-radius:4px; cursor:pointer; font-size:14px; transition:.3s; width:100%; }
.newsletter-submit:hover { background:#d9ff4c; }
.legal-checkbox { display:flex; align-items:flex-start; gap:10px; font-size:12px; line-height:1.4; color:rgba(255,255,255,.65); }
.legal-checkbox input { margin-top:3px; }

@media (max-width:1100px){
	.contact-grid { grid-template-columns:1fr 1fr; }
	.contact-col:nth-child(3){ grid-column:1 / -1; border-right:0; border-top:1px solid rgba(255,255,255,.15); padding-top:60px; }
	.newsletter-grid { grid-template-columns:1fr; gap:70px; }
}

/* MOBILE & TABLET OVERRIDES - do not change desktop visuals */
@media (max-width:800px){
	/* layout */
	.contact-grid { grid-template-columns:1fr; }
	.contact-col { border-right:0!important; padding:0 20px 48px; }
	.contact-hero { padding:80px 20px 30px; }
	.offices-grid { gap:20px; grid-template-columns: 1fr; margin: 0 10px; }
	.offices-wrapper { padding: 0 20px; }

	/* office cards must flow naturally on mobile */
	.office-card { height: auto !important; display: flex; flex-direction: column; }
	.office-card img { height: auto !important; max-height: none !important; aspect-ratio: auto !important; object-fit: cover; }
	.office-body { padding:16px !important; gap:12px !important; }
	.offices-header { margin: 0 0 28px; }

	/* make the maps action and meta inline on small screens */
	.office-meta { flex-direction: row; gap:12px; align-items: center; }
	.office-meta .btn-discover { white-space: nowrap; }

	/* newsletter area: stack and reduce gaps */
	.newsletter-grid { padding:0 20px; grid-template-columns: 1fr; gap:40px; }
	.newsletter-left h3 { font-size: 1.9rem; }
}

@media (max-width:560px){
	/* smaller phones: tighten spacing and type */
	.contact-intro h1 { font-size:2.1rem; }
	.contact-intro p { font-size:14px; }
	.newsletter-left h3 { font-size:1.6rem; }

	.office-body { padding:12px !important; gap:10px !important; }
	.office-title { font-size:20px; }
	.office-info { font-size:14px; line-height:20px; }
	.office-card img { display:block; }
}

/* Fix: ensure hero form and inner lead form are visible on small screens
	 without touching desktop rules. These overrides target only mobile. */
@media (max-width: 800px) {
	/* allow hero text to shrink and avoid fixed width that pushes content off-screen */
	.hero-text, .hero-form-text, .hero-form-text .hero-form-inner {
		width: auto !important;
		max-width: 100% !important;
		padding-left: 12px !important;
		padding-right: 12px !important;
		box-sizing: border-box !important;
	}

	/* reduce hero padding so the form stays within viewport */
	.hero-form-box.hero-box { padding: 56px 0 72px !important; }

	/* ensure the form itself is above decorative SVGs and not clipped */
	.lead-form-box { position: relative !important; z-index: 6 !important; }

	/* decorative graphic can overlap the form on small screens — hide it */
	.hero-form-box .cta-hp-graphic { display: none !important; }

	/* input heights and submit full width for small devices */
	.lead-form-box .form-control, .lead-form-box textarea { font-size:15px; }
	.hero-submit-btn { width: 100% !important; margin-left: 0 !important; }
}

/* Neutralize global hero centering translate on contact/newsletter heroes
	 The rule in hero-partial.css sets `.hero-text { transform: translateY(-50%) }` at <=768px
	 which centers the hero and causes our forms to be clipped. Disable it only for
	 the contact/newsletter variants. */
@media (max-width: 768px) {
	.hero-form-band .hero-text,
	.contact-form-hero .hero-text,
	.hero-newsletter .hero-text {
		transform: none !important;
		top: auto !important;
		bottom: auto !important;
		left: auto !important;
		right: auto !important;
		display: block !important;
		align-items: stretch !important;
		justify-content: flex-start !important;
		padding-left: 12px !important;
		padding-right: 12px !important;
	}
}
.offices-header {
	max-width: 1200px;
	margin: 0 auto 24px auto;
	text-align: center;
}
.offices-header p {
	margin: 0 auto;
}
.office-card .btn-discover__label{
	color: #000 !important;
}
.contact-offices-section .vertical-line--one {
    left: 521px;
}
.contact-offices-section .vertical-line--two {
    left: 1001px;
    transform: translateX(-0.5px);
}

/* --- responsive overrides added by agent: contact view --- */
@media (max-width: 768px) {
  .contact-columns { display: block; }
  .contact-form { width: 100%; }
}
@media (min-width: 350px) and (max-width: 550px) {
  .contact-field { font-size: 15px; }
  .contact-submit { width: 100%; }
}

/* Show mobile-specific discover CTA and hide desktop copy on small screens */
@media (max-width: 800px) {
	.btn-discover { display: none !important; }
	.btn-discover.btn-discover--mobile { display: inline-flex !important; align-items: center !important; gap: 8px !important; }
}
@media (min-width: 801px) {
	.btn-discover.btn-discover--mobile { display: none !important; }
}

/* Specific fix for very small screens where the hero/form was clipped (< = 770px) */
@media (max-width: 770px) {
	/* allow hero containers to expand and avoid clipping */
	.contact-form-hero, .hero-newsletter, .hero-form-box.hero-box {
		overflow: visible !important;
		padding-top: 36px !important;
		padding-bottom: 40px !important;
	}

	/* remove decorative grid lines that force large absolute positions */
	.hero-form-box .h-full, .hero-form-box .v-line, .hero-form-box::after {
		display: none !important;
	}

	/* ensure hero content and form wrappers are fully fluid */
	.hero-text, .hero-form-text, .hero-form-text .hero-form-inner, .hero-form-wrapper--compact .lead-form-box {
		width: auto !important;
		max-width: 100% !important;
		padding-left: 12px !important;
		padding-right: 12px !important;
		box-sizing: border-box !important;
	}

	/* put form above decorative elements */
	.lead-form-box { position: relative !important; z-index: 9 !important; }
	.hero-form-decor, .hero-guard { display: none !important; }

	/* make text and inputs readable */
	.hero-form-text .hero-form-title-sm { font-size: 28px !important; line-height: 1.1 !important; }
	.lead-form-box .form-control, .lead-form-box textarea { min-height: 44px !important; }
}

	/* Additional small-screen fixes requested: remove padding/borders for newsletter layout */
	@media (max-width: 770px) {
		.hero-newsletter .hero-form-text .hero-form-inner {
			padding: 0 !important;
		}

		.lead-form-box.is-flat {
			padding: 0 !important;
		}

		.hn-left {
			padding: 0 !important;
			border: none !important;
		}

		.hn-right {
			padding: 0 !important;
			border-left: none !important;
		}
		.hn-head{
			margin-bottom: 40px;
		}
	}

	/* Remove excessive hero/video heights and bottom spacing on very small screens */
	@media (max-width: 770px) {
		/* ensure hero container shrinks to content */
		.hero-box, .hero-box.hero-form, .hero-form-box.hero-box {
			height: auto !important;
			min-height: 0 !important;
			padding-top: 28px !important;
			padding-bottom: 36px !important;
		}

		/* video/static wrappers often set a large fixed height on desktop - reset on mobile */
		.hero-video-wrap, .hero-image-wrap, .hero-static-wrap, .hero-anim {
			height: auto !important;
			min-height: 0 !important;
			max-height: none !important;
		}

		/* if any absolute-positioned background extends the section, hide it */
		.hero-video, .hero-image-full, .hero-static { display: none !important; }

		/* ensure guard / decorative blocks don't add space */
		.hero-guard, .hero-form-decor { display: none !important; }

		/* also reduce newsletter hero spacing if present */
		.hero-newsletter, .newsletter-section { padding-top: 28px !important; padding-bottom: 36px !important; }
	}