/* Contact page: contact cards, inquiry form, benefit cards, consultation and closing bands. Palette matches pricing.css / page-hero.css. */
.im-contact {
	--ic-panel: #0b1230;
	--ic-panel-2: #101a42;
	--ic-blue: #2f6bff;
	--ic-violet: #7b4dff;
	--ic-cyan: #22d3ee;
	--ic-ink: #eef1ff;
	--ic-muted: #b4bddf;
	--ic-line: rgba(160, 180, 255, 0.16);
}
.im-contact-page .im-content { max-width: 1200px; padding-left: 20px; padding-right: 20px; }
.im-contact section { margin: 0 0 clamp(48px, 7vw, 88px); }
.im-contact section:last-child { margin-bottom: 0; }
.im-contact h2 { margin: 0 0 12px; color: #fff; font-size: clamp(28px, 3.4vw, 40px); line-height: 1.15; }
.im-contact .im-contact__eyebrow { margin: 0 0 10px !important; color: var(--ic-cyan); font-size: 14px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.im-contact .im-contact__sub { max-width: 720px; margin: 0 0 28px; color: var(--ic-muted); font-size: 18px; }
.im-contact__center { text-align: center; }
.im-contact__center .im-contact__sub { margin-left: auto; margin-right: auto; }

/* Icons */
.im-contact__icon { display: inline-grid; place-items: center; width: 52px; height: 52px; flex: 0 0 auto; border-radius: 14px; background: linear-gradient(135deg, rgba(47, 107, 255, .35), rgba(123, 77, 255, .35)); border: 1px solid rgba(91, 140, 255, .5); color: #fff; }
/* Icons are CSS masks (content passes through post sanitising, which strips inline SVG). */
.im-contact__icon::before { content: ""; width: 24px; height: 24px; background: currentColor; -webkit-mask: var(--ic-svg) center / contain no-repeat; mask: var(--ic-svg) center / contain no-repeat; }
.im-contact__icon--phone { --ic-svg: 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' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1.9.4 1.8.7 2.7a2 2 0 0 1-.5 2.1L8 9.8a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.7.7a2 2 0 0 1 1.7 2z'/%3E%3C/svg%3E"); }
.im-contact__icon--mail { --ic-svg: 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' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='m22 6-10 7L2 6'/%3E%3C/svg%3E"); }
.im-contact__icon--pin { --ic-svg: 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' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E"); }
.im-contact__icon--strategy { --ic-svg: 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' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Ccircle cx='12' cy='12' r='6'/%3E%3Ccircle cx='12' cy='12' r='2'/%3E%3C/svg%3E"); }
.im-contact__icon--search { --ic-svg: 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' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E"); }
.im-contact__icon--ai { --ic-svg: 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' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z'/%3E%3Cpath d='M8 10h.01M12 10h.01M16 10h.01'/%3E%3C/svg%3E"); }
.im-contact__icon--web { --ic-svg: 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' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='3' width='20' height='14' rx='2'/%3E%3Cpath d='M8 21h8M12 17v4'/%3E%3C/svg%3E"); }

/* Section 2: contact cards */
.im-contact__cards { display: grid; gap: 18px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.im-contact__card { position: relative; display: flex; flex-direction: column; gap: 14px; padding: 26px 24px; border-radius: 20px; background: linear-gradient(180deg, var(--ic-panel-2), var(--ic-panel)); border: 1px solid var(--ic-line); transition: border-color .2s, transform .2s; }
.im-contact__card:hover { border-color: rgba(91, 140, 255, .6); transform: translateY(-2px); }
.im-contact__card h3 { margin: 0; color: var(--ic-muted); font-size: 15px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; }
.im-contact__card .im-contact__value { margin: 0; color: #fff; font-size: 21px; font-weight: 700; line-height: 1.3; overflow-wrap: anywhere; }
.im-contact__card .im-contact__value a { color: #fff; text-decoration: none; }
.im-contact__card .im-contact__value a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.im-contact__card .im-contact__value a:focus-visible { outline: none; }
.im-contact__card:has(a:focus-visible) { outline: 2px solid var(--ic-cyan); outline-offset: 3px; }
.im-contact__card p:last-child { margin: 0; color: var(--ic-muted); font-size: 15px; }

/* Section 3: inquiry */
.im-contact__inquiry { display: grid; gap: clamp(24px, 4vw, 48px); grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); align-items: start; }
.im-contact__aside h2 { margin-bottom: 14px; }
.im-contact__aside > p { color: var(--ic-muted); }
.im-contact__next { list-style: none; margin: 26px 0 !important; padding: 0 !important; counter-reset: icnext; }
.im-contact__next li { position: relative; margin: 0 0 18px !important; padding: 0 0 0 56px; counter-increment: icnext; color: var(--ic-muted); }
.im-contact__next li::before { content: counter(icnext); position: absolute; left: 0; top: 0; display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: linear-gradient(135deg, var(--ic-blue), var(--ic-violet)); color: #fff; font-weight: 800; }
.im-contact__next strong { display: block; color: #fff; }
.im-contact__links { margin: 0; padding: 18px 20px; border-radius: 16px; background: rgba(34, 211, 238, .06); border: 1px solid rgba(34, 211, 238, .25); color: var(--ic-muted); font-size: 15.5px; }

/* Form */
.im-ic { position: relative; scroll-margin-top: 110px; padding: clamp(22px, 3vw, 34px); border-radius: 24px; background: linear-gradient(180deg, var(--ic-panel-2), var(--ic-panel)); border: 1px solid rgba(91, 140, 255, .35); box-shadow: 0 30px 80px -40px rgba(47, 107, 255, .55); color: var(--ic-ink); font-size: 16px; }
.im-ic__head { margin: 0 0 20px; }
.im-ic__title { margin: 0 0 6px !important; color: #fff; font-size: clamp(22px, 2.4vw, 26px); }
.im-ic__intro { margin: 0 !important; color: var(--ic-muted); font-size: 15px; }
.im-ic__hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.im-ic__row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 18px; }
.im-ic__field { margin: 0 0 18px; min-width: 0; }
.im-ic label, .im-ic legend { color: #fff; font-weight: 600; font-size: 15px; }
.im-ic__field > label { display: block; margin: 0 0 7px; }
.im-ic__req { font-weight: 400; color: var(--ic-muted); font-size: 13px; }
.im-ic input[type="text"], .im-ic input[type="email"], .im-ic input[type="tel"], .im-ic input[type="url"], .im-ic select, .im-ic textarea {
	width: 100%; min-height: 50px; margin: 0; padding: 12px 14px; border-radius: 12px; box-sizing: border-box;
	border: 1px solid rgba(160, 180, 255, .3) !important; background: #070c24 !important; color: #fff !important;
	font: 16px/1.4 var(--wdtFontTypo_Base, system-ui, sans-serif); box-shadow: none;
}
.im-ic select { appearance: auto; }
.im-ic textarea { min-height: 140px; resize: vertical; }
.im-ic input::placeholder, .im-ic textarea::placeholder { color: rgba(180, 189, 223, .6); }
.im-ic input:focus-visible, .im-ic select:focus-visible, .im-ic textarea:focus-visible { outline: 2px solid var(--ic-cyan); outline-offset: 2px; border-color: var(--ic-cyan) !important; }
.im-ic [aria-invalid="true"] { border-color: #ff7b8a !important; }
.im-ic__hint { margin: 0 0 8px !important; font-size: 14px; color: var(--ic-muted); }
.im-ic__error { margin: 6px 0 0 !important; color: #ffb4bd; font-size: 14px; font-weight: 600; }
.im-ic__alert { margin: 0 0 18px; padding: 12px 16px; border-radius: 12px; background: rgba(255, 100, 120, .12); border: 1px solid rgba(255, 123, 138, .5); color: #fff; }
.im-ic__radios { border: 0 !important; padding: 0 !important; margin: 0 0 18px !important; background: transparent !important; min-width: 0; }
.im-ic__radios legend { margin: 0 0 7px; padding: 0; }
.im-ic__radio-row { display: flex; flex-wrap: wrap; gap: 8px; }
.im-ic__radio { display: inline-flex !important; align-items: center; gap: 8px; min-height: 50px; padding: 0 14px; border-radius: 12px; border: 1px solid rgba(160, 180, 255, .3); background: #070c24; cursor: pointer; font-weight: 500 !important; }
.im-ic__radio:has(input:checked) { border-color: var(--ic-blue); background: rgba(47, 107, 255, .16); }
.im-ic__radio:has(input:focus-visible) { outline: 2px solid var(--ic-cyan); outline-offset: 2px; }
.im-ic__radio input, .im-ic__consent input { width: 20px; height: 20px; margin: 0; flex: 0 0 auto; accent-color: var(--ic-blue); }
.im-ic__consent { display: flex !important; align-items: flex-start; gap: 10px; font-weight: 500 !important; line-height: 1.5; color: var(--ic-muted) !important; }
.im-ic__consent input { margin-top: 2px; }
.im-ic__consent a { color: #c4b2ff; }
.im-ic__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; margin-top: 6px; }
.im-ic__submit { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 54px; padding: 0 28px; border: 0; border-radius: 999px; background: linear-gradient(135deg, var(--ic-blue), var(--ic-violet)) !important; color: #fff !important; font: 700 17px/1 var(--wdtFontTypo_Alt, system-ui, sans-serif); cursor: pointer; box-shadow: 0 14px 30px -12px rgba(47, 107, 255, .8); transition: transform .15s, box-shadow .15s; }
.im-ic__submit:hover { transform: translateY(-1px); box-shadow: 0 18px 36px -12px rgba(123, 77, 255, .9); }
.im-ic__submit:focus-visible { outline: 2px solid var(--ic-cyan); outline-offset: 3px; }
.im-ic__note { margin: 0 !important; color: var(--ic-muted); font-size: 14px; }
.im-ic--sent { text-align: center; padding: clamp(32px, 5vw, 56px); }
.im-ic--sent h3 { margin: 16px 0 10px; color: #fff; }
.im-ic--sent p { color: var(--ic-muted); margin: 0 0 8px; }
.im-ic--sent a { color: #c4b2ff; }
.im-ic__sent-icon { display: inline-grid; place-items: center; width: 64px; height: 64px; border-radius: 50%; background: rgba(52, 211, 153, .15); border: 1px solid rgba(52, 211, 153, .5); color: #34d399; }

/* Section 4: benefits */
.im-contact__benefits { display: grid; gap: 18px; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.im-contact__benefit { display: flex; flex-direction: column; gap: 14px; padding: 26px 22px; border-radius: 20px; background: linear-gradient(180deg, var(--ic-panel-2), var(--ic-panel)); border: 1px solid var(--ic-line); transition: border-color .2s, transform .2s; }
.im-contact__benefit:hover { border-color: rgba(91, 140, 255, .6); transform: translateY(-2px); }
.im-contact__benefit h3 { margin: 0; color: #fff; font-size: 20px; line-height: 1.3; }
.im-contact__benefit p { margin: 0; color: var(--ic-muted); font-size: 15.5px; }
.im-contact__benefit a { color: #c4b2ff; }

/* Section 5 and 7: bands */
.im-contact__band { position: relative; overflow: hidden; padding: clamp(32px, 5vw, 56px); border-radius: 28px; border: 1px solid rgba(91, 140, 255, .35); background: radial-gradient(120% 140% at 0% 0%, rgba(47, 107, 255, .35), transparent 55%), radial-gradient(120% 140% at 100% 100%, rgba(123, 77, 255, .35), transparent 55%), var(--ic-panel); }
.im-contact__band--split { display: grid; gap: 24px 40px; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); align-items: center; }
.im-contact__band p { color: var(--ic-ink); opacity: .9; }
.im-contact__band ul { margin: 0 !important; padding: 0 !important; list-style: none; }
.im-contact__band li { position: relative; margin: 0 0 10px !important; padding-left: 30px; color: var(--ic-ink); }
.im-contact__band li::before { content: ""; position: absolute; left: 0; top: .45em; width: 16px; height: 9px; border-left: 2.5px solid var(--ic-cyan); border-bottom: 2.5px solid var(--ic-cyan); transform: rotate(-45deg); }
.im-contact__btns { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 22px; }
.im-contact__center .im-contact__btns { justify-content: center; }
.im-contact__btns br { display: none; } /* wpautop inserts a <br> between adjacent buttons */
.im-contact .im-contact__btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 52px; padding: 0 26px; border-radius: 999px; font-weight: 700; text-decoration: none !important; transition: transform .15s, background .15s; }
.im-contact .im-contact__btn--primary { background: linear-gradient(135deg, var(--ic-blue), var(--ic-violet)); color: #fff !important; box-shadow: 0 14px 30px -12px rgba(47, 107, 255, .8); }
.im-contact .im-contact__btn--ghost { border: 1px solid rgba(255, 255, 255, .3); color: #fff !important; background: rgba(255, 255, 255, .04); }
.im-contact .im-contact__btn:hover { transform: translateY(-1px); }
.im-contact .im-contact__btn:focus-visible { outline: 2px solid var(--ic-cyan); outline-offset: 3px; }

/* FAQ spacing inside the contact layout */
.im-contact .im-faq { max-width: 900px; margin-left: auto; margin-right: auto; }

@media (max-width: 1023px) {
	.im-contact__inquiry, .im-contact__band--split { grid-template-columns: 1fr; }
	.im-contact__benefits { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
	.im-contact__cards, .im-contact__benefits, .im-ic__row { grid-template-columns: 1fr; }
	.im-contact .im-contact__btn, .im-ic__submit { width: 100%; }
	.im-contact-page .im-content { padding-left: 0; padding-right: 0; }
	.im-contact__card, .im-contact__benefit { padding: 22px 20px; }
	.im-contact__card .im-contact__value { font-size: 18px; overflow-wrap: break-word; }
	.im-ic { padding: 20px 16px; border-radius: 20px; }
	.im-contact__band { border-radius: 22px; }
}
