diff --git a/gatsby-config.js b/gatsby-config.js
index 818b657d1e24889428d9e8e585d3548084165757..67b30ad4d6c6e498947bf0a758e76f04336432a6 100644
--- a/gatsby-config.js
+++ b/gatsby-config.js
@@ -46,6 +46,14 @@ module.exports = {
},
},
`gatsby-plugin-force-trailing-slashes`,
+ {
+ resolve: `gatsby-plugin-google-gtag`,
+ options: {
+ trackingIds: [
+ 'G-JKZWCK5K3P', // Google Analytics / GA
+ ],
+ },
+ },
// this (optional) plugin enables Progressive Web App + Offline functionality
// To learn more, visit: https://gatsby.dev/offline
// `gatsby-plugin-offline`,
diff --git a/package-lock.json b/package-lock.json
index 6eeaeba87f94d2e5cbbbb814225f3cccb8fc52de..6bad872c1f1d9289e03a244f6031bf9085fdbd28 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -8585,6 +8585,15 @@
"webpack-assets-manifest": "^3.1.1"
}
},
+ "gatsby-plugin-google-gtag": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/gatsby-plugin-google-gtag/-/gatsby-plugin-google-gtag-3.2.0.tgz",
+ "integrity": "sha512-NmKv9bRkdxgmkGUIpK1Tk0sgnggU6WDY+oH+nQG1+gs1yJqW6g1d3zzFKf/m0c5A/44Eqb7f+6h8PTjIL/XoVw==",
+ "requires": {
+ "@babel/runtime": "^7.12.5",
+ "minimatch": "^3.0.4"
+ }
+ },
"gatsby-plugin-manifest": {
"version": "2.12.1",
"resolved": "https://registry.npmjs.org/gatsby-plugin-manifest/-/gatsby-plugin-manifest-2.12.1.tgz",
diff --git a/package.json b/package.json
index 0e3bcc35a40557b704d6847c05b979145a067da1..1099613793e8ecff6ac3182e11f87f86378d49e2 100644
--- a/package.json
+++ b/package.json
@@ -9,6 +9,7 @@
"gatsby-image": "^2.11.0",
"gatsby-plugin-force-trailing-slashes": "^1.0.5",
"gatsby-plugin-gatsby-cloud": "^1.0.2",
+ "gatsby-plugin-google-gtag": "^3.2.0",
"gatsby-plugin-manifest": "^2.12.1",
"gatsby-plugin-offline": "^3.10.2",
"gatsby-plugin-react-helmet": "^3.10.0",
diff --git a/src/components/Classification.js b/src/components/Classification.js
index b4a066b32a10cb25b11bd45d3cd8e8a6874c3b50..4d1b57c968cc878a0d018d379fe0eea30b3ba27f 100644
--- a/src/components/Classification.js
+++ b/src/components/Classification.js
@@ -2,6 +2,16 @@ import React from 'react';
import PropTypes from 'prop-types';
import { Text, Box } from 'grommet';
+const levelLabels = {
+ U: 'Controlled Unclassified Information',
+ S: 'Secret',
+ 'S-SAR': 'Secret//Special Access Required',
+ 'S-SCI': 'Secret//Sensitive Compartmented Information',
+ TS: 'Top Secret',
+ 'TS-SAR': 'Top Secret//Special Access Required',
+ 'TS-SCI': 'Top Secret//Sensitive Compartmented Information',
+};
+
const LevelNode = ({ levels, value, children }) => {
const matchingLevel = levels?.includes(value);
const nodeStyles = {
@@ -22,7 +32,7 @@ const LevelNode = ({ levels, value, children }) => {
};
return (
-
+
{children}
@@ -30,51 +40,55 @@ const LevelNode = ({ levels, value, children }) => {
);
};
-const Classification = ({ levels }) => (
-
+const Classification = ({ levels, serviceName }) => {
+ const supportedLevels = levels.map((item) => levelLabels[item]).join(', ');
+ return (
-
- CUI
-
-
- S
-
-
- S//SAR
-
-
- S//SCI
-
-
- TS
-
-
- TS//SAR
-
-
- TS//SCI
-
+
+
+ CUI
+
+
+ S
+
+
+ S//SAR
+
+
+ S//SCI
+
+
+ TS
+
+
+ TS//SAR
+
+
+ TS//SCI
+
+
-
-);
+ );
+};
Classification.propTypes = {
level: PropTypes.arrayOf([
@@ -86,6 +100,7 @@ Classification.propTypes = {
'TS-SAR',
'TS-SCI',
]),
+ serviceName: PropTypes.string,
};
export default Classification;
diff --git a/src/components/ContactForm.js b/src/components/ContactForm.js
index 8a54f5121b690843c0b95f6b200876d36d591229..6c85a2b5d85dff7d6c3989f0115459ca0e713a3b 100644
--- a/src/components/ContactForm.js
+++ b/src/components/ContactForm.js
@@ -144,6 +144,7 @@ const ContactForm = ({ onClose }) => {
diff --git a/src/components/DownHex.js b/src/components/DownHex.js
index b3d768c43328f8c79bbb340a6b95a289673e8b3e..b6956968faa52076d61eb5ab81c25d72ff31dc26 100644
--- a/src/components/DownHex.js
+++ b/src/components/DownHex.js
@@ -17,6 +17,7 @@ const DownHex = () => (
align="center"
justify="center"
style={{ position: 'relative', overflow: 'hidden' }}
+ aria-hidden="true"
>
{
pad="medium"
gap="medium"
>
-
+ We could use your help!
Send us feedback on this website or, better,
@@ -36,10 +40,12 @@ const FeedbackFooter = () => {
-
+
diff --git a/src/components/FeedbackForm.js b/src/components/FeedbackForm.js
index e2f3ea607a356a551180cfde9ca535e66714d4ec..e1741d1ab5b90f16ec9353aeb3af069399cbc46a 100644
--- a/src/components/FeedbackForm.js
+++ b/src/components/FeedbackForm.js
@@ -136,6 +136,7 @@ const FeedbackForm = ({ onClose }) => {
diff --git a/src/components/app/Footer.js b/src/components/app/Footer.js
index 249f4bb3105e840498bcf52ca12e1917d442f931..cd9375b226eccd8f8c209d28a98cdd74a0aca580 100644
--- a/src/components/app/Footer.js
+++ b/src/components/app/Footer.js
@@ -18,6 +18,7 @@ const Footer = () => {
justify="between"
direction={isMobile ? 'column' : 'row'}
gap="large"
+ aria-hidden="true"
>
{
gap="medium"
align="center"
>
-
+
diff --git a/src/components/app/Header.js b/src/components/app/Header.js
index a6bc706c56f739565ad7927a4222ef3051802afd..400f3c72152d5dcb202bc9274ce397696840e205 100644
--- a/src/components/app/Header.js
+++ b/src/components/app/Header.js
@@ -1,7 +1,14 @@
import React, { useContext } from 'react';
import PropTypes from 'prop-types';
import { Link } from 'gatsby';
-import { Box, Text, Header as GHeader, ResponsiveContext } from 'grommet';
+import {
+ Box,
+ Text,
+ Header as GHeader,
+ ResponsiveContext,
+ SkipLinks,
+ SkipLink,
+} from 'grommet';
import styled from 'styled-components';
import { RenderPropSticky as Sticky } from 'react-sticky-el';
import { Container, Column } from '../layout';
@@ -30,6 +37,15 @@ const StyledHeader = styled(GHeader)`
: theme.custom.header.height};
`;
+const skipLinkList = [
+ ,
+];
const Header = ({ transparent }) => {
const size = useContext(ResponsiveContext);
const isMobile = ['xsmall', 'small'].includes(size);
@@ -59,6 +75,8 @@ const Header = ({ transparent }) => {
display: 'flex',
flexDirection: 'row',
}}
+ aria-label="Link to homepage"
+ tabIndex={2}
>
{
+
diff --git a/src/components/app/Nav.js b/src/components/app/Nav.js
index ea4ee82f95b631b01ed89b1937879c66c551987d..e1f7bd7437f0926b0fbde8da9c650f80a3acb91c 100644
--- a/src/components/app/Nav.js
+++ b/src/components/app/Nav.js
@@ -25,7 +25,13 @@ const Nav = ({ sticky }) => {
return (
<>
- {isMobile && } onClick={handleToggleMenu} />}
+ {isMobile && (
+ }
+ onClick={handleToggleMenu}
+ a11yTitle="Primary navigation menu"
+ />
+ )}
{!isMobile && (
{
onClick={handleToggleMenu}
color={menuOpen ? 'black' : 'white'}
style={{ textTransform: 'uppercase' }}
+ aria-expanded={menuOpen ? true : false}
+ tabIndex={0}
+ a11yTitle="available services"
>
(
{label}
{' '}
-
+
diff --git a/src/components/core/SecondaryButton.js b/src/components/core/SecondaryButton.js
index 2fb2b1044d152fcbcc93b286e90e215927fee102..4cbcb21f837f82df43afbe665c7fea9ada49ae2d 100644
--- a/src/components/core/SecondaryButton.js
+++ b/src/components/core/SecondaryButton.js
@@ -32,7 +32,7 @@ const SecondaryButton = ({ label, ...rest }) => (
{label}
{' '}
-
+
diff --git a/src/components/hero/Hero.js b/src/components/hero/Hero.js
index b129e8c51770a851ea3b5aa7e4ea4d0946a7883a..50ff05bf2b8b725e2c7fd6ecf3effca03bfbee14 100644
--- a/src/components/hero/Hero.js
+++ b/src/components/hero/Hero.js
@@ -1,8 +1,15 @@
-import React, { useState } from 'react';
+import React, { useState, useContext } from 'react';
import { useStaticQuery, graphql } from 'gatsby';
import Img from 'gatsby-image';
-import { Box, Heading, Text, ThemeContext } from 'grommet';
-import { FormPrevious } from 'grommet-icons';
+import {
+ Box,
+ Heading,
+ Text,
+ Button,
+ ThemeContext,
+ ResponsiveContext,
+} from 'grommet';
+import { FormPrevious, StatusGoodSmall } from 'grommet-icons';
import DownHex from '../DownHex';
import { Container, Column } from '../layout';
import { PrimaryButton } from '../core';
@@ -21,40 +28,21 @@ const SlideImage = ({ image }) => (
);
-const Slide = ({ title, subtitle, core, cta, slug, logo }) => {
- const thinFont = {
- level: {
- 1: {
- font: { weight: '300' },
- small: { size: '100px', height: '100px' },
- medium: { size: '100px', height: '100px' },
- large: { size: '100px', height: '100px' },
- xlarge: { size: '100px', height: '100px' },
- },
- },
+const Slide = ({ title, subtitle, core, cta, slug, logo, isMobile, size }) => {
+ const headingSizes = {
+ xsmall: { fontSize: '40px', lineHeight: '40px' },
+ small: { fontSize: '40px', lineHeight: '40px' },
+ medium: { fontSize: '60px', lineHeight: '60px', maxWidth: '600px' },
+ large: { fontSize: '80px', lineHeight: '80px' },
+ xlarge: { fontSize: '80px', lineHeight: '80px' },
};
- const heavyFont = {
- level: {
- 1: {
- small: { size: '80px', height: '80px' },
- medium: { size: '80px', height: '80px' },
- large: { size: '80px', height: '80px' },
- xlarge: { size: '80px', height: '80px' },
- },
- },
- };
-
- const headingTheme = title === 'Summit' ? thinFont : heavyFont;
-
return (
{core && (
@@ -83,13 +71,21 @@ const Slide = ({ title, subtitle, core, cta, slug, logo }) => {
)}
{!logo && (
-
- {title}
-
+
+ {title}
+
)}
{logo && (
-
-
+
+
)}
{subtitle && (
@@ -104,7 +100,12 @@ const Slide = ({ title, subtitle, core, cta, slug, logo }) => {
{cta && (
-
+
)}
@@ -112,6 +113,86 @@ const Slide = ({ title, subtitle, core, cta, slug, logo }) => {
);
};
+const HeroNav = ({ nodes, index, onSelect }) => (
+
+ {nodes.map((node, i) => (
+ onSelect(i)}
+ style={{ position: 'relative' }}
+ role="button"
+ >
+
+
+
+ {index !== i && }
+ {node.thumblogo && (
+
+ )}
+ {!node.thumblogo && (
+
+ {node.name}
+
+ )}
+
+
+ ))}
+
+);
+
+const MobileHeroNav = ({ nodes, index, onSelect }) => (
+
+ {nodes.map((node, i) => (
+
+ }
+ a11yTitle={`Slide ${i + 1}: ${node.name}`}
+ onClick={() => onSelect(i)}
+ />
+ ))}
+
+);
+
const Hero = () => {
const {
allHeroYaml: { nodes },
@@ -159,6 +240,10 @@ const Hero = () => {
}
`);
+ const size = useContext(ResponsiveContext);
+
+ const isMobile = ['xsmall', 'small'].includes(size);
+
const [index, setIndex] = useState(0);
const handleSetSlide = (i) => {
@@ -171,65 +256,24 @@ const Hero = () => {
style={{ position: 'relative', minHeight: '500px' }}
background="brand"
>
-
-
+
+
{nodes
.filter((node) => node.index === index)
.map((node) => (
-
+
))}
-
-
- {nodes.map((node, i) => (
- handleSetSlide(i)}
- style={{ position: 'relative' }}
- >
-
-
-
- {index !== i && }
- {node.thumblogo && (
-
- )}
- {!node.thumblogo && (
-
- {node.name}
-
- )}
-
-
- ))}
-
+ {!isMobile && (
+
+ )}
+ {isMobile && (
+
+ )}
);
diff --git a/src/components/layout/ContentContainer.js b/src/components/layout/ContentContainer.js
new file mode 100644
index 0000000000000000000000000000000000000000..4668d673357ef079bfa722035fe2344d46a8f3a1
--- /dev/null
+++ b/src/components/layout/ContentContainer.js
@@ -0,0 +1,8 @@
+import React from 'react';
+import Container from './Container';
+
+const ContentContainer = (props) => {
+ return ;
+};
+
+export default ContentContainer;
diff --git a/src/components/layout/index.js b/src/components/layout/index.js
index 4219b394a1b475a5e3fcde2e1e6d86c355ec508e..56b22f6ce24fa88054d061ea033796c9334b4fe2 100644
--- a/src/components/layout/index.js
+++ b/src/components/layout/index.js
@@ -1,2 +1,3 @@
export { default as Container } from './Container';
export { default as Column } from './Column';
+export { default as ContentContainer } from './ContentContainer';
diff --git a/src/components/mega-menu/MegaMobileMenu.js b/src/components/mega-menu/MegaMobileMenu.js
index 84e7a8514be4b7dd3a0dd0ebc678511ca1725303..3b2991e4ac41f5b9a6048cf23d879b472f7c1afe 100644
--- a/src/components/mega-menu/MegaMobileMenu.js
+++ b/src/components/mega-menu/MegaMobileMenu.js
@@ -45,7 +45,7 @@ const MenuItem = ({ name, to, onNavigate }) => {
) : (
-
- } onClick={onClose} />
+ } onClick={onClose} a11yTitle="close menu" />
diff --git a/src/components/pages/home/OfferAccordion.js b/src/components/pages/home/OfferAccordion.js
index 680b0c321c88f26737e1220e0cce88a1e9481967..6599b0cf6eca5812a33a22609694536dd988cb94 100644
--- a/src/components/pages/home/OfferAccordion.js
+++ b/src/components/pages/home/OfferAccordion.js
@@ -20,6 +20,7 @@ const OfferHeader = ({ title, icon, description, active, isMobile }) => (
fill
align="center"
justify="between"
+ a11yTitle={title}
>
{!isMobile && {icon}}
diff --git a/src/components/pages/home/Solutions.js b/src/components/pages/home/Solutions.js
index c71cc3c0ca3c4c63b4f602a6e99f4e304c16e0c0..094a6ce0ff5b58baaa84f3de111166054c6eb1d5 100644
--- a/src/components/pages/home/Solutions.js
+++ b/src/components/pages/home/Solutions.js
@@ -24,7 +24,12 @@ const SolutionGroup = ({ node, basis, isMobile }) => (
))}
- Learn More
+
+ Learn More
+
);
diff --git a/src/components/pages/service-category/ServiceList.js b/src/components/pages/service-category/ServiceList.js
index e9251a8a8ef5bd28c8a1462fcea269f6a891f9d7..954c6b4411d9121ad61b1b40d4ee8146ffafe18f 100644
--- a/src/components/pages/service-category/ServiceList.js
+++ b/src/components/pages/service-category/ServiceList.js
@@ -31,13 +31,21 @@ const listQuery = graphql`
const ServiceItem = ({ node, pad }) => (
{node.frontmatter.title}
-
+
{/* Undo this "flex" if we don't want learn more to line up */}
{node.frontmatter.excerpt || node.excerpt}
- Learn More
+
+ Learn More
+
);
@@ -63,7 +71,12 @@ const ServiceList = ({ categories }) => {
const isMobile = ['xsmall', 'small'].includes(size);
return (
-
+
{catGroup.map((group, i) => (
{categories.length > 1 && (
diff --git a/src/components/pages/solution-detail/SolutionList.js b/src/components/pages/solution-detail/SolutionList.js
index 4cfa868d811e232c2344582985495a0ecdd6cc80..e0e67a3644d2bb7e32e2f661e09ba8df137acfd3 100644
--- a/src/components/pages/solution-detail/SolutionList.js
+++ b/src/components/pages/solution-detail/SolutionList.js
@@ -41,14 +41,22 @@ const ServiceItem = ({ node, pad }) => (
))}
{node.frontmatter.levels && (
-
+
)}
{/* Undo this "flex" if we don't want learn more to line up */}
{node.frontmatter.excerpt || node.excerpt}
{node.frontmatter.slug && (
- Learn More
+
+ Learn More
+
)}
);
diff --git a/src/content/other-programs/eitaas.md b/src/content/other-programs/eitaas.md
index 908c55cc29e9a6e59a6f0507ece4272d14088ad7..4b5ae543d618df2a9e943d2c65701635e7d1220d 100644
--- a/src/content/other-programs/eitaas.md
+++ b/src/content/other-programs/eitaas.md
@@ -17,13 +17,14 @@ These services are comprised of the hardware, software, network, and scheduling
EITaaS EUS connects to existing messaging services (like CHES Teams) while providing new devices supported by overall IT Service Management (ITSM).
###Voice/VoIP
-Voice/VoIP is a capability that enables and allows users to communicate over IP Telephony, providing a secure and reliable voice network that enables access to DoD classified and unclassified data. Currently, VOIP implementation is only approved at Offutt AFB.
+Voice/VoIP is a capability that enables and allows users to communicate over IP Telephony, providing a secure and reliable voice network that enables access to DoD classified and unclassified data. Currently, VoIP implementation is only approved at Offutt AFB.
###Network-as-a-Service (NaaS) – WAN
A geographically distributed private telecommunications network that interconnects multiple local area networks (LANs). This includes connections into Microsoft’s Azure for Government (MAG)/Office 365 Government Community Cloud, third-party cloud services, the internet and back into legacy Air Force and military networks.
###Network-as-a-Service (NaaS) – BAN
-Base Area Network (BAN) is a commercially designed network that is optimized, secure and robust, and contributes to an end-state that enables the concept of the ‘Mobile Airman.’ BAN is both wired and wireless and comprises of the following offerings:
+Base Area Network (BAN) is a commercially designed network that is optimized, secure and robust, and contributes to an end-state that enables the concept of the "Mobile Airman." BAN is both wired and wireless and comprises of the following offerings:
+
- Inside Plant/Outside Plant: Inside Plant is defined as network transport (copper and fiber) within a building; Outside Plant is defined as network transportation (copper and fiber) outside a building (e.g. buried or aerial cable). A fully integrated access to BAN services for devices will provide a seamless UX.
- Wireless: Fully integrated wireless access to BAN services for wireless-enabled devices (including MFD connectivity) to provide a seamless user experience regardless of how the device is connected.
- Wired: Secure wired access to the commercial internet.
diff --git a/src/content/service-detail/af7.md b/src/content/service-detail/af7.md
index e8ccfbb50464b8705e52c7f44790315f5038ed13..d70c5b8ca7dd43fb4ce195cc24ac5cd0e57e22ce 100644
--- a/src/content/service-detail/af7.md
+++ b/src/content/service-detail/af7.md
@@ -13,7 +13,7 @@ share: '../../images/share/ogimage-communications.png'
updated: March 23, 2021 at 2:54:52 PM EDT
---
-AF7 system is a network of geographically dispersed user video teleconferencing (VTC) sites connected to two mission support centers and operated at three security levels cleared for special access required (SAR) VTCs: Secret//SAR Level 3, Top Secret//SAR Level 4, and Top Secret//SAR-SCI Level 5.
+AF7 system is a network of geographically dispersed user video teleconferencing (VTC) sites operated at three security levels cleared for special access required (SAR) VTCs: Secret//SAR Level 3, Top Secret//SAR Level 4, and Top Secret//SAR-SCI Level 5.
## Benefits & Features
diff --git a/src/content/service-detail/atom.md b/src/content/service-detail/atom.md
deleted file mode 100644
index 1990d529c7791f554cc687069dfbc72f106fe3ff..0000000000000000000000000000000000000000
--- a/src/content/service-detail/atom.md
+++ /dev/null
@@ -1,23 +0,0 @@
----
-slug: '/services/atom/'
-title: 'ATOM'
-shortTitle: 'ATOM'
-categories:
- - Compute & Store
-levels:
- - S-SAR
- - TS-SAR
- - TS-SCI
-excerpt: 'A government owned/government operated hardware solution that provides a basic compute and store capability in a PL-3 environment.'
-share: '../../images/share/ogimage-compute_and_store.png'
-updated: April 1
----
-ATOM is a government owned/government operated hardware solution that provides a basic compute and store capability in a PL-3 environment.
-
-This infrastructure-as-a-service (IaaS) model allows ATOM to host virtualized systems and field services supporting the USAF and DoD. ATOM supports both Level 3 and Level 4/5 production mission systems.
-
-### Benefits & Features
-
-- BYOAD
-- Data Storage
-- Management Console
\ No newline at end of file
diff --git a/src/content/service-detail/cloud-one.md b/src/content/service-detail/cloud-one.md
index 499ed28af17fd67d90e12151131b7e74f0b0cf3b..985c0f324d2106499b7b8d473d53224d2652fcb4 100644
--- a/src/content/service-detail/cloud-one.md
+++ b/src/content/service-detail/cloud-one.md
@@ -27,7 +27,7 @@ Cloud One provides the migration service to quickly and cost effectively transit
### Data Transport
Access to data is one of the driving factors for cloud adoption. Cloud One provides secure, performative data transport capabilities to access clouds, and then keeps data flowing between systems in the cloud(s) and on-premise.
-## Benefits and Features
+## Benefits & Features
- **Common Computing Environment** – We provide the guardrails to the cloud in a standard manner so you can focus on your mission.
- **Single, Federated, MFA Security Tier** – There is one login across all logins with one user that all management applications leverage, no secondary logins, and non-elevated machine accounts. Fully audited for all management activities.
diff --git a/src/content/service-detail/victory.md b/src/content/service-detail/cv2.md
similarity index 54%
rename from src/content/service-detail/victory.md
rename to src/content/service-detail/cv2.md
index 0657e3df142c6aa8815f465e347009f42724680a..61ddb43f1a8d38da8f91bd14629a2d703538f628 100644
--- a/src/content/service-detail/victory.md
+++ b/src/content/service-detail/cv2.md
@@ -1,6 +1,6 @@
---
-slug: '/services/victory/'
-title: 'Victory'
+slug: '/services/cv2/'
+title: 'CV2'
categories:
- Networking & Connectivity
- Global Connectivity / WAN
@@ -9,11 +9,11 @@ levels:
- TS
- TS-SAR
- TS-SCI
-excerpt: 'Victory is a Special Access Program (SAP), Microsoft Windows-based, Wide Area Network hosted at Protection Level 3 (PL-3).'
+excerpt: 'CV2 is a Special Access Program (SAP), Microsoft Windows-based, Wide Area Network hosted at three security levels: Secret//SAR Level 3, Top Secret//SAR Level 4, and Top Secret//SCI//SAR Level 5.'
share: '../../images/share/ogimage-networking_and_connectivity.png'
updated: March 23, 2021 at 2:54:52 PM EDT
---
-Victory is a Special Access Program (SAP), Microsoft Windows-based, Wide Area Network hosted at Protection Level 3 (PL-3).
+CV2 is a Special Access Program (SAP), Microsoft Windows-based, Wide Area Network hosted at three security levels: Secret//SAR Level 3, Top Secret//SAR Level 4, and Top Secret//SCI//SAR Level 5.
There are three distinct and separate systems with one at the S//SAR and the other at the TS//SAR//SCI level. The system is managed by the MSC and all hardware (desktop, switches, routers, servers, etc) are under a strict configuration management policy centrally implemented and enforced.
diff --git a/src/content/service-detail/enterprise-virtual-environment-eve.md b/src/content/service-detail/enterprise-virtual-environment-eve.md
new file mode 100644
index 0000000000000000000000000000000000000000..a6f30a46dabbd3443eadb874f17dc09559ff5b3f
--- /dev/null
+++ b/src/content/service-detail/enterprise-virtual-environment-eve.md
@@ -0,0 +1,23 @@
+---
+slug: '/services/enterprise-virtual-environment/'
+title: 'Enterprise Virtual Environment (EVE)'
+shortTitle: 'EVE'
+categories:
+ - Compute & Store
+levels:
+ - S-SAR
+ - TS-SAR
+ - TS-SCI
+excerpt: 'A government owned/government operated hardware solution that provides a basic compute and store capability in a PL-3 environment.'
+share: '../../images/share/ogimage-compute_and_store.png'
+updated: April 1
+---
+EVE is a government owned/government operated hardware solution that provides a basic compute and store capability in a PL-3 environment.
+
+This infrastructure-as-a-service (IaaS) model allows EVE to host virtualized systems and field services supporting the USAF and DoD. EVE supports both Level 3 and Level 4/5 production mission systems.
+
+### Benefits & Features
+
+- BYOAD
+- Data Storage
+- Management Console
\ No newline at end of file
diff --git a/src/content/service-detail/fences.md b/src/content/service-detail/fences.md
index b9ebe19d3708fec20ace715669e20ebceeed29b1..ca8394b77bcde0d65dd8889bdd542dbbd08a2b13 100644
--- a/src/content/service-detail/fences.md
+++ b/src/content/service-detail/fences.md
@@ -12,7 +12,7 @@ levels:
- TS-SCI
excerpt: 'FENCES is the only SAP-compliant enterprise cloud solution for the DoD at independent levels of security.'
share: '../../images/share/ogimage-compute_and_store.png'
-updated: April 6
+updated: April 8
---
FENCES is the only SAP-compliant enterprise cloud solution for the DoD at independent levels of security.
@@ -20,7 +20,7 @@ FENCES is the only SAP-compliant enterprise cloud solution for the DoD at indepe
FENCES provides PL-2 workload templates for SAP customers that easily provide virtual desktops, DevSecOps, modeling & simulation, edge computing, and data backup capabilities. These workload templates are available across every security level to simplify development and migration of mission applications for SAP data.
## Benefits and Features
-- IL5 to TS/SCI platform accredited for ALL DoD environments
+- IL-5 to TS/SCI platform accredited for ALL DoD environments
- AWS Workspaces IL-5 and TS/SAR for Modeling and Sim
- Parity in environments allows for replication to higher security levels
-[PlatformOne DevSecOps](/services/platform-one/) pipeline integration and tools
diff --git a/src/content/service-detail/misty-sierra.md b/src/content/service-detail/iss.md
similarity index 58%
rename from src/content/service-detail/misty-sierra.md
rename to src/content/service-detail/iss.md
index cae3f5c7b62d0ec611270e9ff1f2797a89a86c50..a88472bb80706a6fe530e241a355c88babd850a9 100644
--- a/src/content/service-detail/misty-sierra.md
+++ b/src/content/service-detail/iss.md
@@ -1,6 +1,6 @@
---
-slug: '/services/misty-sierra/'
-title: 'Misty Sierra'
+slug: '/services/iss/'
+title: 'ISS'
categories:
- Networking & Connectivity
- Global Connectivity / WAN
@@ -8,18 +8,18 @@ levels:
- S-SAR
- TS-SAR
- TS-SCI
-excerpt: 'Misty Sierra is a compartmented WAN that includes trusted MLS services, specifically providing an integrated PL-4 desktop environment with Automated Information System tools and functions.'
+excerpt: 'ISS is a compartmented WAN that includes trusted MLS services, specifically providing an integrated PL-4 desktop environment with Automated Information System tools and functions.'
share: '../../images/share/ogimage-networking_and_connectivity.png'
updated: April 1
---
-Misty Sierra is a compartmented WAN that includes trusted MLS services, specifically providing an integrated PL-4 desktop environment with Automated Information System tools and functions.
+ISS is a compartmented WAN that includes trusted MLS services, specifically providing an integrated PL-4 desktop environment with Automated Information System tools and functions.
## Benefits & Features
- PMO managed ATO; minimal burden to site cybersecurity
- Can be installed at contractor sites
-- ID Access Management automatically updated by Javelin
+- ID Access Management automatically updated by JADE
- Allows connections to existing PL-2, PL-3 and PL-4 systems via Trusted Gateways, High Assurance Controlled Interfaces and Trusted Domain Interfaces
- Support to Windows Single Level LANs
- Transport via JWICs, NIPR, SIPR or Commercial (transport agnostic)
@@ -27,7 +27,7 @@ Misty Sierra is a compartmented WAN that includes trusted MLS services, specific
## Requirements
-ATC is required to connect an existing network to Misty Sierra and must be signed off by AO (SAF/AAZ).
+ATC is required to connect an existing network to ISS and must be signed off by AO (SAF/AAZ).
Required Documentation
- AF Form 1067
@@ -39,11 +39,11 @@ Required Documentation
## Supported Capabilities
- Computing devices
-- [Voice/VoIP](/services/sap-voice/)
+- Voice/VoIP
- Printing
- Scanning
- DVD burning
-- Javelin
+- JADE
- [CORE](/services/core/)
- Braces
- Hawkeye
diff --git a/src/content/service-detail/marvel.md b/src/content/service-detail/marvel.md
new file mode 100644
index 0000000000000000000000000000000000000000..ed6ae5c34a2578f66e85c54f7ca9068d83b517d2
--- /dev/null
+++ b/src/content/service-detail/marvel.md
@@ -0,0 +1,16 @@
+---
+slug: '/services/marvel/'
+title: 'Marvel'
+categories:
+ - Communications
+levels:
+ - S-SAR
+ - TS-SAR
+ - TS-SCI
+excerpt: 'Voice-over-internet-protocol (VoIP) capabilities on SAP networks.'
+share: '../../images/share/ogimage-communications.png'
+updated: March 31
+---
+
+Marvel is the AF's Enterprise SAP voice network, consisting of geographically dispersed user VOSIP sites (also called endpoints) connected to call managers and operated at three security levels cleared for special access required (SAR) VOSIP CALLs: Secret//SAR Level 3, Top Secret//SAR Level 4, and Top Secret//SCI//SAR Level 5. Marvel VOSIP calls may cover any SAP or compartment, constrained only by the security level of the VOSIP call. Marvel endpoints require implementation of an encrypter, firewall, and switch as well as internal fiber drops to each phone location.
+
diff --git a/src/content/service-detail/sap-voice.md b/src/content/service-detail/sap-voice.md
deleted file mode 100644
index 8ce2bea55e33e9c00e10bd9f98b7c338b4dce9ae..0000000000000000000000000000000000000000
--- a/src/content/service-detail/sap-voice.md
+++ /dev/null
@@ -1,18 +0,0 @@
----
-slug: '/services/sap-voice/'
-title: 'SAP Voice'
-categories:
- - Communications
-levels:
- - S-SAR
- - TS-SAR
- - TS-SCI
-excerpt: 'Voice-over-internet-protocol (VoIP) capabilities on SAP networks.'
-share: '../../images/share/ogimage-communications.png'
-updated: March 31
----
-
-Voice-over-internet-protocol (VoIP) capabilities on SAP networks.
-
-VoIP is currently available via disparately fielded systems like Misty Sierra, Starburst and Summit.
-
diff --git a/src/content/service-detail/starbust.md b/src/content/service-detail/sgn.md
similarity index 54%
rename from src/content/service-detail/starbust.md
rename to src/content/service-detail/sgn.md
index 3cd50624344b69d56015efc0f2efa19c6ccb7bf7..f91125b13ac6d05e25725d3711537e70a038ef59 100644
--- a/src/content/service-detail/starbust.md
+++ b/src/content/service-detail/sgn.md
@@ -1,23 +1,23 @@
---
-slug: '/services/starburst/'
-title: 'Starburst'
+slug: '/services/sgn/'
+title: 'SGN'
categories:
- Networking & Connectivity
- Global Connectivity / WAN
levels:
- TS-SCI
-excerpt: 'Starburst allows sites to communicate by using VoIP phones, email, file sharing, and other capabilities.'
+excerpt: 'SGN allows sites to communicate by using VoIP phones, email, file sharing, and other capabilities.'
share: '../../images/share/ogimage-networking_and_connectivity.png'
-updated: March 31
+updated: April 8
---
-Starburst allows sites to communicate by using VoIP phones, email, file sharing, and other capabilities.
+SGN allows sites to communicate by using VoIP phones, email, file sharing, and other capabilities.
-Starburst is an Air Force Special Access Program (SAP) network approved for TS//SCI processing. DoD, AF, and industry facilities can utilize the optional Starburst Remote Client (SRC) console to access Starburst. SRC is a fully accredited and deployable Starburst network node. A separately accredited information system may be used to connect to Starburst, if required.
+SGN is an Air Force Special Access Program (SAP) network approved for TS//SCI processing. DoD, AF, and industry facilities can utilize the optional SGN Remote Client (SRC) console to access SGN. SRC is a fully accredited and deployable SGN network node. A separately accredited information system may be used to connect to SGN, if required.
## Benefits & Features
-- Provides access to Starburst capabilities and services to sites where a high degree of operational readiness is not required.
+- Provides access to SGN capabilities and services to sites where a high degree of operational readiness is not required.
- Supports access to remote sites and users with different formal access approvals.
- Increases the ability to communicate SAP and SCI level information with AF, DoD, and Industry partners.
- Reduces risk of classified information mishandling.
@@ -37,6 +37,6 @@ Starburst is an Air Force Special Access Program (SAP) network approved for TS//
## Supported Capabilities
- Email and file sharing functionality via [CORE](/services/core/) and Hawkeye services
-- [Voice/VoIP](/services/sap-voice/)
-- Access to Javelin personnel adjudication database
+- Voice/VoIP
+- Access to JADE personnel adjudication database
diff --git a/src/data/hero/4_summit.yaml b/src/data/hero/4_summit.yaml
index 0df8692d5e029dedd6b9ac21871821b1055a79c6..8ae8de3a5633fa91ae2f425007ef35b36c08d1b4 100644
--- a/src/data/hero/4_summit.yaml
+++ b/src/data/hero/4_summit.yaml
@@ -5,6 +5,7 @@ core: true
cta: Learn More
slug: '/services/seitaas-summit/'
image: '../../images/hero/5-hero-summit.png'
+logo: '../../images/hero/logo-summit.png'
thumb: '../../images/hero/thumb-summit.png'
-thumblogo: '../../images/hero/logo-summit.png'
+thumblogo: '../../images/hero/thumb-logo-summit.png'
index: 4
diff --git a/src/images/af-logo.svg b/src/images/af-logo.svg
index 6f020a207d51b4c625cebcbbc02ce37dab80e480..54d02a975ec59db3fbb8600285a53cb27645aa97 100644
--- a/src/images/af-logo.svg
+++ b/src/images/af-logo.svg
@@ -1,4 +1,5 @@
-