.contact-hero { position: relative; padding: 10.5rem 0 7rem; overflow: hidden; background: radial-gradient(circle at 82% 18%, rgba(64,211,220,.2), transparent 28%), linear-gradient(135deg,#effaff,#e2f6ff 65%,#f8fdff); }
.contact-hero::after { position: absolute; width: 34rem; height: 34rem; right: -12rem; bottom: -22rem; border: 4rem solid rgba(8,120,232,.055); border-radius: 50%; content: ""; }
.contact-hero-content { position: relative; z-index: 1; max-width: 900px; }
.contact-eyebrow { display: inline-block; margin-bottom: .9rem; color: #0878e8; font-size: .75rem; font-weight: 800; letter-spacing: .19em; text-transform: uppercase; }
.contact-eyebrow-light { color: #76ddff; }
.contact-hero h1 { margin-bottom: 1.5rem; color: #062d55; font-family: Manrope,sans-serif; font-size: clamp(3.2rem,6.3vw,6.4rem); font-weight: 800; letter-spacing: -.065em; line-height: .98; }
.contact-hero h1 span { display: block; color: #0878e8; }
.contact-hero p { max-width: 760px; color: #506f88; font-size: clamp(1.05rem,1.4vw,1.25rem); line-height: 1.75; }
.contact-hero-actions { display: flex; flex-wrap: wrap; gap: .85rem; margin-top: 2rem; }
.contact-hero-actions .btn { min-width: 180px; padding: .95rem 1.5rem; }

.contact-info-section { position: relative; z-index: 2; margin-top: -2.5rem; }
.contact-info-grid { display: grid; grid-template-columns: repeat(4,1fr); overflow: hidden; border: 1px solid #d9e8f2; border-radius: 1.4rem; background: #fff; box-shadow: 0 22px 55px rgba(17,65,108,.11); }
.contact-info-card { position: relative; display: flex; min-height: 130px; padding: 1.4rem; align-items: center; gap: .9rem; color: #123b60; border-right: 1px solid #e1ebf2; }
.contact-info-card:last-child { border: 0; }
.contact-info-card > span { display: grid; width: 46px; height: 46px; flex: 0 0 auto; place-items: center; border-radius: 14px; background: #e9f5ff; color: #0878e8; font-size: 1.2rem; }
.contact-info-card div { display: flex; min-width: 0; flex-direction: column; }
.contact-info-card small { margin-bottom: .35rem; color: #7890a5; font-size: .7rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.contact-info-card strong { overflow-wrap: anywhere; font-size: .9rem; }
.contact-info-arrow { position: absolute; right: .8rem; top: .8rem; color: #8ba0b2; font-size: .75rem; }

.contact-forms-section { padding: 6.5rem 0; }
.contact-error-summary { margin-bottom: 1.5rem; border-radius: 1rem; }
.contact-error-summary ul { margin: .5rem 0 0; }
.enquiry-panel { height: 100%; padding: 2.25rem; border: 1px solid #d9e8f2; border-radius: 1.6rem; background: #fff; box-shadow: 0 18px 50px rgba(17,65,108,.07); }
.enquiry-panel-business { background: linear-gradient(180deg,#f8fcff,#fff); }
.enquiry-panel-heading { display: flex; margin-bottom: 2rem; align-items: flex-start; gap: 1rem; }
.enquiry-heading-icon { display: grid; width: 58px; height: 58px; flex: 0 0 auto; place-items: center; border-radius: 17px; background: #e9f5ff; color: #0878e8; font-size: 1.45rem; }
.enquiry-panel-heading .contact-eyebrow { margin-bottom: .35rem; }
.enquiry-panel h2 { margin-bottom: .5rem; color: #062d55; font-family: Manrope,sans-serif; font-size: clamp(1.65rem,3vw,2.4rem); font-weight: 800; letter-spacing: -.04em; }
.enquiry-panel-heading p { margin: 0; color: #71879b; font-size: .9rem; }
.enquiry-panel label { margin: 0 0 .45rem .1rem; color: #153c61; font-size: .78rem; font-weight: 800; }
.enquiry-panel .form-control { min-height: 52px; border-color: #d4e4ee; background: #fbfdff; }
.enquiry-panel textarea.form-control { min-height: 112px; }
.enquiry-panel .input-group-text { border-color: #d4e4ee; background: #edf7fe; color: #0878e8; font-weight: 800; }
.business-note { display: flex; gap: .65rem; margin-top: 1.25rem; color: #758b9f; font-size: .78rem; }
.business-note i { color: #0aa474; }

.contact-services-section { padding: 6.5rem 0; background: #f3f9fd; }
.contact-section-intro { max-width: 730px; margin: 0 auto 3rem; }
.contact-section-intro h2,.contact-faq-section h2,.contact-final-cta h2 { margin-bottom: .85rem; color: #062d55; font-family: Manrope,sans-serif; font-size: clamp(2.2rem,4vw,3.7rem); font-weight: 800; letter-spacing: -.05em; }
.contact-section-intro p,.contact-faq-section .col-lg-4 > p { color: #6b8296; font-size: 1.05rem; line-height: 1.7; }
.contact-services-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 1rem; }
.contact-services-grid article { position: relative; display: flex; min-height: 145px; padding: 1.3rem; flex-direction: column; justify-content: space-between; border: 1px solid #d9e8f2; border-radius: 1.2rem; background: #fff; }
.contact-services-grid article > i:first-child { color: #0878e8; font-size: 1.5rem; }
.contact-services-grid article > i:last-child { position: absolute; right: 1rem; top: 1rem; color: #14ad7c; font-size: .8rem; }
.contact-services-grid span { color: #123a5e; font-family: Manrope,sans-serif; font-weight: 800; }

.contact-faq-section { padding: 6.5rem 0; }
.contact-faq-list { border-top: 1px solid #dbe7ef; }
.contact-faq-list details { border-bottom: 1px solid #dbe7ef; }
.contact-faq-list summary { display: flex; padding: 1.5rem 0; align-items: center; justify-content: space-between; gap: 1rem; color: #0b355c; cursor: pointer; list-style: none; font-family: Manrope,sans-serif; font-weight: 800; }
.contact-faq-list summary::-webkit-details-marker { display: none; }
.contact-faq-list summary i { transition: transform .2s ease; }
.contact-faq-list details[open] summary i { transform: rotate(45deg); }
.contact-faq-list p { padding: 0 2.5rem 1.5rem 0; color: #6b8296; line-height: 1.7; }

.contact-final-cta { padding: 0 0 6.5rem; }
.contact-cta-content { display: flex; padding: 3.25rem; align-items: center; justify-content: space-between; gap: 2rem; border-radius: 1.8rem; background: linear-gradient(120deg,#073765,#087bb8); color: #fff; }
.contact-final-cta h2 { max-width: 760px; color: #fff; }
.contact-final-cta p { color: #c5e4f5; }
.contact-cta-links { display: flex; flex-wrap: wrap; gap: 1.25rem; margin-top: 1.25rem; }
.contact-cta-links a { color: #fff; font-weight: 700; }
.contact-cta-links i { margin-right: .4rem; color: #6fe2ff; }
.contact-cta-content > .btn { min-width: 160px; flex: 0 0 auto; }

@media (max-width: 1199.98px) {
    .contact-info-grid { grid-template-columns: repeat(2,1fr); }
    .contact-info-card:nth-child(2) { border-right: 0; }
    .contact-info-card:nth-child(-n+2) { border-bottom: 1px solid #e1ebf2; }
}
@media (max-width: 991.98px) {
    .contact-services-grid { grid-template-columns: repeat(2,1fr); }
    .contact-cta-content { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 575.98px) {
    .contact-hero { padding: 7.5rem 0 5rem; }
    .contact-hero h1 { font-size: 3.25rem; }
    .contact-hero-actions .btn { width: 100%; }
    .contact-info-grid { grid-template-columns: 1fr; }
    .contact-info-card { min-height: 110px; border-right: 0; border-bottom: 1px solid #e1ebf2; }
    .contact-info-card:nth-child(3) { border-bottom: 1px solid #e1ebf2; }
    .contact-forms-section,.contact-services-section,.contact-faq-section { padding: 4.5rem 0; }
    .enquiry-panel { padding: 1.5rem 1.1rem; }
    .enquiry-panel-heading { flex-direction: column; }
    .contact-services-grid { grid-template-columns: 1fr; }
    .contact-cta-content { padding: 2rem 1.25rem; }
    .contact-cta-content > .btn { width: 100%; }
}
