html, 
body { color: #404743; font-family: "Open Sans", sans-serif; font-size: 16px; -webkit-font-smoothing: antialiased; }
.container { padding: 0; width: 100%; }

/* Links */
a { color: #00657B; font-weight: 700; transition: background-color .2s, color .2s; padding: 4px 0; text-decoration: underline; }
a:hover { color: #003e4c; }
button { background: #666; border: 0; color: #fff; margin: 6px 0 6px; padding: 8px 14px 6px; transition: background .2s, color .2s; }
button:hover { background: #999; }

/* Headers */
h1 { font-size: 1.4em; margin: 0; }
h2 { font-size: 2.8em; margin: 26px 0; }
h3 { color: #00657B; font-size: 2.2em; font-weight: 900; margin: 46px 0 22px; padding-left: 38px; position: relative; }
h3:before,
h3:after { background: #D88712; border-radius: 50px; content: ""; height: 24px; left: 8px; position: absolute; top: 8px; transform: rotate(35deg); width: 4px; } 
h3:after { left: 20px; }
h4 { font-size: 1.4em; font-weight: 700;  margin: 46px 0 12px; }
h5 { font-size: 1.4em; margin: 46px 0 12px; }
h6 { font-size: 1.2em; margin: 46px 0 12px; }

/* Paragraphs & Lists */
p { line-height: 1.6em; margin: 26px 0; }
ul, 
ol { margin: 20px 0; }
li { line-height: 1.6em; margin: 12px 0; }
img { max-width: 100%; }

/* Header */
header { align-items: center; background: #fff; border-bottom: 6px solid #D88712; color: #fff; display: flex; justify-content: space-between; padding: 14px 3% 12px 2%; position: fixed; transition: .25s; width: 100%; z-index: 100; }
header img { height: 76px; transition: .25s; }
header nav ul { list-style: none; margin: 0; padding: 0; }
header nav li { display: inline-block; margin: 0; margin-left: 54px;  }
header nav li a { color: #00657B; display: block; font-size: 1.2em; font-weight: 400; padding: 0; position: relative; text-decoration: none; transition: .25s; }
header nav li a:hover { color: #004858; text-decoration: none; }
header nav li a.active { font-weight: 700; }
header nav li a:before { background: #d88712; border-radius: 77px; content: ""; height: 108%; left: 0; margin-left: -14px; opacity: 0; position: absolute; transform: rotate(35deg); width: 4px; }
header nav li a:after { background: #d88712; content: ""; height: 100%; left: 0; margin-left: -14px; opacity: 0; position: absolute; right: 100%; transform: skewX(-35deg); }

header nav li a:hover:before { background: #fff; left: 100%; margin-left: 14px; opacity: 1; transform: rotate(25deg); transition: .5s ease-in-out .1s, opacity .3s, background .3s ease-in-out .3s; }
header nav li a:hover:after { opacity: .3; right: -14px; transform: skewX(-25deg); transition: .5s ease-in-out .1s; }

header.scrolled { padding: 10px 2% 8px 1%; }
header.scrolled img { height: 48px; }
header.scrolled nav li a { font-size: 1em; }

#skiptocontent { background-color: #fff; border-radius: 8px; box-shadow: 2px 2px 8px 0 #000; font-size: 1.3em; left: -9999px; padding: 6px 12px; position: absolute; top: -9999px; }
#skiptocontent:focus { left: 8px; top: 8px; }

#mobile-menu { background: transparent; border: 0; display: none; margin: 0; padding: 0 4px; }
#mobile-menu .line { background: #00657B; display: block; height: 3px; left: 0; margin: 0 0 6px; position: relative; top: 0; transition: .3s; width: 26px; }
#mobile-menu .line.btm { margin: 0; }

.ada-element { left: -9999px; position: absolute; }

/* General Formatting */
#content { padding-top: 108px; transition: .25s; }
header.scrolled + #content { padding-top: 72px; }
#content > section { padding: 48px 8% 80px; }

.row { display: flex; gap: 5%; justify-content: space-between; margin: 0; }
.row:before,
.row:after { display: none; }
#content .row > div { padding: 0; }

/* Footer */
#footer-top { background-color: #0C5464; background-image: url("../images/ftr-bg.png"); background-position: right; background-size: auto 100%; background-repeat: no-repeat; color: #fff; padding: 28px 5% 28px 3%; }
#footer-top .row { align-items: center; }
#footer-top img { height: 204px; } 
#footer-top nav ul { list-style: none; padding: 0; text-align: right; }
#footer-top nav li { display: inline-block; margin-left: 54px; }
#footer-top nav li a { color: #fff; font-size: 1.1em; text-decoration: none; }
#footer-top nav li a:hover { color: #F3AE2D; }
#footer-bottom { background: #00657B; color: #fff; padding: 0 4%;  }
#footer-bottom .row { align-items: center; }
#footer-bottom p { margin: 17px 0; }
#footer-bottom a { color: #fff; float: right; font-weight: 400; text-decoration: none; }
#footer-bottom a:hover { color: #F3AE2D; }
#footer-bottom a img { margin-left: 8px; }

.teal-box { background: #E6F0F2; }

/* Homepage */

#homepage-header { background-image: url("../images/hp-bg.jpg"); background-position: center; background-size: cover; position: relative; }
#homepage-header div { background: #CF7E09; background: rgba(207, 126, 9, .9); color: #fff; margin: 80px auto 64px; padding: 18px 48px 12px; width: 70%; }
#homepage-header h2 { font-size: 4em; padding-left: 60px; position: relative; }
#homepage-header h2:before,
#homepage-header h2:after { background: #00657B; border-radius: 50px; content: ""; height: 34px; left: 8px; position: absolute; top: 18px; transform: rotate(35deg); width: 6px; } 
#homepage-header h2:after { left: 26px; }
#homepage-header h2 span { display: block; font-size: .5em; font-weight: 300; letter-spacing: .05em; margin-top: 10px; text-transform: uppercase; }
#homepage-header ul { display: flex; justify-content: space-between; list-style: none; margin-top: 42px; padding: 0; }
#homepage-header ul a { color: #fff; font-size: 1.1em; font-weight: 400; }
#homepage-header ul a:hover { color: #00657b; }
#homepage-header small { background: rgb(64, 71, 67, 80%); bottom: 12px; color: #fff; left: 28px; padding: 6px 14px; position: absolute; }

#view-progress button { background: #DFEFF8; border: 0; border-radius: 50%; height: 44px; margin-right: 8px; transition: background .2s; width: 44px; }
#view-progress button:hover { background: #b2cbd9; }
#view-progress button span { left: -9999px; position: absolute; }
#view-progress button:after { border: 4px solid #0e385e; border-width: 0 0 3px 3px; content: ""; display: inline-block; height: 14px; margin: 5px 0 0 5px; transform: rotate(45deg); width: 14px; }
#view-progress button.next:after { border-width: 3px 3px 0 0; margin-left: -3px; }

#future-expansion { background-color: #004756; background-image: url("../images/bg_faucet.png"); background-repeat: no-repeat; background-size: auto 80%; background-position: 0 50%; color: #fff; }
#future-expansion h3 { color: #fff; font-size: 2.6em; padding-left: 0; }
#future-expansion h3:before,
#future-expansion h3:after { display: none; }
#future-expansion .row { align-items: center; }
#future-expansion .row > div:first-of-type { font-size: 1em; font-weight: 600; padding-right: 4%; }
#future-expansion p img { margin-left: 14px; }
#future-expansion ul { list-style: none; padding: 18px 0 0; }
#future-expansion ul li { border-left: 3px solid #F3AE2D; font-weight: 700; margin-bottom: 38px; padding: 14px 0 14px 26px; }
#future-expansion ul li h4 { margin: 0; }
#future-expansion ul li h4 img { margin-right: 8px; }
#future-expansion .underline:after { background: #022150; }

@keyframes yo {
    0% { margin-bottom: -8px; }
    50% { margin-bottom: 4px; }
    100% { margin-bottom: -8px; }
}

#facility-aerial { position: relative; }
#facility-aerial button { background: #D88712; border-radius: 50%; box-shadow: 0 5px 4px -2px #000; font-weight: 700; height: 38px; left: 16%; line-height: 38px; padding: 0; position: absolute; text-align: center; top: 31%; width: 38px; }
#facility-aerial button:hover { background: #b36b04; }
#facility-aerial button:nth-of-type(2) { left: 30.5%; top: 25%; }
#facility-aerial button:nth-of-type(3) { left: 10%; top: 47%; }
#facility-aerial button:nth-of-type(4) { left: 7%; top: 69%; }
#facility-aerial button:nth-of-type(5) { left: 53%; top: 53%; }
#facility-aerial button:nth-of-type(6) { left: 66.5%; top: 57%; }
#facility-aerial button:nth-of-type(7) { left: 78%; top: 56%; }
#facility-aerial button:nth-of-type(8) { left: 69%; top: 27%; }
#facility-aerial button:nth-of-type(9) { left: 21%; top: 79%; }
#facility-aerial button:nth-of-type(10) { left: 7%; top: 26%; }
#facility-aerial button.triggered:before { animation-name: yo; animation-iteration-count: infinite; animation-duration: 2s; border: 14px solid transparent; border-width: 22px 18px; border-top-color: #F3AE2D; bottom: 100%; content: ""; left: 50%; position: absolute; transform: translateX(-50%) }

#view-progress .lighter { color: #454B54; }
#progress-checklist { margin: 0 0 30px; overflow: hidden; }
#progress-checklist:hover { cursor: grab; }
#progress-checklist.rolling { cursor: grabbing; }
#view-progress ul { display: flex; justify-content: space-between; list-style: none; left: 0; overflow: hidden; padding: 0; position: relative; width: 170%; }
#view-progress ul li { background: #00657B; border-radius: 15px; color: #fff; font-size: 1.1em; padding: 28px 34px 28px; position: relative; width: 18.5%; }
#view-progress ul li h4 { align-items: center; color: #fff; display: flex; font-size: 1.2em; font-weight: 600; gap: 24px; line-height: 1.3em; margin: 0 0 18px; position: relative; }
#view-progress ul li img { padding-bottom: 18px; width: 100%;}
#view-progress ul li p { margin: 0; }
#view-progress ul li a { color: #fff; }
#view-progress ul li a:hover { color: #b2cbd9; }

.question-mark { padding-left: 34px; position: relative; }
.question-mark:before { background: #F3AE2D; border-radius: 50%; content: "?"; font-size: 1.1em; height: 24px; left: 0; line-height: 23px; position: absolute; text-align: center; width: 24px; }

#project-costs { background: #F5F5F5; }

#circle { border-radius: 100%; vertical-align: middle; display: inline-block; height: 380px; overflow: hidden; position: relative; transform: rotate(212deg); width: 380px; }
#circle > div { height: 100%; left: 0; position: absolute; top: 0; transition: transform 1.3s; width: 100%; z-index: 7; }
#circle > div > span { height: 50.1%; left: .2px; position: absolute; top: .2px; transition: transform 0s; width: 50.1%; z-index: 8; }

#circle-area { padding: 108px 0 0 7% !important; position: relative; }
#circle-area ul { height: 100%; list-style: none; padding: 0 0 0 7%; position: absolute; top: 0; width: 380px; }
#circle-area li { border-left: 4px solid #F3AE2D; padding: 3px 0 3px 8px; position: absolute; width: 400px; }
#circle-area li strong { font-size: 1.1em; font-weight: 900; }
#circle-area li span { display: block; }
#circle-area li:nth-of-type(1) { border-left: 0; border-right: 4px solid #00657B; left: auto; margin-right: 4px; padding-right: 8px;  right: 100%; top: 74%; text-align: right; }
#circle-area li:nth-of-type(2) { left: 64%; top: 0; }
#circle-area li:nth-of-type(3) { border-left-color: #A22610; left: 100%; margin-left: 4px; top: 27%; width: 200px; }

#subpage-header { background-image: url("../images/subpage-bg.jpg"); background-size: cover; background-position: center; color: #fff; font-family: "Montserrat", sans-serif; padding: 68px 8% 90px !important; }
#subpage-header h2 { color: #fff; font-size: 4.4em; font-weight: 400; padding-left: 58px; position: relative; }
#subpage-header h2:before,
#subpage-header h2:after { background: #F1AE2C; border-radius: 50px; content: ""; height: 32px; left: 8px; position: absolute; top: 15px; transform: rotate(35deg); width: 6px; } 
#subpage-header h2:after { left: 26px; }
#subpage-header p { font-size: 1.2em; padding-left: 58px; }

.photo-carousel { margin: 36px 5% 40px; position: relative; }
.photo-carousel div { justify-content: space-between; left: -9999px; opacity: 0; position: absolute; top: -9999px; }
.photo-carousel div img { transform: rotateX(90deg); width: 32%; }
.photo-carousel div img:last-of-type { margin-right: 0; }
.photo-carousel div.active { display: flex; left: 0; opacity: 1; position: relative; top: 0; transition: left 0s, opacity 1s; }
.photo-carousel div.active img { transform: rotateX(0deg); transition: transform .4s; }
.photo-carousel div.active img:nth-of-type(2) { transition: transform .4s ease-in .1s; }
.photo-carousel div.active img:nth-of-type(3) { transition: transform .4s ease-in .3s; }
.photo-carousel div.active img:nth-of-type(4) { transition: transform .4s ease-in .5s; }
.photo-carousel button { background: transparent; color: #126F99; font-size: 6em; right: -6%; line-height: 0; margin: 0; padding: 0; position: absolute; text-shadow: 3px 0 0 #FCE300; top: 38%; transition: .2s; }
.photo-carousel button.prev-btn { right: auto; left: -6%; transform: rotate(180deg); }
.photo-carousel button.prev-btn span { left: auto; right: -099999%; }
.photo-carousel button:hover { color: #FCE300; text-shadow: 3px 0 0 #126f99; }
.photo-carousel > span { background: #F2F2F2; display: block; height: 16px; margin-top: 26px; position: relative; width: 100%; }
.photo-carousel > span > span { background: #D1F5FD; height: 100%; left: 0; position: absolute; top: 0; transition: left .5s; width: 33.333%; }

.documents { list-style: none; padding-left: 39px; }
.documents li { padding-left: 34px; position: relative; }
.documents li:before { background-image: url("../images/icon-doc.png"); background-size: cover; background-repeat: no-repeat; content: ""; height: 24px; left: 0; position: absolute; width: 24px; }
.documents li a { color: #333; font-family: "Montserrat",sans-serif; font-weight: 400; text-decoration: none; }
.documents li a:hover { color: #126f99; }

#history-graph { margin-top: 42px; } 

#project-contact { font-family: "Montserrat",sans-serif; font-weight: 700; }
#project-contact h3 { font-family: "Open Sans",sans-serif; margin-bottom: 44px; }
#project-contact h4 { color: #00657B; margin-top: 22px; }
#project-contact p { margin-top: 4px; }
#project-contact a { color: #333; font-weight: 400; }
#project-contact a:hover { color: #00657B; }

/* Accordions */
.hdr-accordion-set { margin-bottom: 30px; }
.hdr-accordion h4 { font-size: 1.4em; margin: 0; }
.hdr-accordion button { background: transparent; color: #404743; font-weight: 700; padding-left: 44px; position: relative; }
.hdr-accordion button span { background: #D88712; border-radius: 50%; color: #fff; font-size: .7em; height: 30px; left: 0; line-height: 30px; position: absolute; text-align: center; top: 50%; transform: translateY(-50%); width: 30px; }
.hdr-accordion-header { cursor: pointer; margin: 18px 0 0; padding: 10px 48px 10px 14px; position: relative; text-align: left; width: 100%; }
.hdr-accordion-set.has-js .hdr-accordion-header:before,
.hdr-accordion-set.has-js .hdr-accordion-header:after { background: #404743; content: ""; height: 2px; position: absolute; right: 15px; top: 50%; transform: translateY(-50%); transition: transform .8s; width: 16px; }
.hdr-accordion-set.has-js .hdr-accordion-header:after { transform: translateY(-50%) rotate(270deg); }
.hdr-accordion-set.has-js .opened .hdr-accordion-header:after { transform: translateY(-50%) rotate(0deg); }
.hdr-accordion > div { border-bottom: 1px solid #404743; padding: 1px 1%; }

/************ Responsive ****************************************************************************************/

@media screen and (min-width: 2030px) {
    html,body { font-size: 20px; }
    p { line-height: 1.8em; margin: 32px 0; }

    #homepage-header div { background: #CF7E09; background: rgba(207, 126, 9, .9); color: #fff; margin: 96px auto 74px; padding: 18px 48px 12px; width: 70%; }
    .hdr-accordion button { padding-left: 50px; }
    .hdr-accordion button span { height: 34px; line-height: 34px; width: 34px; }
}

@media screen and (max-width: 1240px) {
    #content > section { padding: 32px 6% 68px; }
    
    #homepage-header div { margin: 78px auto 84px; width: 88%; } 
    #homepage-header h2 { font-size: 3.4em; }
    #homepage-header h2:before,
    #homepage-header h2:after { top: 14px; }

    #circle { height: 280px; width: 280px; } 
    #circle-area { padding: 106px 0 32px 7% !important; }
    #circle-area ul { width: 280px; }
    #circle-area li { font-size: .85em; line-height: 1.2em; width: 260px; }
    #circle-area li:nth-of-type(2) { left: 56%; }
        
    #view-progress ul li p { font-size: .85em; }

    .photo-carousel button img { width: 38px; }
}

@media screen and (max-width: 992px) {
    h1 { font-size: 1.2em; }
    h2 { font-size: 1.8em; margin: 16px 0; }
    h3 { font-size: 1.6em; margin: 24px 0 0; }
    h3:before,
    h3:after { top: 2px; }
    h4 { font-size: 1.2em; margin: 24px 0 0; }
    h5 { font-size: 1.2em; margin: 24px 0 0; }
    h6 { font-size: 1.1em; margin: 24px 0 0; }
    p, li { font-size: .9em; line-height: 1.4em; }
    button { font-size: .9em; padding: 4px 10px; }

    #content { padding-top: 80px; } 
    #content > section { padding: 22px 6% 40px; }
    .row { display: block; }

    /* Header */
    #mobile-menu { display: block; }
    .menu-opened #mobile-menu .line.top { top: 8px; transform: rotate(45deg); }
    .menu-opened #mobile-menu .line.mid { opacity: 0; transform: rotate(90deg); }
    .menu-opened #mobile-menu .line.btm { top: -10px; transform: rotate(-45deg); }

    header img { height: 48px; } 
    header nav { position: relative; }
    header nav ul { background-color: #fff; box-shadow: 2px 4px 8px -4px #000; margin-top: 8px; opacity: 0; position: absolute; right: 9999px; top: 100%; width: 220px; z-index: 1; }
    header nav li { border-top: 1px solid #00657B; display: block; margin: 0; padding: 8px 4px; text-align: center; width: 100%; }
    .menu-opened header nav ul { opacity: 1; right: 0; transition: right 0s, opacity .2s; }

    footer .row { display: flex; }
    #footer-top { padding: 14px 4% 14px 1.5%; }
    #footer-top img { height: 124px; }
    #footer-bottom { padding: 0 3% 0 2%; }
    #footer-bottom a { font-size: .9em; }
    #footer-bottom a img { height: 24px; margin-left: 4px; }
    
    #homepage-header div { margin: 60px auto 72px; padding: 14px 36px; width: 94%; } 
    #homepage-header h2 { font-size: 2.5em; padding-left: 44px; }
    #homepage-header h2 span { font-size: .7em; margin-top: 6px; }
    #homepage-header h2:before,
    #homepage-header h2:after { height: 24px; top: 10px; width: 4px; }
    #homepage-header h2:after { left: 20px; }
    #homepage-header ul { flex-wrap: wrap; gap: 14px; margin-top: 30px; }
    #homepage-header li { margin: 3px 0 0; }

    .big-img { border: 1px solid #aaa; overflow: auto; width: 100%; } 
    .big-img img { max-width: 8000%; width: 992px; }
    #history-graph .big-img { padding: 18px 12px; }

    #future-expansion { background-size: 60%; background-position: top 10% left; }

    #circle-area { padding: 100px 0 34px !important; text-align: center; }
    #circle-area ul { left: 50%; padding: 0; transform: translateX(-50%); }

    #view-progress ul li { line-height: 1.1em; padding: 16px 26px 26px; }
    #view-progress ul li span { font-size: .85em; }

    #subpage-header { padding: 54px 8% 70px !important; }
    #subpage-header h2 { font-size: 3.6em; }
    #subpage-header p { font-size: 1em; }

    .photo-carousel { margin: 24px 5% 26px; padding: 0 3%; }

    .hdr-accordion h4 { font-size: 1.1em; }
}

@media screen and (max-width: 768px) {
    #content { padding-top: 72px;}
    #content > section { padding: 16px 8% 28px; }

    header { padding: 10px 15px 8px; }

    #view-progress .lighter { display: none; }
    #view-progress button { display: none; }
    #view-progress ul { display: block; left: 0 !important; margin: 0; width: 100%; }
    #view-progress ul li { font-size: .9em; line-height: 1.4em; margin-bottom: 14px; padding: 24px 20px 30px; width: 100%; }
    #view-progress ul li h4 { gap: 8px; }
    #view-progress ul li img { max-width: 250px;}
    #view-progress ul li span { display: block; font-size: 1em; }

    footer { text-align: center; }
    footer .row { display: block; }
    #footer-top { padding-bottom: 1px; }
    #footer-top nav ul { margin-top: 8px; text-align: center; }
    #footer-top nav ul li { margin: 4px 14px; }
    #footer-bottom { padding: 8px 10px 10px; }
    #footer-bottom p { margin: 0; padding: 8px 0; }
    #footer-bottom a { display: inline-block; float: none; }

    #circle { height: 220px; transform: none; width: 220px; }
    #circle-area { padding: 10px 0 14px !important; } 
    #circle-area ul { margin-top: 38px; position: static; transform: none; }
    #circle-area li { font-size: 1em; line-height: 1.4em; margin: 18px 0 !important; position: static; text-align: left !important; }
    #circle-area li:first-of-type { border-right-width: 0; border-left: 4px solid #00657B; }
    
    .photo-carousel { margin: 24px 5% 0; padding: 0 6%; }
    .photo-carousel div { flex-wrap: wrap; }
    .photo-carousel div img { margin-bottom: 18px; width: 48%; }
    .photo-carousel > span { margin-top: 14px; }
}

@media screen and (max-width: 550px ) {
    #homepage-header div { margin: 20px auto 52px; padding: 14px 24px; width: 100%; } 
    #homepage-header h2 { font-size: 1.8em; padding-left: 44px; }
    #homepage-header h2 span { font-size: .8em; margin-top: 6px; }
    #homepage-header h2:before,
    #homepage-header h2:after { height: 24px; top: 4px; width: 4px; }
    #homepage-header h2:after { left: 20px; }
    #homepage-header ul { flex-wrap: wrap; gap: 14px; margin-top: 30px; }
    #homepage-header li { margin: 3px 0 0; } 
    #homepage-header small { bottom: 10px; font-size: .8em; left: 12px; padding: 2px 8px; }

    #facility-aerial button { font-size: .75em; height: 28px; line-height: 28px; width: 28px; }

    #subpage-header { padding: 36px 8% 44px !important; }
    #subpage-header h2 { font-size: 2.6em; padding-left: 44px; }
    #subpage-header h2:before, 
    #subpage-header h2:after { height: 24px; top: 8px; width: 4px; }
    #subpage-header h2:after { left: 22px; }
    #subpage-header p { font-size: 1em; padding-left: 44px; }
    
    .photo-carousel { margin: 24px 5% 0; padding: 0 14%; }
    .photo-carousel div { flex-wrap: wrap; }
    .photo-carousel div img { margin-bottom: 12px; width: 98%; }
    .photo-carousel button img { width: 30px; }
}

@media screen and (max-width: 380px) {                               
    #project-photos .photo-carousel { padding: 0 14%; }

    #subpage-header { padding: 26px 12% 26px 8% !important; }
    #subpage-header h2 { font-size: 1.8em; font-weight: 700; padding-left: 38px; }
    #subpage-header h2:before, 
    #subpage-header h2:after { top: 4px; width: 3px; }
    #subpage-header h2:after { left: 20px; }
    #subpage-header p { font-size: .9em; margin-top: 4px; padding-left: 38px; }
}