@charset "UTF-8";


/*----------------------------------------------- 
                Var
-----------------------------------------------*/

:root {
  --primary: #EB5463;
  --secondary: #6660E8;
  --text_v: #D9D4D4;
  --text: #9E9B9B;
  --headline: #403333;
  --background: #F8F4F3;


  --transition: 0.2s ease-in-out;
  --fontsize-primary: 19px;
  --fontsize-secondary: 18px;
  --fontsize-tertiary: 17px;
  --font: 'Inter', sans-serif;
  --button-fontweight: 500;
  --button-padding: 12px 28px 12px 28px;
  --button-fontcolor: #fff;

  --outer-container-mw: 1720px;
  --inner-container-mw: 1200px;
}

/*----------------------------------------------- 
                CSS default 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;
    text-decoration: none;
    box-sizing: border-box;
    font-family: 'Inter', sans-serif;
}

* {
  	margin: 0;
    box-sizing: border-box;
}

/*----------------------------------------------- 
                    General
-----------------------------------------------*/

html {
  	height: 100%;
    scroll-behavior: smooth;
}

body {
	margin: 0;
  	overflow: auto;
  	background-color: #fff;
    overflow-x: hidden;
    /*--- font-family: 'Source Sans Pro', sans-serif; --*/
    font-family: 'Inter', sans-serif;
}

html, body {
    height: 100%;
    overflow-x: none;
}

p {
    color: var(--text);
    font-size: 19px;
    line-height: 1.45;
}

h1 {
    color: var(--headline);
    font-size:71px;
    font-weight: 600;
}

h2 {
    color: var(--headline);
    font-size: 48px;
    font-weight: 600;
}

h3 {
    color: var(--headline);
    font-size: 36px;
    font-weight: 600;
}

h4 {
}

hr {
    width: 95%; 
    margin: auto;
    border-top: 1px solid var(--background);
}

span {
    color: var(--text);
}

.flex {
    display: flex;
    flex-direction: row;
}

.container {
    width: 65%;
    margin: auto;
    max-width: var(--inner-container-mw);
}

.button-secondary {
    background-color: var(--secondary);
    border-radius: 6px;
    opacity: 1;
    font-size: var(--fontsize-tertiary);
    font-weight: var(--button-fontweight);
    padding: var(--button-padding);
    color: var(--button-fontcolor);
    transition: var(--transition);
    display: inline-block;
}

.button-primary {
    background-color: var(--primary);
    border-radius: 6px;
    opacity: 1;
    font-size: var(--fontsize-tertiary);
    font-weight: var(--button-fontweight);
    padding: var(--button-padding);
    color: var(--button-fontcolor);
    transition: var(--transition);
    display: inline-block;
}

.button-tertiary {
    border-radius: 6px;
    opacity: 1;
    font-size: var(--fontsize-tertiary);
    font-weight: var(--button-fontweight);
    padding: var(--button-padding);
    color: var(--primary);
    transition: var(--transition);
    display: inline-block;
    border: 2px solid var(--primary);
}


.button-primary:hover, .button-secondary:hover, .button-tertiary:hover {
    opacity: 0.75;
}

.link-secondary {
    color: var(--secondary);
    font-size: var(--fontsize-tertiary);
    font-weight: var(--button-fontweight);
    transition: var(--transition);
}

.link-tertiary{
    color: var(--primary);
    font-size: var(--fontsize-tertiary);
    font-weight: var(--button-fontweight);
    transition: var(--transition);
}

.link-tertiary i {
    display: inline-block;
    vertical-align: -5px;
    font-size: 21px;
    margin-left: 7px;
    transition: var(--transition);
}

.link-secondary i {
    display: inline-block;
    vertical-align: -5px;
    font-size: 21px;
    margin-left: 7px;
    transition: var(--transition);
}

.link-secondary:hover i, .link-secondary:hover, .link-tertiary:hover i, .link-tertiary:hover {
    color: var(--primary);
    transform: translateX(5px);
}

/*----------------------------------------------- 
                    Hero
-----------------------------------------------*/

.hero {
    margin: auto;
    box-sizing: border-box;
    padding: 0px 0px 0px 0px;
}

.nav-container {
    width: 65%;
    margin: auto;
    transition: var(--transition);
    max-width: var(--inner-container-mw);
}

.nav-bar {    
    width: 100%;
    margin: auto;
    height: 90px;
    align-items: center;
    padding: 0px 0px 0px 0px;
}

.nav-bar ul {
    list-style-type: none;
    margin: 0;
    padding: 0;
    overflow: hidden;
    width: 100%;
    z-index: 1;
}

.nav-bar li {
    display: inline;
}

.nav-bar li:first-child {
    padding: 4px 12px 4px 0px;
}

.nav-bar li:not(:first-child) {
    padding: 4px 12px 4px 12px;
}

.nav-item {
    font-size: var(--fontsize-primary);
    color: var(--text);
    font-weight: 500;
    transition: var(--transition);
}

.nav-item:hover {
    color: var(--headline);
}

.nav-item-mobile {
    font-size: var(--fontsize-primary);
    color: var(--text);
    font-weight: 500;
    transition: var(--transition);
    display: none;
    align-items: center;
}

.nav-item-mobile:hover, .nav-item-mobile:active, .nav-item-mobile:focus {
    color: var(--headline);
    border-bottom: 2px solid var(--primary);
}

.active {
    color: var(--headline) !important;
    border-bottom: 2px solid var(--primary) !important;
}

.nav-action {
    width: 95%; 
    max-width: var(--outer-container-mw);
    height: 90px; 
    justify-content: 
    space-between; 
    top: 0; 
    position: absolute; 
    margin-left: auto; 
    margin-right: auto; 
    left: 0;
    right: 0; 
    text-align: center; 
    align-items: center; 
    transition: var(--transition);
}

#title {
    margin: 120px 0px 160px 0px;
}

#title h1 {
    margin-bottom: 100px;
}

.mobile-logo {
    display: none;
}

/*----------------------------------------------- 
                    Portfolio
-----------------------------------------------*/

#portfolio {
    margin: 100px 0px 100px 0px;
}

.featured-parent {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: 1fr;
    gap: 0px 100px;
    align-items: center;
    margin: 100px 0px 10px 0px;
}

.featured-text *:not(:first-child):not(:last-child) {
    margin: 25px 0px 45px 0px;
}

.left {
    grid-area: 1 / 1 / 2 / 2;  
}

.right {
    grid-area: 1 / 2 / 2 / 3;
}

.featured-img > img {
    object-fit: cover;
    width: 100%;
    max-height: 100%;
}

/*----------------------------------------------- 
                    Contact
-----------------------------------------------*/

#contact {
    margin: 100px 0px 100px 0px;
}

.contact-frame {
    justify-content: space-between;
    gap: 0px;
}

.contact-text {
    flex-grow: 0;
    flex-shrink: 0;
    flex-basis: 40%;
}

.contact-form {
    flex-grow: 0;
    flex-shrink: 0;
    flex-basis: 50%;
}

label {
    padding: 12px 12px 12px 0px;
    display: inline-block;
    font-size: var(--fontsize-tertiary);
    color: var(--headline);
}

input[type=text], input[type=email] {
    width: 100%;
    padding: 12px;
    border: 1px solid var(--text);
    border-radius: 6px;

    font-size: var(--fontsize-tertiary);
    font-family: var(--font);
    color: var(--headline);

    outline: none;
    transition: var(--transition);
}

input[type=text]:focus, input[type=email]:focus {
    border-left: 5px solid var(--primary);
}

textarea {
    height: 150px;
    font-size: var(--fontsize-tertiary);
    font-family: var(--font);
    color: var(--headline);
    width: 100%;
    padding: 12px;
    border: 1px solid var(--text);
    border-radius: 6px;
    resize: vertical;
    outline: none;
    transition: var(--transition);
}

textarea:focus {
    border-left: 5px solid var(--primary);
}

input[type=submit] {
    background: none;
    color: inherit;
    border: none;
    padding: 0;
    font: inherit;
    cursor: pointer;
    outline: inherit;

    background-color: var(--primary);
    border-radius: 6px;
    opacity: 1;
    font-size: var(--fontsize-tertiary);
    font-weight: var(--button-fontweight);
    padding: var(--button-padding);
    color: var(--button-fontcolor);
    transition: var(--transition);
    display: inline-block;
}

input[type=submit]:hover {
    opacity: 0.75;
}

/*----------------------------------------------- 
                    Footer
-----------------------------------------------*/

.footer-container {
    transition: var(--transition);
    background-color: #F8F4F3;
    margin: auto;
}

.footer-bar {    
    width: 95%;
    max-width: var(--outer-container-mw);
    margin: auto;
    height: 90px;
    align-items: center;
    padding: 0px 0px 0px 0px;
    justify-content: space-between;
}

.footer-bar ul {
    list-style-type: none;
    margin: 0;
    padding: 0;
    overflow: hidden;
    display: block;
}

.footer-bar li {
    display: inline;
}

.footer-bar li {
    padding: 4px 12px 4px 12px;
}

.footer-item {
    font-size: var(--fontsize-tertiary);
    color: var(--text);
    font-weight: 500;
    transition: var(--transition);
}

.footer-item:hover {
    color: var(--headline);
}


/*----------------------------------------------- 
                Project page
-----------------------------------------------*/

.project-title {
    margin: 80px 0px 120px 0px;
}

.project-image-wide {
    width: 95%;
    margin: auto;
    display: block;
    height: 500px;
    max-width: var(--outer-container-mw);
}

.project-image-wide img {
    width: 100%;
    height:100%;
    object-fit:cover;
    max-width: var(--outer-container-mw);
}

.project-intro p {
    margin: 40px 0px 0px 0px;
}

.project-intro { 
    margin: 100px 0px 100px 0px;
}

/*------- 3 col project grid -------*/

.project-img-parent {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: 1fr;
    gap: 0px 50px;
}

.div2 { 
    grid-area: 1 / 1 / 2 / 2; 
}
.div3 { 
    grid-area: 1 / 2 / 2 / 3; 
}
.div4 { 
    grid-area: 1 / 3 / 2 / 4; 
}

.project-img {
    display: block;
    width: 100%;
    height: 100%;
}

.project-img-parent img {
    object-fit: cover;
    width: 100%;
    height:100%;
}

/*------- 2 col project grid -------*/

.project-parent {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: 1fr;
    gap: 0px 100px;
    margin: 100px 0px 100px 0px;
}

.project-parent * p {
    margin: 40px 0px 100px 0px;
    text-align: justify;
}

.col-1 { 
    grid-area: 1 / 1 / 2 / 2; 
}
.col-2 { 
    grid-area: 1 / 2 / 2 / 3; 
} 

.col-img {
    display: block;
    width: 100%;
    height: 100%;
}

.col-img img {
    object-fit: cover;
    width: 100%;
}



/*----------------------------------------------- 
                Media queries
-----------------------------------------------*/

@media screen and (max-width: 1480px) {

/*------- General -------*/
hr { width: 85%; }
h1 { font-size: 60px; }

/*------- Nav -------*/
.nav-container { width: 40%; }
.nav-action { width: 85%; }
.container { width: 85%; }

}


@media screen and (max-width: 1024px) {

/*------- General -------*/
h1 { font-size: 50px; }

/*------- Nav -------*/
.nav-container { text-align: right; }
.nav-item-mobile { display: inline-block; }
.nav-item { display: none; }
.nav-lang { display: none; }


/*------- Contact -------*/
.contact-frame { flex-direction: column; justify-content: space-between; gap: 0px; }

/*------- Project page -------*/
.project-image-wide { max-height: 400px; }
.project-intro { margin: 80px 0px 80px 0px; }

.project-img-parent { grid-template-columns: 1fr; grid-template-rows: repeat(3, 1fr); gap: 50px 0px; }
.div2 { grid-area: 1 / 1 / 2 / 2; }
.div3 { grid-area: 2 / 1 / 3 / 2; }
.div4 { grid-area: 3 / 1 / 4 / 2; }

.project-parent { grid-template-columns: 1fr; grid-template-rows: repeat(2, 1fr); gap: 50px 0px; margin: 80px 0px 80px 0px; }
.project-parent * p { margin: 25px 0px 50px 0px; }
.col-1 { grid-area: 1 / 1 / 2 / 2; }
.col-2 { grid-area: 2 / 1 / 3 / 2; } 

}


@media screen and (max-width: 768px) {

/*------- General -------*/
h1 { font-size: 44px; }
h2 { font-size: 36px; }
h3 { font-size: 28px; }

/*------- Nav -------*/
.nav-extension { display: none; }
.nav-container { width: 85%; }
.nav-bar li:last-child { padding: 4px 0px 4px 12px; }

#title { text-align: center; }

/*------- Portfolio -------*/
.featured-parent { grid-template-columns: 1fr; grid-template-rows: repeat(2, 1fr); gap: 50px 0px; margin: 0px 0px 50px 0px; align-items: top; }
.left { grid-area: 1 / 1 / 2 / 2; }
.right { grid-area: 2 / 1 / 3 / 2; }

.project-image-wide { max-height: 250px; }
.project-title { margin: 40px 0px 80px 0px; }

}


@media screen and (max-width: 480px) {
.footer-bar { flex-direction: column; padding: 18px 0px 18px 0px; }
.mobile-logo { display: block; }
.logo { display: none; }

.project-title {
    text-align: center;
}
.project-image-wide { max-height: 200px; }

}