diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000000..7b6ec56c51 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,19 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "type": "browser-preview", + "name": "Browser Preview: Attach", + "request": "attach" + }, + { + "type": "browser-preview", + "request": "launch", + "name": "Browser Preview: Launch", + "url": "http://localhost:3000" + } + ] +} \ No newline at end of file diff --git a/README.md b/README.md index 17aecb1714..2d194f68fe 100644 --- a/README.md +++ b/README.md @@ -12,12 +12,12 @@ You will use Trello to report your progress on the MVP and any extra features yo - Don't overplan, start coding as soon as you can and adjust accordingly. Trello is there as a guide not as a distraction ## Trello Set Up: -* [ ] Create a [Trello account](https://trello.com/) -* [ ] Create a new public board called "S&J Architects - By Your Name" -* [ ] Create lists titled ```backlog```,```To Do```, ```In Progress```, and ```Done``` -* [ ] Fill in the ```To Do``` list with the MVP features listed below -* [ ] Fill in the ```backlog``` list with all the extra features listed below -* [ ] Share your board with the Project Manager that has been assigned to you. If you have not been assigned yet, reach out to your lead TA for guidance +* [x] Create a [Trello account](https://trello.com/) +* [x] Create a new public board called "S&J Architects - By Your Name" +* [x] Create lists titled ```backlog```,```To Do```, ```In Progress```, and ```Done``` +* [x] Fill in the ```To Do``` list with the MVP features listed below +* [x] Fill in the ```backlog``` list with all the extra features listed below +* [x] Share your board with the Project Manager that has been assigned to you. If you have not been assigned yet, reach out to your lead TA for guidance! ## Assets Provided: * [Style guide:](/DesignFiles/style-guide.md) This file will help you identify font sizes, colors, and font families across the site. diff --git a/css/index.css b/css/index.css index e6b2b589c1..44ae571ba5 100644 --- a/css/index.css +++ b/css/index.css @@ -1 +1,470 @@ -/* Should be empty until you compile your LESS */ \ No newline at end of file +/*------------------------------------*\ +RESET +\*------------------------------------*/ +/* http://meyerweb.com/eric/tools/css/reset/ +v2.0b1 | 201101 +NOTE:WORK IN PROGRESS +USE WITH CAUTION AND TEST WITH ABANDON */ +html, +body, +div, +span, +applet, +object, +iframe, +h1, +h2, +h3, +h4, +h5, +h6, +p, +blockquote, +pre, +a, +abbr, +acronym, +address, +big, +cite, +code, +del, +dfn, +em, +img, +ins, +kbd, +q, +s, +samp, +small, +strike, +strong, +sub, +sup, +tt, +var, +b, +u, +i, +center, +dl, +dt, +dd, +ol, +ul, +li, +fieldset, +form, +label, +legend, +table, +caption, +tbody, +tfoot, +thead, +tr, +th, +td, +article, +aside, +canvas, +details, +figcaption, +figure, +footer, +header, +hgroup, +menu, +nav, +section, +summary, +time, +mark, +audio, +video { + margin: 0; + padding: 0; + border: 0; + outline: 0; + font-size: 100%; + font: inherit; + vertical-align: baseline; +} +/* HTML5 display-role reset for older browsers */ +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +menu, +nav, +section { + display: block; +} +body { + line-height: 1; +} +ol, +ul { + list-style: none; +} +blockquote, +q { + quotes: none; +} +blockquote:before, +blockquote:after, +q:before, +q:after { + content: ’’; + content: none; +} +ins { + text-decoration: none; +} +del { + text-decoration: line-through; +} +table { + border-collapse: collapse; + border-spacing: 0; +} +/* Your Code Goes Here */ +body { + background-color: #FFFFFF; + color: #222222; + font-Family: Roboto, Arial, sans-serif; +} +.container { + max-width: 1025px; + margin: 0 auto; +} +.nav-header { + display: flex; + justify-content: space-between; + align-items: center; + background-color: #828282; + /*opacity: 0.75;*/ + color: #FFFFFF; + font-weight: bold; + position: fixed; + top: 0; + width: 1025px; + z-index: 50; +} +.logo { + font-size: 24px; +} +nav { + width: 50%; + display: flex; + justify-content: space-around; + font-size: 48px; + line-height: 85px; +} +a { + text-decoration: none; + color: white; + font-weight: 800; +} +a:hover { + color: #222222; +} +.jumbotron { + width: 100%; +} +h1 { + font-size: 64px; + font-weight: bold; + line-height: 75px; + margin-top: -250px; + margin-bottom: 100px; + color: white; +} +main { + max-width: 80%; + margin: 0 auto; +} +h2, +h3 { + font-weight: 700; +} +.sj, +.futuristic { + display: flex; + margin: 0 auto; + flex-direction: row; + justify-content: space-between; + align-items: center; +} +.content-cont { + display: flex; + flex-direction: column; + align-items: center; +} +.sj-img, +.fut-img { + width: 90%; +} +.sj-cont, +.fut-cont { + width: 50%; +} +.fut-img { + text-align: right; +} +section { + display: flex; + flex-direction: column; + justify-content: space-between; +} +.button { + border: solid black 1px; + padding: 10px; + margin: 10px 10px; + display: inline; + width: 200px; + text-align: center; +} +h2, +p { + margin: 10px 10px 10px 10px; + line-height: 1.5rem; +} +h3 { + width: 400px; + background-color: #D8D8D8; + padding: 20px 20px; + font-size: 2rem; + text-align: center; + letter-spacing: 10px; + margin-left: auto; + margin-right: 26px; + position: relative; + bottom: 5%; +} +.inverse { + margin-left: 26px; + margin-right: auto; +} +.villas { + background: url('../img/home/home-villas-img.png') no-repeat; + background-size: 100% 90%; + height: 500px; + display: flex; + align-items: flex-end; +} +.outskirts { + background: url('../img/home/home-outskirts-img.png') no-repeat; + background-size: 100% 90%; + height: 500px; + display: flex; + flex-direction: row-reverse; + justify-content: flex-start; + align-items: flex-end; +} +.blocks { + background: url('../img/home/home-the-blocks-img.png') no-repeat; + background-size: 100% 90%; + height: 500px; + display: flex; + align-items: flex-end; +} +.recent, +.proj { + width: 100%; +} +.vill, +.blks { + align: left; +} +.projp { + max-width: 50%; + margin: 10px auto 30px; +} +footer { + margin: 0 auto; + background-color: #828282; + color: #FFFFFF; +} +.footer-services { + margin-top: 200px; +} +.foot-top { + display: flex; + justify-content: space-around; + max-width: 80%; + margin: auto; +} +h4 { + font-weight: regular; + font-size: 20px; + line-height: 24px; + margin-bottom: 20px; +} +.copy { + text-align: center; + margin: 20px; +} +.mailcap { + margin-top: 0px; + margin-left: 0px; + font-size: 0.75rem; + font-style: italic; + line-height: 26px; + font-size: 14px; + margin-bottom: 20px; +} +address { + line-height: 26px; + font-size: 14px; + font-weight: 0; + margin-bottom: 20px; +} +.talk { + display: flex; + flex-direction: column; + justify-content: space-between; +} +/*services styles begin here*/ +.h1Serv { + margin-top: -95px; + margin-bottom: 75px; +} +.servNav { + display: flex; + margin: 0 auto; + justify-content: center; + max-width: 1025px; +} +/*menu styles*/ +.menu { + display: none; + position: fixed; + width: 100%; + height: 100%; + background-color: #828282; + opacity: 0.75; + border-left: none; + border-bottom: none; + z-index: 2; + /* This set the layer level of the element, it has precendence over initial level of 1*/ +} +.menu-button { + padding-right: 30px; +} +.menu ul li { + list-style-type: none; + font-size: 32px; + padding: 30px 0; + text-align: center; +} +.menu--open { + display: block; + padding-top: 100px; + max-width: 1026px; +} +/*component styles*/ +.tabs { + width: 100%; +} +.tabs .tabs-items { + width: 100%; + height: 300px; + display: flex; + justify-content: center; + padding-top: 60px; +} +.tabs .tabs-item { + display: none; + width: 75%; +} +.tabs .tabs-item .tabs-item-title { + font-size: 24px; + font-weight: bold; + padding-bottom: 10px; +} +.tabs .tabs-item-selected { + display: block; +} +.tabs .tabs-links { + display: flex; + justify-content: center; +} +.tabs .tabs-link { + padding: 20px 25px; + font-size: 24px; + /*border-right: 1px solid white;*/ + cursor: pointer; +} +.tabs .tabs-link-selected { + z-index: 2; + background-color: #5E9Fb9; + color: white; +} +@media (max-width: 500px) { + body, + .container, + .nav-header { + max-width: 480px; + margin: 0 auto; + } + h1 { + font-size: 36px; + line-height: 42px; + margin-top: -135px; + margin-bottom: 50px; + } + h3 { + position: relative; + width: 90%; + border-top: 10px; + width: 300px; + margin: 0 auto; + } + .sj { + flex-direction: column-reverse; + align-items: baseline; + } + .futuristic { + flex-direction: column; + align-items: baseline; + } + p, + .button { + width: 100%; + } + .projp { + max-width: 90%; + margin: auto; + } + .foot-top { + flex-direction: column; + } + .villas { + background: url('../img/home/home-mobile-villas-img.png') no-repeat; + height: 250px; + width: 400px; + margin: 0 auto; + } + .outskirts { + background: url('../img/home/home-mobile-outskirts-img.png') no-repeat; + height: 250px; + width: 400px; + margin: 0 auto; + } + .blocks { + background: url('../img/home/home-mobile-the-blocks-img.png') no-repeat; + height: 250px; + width: 400px; + margin: 0 auto; + } + .tabs-item { + display: flex; + flex-direction: column; + } +} diff --git a/index.html b/index.html index 8a84a17304..d9d7106726 100644 --- a/index.html +++ b/index.html @@ -2,7 +2,8 @@ - Home + + Smith & Jones Architects - Home -

You got this! Good luck.

+ + - -THE BLOCKS - -The Blocks are amazing to the table win-win survival strategies to ensure proactive domination. At the end of the day, going forward, a new normal that has evolved from generation X is on the runway heading towards a streamlined cloud solution. - -Capitalize on low hanging fruit to identify a ballpark value added activity to beta test. Override the digital divide with additional clickthroughs from DevOps. Nanotechnology immersion along the information highway will close the loop on focusing solely on the bottom line. - ---> - - + +
+

+Integrity,
+Excellence,
+Progress. +

+ +
+
+
+
+

Smith & Jones Architects

+ +

Et sed autem causae appareat, tempor abhorreant te mei, facer facilisis sit ea. Eu timeam vidisse consectetuer sed. Duo etiam laboramus dissentiet in, nec no errem

+
Learn More
+
+
+
+ +
+
+ +
+
+ +
+
+
+

Futuristic Designs

+ +

Et sed autem causae appareat, tempor abhorreant te mei, facer facilisis sit ea. Eu timeam vidisse consectetuer sed. Duo etiam laboramus dissentiet in, nec no errem

+ +
View Designs
+
+
+
+
+ +

Recent Projects

+ +
+

THE VILLAS

+
+
+

The Villas bring to the table win-win survival strategies to ensure proactive domination. At the end of the day, going forward, a new normal that has evolved from generation X is on the runway heading towards a streamlined cloud solution.

+ +

Capitalize on low hanging fruit to identify a ballpark value added activity to beta test. Override the digital divide with additional clickthroughs from DevOps. Nanotechnology immersion along the information highway will close the loop on focusing solely on the bottom line.

+
+ +
+ +

OUTSKIRTS

+
+
+

The Outskirts are amazing to the table win-win survival strategies to ensure proactive domination. At the end of the day, going forward, a new normal that has evolved from generation X is on the runway heading towards a streamlined cloud solution.

+ +

Capitalize on low hanging fruit to identify a ballpark value added activity to beta test. Override the digital divide with additional clickthroughs from DevOps. Nanotechnology immersion along the information highway will close the loop on focusing solely on the bottom line.

+ +
+ +
+ + +

THE BLOCKS

+
+
+

The Blocks are amazing to the table win-win survival strategies to ensure proactive domination. At the end of the day, going forward, a new normal that has evolved from generation X is on the runway heading towards a streamlined cloud solution.

+ +

Capitalize on low hanging fruit to identify a ballpark value added activity to beta test. Override the digital divide with additional clickthroughs from DevOps. Nanotechnology immersion along the information highway will close the loop on focusing solely on the bottom line.

+
+
+ + + - \ No newline at end of file + diff --git a/index.html_alt b/index.html_alt new file mode 100644 index 0000000000..0e7bade566 --- /dev/null +++ b/index.html_alt @@ -0,0 +1,117 @@ + + + + + Home + + + + + + + + + + + + + + + + + + + +
+

+ Integrity,
+ Excellence,
+ Progress. +

+ +
+
+
+

Smith & Jones Architects

+ +

Et sed autem causae appareat, tempor abhorreant te mei, facer facilisis sit ea. Eu timeam vidisse consectetuer sed. Duo etiam laboramus dissentiet in, nec no errem

+
Learn More
+
+
+
+ +
+
+ +Futuristic Designs + +Et sed autem causae appareat, tempor abhorreant te mei, facer facilisis sit ea. Eu timeam vidisse consectetuer sed. Duo etiam laboramus dissentiet in, nec no errem + +View Designs + +Recent Projects + +THE VILLAS + +The Villas bring to the table win-win survival strategies to ensure proactive domination. At the end of the day, going forward, a new normal that has evolved from generation X is on the runway heading towards a streamlined cloud solution. + +Capitalize on low hanging fruit to identify a ballpark value added activity to beta test. Override the digital divide with additional clickthroughs from DevOps. Nanotechnology immersion along the information highway will close the loop on focusing solely on the bottom line. + +OUTSKIRTS + +The Outskirts are amazing to the table win-win survival strategies to ensure proactive domination. At the end of the day, going forward, a new normal that has evolved from generation X is on the runway heading towards a streamlined cloud solution. + +Capitalize on low hanging fruit to identify a ballpark value added activity to beta test. Override the digital divide with additional clickthroughs from DevOps. Nanotechnology immersion along the information highway will close the loop on focusing solely on the bottom line. + +THE BLOCKS + +The Blocks are amazing to the table win-win survival strategies to ensure proactive domination. At the end of the day, going forward, a new normal that has evolved from generation X is on the runway heading towards a streamlined cloud solution. + +Capitalize on low hanging fruit to identify a ballpark value added activity to beta test. Override the digital divide with additional clickthroughs from DevOps. Nanotechnology immersion along the information highway will close the loop on focusing solely on the bottom line. + +--> + + + + + \ No newline at end of file diff --git a/js/index.js b/js/index.js index bb3d341cf0..dab66a51c1 100644 --- a/js/index.js +++ b/js/index.js @@ -1 +1,87 @@ -// JS goes here \ No newline at end of file +// JS goes here + +const toggleMenu = () => { + menu.classList.toggle("menu--open"); + let hamburger = document.querySelector(".menu-button"); + console.log(hamburger); + if (hamburger.src.includes("img/nav-hamburger.png")){ //checks src attribute, if true + hamburger.setAttribute("src", "img/nav-hamburger-close.png"); //sets humburger to 'X', + } + else { //else + hamburger.setAttribute("src","img/nav-hamburger.png"); //sets it back to hamburger + } +} + +const menu = document.querySelector(".menu"); +const menuButton = document.querySelector(".menu-button"); +menuButton.addEventListener("click", function(){ + return toggleMenu(); +}); + +class TabLink { + constructor(element) { + this.element = element; + console.log(this.element); + + // Get the custom data attribute on the Link + this.data = this.element.dataset.tab; + + // Using the custom data attribute get the associated Item element + this.itemElement = document.querySelector(`.tabs-item[data-tab="${this.data}"]`); + + // Using the Item element, create a new instance of the TabItem class + this.tabItem = new TabItem(this.itemElement); + + // Add a click event listener on this instance, calling the select method on click + this.element.addEventListener('click', () => {this.select()}) + + }; + + select() { + + // Get all of the elements with the tabs-link class + const links = document.querySelectorAll('.tabs-link'); + + // Using a loop or the forEach method remove the 'tabs-link-selected' class from all of the links + Array.from(links).forEach( (link) => { + return link.classList.remove('tabs-link-selected'); + }); + + // Add a class named "tabs-link-selected" to this link + this.element.classList.add('tabs-link-selected') ; + + // Call the select method on the item associated with this link + this.tabItem.select(); + } +} + +class TabItem { + constructor(element) { + this.element = element; + } + + select() { + // Select all items elements from the DOM + const items = document.querySelectorAll('.tabs-item'); + + // Remove the class "tabs-item-selected" from each element + Array.from(items).forEach((item) => { + item.classList.remove('tabs-item-selected'); + }); + // Add a class named "tabs-item-selected" to this element + this.element.classList.add('tabs-item-selected'); + } +} + + + +let links = document.querySelectorAll('.tabs-link'); +console.log(links); +// Following the code in the Dropdown file, iterate through the array you created above creating a new instance of the TabLink class for each item. +links = Array.from(links).map((link) => { + return new TabLink(link); + +}) + +// DO THIS LAST: Once you have created an array of TabLink instances. call select() on the first item in the array +links[0].select(); diff --git a/less/index.less b/less/index.less index 6d3fc81ef9..247ae88aaa 100644 --- a/less/index.less +++ b/less/index.less @@ -57,4 +57,403 @@ table{ border-spacing:0; } -/* Your Code Goes Here */ \ No newline at end of file +/* Your Code Goes Here */ + +body{ +background-color: #FFFFFF; +color: #222222; +font-Family: Roboto, Arial, sans-serif; +} + +.container{ + max-width: 1025px; + margin: 0 auto; +} + +.nav-header { + display: flex; + justify-content: space-between; + align-items: center; + background-color: #828282; + /*opacity: 0.75;*/ + color: #FFFFFF; + font-weight: bold; + position: fixed; + top: 0; + width: 1025px; + z-index: 50; +} + +.logo { + font-size: 24px; +} + +nav { + width: 50%; + display: flex; + justify-content: space-around; + font-size: 48px; + line-height: 85px; +} + +a { + text-decoration: none; + color: white; + font-weight: 800; +} + +a:hover { + color: #222222; +} + +.jumbotron { + width: 100%; +} + +h1 { + font-size: 64px; + font-weight: bold; + line-height: 75px; + margin-top: -250px; + margin-bottom: 100px; + color: white; +} + +main { + max-width: 80%; + margin: 0 auto; +} + +h2, h3 { + font-weight: 700; +} + +.sj, .futuristic { + display: flex; + margin: 0 auto; + flex-direction: row; + justify-content: space-between; + align-items: center; +} + +.content-cont{ + display: flex; + flex-direction: column; + align-items: center; +} + +.sj-img, .fut-img,{ + width: 90%; +} + +.sj-cont, .fut-cont{ + width: 50%; +} + +.fut-img { + text-align: right; +} + +section { + display: flex; + flex-direction: column; + justify-content: space-between; +} + +.button { + border: solid black 1px; + padding: 10px; + margin: 10px 10px; + display: inline; + width: 200px; + text-align: center; +} + +h2, p { + margin: 10px 10px 10px 10px; + line-height: 1.5rem; +} + +h3 { + width: 400px; + background-color: #D8D8D8; + padding: 20px 20px; + font-size: 2.0rem; + text-align: center; + letter-spacing: 10px; + margin-left: auto; + margin-right: 26px; + position: relative; + bottom: 5%; +} + +.inverse { + margin-left: 26px; + margin-right: auto; +} + +.villas { + background: url('../img/home/home-villas-img.png') no-repeat; + background-size: 100% 90%; + height: 500px; + display: flex; + align-items: flex-end; +} + +.outskirts { + background: url('../img/home/home-outskirts-img.png') no-repeat; + background-size: 100% 90%; + height: 500px; + display: flex; + flex-direction: row-reverse; + justify-content: flex-start; + align-items: flex-end; +} + +.blocks { + background: url('../img/home/home-the-blocks-img.png') no-repeat; + background-size: 100% 90%; + height: 500px; + display: flex; + align-items: flex-end; +} + +.recent, .proj { + width: 100%; +} + +.vill, .blks { + align: left; +} + +.projp { + max-width: 50%; + margin: 10px auto 30px; +} + +footer { + //width: 1026px; + margin: 0 auto; + background-color: #828282; + color: #FFFFFF; +} + +.footer-services{ + margin-top: 200px; +} + +.foot-top { + display: flex; + justify-content: space-around; + max-width: 80%; + margin: auto; + +} + +h4 { + font-weight: regular; + font-size: 20px; + line-height: 24px; + margin-bottom: 20px; +} + +.copy { + text-align: center; + margin: 20px; +} + +.mailcap { + margin-top: 0px; + margin-left: 0px; + font-size: .75rem; + font-style: italic; + line-height: 26px; + font-size: 14px; + margin-bottom: 20px; +} + +address { + line-height: 26px; + font-size: 14px; + font-weight: 0; + margin-bottom: 20px; +} + +.talk { + display: flex; + flex-direction: column; + justify-content: space-between; +} + + + +/*services styles begin here*/ + +.h1Serv { + margin-top: -95px; + margin-bottom: 75px; + } + +.servNav { + display: flex; + margin: 0 auto; + justify-content: center; + max-width: 1025px; +} + +/*menu styles*/ + +.menu { + display: none; + position: fixed; + width: 100%; + height: 100%; + background-color: #828282; + opacity: 0.75; + border-left: none; + border-bottom: none; + z-index: 2; /* This set the layer level of the element, it has precendence over initial level of 1*/ +} + +.menu-button { + padding-right: 30px; +} + +.menu ul li{ + list-style-type: none; + font-size: 32px; + padding: 30px 0; + text-align: center; + +} + +.menu--open { + display: block; + padding-top: 100px; + max-width: 1026px; +} + +/*component styles*/ + +.tabs { + width: 100%; + .tabs-items { + width: 100%; + height: 300px; + display: flex; + justify-content: center; + padding-top: 60px; + } + .tabs-item { + display: none; + + width: 75%; + .tabs-item-title { + font-size: 24px; + font-weight: bold; + padding-bottom: 10px; + } + } + .tabs-item-selected { + display: block; + } + + .tabs-links { + display: flex; + justify-content: center; + } + + .tabs-link { + padding: 20px 25px; + font-size: 24px; + + /*border-right: 1px solid white;*/ + + cursor: pointer; + + } + .tabs-link-selected { + z-index: 2; + background-color: #5E9Fb9; + color: white; + + } +} + +div { + //border: 2px solid black; +} + +@media(max-width: 500px){ + + body, .container, .nav-header { + max-width: 480px; + margin: 0 auto; + } + + h1 { + font-size: 36px; + line-height: 42px; + margin-top: -135px; + margin-bottom: 50px; + } + + h3 { + position: relative; + width: 90%; + border-top: 10px; + width: 300px; + margin: 0 auto; + } + + .sj { + flex-direction: column-reverse; + align-items: baseline; + } + + .futuristic { + flex-direction: column; + align-items: baseline; + } + + p, .button { + width: 100%; + } + + .projp { + max-width: 90%; + margin: auto; + } + + .foot-top { + flex-direction: column; + } + + .villas { + background: url('../img/home/home-mobile-villas-img.png') no-repeat; + height: 250px; + width: 400px; + margin: 0 auto; +} + +.outskirts{ + background: url('../img/home/home-mobile-outskirts-img.png') no-repeat; + height: 250px; + width: 400px; + margin: 0 auto; +} + +.blocks{ + background: url('../img/home/home-mobile-the-blocks-img.png') no-repeat; + height: 250px; + width: 400px; + margin: 0 auto; +} + +.tabs-item { + display: flex; + flex-direction: column; +} + + +} diff --git a/services.html b/services.html index fb5a79e18a..4867b7e5fc 100644 --- a/services.html +++ b/services.html @@ -2,7 +2,8 @@ - Services + + S&J - Services - + + +
+
+ +
+
+ Pre-Construction +

Pre-Construction

+

Completely synergize resource taxing relationships via premier niche markets. Professionally cultivate one-to-one customer service with robust ideas. Dynamically innovate resource-leveling customer service for state of the art customer service.

Phosfluorescently engage worldwide methodologies with web-enabled technology. Interactively coordinate proactive e-commerce via process-centric "outside the box" thinking. Completely pursue scalable customer service through sustainable potentialities.

+ +
+
+ Construction +

Construction

+

+ Completely synergize resource taxing relationships via premier niche markets. Professionally cultivate one-to-one customer service with robust ideas. Dynamically innovate resource-leveling customer service for state of the art customer service.

Phosfluorescently engage worldwide methodologies with web-enabled technology. Interactively coordinate proactive e-commerce via process-centric "outside the box" thinking. Completely pursue scalable customer service through sustainable potentialities. +

+
+
+ Design Build +
Design Build
+

+ Completely synergize resource taxing relationships via premier niche markets. Professionally cultivate one-to-one customer service with robust ideas. Dynamically innovate resource-leveling customer service for state of the art customer service.

Phosfluorescently engage worldwide methodologies with web-enabled technology. Interactively coordinate proactive e-commerce via process-centric "outside the box" thinking. Completely pursue scalable customer service through sustainable potentialities. +

+
+
+ Sustainability +
Sustainability
+

+ Completely synergize resource taxing relationships via premier niche markets. Professionally cultivate one-to-one customer service with robust ideas. Dynamically innovate resource-leveling customer service for state of the art customer service.

Phosfluorescently engage worldwide methodologies with web-enabled technology. Interactively coordinate proactive e-commerce via process-centric "outside the box" thinking. Completely pursue scalable customer service through sustainable potentialities. +

+
+
+
+
+ + + + + + + - \ No newline at end of file +