/* ======================================================
   KELEMEN VALÉRIA
   Portfolio v2
====================================================== */

:root{

    --bg:#F4F8FC;        /* page background */

    --surface:#FFFFFF;   /* cards only */

    --green:#3F658A;
    --green-dark:#2E4E70;

    --primary:#3F658A;
    --primary-dark:#2E4E70;

    --text:#22252A;
    --text-light:#5F6E7C;
    --muted:#5F6E7C;

    --border:#DCE5EE;

    --radius:20px;

    --shadow:0 18px 45px rgba(34,50,70,.08);

    --max-width:1080px;

}

/* ======================================================
RESET
====================================================== */

*{

    margin:0;
    padding:0;
    box-sizing:border-box;

}

html{

    scroll-behavior:smooth;

}

body{

    font-family:"Inter",sans-serif;

    background:var(--bg);

    color:var(--text);

    font-size:17px;

    line-height:1.75;

    -webkit-font-smoothing:antialiased;

}

/* ======================================================
TYPOGRAPHY
====================================================== */

h1,
h2,
h3{

    font-family:"Cormorant Garamond",serif;

    font-weight:600;

    color:var(--text);

}

h1{

    font-size:clamp(3.4rem,6vw,5rem);

    line-height:.92;

    letter-spacing:-1px;

    margin-bottom:10px;

}

h2{

    font-size:clamp(2rem,4vw,3.2rem);

    line-height:1.1;

}

h3{

    font-size:1.9rem;

}

p{

    color:var(--text-light);

}

a{

    text-decoration:none;

}

/* ======================================================
LAYOUT
====================================================== */

.container{

    width:min(92%,var(--max-width));

    margin:auto;

}

.narrow{

    max-width:720px;

    margin:auto;

}

.section{

    padding:55px 0;

}

.alt{

    background:white;

}

.section-header{

    margin-bottom:35px;

    text-align:center;

}

.section-tag{

    text-transform:uppercase;

    letter-spacing:4px;

    color:var(--green);

    font-size:.72rem;

    font-weight:700;

    margin-bottom:18px;

}

.section-intro{

    max-width:700px;

    margin:18px auto 0;

}

/* ======================================================
HEADER
====================================================== */

.site-header{

    background:var(--bg);

    border-bottom:1px solid var(--border);

    position:sticky;

    top:0;

    z-index:1000;

}

.site-header .container{

    display:flex;

    justify-content:space-between;

    align-items:center;

    padding:22px 0;

}

.logo{

    font-family:"Cormorant Garamond",serif;

    font-size:2.2rem;

    color:var(--text);

    font-weight:700;

}

nav ul{

    display:flex;

    align-items:center;

    gap:34px;

    list-style:none;

}

nav a{

    color:var(--text);

    font-size:.95rem;

    font-weight:500;

    transition:.25s;

}

nav a:hover{

    color:var(--green);

}

.language{

    font-weight:700;

    color:var(--green);

}
/* ======================================================
HERO
====================================================== */

.hero{

    padding-top:50px;

}

.hero-grid{

   display:grid;

    grid-template-columns:1.2fr .8fr;

    gap:90px;

    align-items:center;

}

.hero-content{

    max-width:560px;

}

.eyebrow{

    display:inline-block;

    margin-bottom:20px;

    font-size:.75rem;

    font-weight:700;

    text-transform:uppercase;

    letter-spacing:4px;

    color:var(--green);

}

.hero h2{

    margin:18px 0;

    font-family:"Inter",sans-serif;

    font-size:1.7rem;

    font-weight:300;

    line-height:1.35;

    color:var(--green);

}

.lead{

    max-width:430px;

    margin-bottom:32px;

    font-size:.95rem;

}

/* ======================================================
BUTTONS
====================================================== */

.hero-buttons{

    display:flex;

    gap:16px;

    flex-wrap:wrap;

}

.btn{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    padding:12px 24px;

    border-radius:999px;

    font-weight:600;

    transition:.25s;

    cursor:pointer;

}

.btn-primary{

    background:var(--green);

    color:white;

}

.btn-primary:hover{

    background:var(--green-dark);

    transform:translateY(-2px);

}

.btn-secondary{

    background:transparent;

    color:var(--green);

    border:1px solid var(--green);

}

.btn-secondary:hover{

    background:var(--green);

    color:white;

}

/* ======================================================
HERO IMAGE
====================================================== */

.hero-image{

    display:flex;

    justify-content:center;

    position:relative;

}


.hero-photo{

    width:380px;

    height:500px;

    object-fit:cover;

    object-position:center top;

    border-radius:22px;

    display:block;

    box-shadow:0 30px 60px rgba(0,0,0,.10);

    transition:.35s;

}

.hero-photo:hover{

    transform:translateY(-4px);

}

/* ======================================================
INTRO
====================================================== */

.intro{

    text-align:center;

}

.intro h2{

    max-width:760px;

    margin:0 auto 28px;

}

.intro p{

    max-width:700px;

    margin:auto;

    font-size:1.05rem;

}
/* ======================================================
PUBLICATIONS
====================================================== */

.publication-grid{

    display:grid;

    grid-template-columns:repeat(2,340px);

    justify-content:center;

    gap:60px;

}

.publication{

    background:transparent;

    box-shadow:none;

    padding:0;

    text-align:center;

}

.publication:hover{

    transform:translateY(-6px);

}

.publication img{

    width:240px;

    height:auto;

    margin:0 auto;

    display:block;

    border-radius:8px;

    box-shadow:0 10px 25px rgba(0,0,0,.12);

}

.publication h3{

    margin:18px 0 8px;

    font-size:2rem;

}

.publication p{

    margin:0 auto 14px;

    max-width:260px;

}

.publication a{

    color:var(--green);

    font-weight:600;

    font-size:.95rem;

}

.publication a:hover{

    opacity:.7;

}

/* ======================================================
EXPERTISE
====================================================== */

.expertise-grid{

    display:grid;

    grid-template-columns:repeat(2,1fr);

    gap:28px;

}

.expertise-card{

    background:white;

    padding:40px;

    border-radius:20px;

    box-shadow:var(--shadow);

    transition:.3s;

}

.expertise-card:hover{

    transform:translateY(-5px);

}

.card-number{

    display:block;

    color:var(--green);

    font-size:.8rem;

    font-weight:700;

    letter-spacing:4px;

    margin-bottom:22px;

}

.expertise-card h3{

    margin-bottom:18px;

}

.expertise-card p{

    line-height:1.8;

}

/* ======================================================
PROJECTS
====================================================== */

.projects-grid{

    display:grid;

    gap:45px;

}

.project-card{

    display:grid;

    grid-template-columns:420px 1fr;

    background:white;

    border-radius:20px;

    overflow:hidden;

    box-shadow:var(--shadow);

    transition:.3s;

}

.project-card:hover{

    transform:translateY(-5px);

}

.project-image{

    display:flex;

    align-items:center;

    justify-content:center;

    padding:40px;

    background:#ffffff;

}

.project-image img{

    width:220px;

    height:auto;

    max-width:100%;

    object-fit:contain;

}

.project-card:hover .project-image img{

    transform:scale(1.04);

}

.project-content{

    padding:50px;

    display:flex;

    flex-direction:column;

    justify-content:center;

}

.project-category{

    display:inline-block;

    margin-bottom:18px;

    text-transform:uppercase;

    letter-spacing:4px;

    color:var(--green);

    font-size:.72rem;

    font-weight:700;

}

.project-content h3{

    margin-bottom:18px;

}

.project-content p{

    max-width:520px;

}

/* ======================================================
QUOTE
====================================================== */

.quote-section{

    padding:150px 0;

}

blockquote{

    max-width:820px;

    margin:auto;

    text-align:center;

    font-family:"Cormorant Garamond",serif;

    font-size:clamp(2.4rem,4vw,3.6rem);

    line-height:1.3;

    color:var(--green);

    font-style:italic;

}
/* ======================================================
CONTACT
====================================================== */
.contact-single{

    display:flex;

    justify-content:center;

}

.contact-card{

    max-width:520px;

    width:100%;

    text-align:center;

    background:white;

    padding:50px;

    border-radius:20px;

    box-shadow:var(--shadow);

}

.contact-email{

    margin-top:28px;

    font-size:1.2rem;

}

.contact-email a{

    color:var(--green);

    text-decoration:none;

    font-weight:500;

}

.contact-email a:hover{

    text-decoration:underline;

}
.contact-btn{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    margin-top:30px;

    padding:14px 30px;

    background:var(--green);

    color:white;

    text-decoration:none;

    border-radius:999px;

    font-weight:600;

    transition:.25s;

}

.contact-btn:hover{

    transform:translateY(-2px);

    opacity:.9;

}

/* ======================================================
FOOTER
====================================================== */

.site-footer{

    margin-top:120px;

    background:#23374D;

    color:white;

    padding:70px 0 30px;

}

.footer-grid{

    display:grid;

    grid-template-columns:2fr 1fr 1fr;

    gap:60px;

    margin-bottom:60px;

}

.site-footer h3,
.site-footer h4{

    color:white;

    margin-bottom:16px;

}

.site-footer p{

    color:rgba(255,255,255,.7);

}

.site-footer ul{

    list-style:none;

}

.site-footer li{

    margin-bottom:10px;

}

.site-footer a{

    color:rgba(255,255,255,.75);

    transition:.25s;

}

.site-footer a:hover{

    color:white;

}

.copyright{

    text-align:center;

    padding-top:30px;

    border-top:1px solid rgba(255,255,255,.12);

    color:rgba(255,255,255,.55);

    font-size:.9rem;

}

/* ======================================================
BACK TO TOP
====================================================== */

.back-to-top{

    position:fixed;

    right:30px;

    bottom:30px;

    width:50px;

    height:50px;

    border:none;

    border-radius:50%;

    background:var(--green);

    color:white;

    cursor:pointer;

    font-size:1.2rem;

    box-shadow:var(--shadow);

    transition:.25s;

}

.back-to-top:hover{

    background:var(--green-dark);

    transform:translateY(-3px);

}

/* ======================================================
IMAGES
====================================================== */

img{

    display:block;

    max-width:100%;

}

/* ======================================================
RESPONSIVE
====================================================== */

@media (max-width:768px){

    .hero-grid{

        grid-template-columns:1fr;

        gap:50px;

        text-align:center;

    }

    .hero-content{

        max-width:700px;

        margin:auto;

    }

    .hero-buttons{

        justify-content:center;

    }

    .hero-image{

        order:-1;

    }

    .hero-image::before{

        display:none;

    }

    .publication-grid{

        grid-template-columns:1fr;

    }

    .expertise-grid{

        grid-template-columns:1fr 1fr;

    }

    .project-card{

        grid-template-columns:1fr;

    }

    .contact-grid{

        grid-template-columns:1fr;

    }

    .footer-grid{

        grid-template-columns:1fr;

        gap:40px;

    }

}

@media (max-width:768px){

    body{

        font-size:16px;

    }

    .section{

        padding:80px 0;

    }

    .site-header .container{

        flex-direction:column;

        gap:18px;

    }

    nav ul{

        flex-wrap:wrap;

        justify-content:center;

        gap:16px;

    }

    .hero-photo{

        width:100%;

        width:320px;

        height:420px;

    }

    .hero-buttons{

        flex-direction:column;

    }

    .btn{

        width:100%;

    }

    .expertise-grid{

        grid-template-columns:1fr;

    }

    .project-content{

        padding:35px;

    }

    .contact-card{

        padding:30px;

    }

    .back-to-top{

        right:20px;

        bottom:20px;

    }

}

@media (max-width:500px){

    h1{

        font-size:3rem;

    }

    h2{

        font-size:2rem;

    }

    .logo{

        font-size:1.8rem;

    }

}
/* ======================================================
PRESS
====================================================== */

.press-card{

    max-width:560px;

    margin:0 auto;

    padding:32px;

    background:white;

    border-radius:20px;

    box-shadow:var(--shadow);

    transition:.3s;

}

.press-card:hover{

    transform:translateY(-4px);

}

.press-card h3{

    text-align:center;

    margin-bottom:22px;

    font-size:2rem;

}

.press-card p{

    margin-bottom:22px;

    line-height:1.8;

}

.press-card a{

    display:inline-block;

    color:var(--green);

    font-weight:600;

    text-decoration:none;

}

.press-card a:hover{

    opacity:.75;

}
.press-card{

    display:block;

    text-decoration:none;

    color:inherit;

}
/* MOBILE FIX */
@media (max-width:768px){

    .site-header .container{
        padding:18px 0;
        gap:14px;
    }

    .logo{
        font-size:2rem;
    }

    nav ul{
        gap:14px 22px;
    }

    nav a{
        font-size:1rem;
    }

    .hero{
        padding:32px 0 50px;
    }

    .hero-grid{
        gap:28px;
    }

    .hero-image{
        order:0;
    }

    .hero-photo{
        width:78vw;
        max-width:300px;
        height:auto;
        aspect-ratio:4/5;
        object-fit:cover;
        border-radius:18px;
    }

    h1{
        font-size:2.8rem;
    }

    .hero h2{
        font-size:1.45rem;
    }

    .lead{
        font-size:.95rem;
        line-height:1.7;
    }

    .section{
        padding:55px 0;
    }

    .section-header{
        margin-bottom:32px;
    }

    h2{
        font-size:2.2rem;
    }

    .expertise-card{
        padding:28px;
    }

    .expertise-card h3{
        font-size:2rem;
    }

    .back-to-top{
        width:44px;
        height:44px;
        right:18px;
        bottom:18px;
    }
}
/* ======================================================
END
====================================================== */