@import url("https://fonts.googleapis.com/css?family=Montserrat:300,400,500,600,700&display=swap");

/* Reset */
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,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}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}table{border-collapse:collapse;border-spacing:0}  


    
html, body {
    position: relative;
    margin: 0;
    padding: 0;
    width: 100%;
    height: 100%;
    font-family: 'Montserrat', Arial, Verdana, sans-serif!important;
    font-size: 16px;
    background-color:#fff!important;
    color:#333;
    scroll-behavior: smooth;
}
    
    
img {
    width:100%;
    position: relative;
}

td {
    vertical-align: top;
}
    
.hero {
    background-size:cover;
    height:100%;
    position:relative;
    background-attachment:scroll;
    background-position: 50% 50%;
}

section, footer {
    position: relative;
}
    
.spacing-section {
    padding:6em 0;
}

.spacing-txt {
    padding-bottom:3em;
}

.anchor-offset {
    position: absolute;
    top:-80px;
}


/* FONTS */
h1 {
    font-family: 'Montserrat', Arial, Verdana, sans-serif!important;
    font-size: 3em;
    padding: 0;
    font-weight: 400;
    line-height: 1.2em;
}

h1.bold, h2.bold {
    text-transform: uppercase;
    font-weight: 700;
}

h2 {
    font-family: 'Montserrat', Arial, Verdana, sans-serif!important;
    font-size: 1.4em;
    margin: 1.2em 0;
    line-height:1.4em;
    text-transform: none;
    font-weight: 400;
}

h3 {
    font-weight:700;
    font-size:1em;
    text-transform: uppercase;
    margin: 1.2em;
}

p {
    font-size: 1em;
    margin: 1em 0;
    line-height: 1.8em;
}

ul {
    margin:0 0 0.25em 1em;
}

li {
    font-size:1em;
    padding:0 0 0.25em;
    list-style: circle;
    line-height: 2.4em;
}
    
b, strong {
    font-weight: 700;
}

i {
    font-style: italic;
}

.label {
    text-transform: uppercase;
    font-size:0.8em;
    font-weight: 700;
}

.txt-white {
    color: #fff;
}
    
.txt-white a {
    color: #fff;
    text-decoration: underline;
}
    
.txt-white a:hover {
    text-decoration: none;
}

.txt-black {
    color:#333;
}

.txt-gray {
    color: #999;
}

a {
    text-decoration: none;
}

.nowrap {
    white-space: nowrap;
}


/* CONTAINERS */

.container-full, .container-compact, .container-limited, .container-page, .container-txt {
    margin:0 auto;
    position:relative;
}
.container-full {width:100%;}
.container-compact, .container-limited {width:96%;}
.container-page, .container-txt {width:80%;}


/* GRIDS */

.grid-2by, .grid-3by, .grid-4by, .grid-6by, .grid-imgby, .grid-cards, .grid-onethird, .grid-twothird {
    position: relative;
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: auto;
}

.grid-2by .card .card-img, .grid-3by .card .card-img, .grid-4by .card .card-img, .grid-6by .card .card-img, .grid-cards .card .card-img {
    height:300px;
}


/* POSITIONING */

.centered {
    margin:0 auto;
    text-align: center;
}

.v-centered {
    margin:0 auto;
    text-align: center;
    position:relative;
    top:50%;
    transform: translateY(-50%);
}

.abs-centered {
    position:absolute;
    top:50%;
    left:50%;
    transform: translate(-50%,-50%);
    margin:0 auto;
    text-align: center;
}
    
.right {
    text-align: right;
}


/* VISUAL STYLING */
.grid-cards .overlay {
    background-color:#00001100;
}
.overlay {
    position:absolute;
    width:100%;
    height:100%;
    background-color:#00001177;
    transition: all 0.5s ease-in-out;
}

.bg-blue {
    background-color:#059fc3;
}

.bg-green {
    background-color:rgba(73,151,51,1);
}

.bg-white {
    background-color:#fff;
}

.bg-gray {
    background-color: #ddd;
}

.bg-black {
    background-color: #000;
}


/* BUTTONS */

a {
    color:#059fc3;
    font-weight:700;
}

.button {
    padding:1.5em 2.5em;
    color:#fff;
    font-size: 1em;
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
    position: relative;
    display: inline-block;
    margin:1em;
    transition: 0.5s ease;
    border-radius: 3px;
    cursor: pointer;
    user-select: none;
}

a.button {
    text-decoration: none;
}

.btn-blue {
    background-color: #059fc3;
}

a.button.btn-blue:hover {
    background-color:#003344;
    color:#fff;
}

.btn-white {
    background-color: #fff;
    color: #059fc3;
    border:2px solid #fff;
}

.bg-blue .btn-white {
    color: #059fc3;
}

.bg-green .btn-white {
    color: #499733;
}

a.button.btn-white:hover {
    background-color:#ffffff33;
    color:#fff;
}

.btn-ghost {
    border:2px solid #fff;
}





/* CARD BUTTONS */

.card a.button {
    display:block;
}

.card .button, .imgby-copy .button, .hover-content .button {
    position:absolute;
    display:block;
    width: 100%;
    bottom:0;
    border-radius: 0;
    box-sizing:border-box;
    margin:0;
    padding:1.5em;
}

.card .button span, .imgby-copy .button span, .hover-content .button span {
    position:absolute;
    right:1.5em;
}
    
.button-disc i {
    position:absolute;
    top:50%;
    left:50%;
    transform: translate(-50%, -50%);
    font-size:1.5em;
    color:#fff;
}
    
.button-disc i a {
    color:#fff;
}


/* TAB BUTTONS */

.tab-menu {
    padding-top:42px;
    border-bottom:3px solid #333;
}

.btn-tab-container {
    position: absolute;
    left:50%;
    transform: translate(-50%, -50px);
    font-size:1.8em;
    line-height: 0;
    text-transform: uppercase;
}
.btn-tab {
    text-align: center;
    border-top-left-radius: 20px;
    border-top-right-radius: 20px;
    border:3px solid #333;
    border-bottom:none;
    color:#333;
    padding:25px 50px 22px;
}

.btn-tab i {
    margin-left:5px;
    font-size:1em;
}

a.btn-tab {
    color:#333;
    transition:none;
}

td a div.button{
    padding:15px 0;
    margin:20px 0 0;
}


/* PANEL */

.panel-image {
    background-size:cover;
    background-position: center;
    
}
.panel-copy {
    padding:5%;
}

.tab {
    position: absolute;
    padding:0em 0.5em;
    z-index: 100;
    top:0;
    left:5%;
    transform: translateY(-95%);
    border-top-left-radius: 6px;
    border-top-right-radius: 6px;
}

.bg-white .tab {
    background-color:#fff;
}

.bg-white a .tab {
    color:#333;
}

/* CARDS */
.hidden-card {
    display: none;
}

.grid-cards .path {
    background-position:50% 50%;
}

.card {
    position: relative;
    background-color:#fff;
    box-shadow: 2px 2px 10px 0 #00000044;
    margin:1em;
    overflow: hidden;
    border-radius:3px;
}

.card-img {
    position: relative;
    background-size:cover;
    background-position: 50% 50%;
}

.card h1, .hover-content h1 {
    padding:0.5em 0.5em 0;
}

.card h2, .hover-content h2 {
    padding:1em 1.5em 0;
}
    
.card p, .hover-content p {
    padding:2em 2em 5.5em;
}

.card h1 ~ p, .card h2 ~ p, .hover-content h1 ~ p, .hover-content h2 ~ p {
    padding-top:0;
}

.card.nobutton p {
    padding-bottom:2em;
}

.card-stack .card {
    margin-top:2em;
}
  



/* RESPONSIVE YOUTUBE */
.videoWrapper {
	position: relative;
	padding-bottom: 56.25%; /* 16:9 */
	padding-top: 25px;
	height: 0;
}
.videoWrapper iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}
    
.videoCopy {
    padding: 0 40px;
}


/* IMGBY */
.imgby-img {
    width:100%;
    height:auto;
    min-height:350px;
    background-size: cover;
    position: relative;
}
 
.imgby-copy {
    width:100%;
    position: relative;
    overflow: hidden;
    padding:10px 0 0;
}

.imgby-copy h1 {
    margin-bottom:0.5em;
}

/* PATHS */
.path {
    position: relative;
    background-size: cover;
    height:350px;
}

.grid-cards .path {
    height:350px;
}
    
.hover-headline {
    position: absolute;
    top:0;
    padding:1.5em;
}
    
.hover-headline h1, .hover-headline h2 {
    position: relative;
    margin:0;
    padding:0;
    color:#fff;
    top:0px;
    transition: .5s ease;
}
    
.hover-content {
    position: absolute;
    bottom:0;
    left:0;
    background-color:rgba(255,255,255,0.9);
    width: 100%;
    height:100%;
    opacity: 0;
    transition: .5s ease;
}

.hover-content h1 {margin-bottom:0.5em;}

.overlay, .hover-headline {
    opacity: 1;
    transition: .5s ease;
}
    
.hover-container:hover .overlay, .hover-container:hover .hover-headline {
    opacity: 0;
}

.hover-container:hover .hover-headline h1, .hover-container:hover .hover-headline h2 {
    top:100px;
}
   
.hover-container:hover .hover-content {
    opacity: 1;
}

/* US GRID */
.us-grid {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: auto;
    background-image:url(../images/path-main2.jpg);
    background-size:cover;
    background-position: 50% 10%;
}
    
.item-main {
    grid-row: 1;
}
    
.item-one .overlay, .item-two .overlay, .item-three .overlay, .item-four .overlay {
    background-color:#00000099;
    outline: 1px dotted #999;
}
    
.item-main-copy {
    padding:2em;
    color:#fff;
    background-color:#00000066;
    height:100%;
}
    
.item-main-copy h2 {
    width:96%;
}


/* NAV BAR */
.navbar {
    display: grid;
    grid-template-columns: auto auto;
    background-color:rgba(255,255,255,0.8) ;
    position:fixed;
    z-index:1000;
    top:0;
    left:0;
    width:100%;
    height:80px;
    margin:0px;
    padding:0px;
    box-shadow:0px 1px 2px 1px rgba(0,0,0,0.2);
    font-size:2em;
}

.navbar-logo {
    position: relative;
}

.navbar-logo img {
    position: relative;
    width: auto;
    height:70px;
    margin-left:20px;
    top:50%;
    transform: translateY(-50%);
}

.navbar-items {
    position: absolute;
    right:0;
}

.navbar-list {
    margin-top: 80px;
    display: none;
}

.navbar-items a {
    display:block;
    font-weight:500;
    color:#333;
    text-align:center;
    padding:1.5em 3em;
    height:100%;
    text-decoration:none;
    background-color:#fff;
    font-size:0.5em;
    border-top:2px solid #999;
}
 
.navbar-items a:hover {
    background-color:rgba(0,0,0,0.5);
    color: #fff;
}

.hamburger {
    position:absolute;
    right:0;
    display:block;
    width:80px;
    height:80px;
    text-align: right;
}
.hamburger:hover, .navbar-items:hover .hamburger {
    background-color:#fff;
}

.hamburger:hover .navbar-list, .navbar-items:hover .navbar-list {
    display: block;
}

.hamburger i {
    position: absolute;
    top:50%;
    left:50%;
    transform: translate(-50%,-50%);
}



/* CFA LOGO */
.cfa-logo {
	width:70px;
	height:70px;
	z-index:1000;
	left:0;
	top:0;
	display:inline-block;
	background-image:url(../images/logo_CFA_200x200_w.png);
	background-color:#457996;
	background-size:60%;
	background-position:20% 20%;
	background-repeat:no-repeat;
	border-bottom-right-radius: 90%;
	box-shadow: inset -3px 0px 5px #00000066;
}
.cfa-logo a {
	background:none!important;
	border:none!important;
}
.cfa-logo a span {
	color:#ffffff00!important;
}  


/* FOOTER */
footer {
    background-color:#333;
    padding:80px 0;
    text-align:center;
    color:#fff;
}

footer .soc-icons-footer a {
    color:#fff;
    padding:0 20px;
    font-size: 5em;
    font-weight:100;
}

footer .footer-legal {
    padding:40px 0 0;
    font-size: 0.8em;
}

footer .footer-legal i {
    padding-right:18px;
    font-size: 0.8em;
}

/* RTB */
.rtbs {
    margin:40px 0 0;
}
.rtb {
    padding: 30px;
}

.rtb p {
    padding-top:0;
}
.rtb-icon {
    background-color:#fff;
    padding:10px;
    width:160px;
    height:160px;
    margin:0 auto;
    border-radius: 100%;
}

.rtb-icon i {
    color:rgba(3,24,51,1);
    font-size:5em;
    position: relative;
    top:50%;
    transform: translateY(-50%);
}

.txt-black .rtb-icon {
    background-color:#333;
}

.txt-black .rtb-icon i {
    color:#fff;
}

/* GALLERY */

.gallery {
    width:80%;
    margin: 0 auto;
}

.gallery-copy {
    margin:30px auto;
}

.gallery-img-large img {
    transition: all 0.5s ease-in-out;
}

.gallery-img-large:hover img {
    transform: scale(1.15);
}

.gallery-grid {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: 1fr;
    grid-gap: 2em;
    margin-top:3em;
}

.gallery-img-large, .gallery-grid div {
    padding:1em;
    box-shadow: 3px 3px 9px 3px rgba(0,0,0,0.2);
    overflow:hidden;
}

.gallery-grid div img {
    transition: all 0.5s ease-in-out;
}

.gallery-grid div:hover img {
    transform: scale(1.25);
}

/* PROFILES */
.profile-hero {
    height:60%;
}

.profile-container {
    top:-160px;
}

.profile-pic {
    width:300px;
    height:300px;
    margin:0 auto;
    position:relative;
    transform: translate(-20px,0);
    top:-80px;
}

.profile-pic img {
    width:300px;
    height:300px;
    object-fit:cover;
    border:20px solid #fff;
    border-radius:100%;
}

.profile-intro h1 {
    text-align:center;
}


/* RESUME */
#resume {
    display:none;
}

#resume h1 {
    margin:0 0 20px;
    padding:0;
}

#resume h2 {
    margin:60px 0 20px;
    padding:0;
}

#resume p {
    margin:0 0 30px;
    padding:0;
}

/* CONTRIBUTORS */
.contributors {
    position: absolute;
    bottom:-38px;
    right:2%;
    text-align:right;
}

.imgby-img .contributors {
    bottom:2%;
    right:2%;
}

.contributors div {
    display: inline-block;
}

.contributors img {
    position: relative;
    background-color:#059fc3;
    width:60px;
    height:60px;
    border-radius:100%;
    transition: all 0.4s ease-in-out;
    border:4px solid #fff;
    object-fit: cover;
}

.contributors a:hover img {
    transform: translateY(-15px);
}




    
/* MEDIA */

/* Smartphones (portrait and landscape) ----------- */
@media only screen 
and (min-device-width :320px) {
    .dt-only {
        display:none;
    }
}
    
/* Small screens ----------- */
@media (min-width: 768px) {

}
    
/* Laptops - medium screens ----------- */
@media only screen and (min-width :1024px) {
    .hero {
        height:100%;
    }
    .hero.short {
        height:70%;
    }
    .profile-hero {
        height:70%;
    }
        
    /* FONTS */
    /* POSITIONING */

        
    /* CONTAINERS */
    .container-full, .container-limited, .container-compact {
        width:96%; 
    }
    .container-page, .container-limited, .container-compact {
        max-width: 1200px;
    }
    .container-txt, .container-compact {
        max-width: 700px;
    }
        
    /* GRIDS */
    .grid-2by, .grid-imgby {
        grid-template-columns: 1fr 1fr;
    }
    .grid-3by {
        grid-template-columns: 1fr 1fr 1fr;
    }
    .grid-4by {
        grid-template-columns: 1fr 1fr;
    }
    .grid-6by {
        grid-template-columns: 1fr 1fr 1fr;
    }
    .grid-onethird {
        grid-template-columns: 1fr 2fr;
    }
    .grid-twothird {
        grid-template-columns: 2fr 1fr;
    }
    .gallery-grid {
        grid-template-columns: 1fr 1fr 1fr 1fr;
        grid-template-rows: 1fr;
    }
    .grid-2by .card .card-img, .grid-3by .card .card-img, .grid-4by .card .card-img, .grid-6by .card .card-img, .grid-cards .card .card-img {
        height:300px;
    }
    .imgby-img {
        min-height:350px;
    }
    .grid-path {
        display: grid;
        grid-template-columns: 1fr 1fr 1fr;
        grid-template-rows: auto;
    }
    .grid-cards {
        display: grid;
        grid-template-columns: 1fr 1fr 1fr;
        grid-template-rows: auto;
    }
        
    /* US GRID */
    .us-grid {
        display: grid;
        grid-template-columns: 2fr 1fr 1fr;
        grid-template-rows: 1fr 1fr;
        background-image:url(../images/path-main2.jpg);
        background-size:cover;
        background-position: 50% 10%;
    }

    .item-main {
        grid-row: 1 / span 2;
    }
        
    .item-main-copy {
        padding:5em;
    }
        
    .item-main-copy h2 {
        width:50%;
    }

    
    /* BUTTONS */

    .tab-menu {
        padding-top:42px;
        border-bottom:2px solid #333;
    }
    .btn-tab-container {
        transform: translate(-50%, -25px);
        font-size:0.8em;
    }
    .btn-tab {
        border-top-left-radius: 12px;
        border-top-right-radius: 12px;
        padding:15px 30px 12px;
        border-width: 2px;
    }

    /* NAVBAR */
    .navbar {
        font-size:1.2em;
        height:80px;
    }
    .navbar-items a {
        padding:30px;
        font-size:1em;
        border-top:none;
    }
    
    .navbar-logo img {
        height:70px;
    }
    .navbar-list {
        margin-top:0px;
        display: block;
    }
    .navbar-items a {
        display:inline-block;
        background-color:rgba(0,0,0,0);
    }
    .navbar-items a:hover {
        background-color:rgba(0,0,0,0.5);
        color: #fff;
    }
    .hamburger {
        display:none;
    }
        
    /* CARDS */

        
    .imgby-img {
        min-height:400px;
    }
    .imgby-copy h1, .imgby-copy p {
        padding-left:40px;
        padding-right:40px;
    }
    
    /* PANEL */
        
    .panel-copy a {
        margin-left:0;
    }
        
    /* GALLERY */
    .gallery {
        width:96%;
        margin: 0 auto;
    }


    /* PATH */
    .path {
        height:350px;
    }
    .grid-cards .path {
        height:350px;
    }

        
    /* RTB */
    .rtb-icon {
        width:60px;
        height:60px;
    }

    .rtb-icon i {
        font-size:2.4em;
    }

    /* RESUME */
    #resume h1 {
        margin:0 0 10px;
    }

    #resume h2 {
        margin:40px 0 10px;
    }

    #resume p {
        margin:0 0 10px;
    }
        
    /* PROFILES */
    .profile-container {
        top:-80px;
    }
        
    .dt-only {
        display:block;
    }

    /* FOOTER */
    footer {
        padding:40px 0;
    }

    footer .soc-icons-footer a {
        padding:0 5px;
        font-size: 2em;
    }

    footer .footer-legal {
        padding:20px 0 0;
        font-size: 0.8em;
    }

    footer .footer-legal i {
        padding-right:0px;
    } 
}
    
@media (min-width: 1280px) {
    .grid-cards {
        display: grid;
        grid-template-columns: 1fr 1fr 1fr 1fr;
        grid-template-rows: auto;
    }
    .grid-4by {
        grid-template-columns: 1fr 1fr 1fr 1fr;
    }
    .grid-6by {
        grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr;
    }
}
    
@media (min-width: 1600px) {
    .grid-cards {
        display: grid;
        grid-template-columns: 1fr 1fr 1fr 1fr;
        grid-template-rows: auto;
    }
    }
        
    @media (min-width: 2400px) {
    .grid-cards {
        display: grid;
        grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr;
        grid-template-rows: auto;
    }
}