main .section.contact { background:radial-gradient(ellipse at 0 0,#19799727,transparent 52%),linear-gradient(125deg,#10243b,#142e45)!important; padding:72px 0 80px; }
.contact .contact-grid { grid-template-columns:1.05fr 1fr; gap:64px; align-items:start; }
.contact .eyebrow { color:#72d6f2; font-size:11px; letter-spacing:.14em; }
.contact .contact-copy h1 { margin:20px 0; font-size:clamp(30px,3.3vw,46px); line-height:1.4; letter-spacing:-.025em; color:#f5faff; }
.contact .contact-copy h1 span { color:#72d6f2; }
.contact .contact-copy>p { color:#b9cfde; font-size:16px; line-height:1.9; }
.contact .contact-details { display:grid; grid-template-columns:1fr 1fr; gap:0; margin-top:30px; border-top:1px solid #80b5cb33; }
.contact .contact-detail { padding:20px 12px 20px 0; border-bottom:1px solid #80b5cb33; color:#e5f3fa; font-size:15px; font-weight:500; overflow-wrap:anywhere; }
.contact .contact-detail span { color:#8fb5c8; font-size:11px; letter-spacing:.04em; margin-bottom:8px; }
.contact .contact-detail a { color:#e5f3fa; font-size:18px; font-weight:600; }
.contact .contact-detail a:hover { color:#72d6f2; }
.contact-office { margin-top:28px; }
.contact .contact-office h2 { font-size:20px; margin:0 0 12px; color:#f0f8fd; letter-spacing:0; }
.contact-office p { color:#b9cfde; font-size:14px; line-height:1.9; margin:4px 0; }
.contact-office>a { display:inline-block; margin-top:14px; color:#72d6f2; font-size:14px; }
.contact .contact-form { background:#fff!important; border:1px solid #c6e0ec!important; border-radius:20px; padding:32px; box-shadow:0 24px 60px #04132133; }
.contact .contact-form label { color:#24445d; }
.contact .contact-form input,.contact .contact-form textarea { color:#17354f; background:#f6fafc; border:1px solid #b9d1de; }
.contact .contact-form input:focus,.contact .contact-form textarea:focus { outline:2px solid #36b4d4; outline-offset:2px; }
.contact .contact-form textarea { min-height:180px; }
.contact .contact-form .btn { background:#078db5; color:#fff; border:0; }
.contact .contact-form .form-note { color:#62788b; font-size:13px; line-height:1.8; }
@media(max-width:900px) { .contact .contact-grid { grid-template-columns:1fr; gap:36px; } }
@media(max-width:520px) { main .section.contact { padding:40px 0; } .contact .contact-form { padding:22px; } .contact .contact-details { grid-template-columns:1fr; } }
/* Open, light contact layout with separate introduction and contact channels. */
main .section.contact { background:radial-gradient(ellipse at 95% 0,#c9eff954,transparent 40%),#f5fafd!important; padding:56px 0 72px; }
.contact .contact-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:24px 48px; }
.contact .contact-copy { display:contents; }
.contact .contact-copy>.eyebrow { grid-column:1/-1; justify-self:center; margin:0; color:#078db5; }
.contact .contact-copy h1 { grid-column:1/-1; text-align:center; font-size:clamp(30px,3.2vw,44px); color:#17354e; margin:0; line-height:1.35; }
.contact .contact-copy h1 br { display:none; }
.contact .contact-copy h1 span { color:#078db5; }
.contact .contact-copy>p { grid-column:1/-1; text-align:center; justify-self:center; max-width:720px; color:#627b90; margin:0; }
.contact .contact-details { grid-column:1/-1; grid-row:4; grid-template-columns:repeat(4,minmax(0,1fr)); margin:12px 0 16px; padding:24px 12px; border:1px solid #cde1ec; border-radius:16px; background:#fff; box-shadow:0 8px 24px #153a5505; }
.contact .contact-detail { padding:0 20px; border:0; border-inline-end:1px solid #e1edf3; color:#24445e; }
.contact .contact-detail:last-child { border:0; }
.contact .contact-detail span { color:#708a9d; font-size:12px; }
.contact .contact-detail a { color:#173f5a; font-size:18px; }
.contact .contact-office { grid-column:1; grid-row:5; margin:0; padding:28px 0; border-top:3px solid #49b8d7; }
.contact .contact-office h2 { color:#17354e; font-size:26px; margin:0 0 20px; }
.contact .contact-office p { color:#627b90; font-size:16px; }
.contact .contact-office>a { color:#078db5; margin-top:24px; padding-bottom:6px; border-bottom:1px solid #84c8dc; }
.contact .contact-form { grid-column:2; grid-row:5; box-shadow:0 12px 32px #163b5308; border-radius:16px; }
@media(max-width:900px) { .contact .contact-details { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 0; } .contact .contact-detail:nth-child(2) { border:0; } .contact .contact-grid { grid-template-columns:1fr 1.2fr; gap:24px; } }
@media(max-width:640px) { .contact .contact-grid { grid-template-columns:1fr; gap:20px; } .contact .contact-copy h1 br { display:block; } .contact .contact-details { padding:22px 4px; } .contact .contact-detail { padding:0 12px; font-size:13px; } .contact .contact-detail a { font-size:15px; } .contact .contact-office { grid-column:1; grid-row:6; } .contact .contact-form { grid-column:1; grid-row:5; } }
.contact-reference.section { background:#f5f8fb!important; padding:0 0 72px!important; }
.contact-reference .contact-intro { padding:64px 0 110px; text-align:center; background:radial-gradient(ellipse at 85% 15%,#276b8040,transparent 55%),linear-gradient(120deg,#10243b,#183249); }
.contact-reference .contact-intro .eyebrow { display:inline-flex; padding:8px 16px; border:1px solid #72d6f230; border-radius:30px; background:#ffffff05; color:#72d6f2; }
.contact-reference .contact-intro h1 { margin:22px 0 12px; color:#fff; font-size:clamp(36px,4vw,54px); line-height:1.4; letter-spacing:-.02em; }
.contact-reference .contact-intro h2 { color:#72d6f2; font-size:clamp(19px,2vw,25px); margin:0 0 20px; max-width:none; letter-spacing:0; }
.contact-reference .contact-intro p { color:#b8cfdf; font-size:16px; line-height:1.9; margin:0; }
.contact-reference .contact-grid { position:relative; display:grid; grid-template-columns:1.2fr .85fr; align-items:start; gap:32px; margin-top:-58px; }
.contact-reference .contact-form { grid-column:auto; grid-row:auto; padding:36px; border-radius:20px; box-shadow:0 18px 50px #0b283012; }
.contact-reference .contact-form h2 { font-size:26px; color:#18374f; margin:0 0 8px; letter-spacing:0; }
.contact-reference .contact-form-intro { margin:0 0 26px; color:#728698; font-size:14px; line-height:1.8; }
.contact-reference .contact-information { position:relative; overflow:hidden; padding:32px; border-radius:20px; background:#132b42; color:#edf7ff; }
.contact-reference .contact-information::before { content:""; position:absolute; width:190px; height:190px; border-radius:50%; background:#72d6f20b; right:-75px; top:-80px; pointer-events:none; }
.contact-reference .contact-information>h2 { font-size:25px; color:#fff; margin:0 0 24px; letter-spacing:0; }
.contact-reference .contact-office { padding:0 0 24px; margin:0; border:0; }
.contact-reference .contact-office h2 { display:none; }
.contact-reference .contact-office p { color:#c0d4e3; font-size:14px; }
.contact-reference .contact-office>a { color:#72d6f2; font-size:13px; margin-top:14px; border-color:#72d6f24d; }
.contact-reference .contact-details { display:block; margin:0; padding:0; background:none; border:0; border-radius:0; box-shadow:none; }
.contact-reference .contact-detail { padding:18px 0; border:0; border-top:1px solid #85b6cf26!important; color:#dceaf4; font-size:14px; }
.contact-reference .contact-detail span { color:#95b9cd; font-size:12px; }
.contact-reference .contact-detail a { color:#ecf7fd; font-size:18px; }
@media(max-width:800px) { .contact-reference .contact-grid { grid-template-columns:1fr; } .contact-reference .contact-form,.contact-reference .contact-information { grid-column:1; grid-row:auto; } }
@media(max-width:520px) { .contact-reference .contact-intro { padding:40px 0 90px; } .contact-reference .contact-form,.contact-reference .contact-information { padding:24px; } .contact-reference .contact-intro p br { display:none; } }
.contact-location { padding:64px 0; background:#fff; }
.contact-location-grid { display:grid; grid-template-columns:.65fr 1.35fr; gap:56px; align-items:center; }
.contact-location .eyebrow { color:#078db5; font-size:11px; letter-spacing:.14em; }
.contact-location h2 { color:#17354e; font-size:28px; margin:16px 0; }
.contact-location p { color:#627b90; font-size:16px; line-height:1.9; margin:0 0 20px; max-width:340px; }
.contact-location a { color:#078db5; font-size:14px; font-weight:600; }
.contact-location iframe { display:block; width:100%; height:360px; border:1px solid #d7e6ee; border-radius:14px; background:#edf5f9; }
@media(max-width:800px) { .contact-location { padding:40px 0; } .contact-location-grid { grid-template-columns:1fr; gap:24px; } .contact-location p { max-width:none; } .contact-location iframe { height:320px; } }
/* A cohesive location panel instead of two floating columns. */
.contact-location { padding:56px 0 64px; background:#fff; }
.contact-location-grid { grid-template-columns:.8fr 1.4fr; gap:0; overflow:hidden; border:1px solid #b9d8e6; border-radius:20px; background:linear-gradient(135deg,#edf8fd,#f8fcfe); box-shadow:0 12px 34px #143b5508; }
.contact-location-grid>div { padding:36px; }
.contact-location .eyebrow { display:inline-flex; padding:6px 10px; background:#def2fa; border-radius:6px; font-size:10px; }
.contact-location h2 { font-size:30px; margin:18px 0 16px; letter-spacing:-.02em; }
.contact-location p { font-size:15px; color:#5e7b90; margin-bottom:24px; }
.contact-location a { display:inline-flex; align-items:center; padding:12px 18px; border:1px solid #078db5; border-radius:9px; color:#fff; background:#078db5; font-size:14px; transition:background .18s; }
.contact-location a:hover { background:#08789b; }
.contact-location a:focus-visible { outline:3px solid #52bfdc; outline-offset:4px; }
.contact-location iframe { height:390px; border:0; border-inline-start:1px solid #c8e1ec; border-radius:0; }
@media(max-width:800px) { .contact-location-grid { grid-template-columns:1fr; gap:0; } .contact-location-grid>div { padding:28px; } .contact-location iframe { height:330px; border-inline-start:0; border-top:1px solid #c8e1ec; } }
.contact-location .contact-location-grid { grid-template-columns:1fr; }
.contact-location .contact-location-grid>div { padding:30px 36px; }
.contact-location .contact-location-grid p { max-width:none; margin-bottom:18px; }
.contact-location .contact-location-grid iframe { height:420px; border-inline-start:0; border-top:1px solid #c8e1ec; }
@media(max-width:800px) { .contact-location .contact-location-grid>div { padding:26px; } .contact-location .contact-location-grid iframe { height:330px; } }
.contact-location .contact-location-grid { overflow:visible; border:0; border-radius:0; background:none; box-shadow:none; gap:24px; }
.contact-location .contact-location-grid>div { display:grid; grid-template-columns:1fr auto; gap:10px 28px; align-items:center; padding:0; }
.contact-location .contact-location-grid .eyebrow { grid-column:1; justify-self:start; padding:0; background:none; }
.contact-location .contact-location-grid h2 { grid-column:1; margin:0; font-size:30px; }
.contact-location .contact-location-grid p { grid-column:1; margin:0; }
.contact-location .contact-location-grid a { grid-column:2; grid-row:2/4; justify-self:end; white-space:nowrap; padding:12px 20px; background:#edf8fd; color:#0785a9; border-color:#8fcadd; }
.contact-location .contact-location-grid a:hover { background:#def2fa; }
.contact-location .contact-location-grid iframe { height:420px; border:1px solid #c8dfe9; border-radius:16px; box-shadow:0 10px 28px #163b5309; }
@media(max-width:640px) { .contact-location .contact-location-grid>div { grid-template-columns:1fr; gap:12px; } .contact-location .contact-location-grid a { grid-column:1; grid-row:auto; justify-self:start; margin-top:4px; } .contact-location .contact-location-grid iframe { height:330px; } }
.contact-location .contact-location-grid>div { grid-template-columns:1fr; text-align:center; justify-items:center; }
.contact-location .contact-location-grid .eyebrow { justify-self:center; }
.contact-location .contact-location-grid p { max-width:680px; }
.contact-location .contact-location-grid>div { gap:12px; }
.contact-location .contact-location-grid h2 { margin-bottom:10px; }
.contact-location .contact-location-grid p { width:100%; max-width:780px; text-align:start; line-height:1.9; font-size:16px; }
/* Location introduction and map share one visual frame. */
.contact-location { background:#f5f9fc; padding:56px 0; }
.contact-location .contact-location-grid { gap:0; overflow:hidden; border:1px solid #c9dfe9; border-radius:20px; background:#fff; box-shadow:0 12px 36px #163b5308; }
.contact-location .contact-location-grid>div { grid-template-columns:1fr 1fr; gap:12px 36px; padding:32px 40px; background:linear-gradient(125deg,#f0faff,#fff); }
.contact-location .contact-location-grid .eyebrow { grid-column:1/-1; padding:5px 12px; background:#e0f3fb; border-radius:20px; }
.contact-location .contact-location-grid h2 { grid-column:1/-1; margin:0 0 10px; font-size:30px; }
.contact-location .contact-location-grid p { grid-column:auto; max-width:none; margin:0; color:#59778e; font-size:15px; line-height:1.9; text-align:start; }
.contact-location .contact-location-grid p:last-child { padding-inline-start:28px; border-inline-start:1px solid #c5dfe9; }
.contact-location .contact-location-grid iframe { height:400px; border:0; border-top:1px solid #c9dfe9; border-radius:0; box-shadow:none; }
@media(max-width:640px) { .contact-location .contact-location-grid>div { grid-template-columns:1fr; padding:26px 22px; gap:14px; } .contact-location .contact-location-grid p:last-child { padding-inline-start:0; border:0; } .contact-location .contact-location-grid iframe { height:330px; } }
.contact-location .contact-location-grid { border:0; border-radius:0; box-shadow:none; background:none; overflow:visible; }
.contact-location .contact-location-grid iframe { border:0; border-radius:0; box-shadow:none; }
.contact-location .contact-location-grid>div { grid-template-columns:1fr; }
.contact-location .contact-location-grid p { grid-column:1; max-width:780px; }
.contact-location .contact-location-grid p:last-child { padding-inline-start:0; border-inline-start:0; }
.contact-location .contact-location-grid iframe { width:100%; max-width:1000px; height:340px; justify-self:center; }
@media(max-width:640px) { .contact-location .contact-location-grid iframe { height:280px; } }
.contact-location .contact-location-grid p { max-width:none; text-align:center; }
.contact-location .contact-location-grid>div { background:transparent; border:0; border-radius:0; box-shadow:none; }
.contact-location .contact-location-grid iframe { max-width:1100px; border-radius:14px; }
.contact-location .contact-location-grid iframe { max-width:1160px; }
.contact-location .contact-location-grid iframe { max-width:1220px; }
.contact-location { position:relative; isolation:isolate; overflow:hidden; background:radial-gradient(ellipse at 0% 25%,#b5eafa66,transparent 42%),radial-gradient(ellipse at 100% 90%,#c5def955,transparent 45%),linear-gradient(135deg,#f5fbfe,#edf6fb); }
.contact-location::before { content:""; position:absolute; inset:0; z-index:-1; pointer-events:none; background-image:radial-gradient(#359cbe30 .8px,transparent 1px); background-size:24px 24px; mask-image:linear-gradient(90deg,#000,transparent 24%,transparent 76%,#000); }
.contact-location::after { content:""; position:absolute; z-index:-1; pointer-events:none; width:460px; height:460px; border:1px solid #6cbcd52b; border-radius:50%; right:-280px; top:-230px; box-shadow:0 0 0 48px #7bc6df0a,0 0 0 96px #7bc6df08; }
.contact-reference .contact-intro { position:relative; isolation:isolate; overflow:hidden; background:radial-gradient(ellipse at 50% 105%,#148eaf40,transparent 58%),radial-gradient(ellipse at 100% 0%,#27648935,transparent 48%),linear-gradient(120deg,#0c2035,#15364b); }
.contact-reference .contact-intro::before { content:""; position:absolute; inset:0; z-index:-1; pointer-events:none; background-image:radial-gradient(#8bdcf22b .8px,transparent 1px); background-size:26px 26px; mask-image:linear-gradient(90deg,#000,transparent 33%,transparent 67%,#000); }
.contact-reference .contact-intro::after { content:""; position:absolute; z-index:-1; pointer-events:none; width:950px; height:600px; right:-620px; top:-340px; border:1px solid #82d9f035; border-radius:50%; transform:rotate(-22deg); box-shadow:0 0 0 48px #72cfe90a,0 0 0 96px #72cfe908,0 0 0 144px #72cfe906; }
.contact-reference .contact-intro>.container { position:relative; }
.contact-reference .contact-intro>.container { display:flex; flex-direction:column; align-items:center; text-align:center; }
.contact-reference .contact-intro h1 { width:100%; max-width:none; margin:22px auto 16px; padding:0; text-align:center!important; }
.contact-reference .contact-intro h2 { width:100%; max-width:none; margin:0 auto 18px; text-align:center; }
.contact-reference .contact-intro p { width:100%; max-width:720px; margin:0 auto; text-align:center; }
.contact-reference .contact-information>h2,.contact-reference .contact-detail>span { display:flex; align-items:center; gap:10px; }
.contact-reference .contact-label-icon { flex-shrink:0; color:#72d6f2; }
.contact-reference .contact-information>h2 .contact-label-icon { width:24px; height:24px; }
/* Contact rows with circular icons, matching the supplied reference. */
.contact-reference .contact-detail { position:relative; padding:22px 0 22px 58px; min-height:84px; }
.contact-reference .contact-detail>span { display:block; margin-bottom:7px; color:#a7c4d6; font-size:13px; }
.contact-reference .contact-detail>span .contact-label-icon { position:absolute; inset-inline-start:0; top:23px; width:40px; height:40px; padding:11px; box-sizing:border-box; border-radius:50%; background:#ffffff0b; color:#72d6f2; }
.contact-reference .contact-detail a { font-size:17px; line-height:1.6; }
.contact-reference .contact-information .contact-office { position:relative; padding-inline-start:58px; padding-bottom:24px; }
.contact-reference .contact-information .contact-office::before { content:""; position:absolute; inset-inline-start:0; top:2px; width:40px; height:40px; border-radius:50%; background-color:#ffffff0b; background-position:center; background-repeat:no-repeat; background-size:19px; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2372d6f2' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 21V3h14v18M3 21h18M9 21v-4h6v4M9 7h1m4 0h1m-6 4h1m4 0h1'/%3E%3C/svg%3E"); }
.contact-reference .contact-office p:first-of-type { color:#edf7ff; font-weight:600; margin-bottom:7px; }
.contact-reference .contact-email a { display:block; font-size:15px; line-height:1.9; overflow-wrap:anywhere; }
/* Sweeping light ribbons replace the previous dot and ring treatment. */
.contact-reference .contact-intro { background:radial-gradient(ellipse at 50% 115%,#138eb14d,transparent 58%),radial-gradient(ellipse at 5% 0,#244e7e40,transparent 48%),linear-gradient(125deg,#0b1d32,#113044 65%,#10283e); }
.contact-reference .contact-intro::before { inset:auto; width:150%; height:650px; left:-25%; bottom:-590px; border:1px solid #83dcef3b; border-radius:50%; background:linear-gradient(180deg,#5ccbe714,transparent 45%); background-image:none; background-size:auto; mask-image:none; transform:rotate(-9deg); box-shadow:0 -28px 0 0 #73cee908,0 -56px 0 0 #73cee906,0 -84px 0 0 #73cee904; }
.contact-reference .contact-intro::after { width:650px; height:650px; right:-380px; top:-460px; border:0; border-radius:50%; transform:none; background:radial-gradient(circle,#46bed533,transparent 65%); box-shadow:none; filter:blur(24px); }
/* Architectural diagonal light, with a quiet center for the headline. */
.contact-reference .contact-intro { background:radial-gradient(ellipse at 50% 90%,#17617b40,transparent 60%),linear-gradient(115deg,#091c30,#122e45 55%,#0c2237); }
.contact-reference .contact-intro::before { inset:0; width:auto; height:auto; border:0; border-radius:0; transform:none; box-shadow:none; background:linear-gradient(122deg,transparent 0 12%,#61c8e80a 12% 19%,transparent 19% 24%,#69cee514 24% 24.1%,transparent 24.1% 76%,#69cee514 76% 76.1%,#61c8e808 76.1% 84%,transparent 84%); }
.contact-reference .contact-intro::after { inset:0; width:auto; height:auto; border:0; border-radius:0; transform:none; filter:none; box-shadow:none; background:radial-gradient(ellipse at 0% 45%,#1a91b32e,transparent 35%),radial-gradient(ellipse at 100% 10%,#3873ae30,transparent 40%); }
