@charset "UTF-8";

/* ── Base ─────────────────────────────────────────────────────────────────── */
html {
    height: 100%;
    overflow: hidden;
    font-size: 100%;
}
body {
    margin: 0;
    padding: 0;
    height: 100%;
    overflow: hidden;
}
.site-wrapper {
    font-family: "PT Sans", Helvetica, sans-serif;
    font-style: normal;
    font-size: 100%;
    position: relative;
    overflow-y: scroll;
    scroll-behavior: smooth;
    display: block;
    margin: 0 auto;
    padding: 0;
    min-height: 620px;
    min-width: 320px;
    height: 100%;
    -webkit-transition: all 2s ease-in-out;
    transition: all 2s ease-in-out;
}

/* ── Typography ───────────────────────────────────────────────────────────── */
title { display: none; }

h1 {
    font-size: 3em;
    font-family: "Niveau Grotesk", "PT Sans", Helvetica, sans-serif;
    letter-spacing: 1px;
    font-weight: 400;
}
h2 {
    font-size: 2em;
    font-family: "Niveau Grotesk", "PT Sans", Helvetica, sans-serif;
    letter-spacing: 4px;
    font-weight: 500;
    text-transform: uppercase;
    margin-bottom: 20px;
}
h4 {
    font-size: 2em;
    font-family: "Niveau Grotesk", "PT Sans", Helvetica, sans-serif;
    letter-spacing: 1px;
    font-weight: bold;
}
h5 {
    font-size: 22pt;
    font-family: "Niveau Grotesk", "PT Sans", Helvetica, sans-serif;
    letter-spacing: 4px;
    font-weight: 500;
    text-transform: uppercase;
    margin-bottom: 20px;
}
p {
    font-family: "PT Sans", Trebuchet, Helvetica, sans-serif;
    color: rgba(0,0,0,.9);
    font-size: 1em;
    line-height: 1.6em;
    font-weight: normal;
    max-width: 750px;
    margin-top: 1em;
    margin-bottom: 1em;
}
p.photo-caption { color: rgba(0,0,0,.7); }

h1, h2, h3, h4, h5 { color: rgba(255,255,255,.9); }
ul { color: white; }

hr {
    margin-top: 20px;
    margin-bottom: 20px;
    opacity: .05;
    border: 0;
    height: 2px;
    background-image: linear-gradient(to left, white, black, white);
}

/* ── Links ────────────────────────────────────────────────────────────────── */
a {
    color: rgba(0,0,0,.9);
    text-decoration: none;
}
a:focus { outline: thin; }

.site-content a,
.slider-container a {
    color: #eeeeee;
    text-decoration: none;
}
.site-content a:hover,
.site-content a:active,
.slider-container a:focus,
.slider-container a:active {
    color: #000;
    outline: 0;
}

/* link underline transitions */
.site-content a,
.slider-container a,
nav ul li a,
.header figcaption a,
button,
.information-content a,
.site-path a {
    -webkit-box-shadow: inset 0 0 0 rgba(15,15,15,.7);
    box-shadow: inset 0 0 0 rgba(15,15,15,.7);
    -webkit-transition: color 220ms ease-in, box-shadow 320ms ease-in-out;
    transition: color 220ms ease-in, box-shadow 320ms ease-in-out;
}
nav ul li a,
.header figcaption a,
.information-content a,
.site-path a {
    -webkit-box-shadow: inset 0 -2px 0 rgba(15,15,15,0);
    box-shadow: inset 0 -2px 0 rgba(15,15,15,0);
    padding-bottom: 1px;
}
.footer-message a,
.information-content .bio p a,
.construction p a {
    -webkit-box-shadow: inset 0 0 0 rgba(0,0,0,0), 0 1px 0 rgba(0,0,0,1);
    box-shadow: inset 0 0 0 rgba(0,0,0,0), 0 1px 0 rgba(0,0,0,1);
}
.site-content a:focus,
.site-content a:hover,
.slider-container a:focus,
.slider-container a:hover,
nav ul li a:focus,
nav ul li a:hover,
.header figcaption a:focus,
.header figcaption a:hover,
button:focus,
button:hover,
.information-content a:focus,
.information-content a:hover,
.information-content .bio p a:focus,
.information-content .bio p a:hover,
.site-path a:focus,
.site-path a:hover,
.slider-container a.slidetitle-active:hover,
.slider-container a.slidetitle-active:focus,
.construction p a:hover,
.construction p a:focus {
    color: #000;
    -webkit-box-shadow: inset 0 0 0 rgba(0,0,0,0), 0 3px 0 rgba(0,0,0,1);
    box-shadow: inset 0 0 0 rgba(0,0,0,0), 0 3px 0 rgba(0,0,0,1);
}
.site-content a img,
.slider-container a img {
    -webkit-box-shadow: 0 0 0 8px #fff;
    box-shadow: 0 0 0 8px #fff;
}

/* ── Header ───────────────────────────────────────────────────────────────── */
.header {
    background-color: rgba(255,255,255,.4);
    height: 59px;
    margin: 0;
    padding: 0;
    position: fixed;
    display: block;
    vertical-align: middle;
    overflow: visible;
    top: 0;
    width: 100%;
    z-index: 1000;
    border-color: rgba(255,255,255,.1);
    border-width: 0 0 1px 0;
    border-style: solid;
    -webkit-transition: all 2s ease-in-out;
    transition: all 2s ease-in-out;
}
.header figure {
    margin: 0;
    margin-left: 6%;
    display: block;
    float: left;
}
#masthead {
    width: 401px;
    margin-top: 17px;
    padding-right: 0;
    padding-bottom: 4px;
    padding-top: 4px;
    float: left;
    background: rgba(255,255,255,0);
    border-radius: 3px;
    transition: background .2s ease-in;
}
#masthead:focus,
#masthead:hover {
    background: rgba(255,255,255,.05);
    transition: background .2s ease-in;
}
.header figcaption {
    font-family: "Montserrat", "Helvetica", sans-serif;
    text-transform: uppercase;
    font-weight: 900;
    font-size: 15px;
    padding-top: 7px;
    margin-left: -1px;
    clear: both;
    letter-spacing: 3.36px;
}
.header li.top-menu-item,
.i {
    display: block;
    vertical-align: middle;
    align-content: center;
    text-align: center;
}
nav {
    position: relative;
    float: right;
    display: block;
    clear: none;
    right: 0;
    height: 100px;
    overflow: visible;
    width: calc(93% - 400px);
}
nav ul {
    margin-top: 13px;
    display: inline-block;
}
ul#mainprojects {
    margin-bottom: 0;
    padding-right: 65px;
}
nav ul li a { color: rgba(0,0,0,.9); }
nav ul li.topmenu-item a {
    border-width: 2px;
    border-radius: 3px 3px 0 0;
    border-style: solid;
    border-color: rgba(255,255,255,.05);
    padding: 7px 7px 5px 7px;
    -webkit-transition: all .3s ease-in-out;
    transition: all .3s ease-in-out;
    box-sizing: border-box;
}
nav ul li.topmenu-item a:focus,
nav ul li.topmenu-item a:hover {
    border-color: rgba(255,255,255,.5);
    color: rgba(255,255,255,.7);
}
li.topmenu-item {
    color: black;
    vertical-align: middle;
    float: left;
    font-size: .9em;
    padding: .2em;
    padding-top: 22px;
    padding-right: .8em;
    display: inline-block;
    letter-spacing: 1.5px;
    font-weight: bold;
}

/* Active page nav item — targets body class instead of html class */
body.parkmerced-page nav #parkmerced-topnav,
body.ftf-engineering-page nav #ftf-engineering-topnav,
body.reem-al-zahabi-page nav #reem-al-zahabi-topnav,
body.misc-page nav #misc-topnav {
    display: block;
    padding-top: 12px;
}
body.parkmerced-page nav #parkmerced-topnav a,
body.ftf-engineering-page nav #ftf-engineering-topnav a,
body.reem-al-zahabi-page nav #reem-al-zahabi-topnav a,
body.misc-page nav #misc-topnav a {
    color: rgba(255,255,255,.9);
    background: rgba(0,0,0,.3);
    font-size: 1.45em;
    line-height: 1em;
    letter-spacing: 2px;
    padding: 7px 7px 4px 7px;
    border-width: 2px;
    border-radius: 3px 3px 0 0;
    border-style: solid;
    display: block;
    -webkit-box-shadow: 0 1px 40px rgba(255,255,255,.15), inset 0 1px 10px rgba(0,0,0,.2);
    box-shadow: 0 1px 40px rgba(255,255,255,.15), inset 0 1px 10px rgba(0,0,0,.2);
    -webkit-transition: all .3s ease-in-out;
    transition: all .3s ease-in-out;
    -webkit-font-smoothing: antialiased;
}
body.parkmerced-page nav #parkmerced-topnav a:focus,
body.parkmerced-page nav #parkmerced-topnav a:hover,
body.ftf-engineering-page nav #ftf-engineering-topnav a:focus,
body.ftf-engineering-page nav #ftf-engineering-topnav a:hover,
body.reem-al-zahabi-page nav #reem-al-zahabi-topnav a:focus,
body.reem-al-zahabi-page nav #reem-al-zahabi-topnav a:hover,
body.misc-page nav #misc-topnav a:focus,
body.misc-page nav #misc-topnav a:hover {
    border-color: rgba(255,255,255,.8);
    background: rgba(0,0,0,1);
    color: rgba(255,255,255,1);
}
body.parkmerced-page nav #parkmerced-topnav::after,
body.ftf-engineering-page nav #ftf-engineering-topnav::after,
body.reem-al-zahabi-page nav #reem-al-zahabi-topnav::after,
body.misc-page nav #misc-topnav::after {
    opacity: .8;
    font-size: 1em;
    height: 20px;
    padding-top: 17px;
    padding-left: 5px;
    padding-right: 7px;
    margin-top: 0;
    white-space: nowrap;
    position: absolute;
    display: block;
    color: white;
    letter-spacing: 2px;
    -webkit-transition: opacity .3s ease-in-out;
    transition: opacity .3s ease-in-out;
    -webkit-font-smoothing: antialiased;
}
/* Page captions — set via ACF project_tagline field, injected here by WP */
body.parkmerced-page nav #parkmerced-topnav::after    { content: attr(data-caption); }
body.ftf-engineering-page nav #ftf-engineering-topnav::after { content: attr(data-caption); }
body.reem-al-zahabi-page nav #reem-al-zahabi-topnav::after { content: attr(data-caption); }
body.misc-page nav #misc-topnav::after                { content: attr(data-caption); }

/* ── Info button ──────────────────────────────────────────────────────────── */
.i {
    font-family: "Bree Serif", serif;
    font-size: 50px;
    color: white;
    background: black;
    display: block;
    position: fixed;
    width: 60px;
    height: 59px;
    float: right;
    clear: none;
    right: 0;
    top: 0;
    cursor: pointer;
    border-radius: 3px;
    z-index: 980;
    -webkit-transition: all 220ms ease-in;
    transition: all 220ms ease-in;
}
.i a {
    text-decoration: none;
    color: white;
    display: inline-block;
    padding-left: 9px;
    padding-right: 9px;
    font-weight: bold;
}
.i a:hover,
.i a:active { color: #000; outline: 0; }
.i a {
    padding-bottom: 0;
    -webkit-box-shadow: inset 0 -1px 0 rgba(15,15,15,0);
    box-shadow: inset 0 -1px 0 rgba(15,15,15,0);
    -webkit-transition: all 220ms ease-in;
    transition: all 220ms ease-in;
}
body.information-page .i a:focus,
body.information-page .i a:hover,
body.home-page .i a:focus,
body.home-page .i a:hover {
    color: #000;
    -webkit-box-shadow: inset 0 0 0 rgba(0,0,0,0), 0 3px 0 rgba(0,0,0,1);
    box-shadow: inset 0 0 0 rgba(0,0,0,0), 0 3px 0 rgba(0,0,0,1);
    padding-bottom: 14px;
}
.i:hover {
    background-color: rgba(255,255,255,1);
    box-shadow: inset 0 0 10px 20px rgba(255,255,255,1);
}
.i:hover a { color: black; }

/* ── WordPress admin bar offset ───────────────────────────────────────────── */
/* When logged in, the WP admin bar sits above all fixed elements. Push them   */
/* down so they aren't covered. Admin bar is 32px ≥783px, 46px 600–782px,     */
/* and hidden (not fixed) below 600px so no offset needed there.               */
.admin-bar .header,
.admin-bar .i {
    top: 32px;
}
@media screen and (max-width: 782px) {
    .admin-bar .header,
    .admin-bar .i {
        top: 46px;
    }
}

/* ── Footer ───────────────────────────────────────────────────────────────── */
.site-footer {
    height: 100%;
    width: 100%;
    display: block;
    clear: both;
    overflow: visible;
    position: absolute;
    pointer-events: none;
}
.top-pad {
    width: 100%;
    height: 100vh;
    position: relative;
    display: block;
    opacity: 1;
    background: transparent;
    pointer-events: all;
    box-sizing: border-box;
    z-index: 5;
}
body.slider-page .top-pad { height: 100vh; }

.top-pad a {
    color: rgba(255,255,255,.44);
    font-size: 13px;
    line-height: 11px;
    letter-spacing: 1.5px;
    font-weight: 100;
    opacity: 1;
    display: table;
    padding-top: 2px;
    padding-bottom: 3px;
    background: rgba(70,70,70,.85);
    flex: 100%;
    width: 100%;
    height: 15px;
    position: absolute;
    text-align: center;
    pointer-events: all;
    border-radius: 0;
    border-top-left-radius: 3px;
    border-top-right-radius: 3px;
    bottom: 0;
    -webkit-box-shadow: inset 0 0 22px rgba(0,0,0,.5);
    box-shadow: inset 0 0 22px rgba(0,0,0,.5);
}
.top-pad a span { display: inline-block; }
.top-pad a span#footer-up-arrow {
    opacity: .8;
    font-size: 20px;
    padding-right: 5px;
    padding-bottom: 2px;
    vertical-align: center;
    -webkit-transform: rotateX(180deg);
    transform: rotateX(180deg);
    display: inline-block;
}
.footer {
    position: relative;
    pointer-events: all;
    display: block;
    overflow: visible;
    min-height: 250px;
    height: 40vh;
    bottom: 0;
    background: rgba(200,200,200,.95);
    z-index: 500;
    -webkit-box-shadow: inset 0 0 100px rgba(0,0,0,.3);
    box-shadow: inset 0 0 100px rgba(0,0,0,.3);
    transition: all .2s ease-in;
}
#footer-bottom-button,
#footer-top-button {
    opacity: 0;
    width: 100%;
    position: absolute;
    padding: 0;
    pointer-events: all;
    -webkit-transition: all .4s ease-in;
    transition: all .4s ease-in;
    cursor: pointer;
    border-width: 0;
    border-radius: 0;
}
#footer-bottom-button { height: 20px; bottom: 0; }
#footer-top-button    { height: 25px; bottom: 0; background-color: rgba(0,0,0,0); }
#footer-bottom-button:focus,
#footer-bottom-button:hover,
#footer-top-button:focus,
#footer-top-button:hover { opacity: .1; }
#footer-top-button:focus,
#footer-top-button:hover  { background-color: rgba(0,0,0,1); }

.footer a {
    -webkit-transition: all .2s ease-in;
    transition: all .2s ease-in;
}
.footer a:focus,
.footer a:hover {
    color: #000;
    -webkit-box-shadow: inset 0 0 0 rgba(0,0,0,0), 0 3px 0 rgba(0,0,0,1);
    box-shadow: inset 0 0 0 rgba(0,0,0,0), 0 3px 0 rgba(0,0,0,1);
}
.footer-controls {
    text-align: center;
    height: 25px;
    width: 100%;
    opacity: .8;
    font-size: 20px;
    display: block;
    color: white;
    bottom: 0;
    position: absolute;
}
.footer-content {
    text-align: center;
    margin-top: 0;
    padding-top: 20px;
}
.footer-message { display: block; width: 100%; align-content: center; }
.footer-message p {
    display: inline-block;
    max-width: 385px;
    font-size: 12px;
}
.footer-contact {
    margin-right: 15px;
    margin-left: -10px;
    display: inline-block;
    text-align: right;
    font-size: 15px;
    width: 215px;
}
.footer-social { display: inline-block; }
.footer-social a {
    opacity: .85;
    width: 38px;
    height: 43px;
    margin-left: 10px;
    margin-bottom: -8px;
    display: inline-block;
    background-size: contain;
    background-repeat: no-repeat;
    -webkit-transition: all .25s ease-in;
    transition: all .25s ease-in;
}
.footer-social a:hover {
    opacity: .7;
    -webkit-box-shadow: none;
    box-shadow: none;
}

/* Social icon backgrounds — images live in theme assets */
#social-facebook  { background-image: url('../images/social/facebook-icon.png'); }
#social-linkedin  { background-image: url('../images/social/linkedin-icon.png'); }
#social-pinterest { background-image: url('../images/social/pinterest-icon.png'); }
#social-instagram { background-image: url('../images/social/instagram-icon.png'); }

/* ── Breadcrumb ───────────────────────────────────────────────────────────── */
.site-path {
    color: rgba(150,150,150,1) !important;
    font-weight: 500;
    display: block;
    position: fixed;
    bottom: 29px;
    text-align: right;
    letter-spacing: 1.5px;
    font-size: .8em;
    z-index: 10;
}
.site-path a {
    color: rgba(150,150,150,1) !important;
    padding-bottom: 0;
    box-shadow: none;
}
.site-path a:hover,
.site-path a:focus {
    -webkit-box-shadow: inset 0 0 0 rgba(0,0,0,0), 0 3px 0 rgba(150,150,150,1);
    box-shadow: inset 0 0 0 rgba(0,0,0,0), 0 3px 0 rgba(150,150,150,1);
}

/* ── Buttons ──────────────────────────────────────────────────────────────── */
button,
.button {
    background-color: #25638D;
    display: inline-block;
    cursor: pointer;
    color: #ffffff;
    font-family: niveau-grotesk, "Niveau Grotesk", sans-serif;
    font-size: 170%;
    font-weight: bold;
    letter-spacing: 3px;
    padding: .5em 1.2em;
    text-decoration: none;
    text-shadow: 0 1px 0 #2b665e;
    text-transform: uppercase;
    margin-top: .5em;
    margin-bottom: .5em;
    border: none;
}
button:hover, .button:hover { background-color: #EEEEEE; }
button:active, .button:active { position: relative; top: 1px; }

/* ── Under-construction notice ────────────────────────────────────────────── */
.construction {
    position: fixed;
    display: table;
    overflow: hidden;
    background: #666;
    align-content: center;
    align-items: center;
    border-radius: 5px;
    margin: 120px 90px 0 6%;
    width: calc(94% - 88px);
    height: calc(100% - 178px);
    z-index: 11;
    box-shadow: 0 0 20px 10px rgba(0,0,0,.02), inset 0 0 150px hsla(0,0%,0%,.5);
    border-top: solid;
    border-bottom: solid;
    border-color: #414141;
    border-width: 1px;
}
.construction::before {
    opacity: .05;
    background-color: #556;
    background-image:
        linear-gradient(30deg, #445 12%, transparent 12.5%, transparent 87%, #445 87.5%, #445),
        linear-gradient(150deg, #445 12%, transparent 12.5%, transparent 87%, #445 87.5%, #445),
        linear-gradient(30deg, #445 12%, transparent 12.5%, transparent 87%, #445 87.5%, #445),
        linear-gradient(150deg, #445 12%, transparent 12.5%, transparent 87%, #445 87.5%, #445),
        linear-gradient(60deg, #99a 25%, transparent 25.5%, transparent 75%, #99a 75%, #99a),
        linear-gradient(60deg, #99a 25%, transparent 25.5%, transparent 75%, #99a 75%, #99a);
    background-size: 80px 140px;
    background-position: 0 0, 0 0, 40px 70px, 40px 70px, 0 0, 40px 70px;
    content: '';
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
}
.construction-symbol {
    display: inline-block;
    width: 200px;
    height: 200px;
    background-image: url('../images/hazard.svg');
    opacity: .75;
}
.construction-center {
    display: table-cell;
    vertical-align: middle;
    text-align: center;
    opacity: .7;
}
.construction-text {
    text-align: center;
    opacity: 1;
    margin-top: 0;
    margin-left: 10px;
    margin-right: 10px;
    padding-bottom: 40px;
    letter-spacing: 1px;
    max-width: 280px;
    display: inline-block;
}
.construction-text p { font-weight: 800; }
.construction-mobile { padding-bottom: 10px; padding-right: 1px; }
@media (min-width: 700px) { .construction-mobile { display: none; } }
@media (max-width: 699px) { body.slider-page .loader { display: none; } }

/* ── Generic site content ─────────────────────────────────────────────────── */
.site-content {
    margin: 120px 90px 80px 6%;
    width: calc(94% - 89px);
    height: auto;
    z-index: 1;
    background-color: rgba(255,255,255,.13);
}
.site-content p { padding: 20px; }
