/* ==========================================================
   4916 MASTERING
   STYLE.CSS 3.0
   ========================================================== */


/* ==========================================================
   RESET
   ========================================================== */

*,
*::before,
*::after{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
    scroll-padding-top:90px;
}

body{
    background:#F5F4F1;
    color:#111;
    font-family:Inter,system-ui,sans-serif;
    font-size:16px;
    line-height:1.65;
    font-weight:300;
    -webkit-font-smoothing:antialiased;
    text-rendering:optimizeLegibility;
}

img{
    display:block;
    max-width:100%;
}

a{
    color:inherit;
    text-decoration:none;
}

button,
input,
textarea{
    font:inherit;
}

ul{
    list-style:none;
}


/* ==========================================================
   DESIGN SYSTEM
   ========================================================== */

:root{

    --background:#F5F4F1;

    --text:#111111;
    --muted:#6B6B6B;

    --border:#E6E6E6;

    --content-width:1240px;
    --wide-width:1500px;
    --text-width:760px;

    --space-xs:12px;
    --space-s:24px;
    --space-m:48px;
    --space-l:80px;
    --space-xl:120px;
    --space-xxl:180px;

    --transition:.35s cubic-bezier(.22,.61,.36,1);

}


/* ==========================================================
   GLOBAL LAYOUT
   ========================================================== */

.container{

    width:min(92%,var(--content-width));
    margin:0 auto;

}

.container-wide{

    width:min(96%,var(--wide-width));
    margin:0 auto;

}

.container-text{

    max-width:var(--text-width);

}


/* ==========================================================
   TYPOGRAPHY
   ========================================================== */

.section-title{

    font-size:12px;
    text-transform:uppercase;
    letter-spacing:3px;
    font-weight:500;
    color:var(--muted);

    margin-bottom:48px;

}

h1{

    font-size:clamp(44px,7vw,64px);
    line-height:1.05;
    letter-spacing:-1.5px;
    font-weight:400;

}

h2{

    font-size:22px;
    font-weight:400;

}

p{

    color:var(--text);

}


/* ==========================================================
   SECTIONS
   ========================================================== */

section{

    padding:var(--space-xl) 0;

}


/* ==========================================================
   HEADER
   ========================================================== */

header{

    position:fixed;

    top:0;
    left:0;
    right:0;

    height:72px;

    display:flex;
    align-items:center;
    justify-content:space-between;

    padding:0 56px;

    background:rgba(245,244,241,.94);

    backdrop-filter:blur(12px);

    border-bottom:1px solid var(--border);

    z-index:999;

}

.logo{

    display:flex;
    align-items:center;

}

.logo img{

    width:72px;
    height:auto;

}

nav{

    display:flex;
    gap:34px;

}

nav a{

    font-size:11px;

    letter-spacing:2px;

    text-transform:uppercase;

    transition:opacity var(--transition);

}

nav a:hover{

    opacity:.45;

}


/* ==========================================================
   HERO
   ========================================================== */

.hero{

    min-height:100vh;

    display:flex;
    justify-content:center;
    align-items:center;

    text-align:center;

    padding:120px 20px 80px;

}

.hero-content{

    max-width:900px;

    transform:translateY(-50px);

}

.hero-logo{

    width:155px;

    margin:0 auto 42px;

}

.hero h1{

    margin-bottom:18px;

}

.hero h2{

    font-size:20px;

    font-weight:400;

    margin-bottom:18px;

}

.tagline{

    font-size:13px;

    text-transform:uppercase;

    letter-spacing:2px;

    color:var(--muted);

}

.scroll-indicator{

    display:inline-block;

    margin-top:80px;

    font-size:28px;

    color:#999;

    transition:var(--transition);

}

.scroll-indicator:hover{

    color:#111;

    transform:translateY(5px);

}

/* ==========================================================
   WORK
   ========================================================== */

#work{

    position:relative;

    padding-top:170px;
    padding-bottom:170px;

}

#work .section-title{

    margin-bottom:50px;

}

#work .container{

    width:min(96%,1500px);

}


/* ==========================================================
   ALBUM GRID
   ========================================================== */

.grid{

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:4px;

}


/* ==========================================================
   ALBUM
   ========================================================== */

.album{

    position:relative;

    overflow:hidden;

    aspect-ratio:1/1;

    background:#111;

    cursor:pointer;

}

.album img{

    width:100%;
    height:100%;

    object-fit:cover;

    transition:

        transform .7s cubic-bezier(.22,.61,.36,1),

        filter .7s cubic-bezier(.22,.61,.36,1);

}

.album:hover img{

    transform:scale(1.025);

    filter:brightness(.82);

}


/* ==========================================================
   OVERLAY
   ========================================================== */

.overlay{

    position:absolute;

    inset:0;

    display:flex;

    align-items:flex-end;

    padding:30px;

    background:

    linear-gradient(

        to top,

        rgba(0,0,0,.88),

        rgba(0,0,0,.38),

        transparent

    );

    opacity:0;

    transition:

        opacity .35s ease;

}

.album:hover .overlay{

    opacity:1;

}


/* ==========================================================
   OVERLAY CONTENT
   ========================================================== */

.info{

    color:white;

    transform:translateY(16px);

    transition:

        transform .35s ease;

}

.album:hover .info{

    transform:translateY(0);

}

.info h3{

    font-size:12px;

    letter-spacing:2px;

    text-transform:uppercase;

    font-weight:500;

    margin-bottom:8px;

}

.info p{

    font-size:24px;

    font-weight:300;

    line-height:1.25;

    margin-bottom:18px;

    color:white;

}

.info span{

    font-size:11px;

    letter-spacing:2px;

    text-transform:uppercase;

    opacity:.75;

}


/* ==========================================================
   OPTIONAL LABEL
   ========================================================== */

.album::after{

    content:"";

    position:absolute;

    inset:0;

    border:1px solid rgba(255,255,255,.04);

    pointer-events:none;

}


/* ==========================================================
   LOADING
   ========================================================== */

.album img{

    background:#111;

}


/* ==========================================================
   LARGE DESKTOP
   ========================================================== */

@media (min-width:1700px){

    .grid{

        gap:6px;

    }

}


/* ==========================================================
   TABLET
   ========================================================== */

@media (max-width:1000px){

    .grid{

        grid-template-columns:repeat(2,1fr);

    }

}


/* ==========================================================
   MOBILE
   ========================================================== */

@media (max-width:640px){

    #work{

        padding-top:100px;
        padding-bottom:100px;

    }

    .grid{

        grid-template-columns:1fr;

        gap:3px;

    }

    .overlay{

        opacity:1;

        background:

        linear-gradient(

            to top,

            rgba(0,0,0,.72),

            transparent

        );

    }

    .info{

        transform:none;

    }

    .info p{

        font-size:20px;

    }

}

/* ==========================================================
   ABOUT
   ========================================================== */

#about{

    position:relative;

    padding:140px 0;

}

#about .container{

    max-width:760px;

}

#about .section-title{

    margin-bottom:50px;

}

#about p{

    font-size:clamp(20px,2.2vw,26px);

    line-height:1.75;

    font-weight:300;

    margin-bottom:34px;

}

#about p:last-child{

    margin-bottom:0;

}

.manifest{

    margin-top:90px;

    text-align:center;

}

.manifest p{

    font-size:46px;

    font-weight:300;

    line-height:1.15;

    letter-spacing:-.5px;

}


/* ==========================================================
   DIVIDER
   ========================================================== */

.section-divider{

    width:100%;

    height:1px;

    background:var(--border);

    margin:0 auto;

}


/* ==========================================================
   SERVICES
   ========================================================== */

#services{

    padding:140px 0;

}

#services .container{

    max-width:980px;

}

#services .section-title{

    margin-bottom:70px;

}


/* ==========================================================
   SERVICES GRID
   ========================================================== */

/* ==========================================================
   SERVICES
========================================================== */

#services{

    padding:140px 0;

}

#services .container{

    max-width:760px;

}

#services .section-title{

    margin-bottom:70px;

}


/* ----------------------------------------------------------
   SERVICE
---------------------------------------------------------- */

.service{

    padding:42px 0;

    border-top:1px solid var(--border);

}

.service:last-of-type{

    border-bottom:1px solid var(--border);

}

.service h3{

    margin-bottom:16px;

    font-size:22px;

    font-weight:400;

    letter-spacing:-0.3px;

}

.service p{

    max-width:620px;

    color:var(--muted);

    font-size:16px;

    line-height:1.8;

}


/* ----------------------------------------------------------
   PRICING
---------------------------------------------------------- */

.pricing{

    margin-top:64px;

}

.pricing-label{

    margin-bottom:28px;

    font-size:12px;

    letter-spacing:2px;

    text-transform:uppercase;

    color:var(--muted);

}

.price-row{

    display:grid;

    grid-template-columns:1fr auto;

    align-items:center;

    padding:16px 0;

}

.price-row:first-of-type{

    border-top:1px solid var(--border);

}

.price-row:last-of-type{

    border-bottom:1px solid var(--border);

}

.price-row span:first-child{

    color:#111;

}

.price-row span:last-child{

    color:#111;

    font-weight:400;

    text-align:right;

}

.price {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    align-items: baseline;
}

.price strong {
    font-weight: 400;
}

.eur {
    font-size: 0.9rem;
    color: #888;
}

.pricing-subheading {
    margin: 2.5rem 0 1rem;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #777;
}

.pricing-subheading:first-of-type {
    margin-top: 1.5rem;
}


/* ----------------------------------------------------------
   NOTE
---------------------------------------------------------- */

.pricing-note{

    margin-top:34px;

    color:var(--muted);

    font-size:15px;

    line-height:1.8;

}



/* ----------------------------------------------------------
   MOBILE
---------------------------------------------------------- */

@media (max-width:768px){

    #services{

        padding:100px 0;

    }

    .service{

        padding:34px 0;

    }

    .price-row{

        grid-template-columns:1fr;

        gap:4px;

    }

    .price-row span:last-child{

        text-align:left;

    }

}

/* ==========================================================
   CONTACT
   ========================================================== */

.contact-section{

    padding:150px 0;

    text-align:center;

}

.contact-section h2{

    margin-bottom:30px;

}

.contact-section p{

    font-size:28px;

    font-weight:300;

    line-height:1.6;

    margin-bottom:20px;

}

.contact-section a{

    display:inline-block;

    margin-top:20px;

    transition:opacity .3s ease;

}

.contact-section a:hover{

    opacity:.55;

}


/* ==========================================================
   MOBILE
   ========================================================== */

@media (max-width:900px){

    #about{

        padding:100px 0;

    }

    #services{

        padding:100px 0;

    }

    .services-grid{

        grid-template-columns:1fr;

        gap:50px;

        margin-bottom:70px;

    }

    .price-row{

        flex-direction:column;

        align-items:flex-start;

        gap:8px;

    }

    .contact-section{

        padding:100px 0;

    }

    .contact-section p{

        font-size:22px;

    }

}
/* ==========================================================
   FOOTER
   ========================================================== */

footer{

    border-top:1px solid var(--border);

    padding:50px 0;

   
}
}

footer .container{

    display:flex;

    justify-content:space-between;

    align-items:center;

}

footer p{

    font-size:13px;

    color:var(--muted);

    letter-spacing:.5px;

}

footer a{

    transition:opacity .3s ease;

}

footer a:hover{

    opacity:.55;

}


/* ==========================================================
   LINKS
   ========================================================== */

a{

    transition:

        color .3s ease,

        opacity .3s ease;

}


/* ==========================================================
   IMAGES
   ========================================================== */

img{

    user-select:none;

    -webkit-user-drag:none;

}


/* ==========================================================
   SELECTION
   ========================================================== */

::selection{

    background:#111;

    color:white;

}


/* ==========================================================
   FADE-IN (OPTIONAL)
   ========================================================== */

.fade{

    opacity:0;

    transform:translateY(25px);

    transition:

        opacity .8s ease,

        transform .8s ease;

}

.fade.visible{

    opacity:1;

    transform:none;

}


/* ==========================================================
   RESPONSIVE
   ========================================================== */

@media (max-width:1200px){

    header{

        padding:0 40px;

    }

}

@media (max-width:1000px){

    .grid{

        grid-template-columns:repeat(2,1fr);

    }

    .services-grid{

        grid-template-columns:1fr;

        gap:50px;

    }

}

@media (max-width:768px){

    header{

        position:relative;

        flex-direction:column;

        justify-content:center;

        gap:18px;

        height:auto;

        padding:24px;

    }

    nav{

        gap:18px;

        flex-wrap:wrap;

        justify-content:center;

    }

    section{

        padding:90px 0;

    }

    .hero{

        min-height:auto;

        padding:120px 20px 90px;

    }

    .hero-content{

        transform:none;

    }

    .hero-logo{

        width:120px;

    }

    h1{

        font-size:42px;

    }

    h2{

        font-size:18px;

    }

    #about p{

        font-size:22px;

    }

    .manifest p{

        font-size:34px;

    }

    .contact-section p{

        font-size:22px;

    }

    footer .container{

        flex-direction:column;

        gap:12px;

        text-align:center;

    }

}

@media (max-width:600px){

    .grid{

        grid-template-columns:1fr;

        gap:3px;

    }

    .overlay{

        opacity:1;

        background:

        linear-gradient(

            to top,

            rgba(0,0,0,.72),

            transparent

        );

    }

    .info{

        transform:none;

    }

    .info p{

        font-size:20px;

    }

}footer {
    text-align: center;
    padding: 40px 0;
    font-size: 0.8rem;
    color: #888;
}

.pricing-sample{

    margin-top:60px;

    padding-top:40px;

    border-top:1px solid rgba(255,255,255,.08);

}

.pricing-sample h3{

    margin:0 0 14px;

    font-size:.75rem;

    font-weight:600;

    letter-spacing:.12em;

    text-transform:uppercase;

    color:#777;

}

.pricing-sample p{

    margin:0;

    max-width:560px;

    color:#bfbfbf;

    line-height:1.7;

}


/* ==========================================================
   END
   ========================================================== */