/* ============================================================
   ICPS — Contact page
   ============================================================ */
.icps-conhero, .icps-con, .icps-conmap {
	width: 100vw; max-width: 100vw; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw);
	font-family: "Poppins", sans-serif;
}
.c-red-t { color: #ff1744 !important; }
.c-blue-t { color: #1466b8 !important; }
.c-cyan-t { color: #00b8d4 !important; }
.c-navy-t { color: #001f3f !important; }

/* ---------- Hero ---------- */
.icps-conhero { background: #fff; padding: 80px 0 64px; border-bottom: 1px solid rgba(0,31,63,0.05); }
.icps-conhero__container { max-width: 1440px; margin: 0 auto; padding: 0 48px; }
.icps-conhero__head { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: end; }
.icps-conhero__eyebrow { display: flex; align-items: center; margin: 0 0 24px; font-size: 12px; font-weight: 500; letter-spacing: 3px; text-transform: uppercase; color: #ff1744; }
.icps-conhero__eyebrow .bar { display: inline-block; width: 32px; height: 4px; background: #ff1744; margin-right: 14px; }
.icps-conhero__title { margin: 0; font-size: 104px; font-weight: 600; line-height: 0.92; letter-spacing: -3.5px; color: #001f3f; }
.icps-conhero__title em { color: #ff1744; font-style: italic; }
.icps-conhero__lead { margin: 32px 0 0; max-width: 560px; font-size: 20px; font-weight: 500; line-height: 1.6; color: rgba(0,31,63,0.6); }
.icps-conhero__loc { display: flex; align-items: center; gap: 32px; color: rgba(0,31,63,0.2); padding-bottom: 12px; }
.icps-conhero__ring { box-sizing: border-box; width: 120px; height: 120px; color: rgba(0,31,63,0.2); animation: conspin 20s linear infinite; }
.icps-conhero__ring svg { display: block; width: 100%; height: 100%; }
@keyframes conspin { to { transform: rotate(360deg); } }
.icps-conhero__locline { width: 2px; height: 120px; background: rgba(0,31,63,0.08); }
.icps-conhero__loctxt { writing-mode: vertical-rl; font-size: 13px; font-weight: 500; letter-spacing: 5px; text-transform: uppercase; color: rgba(0,31,63,0.35); }

/* ---------- Info + Form ---------- */
.icps-con { background: #fff; padding: 96px 0; }
.icps-con__container { max-width: 1440px; margin: 0 auto; padding: 0 48px; display: grid; grid-template-columns: 5fr 7fr; gap: 64px; align-items: start; }
.icps-con__info-h { margin: 0 0 40px; font-size: 30px; font-weight: 600; letter-spacing: -1px; text-transform: uppercase; color: #001f3f; }
.icps-con__items { display: flex; flex-direction: column; gap: 32px; margin-bottom: 40px; }
.icps-con__item { display: flex; gap: 24px; }
.icps-con__item-ic { width: 56px; height: 56px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 16px; background: rgba(0,31,63,0.05); transition: background .2s, color .2s; }
.icps-con__item:hover .icps-con__item-ic { background: #001f3f; color: #fff !important; }
.icps-con__item-ic svg { width: 22px; height: 22px; }
.icps-con__item h3 { margin: 0 0 6px; font-size: 18px; font-weight: 600; color: #001f3f; }
.icps-con__item .d { margin: 0 0 4px; font-size: 15px; font-weight: 500; color: rgba(0,31,63,0.7); }
.icps-con__item .s { margin: 0; font-size: 13px; font-weight: 500; color: rgba(0,31,63,0.4); }
.icps-con__global { position: relative; overflow: hidden; background: #001f3f; border-radius: 40px; padding: 40px; color: #fff; }
.icps-con__global-glow { position: absolute; top: 0; right: 0; width: 130px; height: 130px; background: rgba(255,23,68,0.2); border-radius: 50%; filter: blur(40px); }
.icps-con__global h3 { position: relative; margin: 0 0 20px; font-size: 24px; font-weight: 600; }
.icps-con__global p { position: relative; margin: 0 0 32px; font-size: 15px; font-weight: 300; line-height: 1.7; color: rgba(255,255,255,0.6); }
.icps-con__global-link { position: relative; display: inline-flex; align-items: center; gap: 12px; font-size: 12px; font-weight: 600; letter-spacing: 2px; text-transform: uppercase; color: #ff1744; text-decoration: none; }
.icps-con__global-link svg { width: 20px; height: 20px; transition: transform .2s; }
.icps-con__global-link:hover svg { transform: translateX(4px); }
.icps-con__form { background: #f8fafc; border: 1px solid rgba(0,31,63,0.05); border-radius: 60px; padding: 64px; box-shadow: 0 30px 60px rgba(0,31,63,0.06); }
.icps-con__form-head { margin-bottom: 48px; }
.icps-con__form-head h2 { margin: 0 0 12px; font-size: 40px; font-weight: 600; letter-spacing: -1px; color: #001f3f; }
.icps-con__form-head h2 em { color: #ff1744; font-style: italic; }
.icps-con__form-head p { margin: 0; font-size: 15px; font-weight: 500; color: rgba(0,31,63,0.5); }
.icps-con__fields { display: flex; flex-direction: column; gap: 28px; }
.icps-con__two { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
.icps-con__fields label { display: flex; flex-direction: column; gap: 12px; padding-left: 16px; font-size: 12px; font-weight: 600; letter-spacing: 2px; text-transform: uppercase; color: #001f3f; }
.icps-con__fields input:not([type="submit"]), .icps-con__fields select, .icps-con__fields textarea { width: 100%; padding: 20px 32px; background: #fff; border: 1px solid transparent; border-radius: 24px; font-family: inherit; font-size: 15px; font-weight: 500; color: #001f3f; box-shadow: 0 2px 6px rgba(0,31,63,0.04); outline: none; transition: box-shadow .2s; }
.icps-con__fields textarea { padding: 24px 32px; border-radius: 32px; resize: none; }
.icps-con__fields input:not([type="submit"]):focus, .icps-con__fields select:focus, .icps-con__fields textarea:focus { box-shadow: 0 0 0 2px #ff1744; }
.icps-con__fields input::placeholder, .icps-con__fields textarea::placeholder { color: rgba(0,31,63,0.3); font-weight: 400; }
.icps-con__fields .icps-con__submit { display: inline-flex; align-items: center; justify-content: center; gap: 16px; width: 100%; padding: 24px; background: #001f3f; color: #fff; border: 0; border-radius: 32px; font-family: inherit; font-size: 20px; font-weight: 600; cursor: pointer; box-shadow: 0 24px 48px rgba(0,31,63,0.2); transition: background .2s, box-shadow .2s; }
.icps-con__fields .icps-con__submit:hover { background: #ff1744; box-shadow: 0 24px 48px rgba(255,23,68,0.3); }
.icps-con__fields .icps-con__submit svg { width: 22px; height: 22px; }
.icps-con__resp { display: flex; align-items: center; justify-content: center; gap: 12px; margin: 40px 0 0; font-size: 13px; font-weight: 500; letter-spacing: 2px; text-transform: uppercase; color: rgba(0,31,63,0.3); }
.icps-con__resp svg { width: 18px; height: 18px; }

/* ---------- Contact Form 7 integration ---------- */
.icps-con__fields .wpcf7-form-control-wrap { display: block; margin-left: -16px; width: calc(100% + 16px); }
.icps-con__fields .wpcf7-not-valid-tip { margin-top: 8px; font-size: 12px; font-weight: 500; letter-spacing: 0; text-transform: none; color: #ff1744; }
.icps-con__fields input.wpcf7-not-valid, .icps-con__fields select.wpcf7-not-valid, .icps-con__fields textarea.wpcf7-not-valid { box-shadow: 0 0 0 2px #ff1744; }
.icps-con__form .wpcf7-spinner { margin: 20px auto 0; display: block; }
.icps-con__form .wpcf7-response-output { margin: 28px 0 0 !important; padding: 16px 24px !important; border: 1px solid rgba(0,31,63,0.12) !important; border-radius: 20px !important; font-size: 14px; font-weight: 500; line-height: 1.5; color: #001f3f; }
.icps-con__form .wpcf7-response-output.wpcf7-mail-sent-ok { border-color: rgba(0,150,80,0.45) !important; background: rgba(0,150,80,0.06); }
.icps-con__form .wpcf7-response-output.wpcf7-mail-sent-ng,
.icps-con__form .wpcf7-response-output.wpcf7-validation-errors,
.icps-con__form .wpcf7-response-output.wpcf7-invalid { border-color: rgba(255,23,68,0.45) !important; background: rgba(255,23,68,0.05); color: #ff1744; }

/* ---------- Map ---------- */
.icps-conmap { background: #fff; padding: 24px 0 96px; }
.icps-conmap__container { max-width: 1440px; margin: 0 auto; padding: 0 48px; }
.icps-conmap__frame { position: relative; aspect-ratio: 21 / 9; border-radius: 60px; overflow: hidden; box-shadow: 0 30px 60px rgba(0,31,63,0.15); }
.icps-conmap__bg { position: absolute; inset: 0; background-size: cover; background-position: center; filter: grayscale(1); transition: filter 1s ease, transform 6s ease; }
.icps-conmap__frame:hover .icps-conmap__bg { filter: grayscale(0); transform: scale(1.04); }
.icps-conmap__overlay { position: absolute; inset: 0; background: rgba(0,31,63,0.2); transition: background .6s ease; pointer-events: none; }
.icps-conmap__frame:hover .icps-conmap__overlay { background: rgba(0,31,63,0); }
.icps-conmap__card { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); width: min(360px, 82%); padding: 40px 36px; text-align: center; background: rgba(255,255,255,0.9); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); border: 1px solid rgba(255,255,255,0.7); border-radius: 40px; box-shadow: 0 30px 60px rgba(0,31,63,0.25); }
.icps-conmap__pin { display: grid; place-items: center; width: 64px; height: 64px; margin: 0 auto 24px; border-radius: 20px; background: #ff1744; color: #fff; box-shadow: 0 16px 30px rgba(255,23,68,0.35); }
.icps-conmap__pin svg { width: 30px; height: 30px; }
.icps-conmap__card h3 { margin: 0 0 8px; font-size: 24px; font-weight: 600; letter-spacing: -0.5px; color: #001f3f; }
.icps-conmap__card p { margin: 0 0 24px; font-size: 15px; font-weight: 500; color: rgba(0,31,63,0.6); }
.icps-conmap__maps { display: inline-flex; align-items: center; gap: 10px; font-size: 12px; font-weight: 600; letter-spacing: 2px; text-transform: uppercase; color: #ff1744; text-decoration: none; }
.icps-conmap__maps svg { width: 16px; height: 16px; transition: transform .2s; }
.icps-conmap__maps:hover svg { transform: translateX(4px); }

/* ---------- Responsive ---------- */
@media (max-width: 1024px) {
	.icps-conhero { padding: 56px 0 48px; }
	.icps-conhero__container, .icps-con__container, .icps-conmap__container { padding: 0 24px; }
	.icps-conhero__head { grid-template-columns: 1fr; }
	.icps-conhero__loc { display: none; }
	.icps-conhero__title { font-size: 64px; letter-spacing: -2px; }
	.icps-con { padding: 64px 0; }
	.icps-con__container { grid-template-columns: 1fr; gap: 48px; }
	.icps-con__form { padding: 40px; border-radius: 40px; }
	.icps-conmap__frame { border-radius: 32px; }
}
@media (max-width: 680px) {
	.icps-conhero__title { font-size: 44px; letter-spacing: -1.5px; }
	.icps-con__two { grid-template-columns: 1fr; }
	.icps-con__form { padding: 28px; }
	.icps-con__form-head h2 { font-size: 30px; }
	/* 21:9 is too short for the overlay card on phones -> grow the frame so it isn't clipped */
	.icps-conmap__frame { aspect-ratio: auto; min-height: 360px; }
}
