:root { --navy:#032b73; --cyan:#00a6ae; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; background:#f7fbff; }
body { margin:0; font-family:Arial, Helvetica, sans-serif; color:var(--navy); }
.site { position:relative; width:100%; max-width:1536px; margin:0 auto; background:white; overflow:hidden; box-shadow:0 0 40px rgba(0,43,115,.08); }
.design { display:block; width:100%; height:auto; }
.hotspot { position:absolute; top:1.4%; height:5.8%; border-radius:999px; z-index:5; color:transparent; font-size:0; }
.hotspot:focus-visible { outline:3px solid #00a6ae; outline-offset:2px; background:rgba(0,166,174,.12); }
.home { left:27.1%; width:6.5%; }.about { left:34.3%; width:8.1%; }.services { left:43.1%; width:8.6%; }
.network { left:52.2%; width:11.8%; }.career { left:65.1%; width:7.5%; }.contact { left:73.7%; width:9.2%; }.quote { left:84.8%; width:12.4%; }
.service-menu { position:absolute; z-index:15; top:7.1%; left:41.5%; width:23rem; max-width:45%; padding:.7rem; border-radius:16px; background:rgba(255,255,255,.98); box-shadow:0 16px 40px rgba(0,35,90,.2); opacity:0; visibility:hidden; transform:translateY(-8px); transition:.2s; display:grid; grid-template-columns:1fr 1fr; gap:.25rem; }
.service-wrap:hover .service-menu, .service-wrap:focus-within .service-menu { opacity:1; visibility:visible; transform:none; }
.service-menu a { color:#062b70; text-decoration:none; font-size:.8rem; font-weight:700; line-height:1.2; padding:.65rem .7rem; border-radius:9px; }
.service-menu a:hover, .service-menu a:focus { background:#e8f8f8; color:#008f97; }
.mobile-nav { display:none; }
.mobile-panel { display:none; }
@media (max-width:700px) {
  body { background:white; }
  .site { overflow:visible; }
  .design { margin-top:58px; }
  .hotspot, .service-menu { display:none; }
  .mobile-nav { display:flex; position:fixed; z-index:30; left:0; right:0; top:0; height:58px; align-items:center; justify-content:space-between; padding:0 16px; background:white; box-shadow:0 3px 15px rgba(0,35,90,.12); }
  .mobile-nav strong { letter-spacing:.18em; color:#052c71; }
  .mobile-nav button { border:1px solid #00a6ae; color:#007f87; background:white; border-radius:999px; padding:8px 13px; font-weight:700; }
  .mobile-panel.open { display:grid; position:fixed; z-index:29; left:0; right:0; top:58px; padding:12px 18px 20px; background:white; box-shadow:0 10px 25px rgba(0,35,90,.15); grid-template-columns:1fr 1fr; gap:4px; }
  .mobile-panel a { padding:10px; color:#052c71; text-decoration:none; font-weight:700; font-size:.86rem; border-radius:8px; }
  .mobile-panel a:hover { background:#e9f8f8; }
}
@media (min-width:1537px) { .site { border-radius:0 0 18px 18px; } }

.quote-form { position:absolute; z-index:9; top:7.7%; right:1.55%; width:32.6%; min-height:50.8%; padding:1.35% 1.9%; border-radius:16px; color:white; background:linear-gradient(145deg,#06255b,#001e51 65%,#032d70); }
.quote-form h1 { margin:0 0 .2rem; font-size:clamp(18px,2vw,31px); line-height:1; color:white; }
.quote-form > p { margin:.25rem 0 .7rem; font-size:clamp(9px,.85vw,14px); }
.quote-form label span { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
.quote-form input,.quote-form select,.quote-form textarea { width:100%; border:1px solid #d5deeb; border-radius:5px; background:white; color:#052a66; padding:clamp(7px,.72vw,12px); font:inherit; font-size:clamp(8px,.75vw,13px); }
.quote-form input,.quote-form select { height:clamp(31px,3vw,46px); }
.quote-form textarea { height:clamp(50px,6.6vw,102px); resize:vertical; }
.quote-form .form-grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(6px,.7vw,11px); }
.quote-form form > label { display:block; margin-top:clamp(6px,.7vw,11px); }
.quote-form fieldset { margin:clamp(7px,.8vw,13px) 0; padding:0; border:0; }
.quote-form legend { margin-bottom:.45rem; font-size:clamp(8px,.72vw,12px); }
.checks { display:grid; grid-template-columns:repeat(4,auto); gap:.35rem .7rem; }
.checks label { display:flex; align-items:center; gap:.25rem; white-space:nowrap; font-size:clamp(7px,.65vw,11px); }
.checks input { width:auto; height:auto; accent-color:#00b5b3; }
.quote-form button { width:100%; border:0; border-radius:12px; padding:clamp(8px,.8vw,13px); color:white; background:linear-gradient(90deg,#05a6a5,#00b5b3); font-size:clamp(9px,1vw,16px); font-weight:700; cursor:pointer; }
.quote-form button:hover { filter:brightness(1.08); }
.quote-form .privacy { font-size:clamp(7px,.65vw,11px); margin:.65rem 0 0; }
.form-status { min-height:1em; color:#8ff3e4; font-weight:700; }
.contact-details { position:absolute; z-index:8; top:45.2%; left:2.1%; width:60.7%; height:17.4%; padding:.6% .4%; background:#fff; color:#042b70; }
.contact-details > h1 { margin:0 0 .8%; color:#008f97; font-size:clamp(12px,1.15vw,19px); }
.detail-cards { display:grid; grid-template-columns:repeat(4,1fr); gap:1.2%; height:78%; }
.detail-cards article { display:flex; gap:7%; padding:9% 6%; border:1px solid #d9e4ee; border-radius:11px; background:white; }
.detail-icon { display:grid; flex:0 0 clamp(28px,3vw,46px); height:clamp(28px,3vw,46px); place-items:center; border-radius:50%; color:#008f97; background:#edf8f8; font-weight:700; }
.detail-cards h2 { margin:0 0 .5em; font-size:clamp(8px,.82vw,13px); }
.detail-cards a,.detail-cards p,.detail-cards address { color:#052b71; font-size:clamp(7px,.72vw,12px); line-height:1.45; font-style:normal; text-decoration:none; overflow-wrap:anywhere; }
.detail-cards a { font-weight:700; }.detail-cards a:hover { color:#009ea6; text-decoration:underline; }.detail-cards p { margin:.45em 0 0; }
@media (max-width:700px) {
  .contact-page .design { display:none; }
  .contact-page { padding:80px 16px 30px; min-height:100vh; background:linear-gradient(160deg,#eefaff,#fff 45%); }
  .contact-details { position:relative; inset:auto; width:100%; height:auto; max-width:560px; margin:0 auto 18px; padding:20px 0; background:transparent; }
  .contact-details > h1 { font-size:22px; }.detail-cards { grid-template-columns:1fr; }.detail-cards article { padding:15px; gap:14px; }
  .detail-cards h2 { font-size:13px; }.detail-cards a,.detail-cards p,.detail-cards address { font-size:13px; }
  .quote-form { position:relative; inset:auto; width:100%; max-width:560px; margin:auto; padding:24px 18px; border-radius:18px; }
  .quote-form h1 { font-size:30px; }
  .quote-form > p,.quote-form legend { font-size:13px; }
  .quote-form input,.quote-form select { height:44px; font-size:14px; }
  .quote-form textarea { height:110px; font-size:14px; }
  .checks { grid-template-columns:1fr 1fr; }
  .checks label,.quote-form .privacy { font-size:11px; white-space:normal; }
}
