@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700&family=Sora:wght@500;600;700&display=swap');

:root {
    --font-body: 'Manrope', sans-serif;
    --font-heading: 'Sora', sans-serif;
}

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

body, h1, p, header, main {
    margin: 0;
    padding: 0;
}
h1, h2, h3 {
    font-family: var(--font-heading);
    letter-spacing: -0.01em;
    line-height: 1.2;
}

h1 {
    font-weight: 700;
}

h2, h3 {
    font-weight: 600;
}
.nav-container{
    max-width: 1200px; 

    margin-left: auto; 
    margin-right: auto;
    padding-left: 20px;
    padding-right: 20px;
    padding-bottom: 10px;

    font-family: var(--font-heading);
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.nav-brand {
    display: inline-flex;
    align-items: center;
    text-decoration: none;
}
.nav-toggle{
    display: none;
    background: transparent;
    border: none;
    cursor: pointer;
    padding: 10px;
    color: #f1bb24;
}
.nav-toggle span{
    display: block;
    width: 24px;
    height: 2px;
    background: #f1bb24;
    border-radius: 2px;
    margin: 4px 0;
    transition: transform 200ms ease, opacity 200ms ease;
}
.nav-toggle[aria-expanded="true"] span:nth-child(1){
    transform: translateY(6px) rotate(45deg);
}
.nav-toggle[aria-expanded="true"] span:nth-child(2){
    opacity: 0;
}
.nav-toggle[aria-expanded="true"] span:nth-child(3){
    transform: translateY(-6px) rotate(-45deg);
}
.nav-menu{
    display: flex;
    align-items: center;
    list-style-type: none;
    gap: 32px;
    margin: 0;
    padding: 0;
}
nav li:first-child{
 margin-right: auto;
}
nav a:link, nav a:visited{
    text-decoration: none;
    color: white;
}
nav, ul {
    margin: 0;
    padding: 0;
}
header {
    margin: 0;
    padding: 0;
}
.kansi {
    width: 100%;
    height: auto;               

    align-items: center;
    padding-bottom: 80px;
    padding-top: 80px;
    gap: 12px;
    position: relative; 
    isolation: isolate;
}
.kansi::after{
    content: '';
    position: absolute;
    z-index: -1;
    inset: 0;
    background: pink;
    opacity: .3;
    background:url("Kuvat/alexander-jawfox-ng7Yynar8Hw-unsplash.jpg"); 
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;

}

.logo-nav{
    width: 150px;
    height: auto;
}
.iconi{
    width: 10px;
    height: auto;
}
.logo-footer{
    width: 120px;
    height: auto;
}
html, body {
    width: 100%;
    min-height: 100%;
}

body {

    margin: 0;
    padding: 0;
    background: url("Kuvat/Black-paper.jpg");
    background-size: cover; 
    background-position: center;
    background-repeat: no-repeat;
    font-family: var(--font-body);
    font-size: 16px;
    line-height: 1.6;
    font-weight: 400;
}
.head-container{
    max-width: 1200px;
    margin: auto;
    padding: 20px;
    display: flex;
    align-items: center;
    gap: 20px;
}

.esittely-container{

    max-width: 1200px; 
    margin-left: auto; 
    margin-right: auto;
    padding-left: 20px;
    padding-right: 20px;
    padding-bottom: 120px;
    height: 100%;
    color: white;
    font-family: var(--font-body);
    
}
.esittely-container h1 {
    margin-bottom: 16px;
    max-width: 65ch;
    font-size: 50px;
}


.esittely-container p {
    margin-bottom: 12px;
    line-height: 1.6;
    max-width: 65ch;
    font-size: 22px;
}

.esittely-container button,
.esittely-container .button {
    margin-top: 24px;
}
.flex-container-image{
    height: 600px;
    width: auto;
}
.palvelut{
    /* background: url("Kuvat/white_Concrete.jpg"); */
    background-size: cover;
    background-position: center; 
    background-repeat: no-repeat;
}
.palvelut-container{
    max-width: 1200px; 
    margin-left: auto; 
    margin-right: auto;
    padding-left: 20px;
    padding-right: 20px;
      padding-bottom: 100px;
      padding-top: 60px;
      min-height: 200px;
      gap: 14px;
    font-size: 12px;
    font-family: var(--font-body);
}
.valitse-container{
    display: flex;
    flex-direction: column;
    padding-top: 80px;
    max-width: 1200px; 
    margin-left: auto; 
    margin-right: auto;
    padding-left: 20px;
    padding-right: 20px;
    padding-bottom: 80px;
    min-height: 220px;
    font-size: 12px;
    font-family: var(--font-body);
    color: white;
    gap: 14px;

    
}
.valitse-container-top{
    flex-direction: row;
    display: flex;
    
    width: 100%;

    gap: 14px;
}
.valitse-container-bottom{
    flex-direction: row;
    display: flex;
    max-width: 1200px; 
    width: 100%;
  
    gap: 12px;
}
.valitse-container-list{
    display: flex;
    flex-direction: column;
    gap: 8px;
    font-size: 14px;

}
.valitse-container-text{
    display: flex;
    justify-content: center;
    width: 100%;
    text-align: center;
}
.valitse-container-image{
    width: clamp(180px, 22vw, 300px);
    flex: 0 0 clamp(180px, 22vw, 300px);
    aspect-ratio: 3 / 2;
    object-fit: cover;
    border-radius: 10px;
    border: 1px solid rgba(255, 255, 255, 0.16);
    opacity: 0.9;
    filter: saturate(0.75) contrast(0.92) brightness(0.88);
    box-shadow: 0 10px 22px rgba(0, 0, 0, 0.35);
    transition: filter 180ms ease, opacity 180ms ease;
}
.valitse-container-image2{
    width: clamp(220px, 28vw, 380px);
    flex: 0 0 clamp(220px, 28vw, 380px);
    max-width: 100%;
        aspect-ratio: 3 / 2;
        object-fit: cover;
        border-radius: 10px;
        border: 1px solid rgba(255, 255, 255, 0.16);
        opacity: 0.9;
        filter: saturate(0.75) contrast(0.92) brightness(0.88);
        box-shadow: 0 10px 22px rgba(0, 0, 0, 0.35);
        transition: filter 180ms ease, opacity 180ms ease;
}

.valitse-container-image:hover,
.valitse-container-image2:hover{
        opacity: 1;
        filter: saturate(0.9) contrast(0.98) brightness(0.94);
}


.yhteystiedot{
    background: url("Kuvat/Tausta-keltainen.png");
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    padding-bottom: 20px;
        padding-top: 80px;
        gap: 14px;
}
.yhteystiedot-container-text{
    display: flex;
    justify-content: center;
    width: 100%;
    text-align: center;

}
.yhteystiedot-container p{
    max-width: 65ch;
    margin: 0 auto;
    line-height: 1.6;
    font-size: 16px;
}
.yhteystiedot-container-text h1{
    font-size: 30px;
}
.yhteystiedot-container-text2{
    display: flex;
    justify-content: center;
    width: 100%;
    text-align: center;
    flex-direction: row;

}
.yhteystiedot-container-text2 h3{
    margin: 0 20px; 
    font-size: 20px;
}
.lomake-yhteystiedot-bottom a:link, .lomake-yhteystiedot-bottom a:visited{
    color: white;
}

.yhteystiedot-container{

    max-width: 1200px; 
    margin-left: auto; 
    margin-right: auto;
    padding-left: 20px;
    padding-right: 20px;
    padding-bottom: 20px;
    min-height: 220px;
    font-size: 12px;
    font-family: var(--font-body);
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 12px;
}
.palvelut-container hr{
      border: 0;                  /* poistaa oletusreunan */
    height: 2px;                /* viivan paksuus */
    background-color: black;  /* kontrasti taustaan */
    margin: 24px 0;
    opacity: 1;
}

.palvelut-cards{
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr)); /* 3 korttia samalle riville */
    gap: 8px;
    align-items: stretch;

}

.palvelut-card{
    background: url("Kuvat/Tausta-keltainen.png");
    color: #1f1f1f;
    border-radius: 8px;
    padding: 6px;
    box-sizing: border-box;
    aspect-ratio: auto;
    min-height: 220px;           /* varmistaa riittävä korkeus */
    width: 100%;
    max-width: none;          /* poista 220px rajoitus */
    justify-self: stretch;    /* ei keskitystä */
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    box-shadow: 2px 2px 5px lightslategray;
    gap: 4px;
}
.palvelut-card:hover{
    box-shadow: 4px 4px 12px lightslategray;
    transform: translateY(-2px);
    transition: transform 150ms ease, box-shadow 150ms ease;
}

/* valinnainen: mobiilissa pienempi määrä sarakkeita */
@media (max-width: 900px){
    .palvelut-cards{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px){
    .palvelut-cards{ grid-template-columns: 1fr; }
}

.palvelut-card h3{
    margin: 0 0 8px;
    line-height: 1.25;
    font-size: 15;

}

.title-with-icon{
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 1.25rem;
}

.title-with-icon svg{
    width: 1.1em;
    height: 1.1em;
    flex-shrink: 0;
}

.palvelut-card p{
    margin: 0;
    line-height: 1.45;
    max-width: 31ch;
    font-size: 1rem;
}

.flex-container{
        display: flex;
    align-items: center;
    gap: 40px;
}
.flex-container-text{
    max-width: 1200px;
}
.flex-container-text button{
    margin: 40px auto;
    display: block;
}


.button{
    background-color: #f1bb24;
    font-family: var(--font-heading);
    font-weight: 600;
    letter-spacing: 0.01em;
    color: black;
    font-size: 18px;
    padding: 10px 23px;
    border-radius: 5px;
    border: none;
}
.button2{
    background-color: rgb(19, 18, 18);
    font-family: var(--font-heading);
    font-weight: 600;
    letter-spacing: 0.01em;
    color: #f1bb24;
    font-size: 18px;
    padding: 10px 23px;
    border-radius: 5px;
    border: none;
   
}
.button2:hover{
    filter: brightness(40%);
}
.button:hover{
    filter: brightness(20%);
}
.footer-container{

    max-width: 1200px; 
    color: white;
    margin-left: auto; 
    margin-right: auto;
    padding-left: 20px;
    padding-right: 20px;
      padding-bottom: 20px;

    font-family: var(--font-body);
}
.footer-container a:link{
    color:white
}
.footer-container a:visited{
    color: white;
}
.footer-container h1{
    font-size: 18px;
    margin-bottom: 10x;
}


.cards{
    display: flex;
    gap: 30px;
    align-items: stretch; 
}

.card{
    flex: 1;
    display: flex;      
    flex-direction: column; 
    padding: 20px;
}

.card-content{
    flex: 1;                    
    display: flex;
    flex-direction: column;
    justify-content: space-between; 

}

.footer-headline{
    font-size: 18px;
}
.copyright-container{
    max-width: 1200px; 
    color: white;
    margin-left: auto; 
    margin-right: auto;
    padding-left: 20px;
    padding-right: 20px;
      padding-bottom: 20px;

    font-family: var(--font-body);
}
a:link{
    color:black
}
a:visited{
    color: black;
}
.title-icon-yellow{
    color: #f1bb24;
}



/* logon keltainen väri D69E07 */


.tiedot{

    width: 100%;
    height: auto;               

    align-items: column;
    padding-bottom: 80px;
    padding-top: 80px;

    position: relative; 
    isolation: isolate;
    align-items: center;
}
     

.tiedot::after{
   
    content: '';
    position: absolute;
    z-index: -1;
    inset: 0;
    background: pink;
    opacity: .2;
    background:url("Kuvat/alexander-jawfox-ng7Yynar8Hw-unsplash.jpg"); 
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    align-items: center;
}
.tiedot-keskitys{
    display: flex;
    flex-direction: column;
    align-items: center;

}
.tiedot-väli{
    display: flex;
    flex-direction: column;
    gap: 20px;
    max-width: 1200px;
}

.tiedot-cards{
    display: flex;
    gap: 32px;
    margin-left: auto; 
    margin-right: auto;
    padding-left: 20px;
    padding-right: 20px;
    padding-bottom: 20px;
    padding-top: 20px;
    align-items: stretch;
    flex-direction: row;
    max-width: 1200px; 
    background: linear-gradient(135deg, #f1bb24 0%, #f1bb24 100%);
        box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12), 0 2px 4px rgba(0, 0, 0, 0.08);
    border-radius: 14px;
        border: 1px solid rgba(0, 0, 0, 0.05);
    transition: all 300ms cubic-bezier(0.4, 0, 0.2, 1);

}
.tiedot-card{

    padding-left: 5px;

    flex: 1;
    display: flex;      
    flex-direction: column; 
    color: black;

    height: 475px;
    max-width: 600px;

}
.tiedot-card p{
    font-size: 40px;
}
.tiedot-card h1{
    font-size: 26px;
    margin-bottom: 16px;
    color: black;
    font-weight: 700;
}

.tiedot-card-button{
    display: flex;
    align-items: center;
}
.tiedot-cards:hover{
    box-shadow: 0 16px 32px rgba(0, 0, 0, 0.15), 0 4px 8px rgba(0, 0, 0, 0.1);
    transform: translateY(-4px);
}
.tiedot-image{
    height: 600px;
    width: 600px;
    border-radius: 12px;
    border: 1px solid rgba(0, 0, 0, 0.08);
    object-fit: cover;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15), 0 2px 4px rgba(0, 0, 0, 0.1);
    transition: all 300ms cubic-bezier(0.4, 0, 0.2, 1);
}

.tiedot h1{
    font-size: 28px;
    margin-bottom: 16px;
    color: black;
    font-weight: 700;
}
.tiedot p{
    font-size: 18px;
    margin-bottom: 12px;
    color: black;
    line-height: 1.6;
}
.tiedot-text{
 display: flex;
 flex-direction: column;
 color: white;

}
.tiedot-text h1{

 color: white;
 font-size: 34px;
}
.tiedot-text p{

 color: white;
 max-width: 75ch;

}
.tiedot-text a:link, .tiedot-text a:visited{
   
    color: white;
}


.lomake-background{
    width: 100%;
    height: auto;               

    align-items: column;
    padding-bottom: 80px;
    padding-top: 80px;
    gap: 12px;
    position: relative; 
    isolation: isolate;

}
.lomake-background::after{
    content: '';
    position: absolute;
    z-index: -1;
    inset: 0;
    background: pink;
    opacity: .2;
    background:url("Kuvat/alexander-jawfox-ng7Yynar8Hw-unsplash.jpg"); 
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.lomake-container{
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    max-width: 750px; 
    margin-left: auto; 
    margin-right: auto;
    padding-left: auto;
    padding-right: auto;
    padding-bottom: 20px;
    padding-top: 20px;
    font-family: var(--font-body);
    background-color: #f1bb24;
    border-radius: 15px;
    box-shadow: 2px 2px 5px lightslategray;

}
.lomake-container input, .lomake-container textarea{
    padding: 10px;    
    border-radius: 5px;
    border: 1px solid #000000;
    font-size: 16px;
    max-width: 500px;
    min-width: 500px;


}
.lomake-div{
    display: flex;
    flex-direction: column;
    align-items: center;
}


.esittely-background{
    align-items: column;
    padding-bottom: 80px;
    padding-top: 80px;
    gap: 14px;
    position: relative;
    isolation: isolate;
}
.esittely-background::after{
    content: '';
    position: absolute;
    z-index: -1;
    inset: 0;
    background: pink;
    opacity: .2;
    background:url("Kuvat/alexander-jawfox-ng7Yynar8Hw-unsplash.jpg"); 
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.esittely-cards{
     max-width: 1200px; 
    margin-left: auto; 
    margin-right: auto;
    padding-left: 20px;
    padding-right: 20px;
    padding-bottom: 120px;
    height: 100%;
    font-family: var(--font-body);

}
.esittely-card{
    max-width: 1200px; 
    margin-left: auto; 
    margin-right: auto;
    padding-left: 20px;
    padding-right: 20px;
    padding-bottom: 120px;
    height: 100%;
    color: white;
    font-family: var(--font-body);

}
.esittely-card a:link, .esittely-card a:visited{
   
    color: white;
}

.esittely h1{
    font-size: 26px;
    margin-bottom: 16px;
    color: #1a1a1a;
    font-weight: 700;
    max-width: 65ch;


}
.esittely-card p{
    font-size: 18px;
    margin-bottom: 12px;
    line-height: 1.6;
     max-width: 80ch;
}



.tietosuoja-background{
     max-width: 1200px; 
    margin-left: auto; 
    margin-right: auto;
    padding-left: 20px;
    padding-right: 20px;
    padding-bottom: 20px;
    min-height: 220
}
.tietosuoja-container{
    max-width: 1200px; 
    margin-left: auto; 
    margin-right: auto;
    padding-left: 20px;
    padding-right: 20px;
    padding-bottom: 20px;
    min-height: 220px;
    display: flex;
    flex-direction: column;
    background-color: #f1bb24;
    border-radius: 14px;


}
.tietosuoja-container h1{
   font-size: 24px;
    margin-bottom: 16px;
    color: #1a1a1a;
    font-weight: 700;
}
.tietosuoja-container h2{
       font-size: 20px;
    margin-bottom: 16px;
    color: #1a1a1a;
    font-weight: 700;
}
.tietosuoja-container p{
       font-size: 15px;
    margin-bottom: 16px;
    color: #1a1a1a;
    font-weight: 700;

}
.lomake-main{
     display: flex;
    flex-direction: column;

}
.lomake-yhteystiedot{
    display: flex;
    flex-direction: column;
    max-width: 1200px; 
    margin-left: auto; 
    margin-right: auto;
    padding-left: 20px;
    padding-right: 20px;
    padding-bottom: 20px;
    min-height: 220px;
    color: white;

    align-items: center;

}
.lomake-yhteystiedot-top{
    display: flex;
    flex-direction: column;
    color: white;
    align-items: center;
    text-align: center;

}
.lomake-yhteystiedot-top h1{
    color: white;

}
.lomake-yhteystiedot-top p{
     color: white;
      max-width: 80ch;
}


.lomake-yhteystiedot-bottom{
    display: flex;
    justify-content: center;
    width: 100%;
    text-align: center;
    flex-direction: row;
    gap: 12px;

}
.lomake-yhteystiedot-bottom h3{
    margin: 0 20px; 
    font-size: 20px;
}

/*--------------------- Responsiivisuus--------------------------- */

@media (max-width: 900px) {
    .nav-toggle {
        display: block;
        position: absolute;
        top: 16px;
        right: 20px;
        z-index: 25;
    }
    .nav-menu {
        display: none;
        position: absolute;
        top: 100%;
        right: 20px;
        background: rgba(0, 0, 0, 0.92);
        border-radius: 14px;
        flex-direction: column;
        gap: 12px;
        padding: 18px;
        width: min(280px, calc(100vw - 32px));
        z-index: 20;
        align-items: stretch;
        box-shadow: 0 18px 40px rgba(0, 0, 0, 0.18);
    }
    .nav-menu.open {
        display: flex;
    }
    .nav-menu li {
        flex: 1 1 auto;
        width: 100%;
        text-align: left;
    }
    .nav-menu li a,
    .nav-menu li button {
        width: 100%;
        display: block;
        text-align: left;
    }
    .nav-menu li:last-child {
        margin-top: 10px;
    }
    .logo-nav {
        width: 80px;
    }
    .kansi,
    .esittely-container,
    .palvelut-container,
    .tiedot-väli,
    .tietosuoja-container,
    .lomake-container,
    .lomake-background,
    .esittely-cards,
    .esittely-card {
        padding-left: 16px;
        padding-right: 16px;
    }
    .flex-container,
    .tiedot-cards,
    
    .lomake-yhteystiedot-bottom,
    .tiedot-väli, .yhteystiedot-container-text2 {
        flex-direction: column;
        align-items: center;
    }
    .cards {
        flex-direction: column;
        gap: 16px;
        align-items: left;
    }
    .tiedot-cards,
    .cards {
        gap: 20px;
    }
    .tiedot-card {
        max-width: 100%;
        height: auto;
    }
    .tiedot-image {
        width: 100%;
        height: auto;
        max-width: 100%;
    }
    .lomake-container {
        max-width: 100%;
        width: 100%;
    }
    .lomake-container input,
    .lomake-container textarea {
        min-width: auto;
        width: 100%;
        max-width: 100%;
    }
    .title-with-icon {
        font-size: 1rem;
    }
    .palvelut-card h3,
    .tiedot h1,
    .tietosuoja-container h1,
    .tietosuoja-container h2,
    .lomake-yhteystiedot-top h1, .esittely-container h1 {
        font-size: clamp(1.5rem, 2.2vw, 2.4rem);
    }
    .esittely-container p,
    .tiedot p,
    .tietosuoja-container p,
    .palvelut-card p {
        font-size: 1rem;
    }

    .logo-nav{
    width: 120px;
    height: auto;
}
.hide-on-mobile{
    display: none;
}

.palvelut-cards{
    gap: 40px;
}

}

@media (max-width: 600px) {
    .nav-flexcontainer {
        gap: 10px;
    }
    .button,
    .button2,
    .flex-container-text button {
        width: 100%;
    }
    .footer-container .cards {
        flex-direction: column;
        gap: 16px;
    }
    .footer-container h1 {
        font-size: 1rem;
    }
    .lomake-yhteystiedot-bottom {
        gap: 8px;
    }
    .lomake-yhteystiedot-bottom h3 {
        margin: 0;
        font-size: 1rem;
    }
    .palvelut-cards {
        grid-template-columns: 1fr;
    }
}


