
/* NatNet v12 — AI-enhanced smart website experience */
:root{
  --ai-glow:0 0 0 1px rgba(36,185,220,.18),0 18px 55px rgba(4,38,66,.2);
  --ai-panel:#071f35;
  --ai-panel-2:#0a3455;
}

/* Search control in the main header */
.smart-search-trigger{flex:0 0 44px;width:44px;height:44px;border:1px solid var(--line);border-radius:13px;background:#fff;color:var(--navy);display:grid;place-items:center;position:relative;transition:.2s ease;box-shadow:0 6px 20px rgba(8,47,79,.04)}
.smart-search-trigger:hover{border-color:rgba(18,148,198,.35);color:var(--blue);transform:translateY(-1px)}
.smart-search-trigger svg{width:20px;height:20px}
.smart-search-trigger .search-shortcut{position:absolute;right:-3px;top:-6px;background:var(--navy);color:#fff;font-size:.52rem;font-weight:800;line-height:1;padding:4px 5px;border-radius:6px;border:2px solid #fff}

/* AI-enhanced badge */
.ai-experience-chip{display:inline-flex;align-items:center;gap:9px;margin:0 0 25px;padding:9px 13px;border:1px solid rgba(126,220,242,.23);border-radius:999px;background:rgba(126,220,242,.08);color:#d8f6ff;font-size:.78rem;font-weight:800;letter-spacing:.02em;backdrop-filter:blur(10px)}
.ai-spark{width:23px;height:23px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#79e6ff,#24b9dc);color:#07314f;font-size:.8rem;box-shadow:0 0 24px rgba(36,185,220,.4);animation:aiPulse 2.8s ease-in-out infinite}
@keyframes aiPulse{0%,100%{transform:scale(1);box-shadow:0 0 0 0 rgba(36,185,220,.3)}50%{transform:scale(1.06);box-shadow:0 0 0 9px rgba(36,185,220,0)}}

/* Smart solution finder */
.smart-finder{position:relative;overflow:hidden;background:linear-gradient(180deg,#f6fbfe 0%,#eef7fb 100%)}
.smart-finder:before{content:"";position:absolute;left:-160px;top:-190px;width:430px;height:430px;border-radius:50%;background:radial-gradient(circle,rgba(36,185,220,.16),rgba(36,185,220,0) 68%);pointer-events:none}
.smart-finder-shell{position:relative;display:grid;grid-template-columns:minmax(0,.9fr) minmax(420px,1.1fr);gap:56px;align-items:center;padding:54px;border:1px solid rgba(18,148,198,.14);border-radius:30px;background:rgba(255,255,255,.78);box-shadow:var(--shadow-soft);backdrop-filter:blur(12px)}
.smart-finder-copy h2{max-width:650px}.smart-finder-copy p{color:var(--muted);max-width:650px}
.smart-finder-points{display:flex;flex-wrap:wrap;gap:9px;margin-top:24px}
.smart-finder-points span{display:inline-flex;align-items:center;gap:7px;padding:8px 11px;border:1px solid #d9eaf3;border-radius:999px;background:#fff;color:#35536a;font-size:.78rem;font-weight:800}
.smart-finder-points span:before{content:"✦";color:var(--blue);font-size:.72rem}
.smart-finder-card{background:linear-gradient(145deg,#072e4d,#0b456f);color:#fff;border-radius:25px;padding:28px;box-shadow:0 24px 60px rgba(6,47,79,.22);position:relative;overflow:hidden}
.smart-finder-card:before{content:"";position:absolute;right:-85px;top:-105px;width:240px;height:240px;border:42px solid rgba(126,220,242,.08);border-radius:50%}
.smart-finder-card>*{position:relative;z-index:1}
.finder-label{display:flex;align-items:center;gap:9px;font-size:.78rem;color:#94dff2;font-weight:850;text-transform:uppercase;letter-spacing:.09em;margin-bottom:17px}
.finder-label .orb{width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:#7edcf2;color:#072e4d}
.finder-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.finder-field{display:flex;flex-direction:column;gap:7px}.finder-field.full{grid-column:1/-1}
.finder-field label{font-size:.78rem;font-weight:800;color:#cfe5ef}
.finder-field select{width:100%;border:1px solid rgba(255,255,255,.18);border-radius:13px;background:rgba(255,255,255,.08);color:#fff;padding:12px 13px;outline:none;min-height:48px}
.finder-field select option{color:#152d42;background:#fff}
.finder-submit{width:100%;margin-top:3px}
.finder-result{margin-top:18px;padding:18px;border:1px solid rgba(126,220,242,.22);border-radius:16px;background:rgba(255,255,255,.08)}
.finder-result[hidden]{display:none}.finder-result .result-eyebrow{font-size:.68rem;text-transform:uppercase;letter-spacing:.09em;font-weight:900;color:#8ee6fb;margin-bottom:5px}.finder-result h3{font-size:1.18rem;margin-bottom:7px;color:#fff}.finder-result p{font-size:.87rem;line-height:1.55;color:#d4e6ef;margin-bottom:13px}.finder-result-actions{display:flex;flex-wrap:wrap;gap:9px}.finder-result-actions a{font-size:.78rem;font-weight:850;padding:9px 11px;border-radius:10px;background:#fff;color:#07314f}.finder-result-actions a.secondary{background:rgba(255,255,255,.09);color:#fff;border:1px solid rgba(255,255,255,.16)}

/* Floating AI advisor */
.ai-fab{position:fixed;right:24px;bottom:82px;z-index:78;display:flex;align-items:center;gap:10px;border:1px solid rgba(255,255,255,.17);border-radius:999px;padding:9px 15px 9px 9px;background:linear-gradient(135deg,#062f50,#0b5b87);color:#fff;box-shadow:0 16px 44px rgba(3,34,57,.28);font-weight:850;font-size:.84rem;transition:.25s ease}
.ai-fab:hover{transform:translateY(-3px);box-shadow:0 20px 52px rgba(3,34,57,.34)}
.ai-fab .ai-fab-orb{width:35px;height:35px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#83eaff,#23b9dc);color:#06304f;font-size:1rem;box-shadow:0 0 0 6px rgba(126,220,242,.08)}
.ai-backdrop{position:fixed;inset:0;z-index:79;background:rgba(2,20,34,.34);backdrop-filter:blur(3px);opacity:0;visibility:hidden;transition:.22s ease}
.ai-backdrop.open{opacity:1;visibility:visible}
.ai-drawer{position:fixed;right:18px;bottom:18px;z-index:80;width:min(430px,calc(100vw - 28px));height:min(680px,calc(100dvh - 36px));display:flex;flex-direction:column;border:1px solid rgba(126,220,242,.18);border-radius:24px;background:#fff;box-shadow:0 30px 90px rgba(1,26,44,.35);overflow:hidden;transform:translateY(24px) scale(.98);opacity:0;visibility:hidden;transition:.25s ease;transform-origin:bottom right}
.ai-drawer.open{transform:none;opacity:1;visibility:visible}
.ai-drawer-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 18px 16px;background:linear-gradient(135deg,var(--ai-panel),var(--ai-panel-2));color:#fff}
.ai-brand{display:flex;align-items:center;gap:11px}.ai-brand-orb{width:40px;height:40px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,#75e4ff,#28b8dc);color:#07304e;box-shadow:0 0 25px rgba(36,185,220,.22)}
.ai-brand strong{display:block;font-size:.98rem;line-height:1.1}.ai-brand span{display:block;font-size:.68rem;color:#b9d9e8;margin-top:4px;font-weight:700}
.ai-close{width:38px;height:38px;border:1px solid rgba(255,255,255,.14);border-radius:11px;background:rgba(255,255,255,.07);color:#fff;font-size:1.25rem;display:grid;place-items:center}
.ai-chat{flex:1;overflow-y:auto;padding:18px;background:linear-gradient(180deg,#f8fbfd,#f3f8fb);scroll-behavior:smooth}
.ai-message{display:flex;margin-bottom:12px}.ai-message.user{justify-content:flex-end}.ai-bubble{max-width:88%;padding:12px 14px;border-radius:15px;font-size:.86rem;line-height:1.55}
.ai-message.assistant .ai-bubble{background:#fff;border:1px solid #dde9f0;color:#2b465d;border-top-left-radius:5px;box-shadow:0 8px 24px rgba(8,47,79,.05)}
.ai-message.user .ai-bubble{background:var(--navy);color:#fff;border-top-right-radius:5px}
.ai-bubble strong{color:var(--navy)}.ai-message.user .ai-bubble strong{color:#fff}
.ai-result-links{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.ai-result-links a{display:inline-flex;padding:7px 9px;border-radius:9px;background:#edf7fb;color:#0b6e99;font-size:.75rem;font-weight:850}.ai-result-links a.enquire{background:#fff0f2;color:#c02d40}
.ai-quick{display:flex;gap:7px;padding:0 16px 11px;overflow-x:auto;background:#f3f8fb;scrollbar-width:none}.ai-quick::-webkit-scrollbar{display:none}
.ai-quick button{flex:0 0 auto;padding:8px 10px;border:1px solid #dce9f0;border-radius:999px;background:#fff;color:#35566e;font-size:.72rem;font-weight:800}
.ai-quick button:hover{border-color:#a8d9ea;color:#0d769f}
.ai-input-wrap{padding:12px;background:#fff;border-top:1px solid #e1ebf1}.ai-form{display:grid;grid-template-columns:1fr 46px;gap:8px}.ai-form input{min-width:0;border:1px solid #d7e5ed;border-radius:13px;padding:11px 13px;outline:none;background:#fbfdfe}.ai-form input:focus{border-color:#76cae8;box-shadow:0 0 0 3px rgba(18,148,198,.09)}.ai-send{border:0;border-radius:13px;background:var(--navy);color:#fff;display:grid;place-items:center}.ai-send svg{width:20px;height:20px}.ai-disclaimer{font-size:.63rem;line-height:1.45;color:#7d909f;margin:8px 3px 0}

/* Smart search */
.smart-search-overlay{position:fixed;inset:0;z-index:90;padding:9vh 20px 20px;display:flex;justify-content:center;align-items:flex-start;background:rgba(3,25,42,.55);backdrop-filter:blur(8px);opacity:0;visibility:hidden;transition:.2s ease}
.smart-search-overlay.open{opacity:1;visibility:visible}
.smart-search-panel{width:min(720px,100%);max-height:78vh;display:flex;flex-direction:column;background:#fff;border-radius:24px;box-shadow:0 32px 100px rgba(0,0,0,.35);overflow:hidden;transform:translateY(-12px);transition:.2s ease}.smart-search-overlay.open .smart-search-panel{transform:none}
.smart-search-head{display:grid;grid-template-columns:38px 1fr 38px;align-items:center;gap:8px;padding:13px 14px;border-bottom:1px solid #e3ecf1}.smart-search-head svg{width:21px;height:21px;color:#7390a4}.smart-search-input{border:0;outline:none;font-size:1.02rem;padding:7px 2px;color:var(--ink);min-width:0}.smart-search-close{border:0;background:#eef4f7;color:#49677c;width:35px;height:35px;border-radius:10px;font-size:1.1rem}.smart-search-hint{padding:10px 16px 0;font-size:.72rem;color:#8193a1}.smart-search-results{padding:10px;overflow:auto}.search-empty{padding:34px 20px;text-align:center;color:#718897;font-size:.9rem}.search-result{display:grid;grid-template-columns:42px 1fr auto;gap:12px;align-items:center;padding:12px;border-radius:14px}.search-result:hover,.search-result.active{background:#f2f8fb}.search-result-icon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:#eaf6fb;color:#0a789f;font-weight:900}.search-result strong{display:block;color:#173249;font-size:.9rem}.search-result p{font-size:.75rem;color:#718595;margin:3px 0 0;line-height:1.35}.search-result-type{font-size:.64rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em;color:#8aa0af}

/* Small smart callout on inner pages */
.smart-page-callout{display:flex;align-items:center;gap:11px;margin-top:22px;padding:11px 14px;border:1px solid rgba(126,220,242,.19);border-radius:14px;background:rgba(126,220,242,.07);max-width:max-content;color:#d9f6ff;font-size:.77rem;font-weight:800}.smart-page-callout button{border:0;background:none;color:#fff;text-decoration:underline;text-underline-offset:3px;font-weight:850;padding:0}

/* Contact smart-assist row */
.contact-smart-row{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 22px;padding:13px 14px;border:1px solid #dceaf1;border-radius:14px;background:#f6fbfd}.contact-smart-row span{font-size:.79rem;color:#587082;line-height:1.45}.contact-smart-row strong{color:#17364e}.contact-smart-row button{flex:0 0 auto;border:0;border-radius:10px;padding:9px 11px;background:#e7f5fb;color:#0c739a;font-size:.74rem;font-weight:850}

@media(max-width:1080px){.smart-finder-shell{grid-template-columns:1fr;gap:34px}.smart-finder-card{max-width:760px}}
@media(max-width:768px){
  .smart-search-trigger{flex-basis:42px;width:42px;height:42px}.smart-search-trigger .search-shortcut{display:none}
  .smart-finder-shell{padding:28px 22px;border-radius:22px}.finder-grid{grid-template-columns:1fr}.finder-field.full{grid-column:auto}
  .ai-fab{right:14px;bottom:70px;padding:8px}.ai-fab>span:last-child{display:none}.ai-fab .ai-fab-orb{width:38px;height:38px}
  .ai-drawer{right:8px;bottom:8px;width:calc(100vw - 16px);height:min(720px,calc(100dvh - 16px));border-radius:22px}
  .smart-search-overlay{padding:72px 10px 10px}.smart-search-panel{max-height:calc(100dvh - 88px);border-radius:20px}
  .smart-page-callout{max-width:100%}.contact-smart-row{align-items:flex-start;flex-direction:column}.contact-smart-row button{width:100%}
}
@media(max-width:480px){
  .smart-search-trigger{width:40px;height:40px;flex-basis:40px}.smart-finder-shell{padding:21px 17px}.smart-finder-card{padding:20px;border-radius:20px}.finder-result-actions{display:grid}.finder-result-actions a{text-align:center}
  .ai-drawer-head{padding:14px}.ai-chat{padding:14px}.ai-quick{padding-left:12px;padding-right:12px}.search-result{grid-template-columns:38px 1fr}.search-result-icon{width:38px;height:38px}.search-result-type{display:none}
}
@media(prefers-reduced-motion:reduce){.ai-spark{animation:none}.ai-fab,.ai-drawer,.smart-search-panel,.smart-search-overlay{transition:none}}

/* =========================================================
   Company overview display
   ========================================================= */
html { scroll-behavior: smooth; }
#overview { scroll-margin-top: 92px; }
.overview-section {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 88% 14%, rgba(14,165,233,.10), transparent 30%),
    radial-gradient(circle at 8% 92%, rgba(34,197,94,.07), transparent 28%),
    linear-gradient(180deg, #f8fbff 0%, #ffffff 100%);
}
.overview-head {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(280px, .9fr);
  gap: clamp(24px, 5vw, 72px);
  align-items: end;
  margin-bottom: clamp(30px, 5vw, 52px);
}
.overview-head h2 { margin: 8px 0 0; max-width: 760px; }
.overview-head > p { margin: 0; max-width: 620px; color: var(--muted, #5f6f7d); line-height: 1.78; }
.overview-display {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(280px, .75fr);
  gap: 22px;
  align-items: stretch;
}
.overview-dashboard {
  min-height: 520px;
  position: relative;
  border: 1px solid rgba(8,47,79,.10);
  border-radius: 28px;
  overflow: hidden;
  background:
    linear-gradient(rgba(255,255,255,.90), rgba(255,255,255,.90)),
    radial-gradient(circle at center, rgba(14,165,233,.15), transparent 42%);
  box-shadow: 0 24px 70px rgba(8,47,79,.10);
}
.overview-dashboard::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(8,47,79,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(8,47,79,.035) 1px, transparent 1px);
  background-size: 28px 28px;
  mask-image: linear-gradient(to bottom, rgba(0,0,0,.8), transparent 96%);
  pointer-events: none;
}
.overview-core {
  position: absolute;
  z-index: 4;
  left: 50%;
  top: 50%;
  width: 190px;
  aspect-ratio: 1;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 24px;
  color: #fff;
  background: linear-gradient(145deg, #082f4f, #0b527d 64%, #0ea5e9);
  box-shadow: 0 22px 50px rgba(8,47,79,.24), inset 0 0 0 1px rgba(255,255,255,.14);
}
.overview-core-mark {
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  border-radius: 15px;
  margin-bottom: 9px;
  background: rgba(255,255,255,.14);
  border: 1px solid rgba(255,255,255,.2);
  font-weight: 900;
  font-size: 1.35rem;
}
.overview-core strong { font-size: 1.28rem; letter-spacing: -.02em; }
.overview-core small { margin-top: 4px; color: rgba(255,255,255,.72); line-height: 1.35; }
.overview-live { display:flex; align-items:center; gap:6px; margin-top:12px; font-size:.68rem; color:#d9f5ff; }
.overview-live i { width:7px; height:7px; border-radius:50%; background:#5eead4; box-shadow:0 0 0 5px rgba(94,234,212,.12); }
.overview-ring { position:absolute; left:50%; top:50%; border:1px dashed rgba(14,116,144,.22); border-radius:50%; transform:translate(-50%,-50%); pointer-events:none; }
.ring-one { width: 330px; height: 330px; }
.ring-two { width: 470px; height: 470px; opacity:.65; }
.overview-node {
  position: absolute;
  z-index: 3;
  width: 180px;
  min-height: 112px;
  padding: 14px 15px;
  border-radius: 18px;
  background: rgba(255,255,255,.94);
  border: 1px solid rgba(8,47,79,.10);
  box-shadow: 0 12px 28px rgba(8,47,79,.09);
  color: #082f4f;
  text-decoration: none;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.overview-node:hover { transform: translateY(-4px); box-shadow:0 18px 34px rgba(8,47,79,.15); border-color:rgba(14,165,233,.35); }
.overview-node span { display:inline-grid; place-items:center; min-width:28px; height:24px; padding:0 7px; border-radius:999px; background:#eaf7ff; color:#0874a8; font-size:.68rem; font-weight:800; }
.overview-node strong { display:block; margin-top:8px; font-size:.92rem; }
.overview-node small { display:block; margin-top:4px; color:#6b7b88; font-size:.72rem; line-height:1.35; }
.node-network { left:5%; top:8%; }
.node-data { left:50%; top:5%; transform:translateX(-50%); }
.node-data:hover { transform:translateX(-50%) translateY(-4px); }
.node-security { right:5%; top:8%; }
.node-digital { left:5%; bottom:8%; }
.node-engineering { left:50%; bottom:5%; transform:translateX(-50%); }
.node-engineering:hover { transform:translateX(-50%) translateY(-4px); }
.node-water { right:5%; bottom:8%; }
.overview-facts {
  display: grid;
  gap: 12px;
  padding: 20px;
  border-radius: 28px;
  color: #fff;
  background: linear-gradient(155deg, #082f4f 0%, #0a3c60 58%, #0b527d 100%);
  box-shadow: 0 24px 70px rgba(8,47,79,.17);
}
.overview-fact { padding: 17px 18px; border-radius: 18px; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.09); }
.overview-fact span { display:block; color:#8fe1ff; text-transform:uppercase; letter-spacing:.1em; font-size:.65rem; font-weight:800; }
.overview-fact strong { display:block; margin-top:4px; font-size:1.16rem; }
.overview-fact small { display:block; margin-top:5px; color:rgba(255,255,255,.68); line-height:1.45; }
.overview-actions { display:flex; gap:10px; flex-wrap:wrap; padding-top:4px; }
.overview-actions .btn { flex:1 1 140px; justify-content:center; }
.overview-facts .btn-outline { border-color:rgba(255,255,255,.35); color:#fff; background:transparent; }
.overview-facts .btn-outline:hover { background:rgba(255,255,255,.10); }

@media (max-width: 980px) {
  .overview-head, .overview-display { grid-template-columns: 1fr; }
  .overview-dashboard { min-height: 500px; }
  .overview-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .overview-actions { grid-column: 1 / -1; }
}
@media (max-width: 720px) {
  #overview { scroll-margin-top: 76px; }
  .overview-head { gap: 14px; }
  .overview-display { gap: 16px; }
  .overview-dashboard { min-height: auto; padding: 18px; display:grid; grid-template-columns:1fr 1fr; gap:12px; }
  .overview-dashboard::before, .overview-ring { display:none; }
  .overview-core { position:relative; left:auto; top:auto; transform:none; width:auto; aspect-ratio:auto; min-height:180px; border-radius:22px; grid-column:1 / -1; }
  .overview-node, .node-network, .node-data, .node-security, .node-digital, .node-engineering, .node-water {
    position:relative; inset:auto; transform:none; width:auto; min-height:116px;
  }
  .overview-node:hover, .node-data:hover, .node-engineering:hover { transform:translateY(-2px); }
  .overview-facts { grid-template-columns:1fr; padding:14px; }
  .overview-actions { grid-column:auto; }
}
@media (max-width: 430px) {
  .overview-dashboard { grid-template-columns:1fr; }
  .overview-core { grid-column:auto; min-height:166px; }
  .overview-node { min-height:auto; }
}
