
@import url('https://fonts.googleapis.com/css2?family=Alumni+Sans+Pinstripe:ital@0;1&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Staatliches&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');



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

/* Remove default margin */
body,
section,
h1,
h2,
h3,
h4,
p,
figure,
blockquote,
dl,
dd {
  margin: 0;
}

/* Remove list styles on ul, ol elements with a list role, which suggests default styling will be removed */
ul[role='list'],
ol[role='list'] {
  list-style: none;
}

/* Set core root defaults */
html:focus-within {
  scroll-behavior: smooth;
}

/* Set core body defaults */
body {
  text-rendering: optimizeSpeed;
  line-height: 1.2;
  width: 100vw;
  font-weight:400;
}


/* A elements that don't have a class get default styles */
a:not([class]) {
  text-decoration-skip-ink: auto;
}

/* Make images easier to work with */
img,
picture {
  max-width: 100%;
  display: block;
}

/* Inherit fonts for inputs and buttons */
input,
button,
textarea,
select {
  font: inherit;
}



/* Remove all animations, transitions and smooth scroll for people that prefer not to see them */
@media (prefers-reduced-motion: reduce) {
  html:focus-within {
   scroll-behavior: auto;
  }
  
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}



:root {
  --väri-tumma-200: #534c51;

  --väri-tumma-400: #211d20;
  

  --väri-vaalea-100: hsl(180, 40%, 37%);
  --väri-vaalea-200: #7DBABA;
  --väri-vaalea-400: #A5CCCC;
  --väri-vaalea-600: #C0DCDC;
  --väri-vaalea-800: hsl(0, 0%, 100%);


  --väri-aksentti-400: hsl(43, 98%, 58%);
  --väri-aksentti-600: hsl(43, 98%, 68%);


  --ff-cursive: 'Mea Culpa', cursive;	
  --ff-display: 'Staatliches', cursive;
  --ff-ss:'Barlow Condensed', sans-serif;
  --ff-ss-otsikko:'Alumni Sans Pinstripe', sans-serif;


  --fs-xxl: clamp(4.4rem, .8rem + 9vw, 10rem);
  --fs-xl: 4rem;
  --fs-l: 1.5rem;
  --fs-m: 1.125rem;
  --fs-s: .9rem;
  --fs-xs: .8rem;
}


main,
body,
html {
    min-height:100%;

}


body {
    font-family: var(--ff-ss);
    color: var(--väri-tumma-400);
    font-size: var(--fs-m);

}


main {
    max-width:100vw;
    
}

p {
    max-width: 60ch;
    margin-bottom:1em;
    font-weight:100;
}

a:not(.btn),
a:active:not(.btn),
a:visited:not(.btn) {
    font-family: var(--ff-display);
    color: var(--väri-aksentti-400);
    text-shadow: 0 0 13px #0003;
}

a:hover {
    text-decoration:underline;
}

a > i {
    color:var(--väri-vaalea-800);
    transform:scale(1,1);
    -webkit-transform:scale(1,1);
    -ms-transform:scale(1,1);

    transition:transform 300ms ease-in;
    margin:.3em .1em;
}

a > i:hover,
a > i:focus {
    transform:scale(1.1,1.1);
    -webkit-transform:scale(1.1,1.1);
    -ms-transform:scale(1.1,1.1);

}

h1 {
    font-family: var(--ff-ss-otsikko);
    font-size:var(--fs-xxl);
    text-transform: uppercase;
}

h2 {
    font-family: var(--ff-display);
    font-size: var(--fs-l);
    line-height: 1;
    word-break: break-word;

}

h3 {
    font-family: var(--ff-ss);
    font-size: var(--fs-m);
    font-weight: 500;
    line-height: 1.3;
    text-transform: uppercase;
}
a {
    text-decoration:none;
}

figure {
    margin:3em 3em 1em 3em;
    text-align:center;
}

blockquote p {
    font-weight:300;
    letter-spacing:1px;
}

blockquote {
    position:relative;
}

blockquote::before {
    content:open-quote;
    position:absolute;
    font-family: var(--ff-display);
    font-size: 17rem;
    top: -80px;
    left: -42px;
    opacity:.1;
}
figcaption {
    font-family:var(--ff-display);
    letter-spacing:2px;
}

button {
    border:0;
    margin:0;
    padding:0;
    background:transparent;
}

.btn {
    position:relative;
    color:var(--väri-tumma-400);
    border:0;
    cursor:pointer;
    display:block;
    padding:.6em 3em;
    font-weight:600;
    text-decoration:none;    
    margin:.5em 0;
    isolation:isolate;
    z-index:1;
    border-radius:1rem;
    background: var(--väri-vaalea-800);
}

/* .btn::before {
    content:'';
    display:block;
    position:absolute;
    inset:0;
    z-index:-1;
    border-radius:2rem;
    background: var(--väri-vaalea-800);
    opacity:.6;

} */

.btn:hover,
.btn:focus {
    background: var(--väri-aksentti-600);
    text-decoration:none;
}

/* .aksentti::before {
    background:var(--väri-aksentti-400);
    color: var(--väri-vaalea-800);
} */

.aksentti {
    background:var(--väri-aksentti-400);
}




hr {
    position: relative;
    width: 90%;
    display: block;
    height: 3rem;
    /* background: url(img/ornament.png) center no-repeat; */

    /* background: url(https://static.vecteezy.com/system/resources/previews/009/337/830/original/abstract-line-geometric-sign-in-hexagon-shapes-minimal-logotypes-collection-simple-ornament-for-pattern-png.png) center no-repeat; */
    background-size: 3em;
    border:transparent;
    margin-bottom:2em;

}

hr::before,
hr::after {
    content: '';
    display: block;
    position: absolute;
    top: 50%;
    /* width: calc(50% - 3.3em); */
    width: 50%;
    border-top: 5px solid;
    border-image-slice: 1;
    border-width: 1px;

}

hr::before {
    border-image-source: linear-gradient(to left, #000, #ffffff00);
}
hr::after {
    border-image-source: linear-gradient(to right, #000, #ffffff00);
    right:0;
}

hr.valko::before {
    border-image-source: linear-gradient(to left, #fff, #ffffff00);
}
hr.valko::after {
    border-image-source: linear-gradient(to right, #fff, #ffffff00);
    right:0;
}



/* HERO */

#hero {
    display: flex;
    flex-direction: column;
    align-items:flex-end;
    justify-content: flex-end;
    padding:5vmax 5vmax;
    height:100vh;
    background:url(img/miettola_hero.jpg) 14% top / cover no-repeat;
}

.hero__logo {
    text-align:right;
    position:relative;

}

.tuomas,
.miettola {
    color:var(--väri-aksentti-400);
    font-family: var(--ff-ss-otsikko);
    text-transform: uppercase;
    font-weight: 800;
    line-height: .7;
    text-shadow:1px 2px 5px #00000024;
    letter-spacing: 2px;
}

.tuomas {
    /* font-size: 5rem; */
    font-size: clamp(5rem, .9rem + 7vw, 10rem);

}
.miettola {
    /* font-size: 6rem; */
    font-size: clamp(6rem, .8rem + 9vw, 12rem);
}

.tenor {
    font-size: clamp(1.4rem, .4rem + 2vw, 3rem);
    color:var(--väri-vaalea-800);
    letter-spacing: 3px;
    position:absolute;
    left:.6em;
    top:1em;
    font-weight: 200;

}

.hero__buttons {
    margin-top:1em;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;

}

.hero__buttons > * {
    margin:1em 1em 0 0;
}

.hero__container {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}


@media only screen and (min-width: 50em) { 
    #hero {
        background:url(img/miettola_hero.jpg) top left / cover no-repeat;
    }
    #hero {
        padding:5vmax 18vmax;
    }

    .hero__buttons {

        flex-direction: column;
    }

    .hero__container {
        justify-content: flex-end;
        align-items: flex-end;
    }

    .tuomas,
    .miettola {
        text-shadow: 0 0 29px #43c5cc, 1px 2px 5px #00000024;
    }
}


/* INTRO */

#intro {
    height:100%;
    background:var(--väri-vaalea-600);
    display:flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}



#intro .sisalto {
    position:relative;
    width:90vw;
    max-width:40em;
    /* padding:2em 2em 0 2em; */
    padding:1em;
    /* display:flow-root; */
    display:flex;

    gap:1em;

}

#toggle-kieli {
    display:none;
}

.intro__kieli > label > img {
    height:1em;
    display:inline-block;
    vertical-align: text-bottom;
    transform:scale(1,1);
    -webkit-transform:scale(1,1);
    -ms-transform:scale(1,1);

    transition:opacity 300ms ease-in, transform 300ms ease-in-out;
}

.intro__kieli > label > img:hover,
.intro__kieli > label > img:focus {
    transform: scale(1.1,1.1);
    -webkit-transform: scale(1.1,1.1);
    -ms-transform: scale(1.1,1.1);

}


.intro__kieli > label {
    cursor:pointer;
}

.intro__kieli > label > img:nth-of-type(2) {
    opacity:.5;
}


#toggle-kieli:checked ~ .intro__kieli > label > img:nth-of-type(2) {
    opacity:1;
}

#toggle-kieli:checked ~ .intro__kieli > label > img:nth-of-type(1) {
    opacity:.5;

}

.intro__kieli {
    width:90vw;
    max-width:40em;
    padding:0 2em;
}


.vali {
    margin:.4em;
}

.intro__teksti {
    position:relative;
    padding:0 1em;
    width:100%;
    display:flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}


.intro__teksti_suomi {
    position:absolute;
    top:0;
    opacity:0;
    pointer-events: none;

}

#toggle-kieli:checked ~ .sisalto > .intro__teksti > .intro__teksti_suomi {
    opacity:1;
    position:relative;
    pointer-events: auto;


}

#toggle-kieli:checked ~ .sisalto > .intro__teksti > .intro__teksti_englanti {
    opacity:0;
    position:absolute;
    pointer-events: none;


}




.intro__kuva {
    display:none;
    position:absolute;
    bottom:0;
    right: -8em;
    max-width: 61%;

}
.intro__kuva > img {
 
    /* shape-outside: url(img/miettola_mask.png);
    float:right;
    border: 1px solid red;
    max-width:50%;
    min-height:33em;
    object-fit: contain;
    object-position: bottom right; */


    width:100%;

}

@media only screen and (min-width: 50em) { 
    .intro__kuva {
        display:block;
    }
    .intro__teksti {
        width:60%;
    }
    
}


/* KONSERTIT */ 

#konsertit .sisalto {
    display:flex;
    width:100vw;

}

#konsertit h1 {
    color:var(--väri-vaalea-800);
    font-size:var(--fs-xl);
    width:100%;
    text-align:center;
    line-height: .9;
    padding:0 .3em;
    margin:1em 0 0 0;
}

#konsertit .sisalto > div:first-child {
    display:none;
    width:50%;
    min-height:50vh;
    background-image: url(img/miettola_concerts.jpg);
    background-position:left top;
    background-size:  50% auto;
    background-repeat:no-repeat;
    background-attachment: fixed;

}

#konsertit .sisalto > div:nth-child(2) {
    background-color: var(--väri-vaalea-400);
    width:100%;
}



.konsertit__container {
    background-color:var(--väri-vaalea-200);
    transition:background-color 400ms ease-in-out;
    border-radius:5px;
    width:100%;
    border-bottom:2px solid var(--väri-vaalea-400);


}
.konsertit__main {
    cursor:pointer;
    display: flex;


    width:100%;
    gap:1em;
} 

.konsertit__container:hover,
.konsertit__container:focus {
    background: var(--väri-vaalea-400);
} 


.konsertit__kuva {
    width:30vw;
    max-width:10em;
    aspect-ratio:1;
    background-size:cover;
    background-position:center center;
    background-repeat:no-repeat;
    margin-left:10px;
}

.ooppera {
    box-shadow: -10px 0 0 0px var(--väri-aksentti-400);
}

.konsertti {
    box-shadow: -10px 0 0 0px #a33b65;
}

.yksityistilaisuus {
    box-shadow: -10px 0 0 0px #ccc;
}


.konsertit__pallot-container {
    /* font-size: var(--fs-l); */
    margin:1em 0;
    width:100%;
    display:flex;
    align-items:center;
    justify-content: center;
    flex-wrap: wrap;

}

.konsertit__pallot {
    padding:0 2em 0 1em;

}

.konsertit__info {
    display: flex;
    width:30ch;

    flex-direction: column;
    justify-content:center;
    padding:.5em .5em .5em 0;
}

.konsertit__info h3 {
    line-height:1;
}

.konsertit__info > p {
    margin:0;
}

.konsertit__aikapaikka {
    letter-spacing: 2px;
    font-size: 0.9rem;
    line-height:1.2;
    font-weight: 800;
}


.konsertit__panel {
    /* max-height:0;
    transition:max-height 600ms ease-in-out, padding 600ms ease-in-out, transform 600ms ease-in-out;
    transform: scaleY(0);
    -webkit-transform: scaleY(0);
    -ms-transform: scaleY(0);

    transform-origin:top;
    padding:0 1em; */

    display:grid;
    grid-template-rows: 0fr;
    padding:.1em 1em; 

    transition: grid-template-rows 600ms ease-in-out, padding 600ms ease-in-out;


}

.konsertit__panel > div {

    overflow:hidden;
}

.konsertit__toggle {
    display:none;
}
.konsertit__toggle:checked ~ .konsertit__container > .konsertit__panel {
    /* transform:scaleY(1);
    -webkit-transform:scaleY(1);
    -ms-transform:scaleY(1);

    max-height:200vh;
    padding:1em; */

    /* height:50%; */
    padding:1em; 

    grid-template-rows: 1fr;

}

.konsertit__toggle:checked ~ .konsertit__container {
    background: var(--väri-vaalea-400);
}

.konsertit__show {
    position:relative;
    display:flex;
    align-items: center;
    justify-content: center;
    padding:2em;
    cursor:pointer;
    gap:1em;
}

.konsertit__show:hover,
.konsertit__show:focus {
    background: var(--väri-vaalea-200);
}
.konsertit__show > i:nth-of-type(2) {
    display:none;
}


.show {
    display:none;
}

#toggle-konsertit-show {
    display:none;
}

#toggle-konsertit-show:checked ~ .show {
    display:block;
}

#toggle-konsertit-show:checked ~ label > .konsertit__show > i:nth-of-type(2) {
    display:block;
}

#toggle-konsertit-show:checked ~ label > .konsertit__show > i:nth-of-type(1) {
    display:none;
}

@media only screen and (min-width: 50em) { 
    #konsertit .sisalto > div:first-child {
        display:block;
    }
    #konsertit .sisalto > div:nth-child(2) {
        background-color: var(--väri-vaalea-400);
        width:50%;
    }
    .konsertit__kuva {

        margin-left:0;
    }
    
}


/* MEDIA */

#media {
    background:linear-gradient(to right, #100d28, #000);

}
.galleria-wrap {
    height: auto;
    overflow: hidden;
    width:100%;
    background:linear-gradient(to right, #100d28, #000);

}
.galleria {
    position: relative;
    height: 100%;
    width: 100%;
    display: grid;
    display: -ms-grid;

    margin: auto;
    grid-template-columns: auto;
    grid-auto-rows: 40vh;
} 
.galleria-img {
    width: 100%;
    height: 100%;
    position:relative;
    overflow: hidden;
}

.galleria-img::before {
    content: '';
    display: block;
    position: absolute;
    inset: 0em;
    background: var(--väri-aksentti);
    mix-blend-mode: multiply;
    z-index:2;
    pointer-events: none;
    opacity: 0;
    transition: opacity 300ms ease-in-out;
    border-radius: 6px;

}

.galleria-img:hover::before,
.galleria-img:focus::before  {
    opacity: 1;
}

.galleria-img span {
    display: block;
    position: absolute;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    font-weight: 600;
    color: white;
    inset: 0;
    padding: 1em;
    z-index:2;
    transition: transform 300ms ease-in-out; 
    transform: scale(0, 0);
    -webkit-transform: scale(0, 0);
    -ms-transform: scale(0, 0);

    pointer-events: none;
}

.galleria-img:hover span,
.galleria-img:focus span {  
    transform: scale(1, 1);
    -webkit-transform: scale(1, 1);
    -ms-transform: scale(1, 1);

}

.galleria img {
    height: 100%;
    width: 100%;
    object-fit: cover;
    -o-object-fit: cover;

    object-position: top center;
    transition: 300ms ease-in-out;
} 


@media only screen and (orientation:landscape) { /* min-width 641px, medium screens */
  .galleria-wrap {
    height: 100vh;
    max-height:40em;
  }
  .galleria {
    position: relative;
    height: 100%;
    margin: auto;
    display: grid;
    display:-ms-grid;

    grid-template-columns:auto auto auto auto;
    grid-auto-rows: auto;
    grid-auto-flow: dense;
  } 

  .galleria-img:first-child {
    grid-column: span 2;
    grid-row: span 2;
  }

  .galleria-img:nth-child(2n+3) {
    grid-row: span 2;
  }

  .galleria-img:nth-child(4n+5) {
    grid-column: span 1;
    grid-row: span 2;

  }

  .galleria-img:nth-child(8n+9) {
    grid-column: span 1;
    grid-row: span 1;

  }

  .galleria img {

    object-position: center center;

  } 
}



/* FOOTER */


#footer {
    color:var(--väri-vaalea-800);
}
#footer .sisalto {
    display:flex;
    justify-content: center;
}
#footer .sisalto > div {
    display:flex;
    flex-direction: column;

}

#footer .sisalto > div:first-of-type {
    /* background-color:linear-gradient(to right, #100d28, #000); */
    /* max-width:40ch; */
    background: var(--väri-vaalea-100);
    width:100%;
    padding:1em;

}

#footer .sisalto > div:first-of-type > p {
    max-width:40ch;
}


#footer .sisalto > div:last-of-type {
    display:none;
}

.footer__support {
    display:flex;
    flex-wrap: wrap;
    gap:1em;
    margin:0 0 1em 0;
    
}

.footer__support > * {
    display:flex;
    justify-content: center;
    align-items: center;
}

.footer__support img {
    
    height:4em;
    width:auto;
}


@media only screen and (min-width: 50em) { 



    #footer .sisalto > div:last-of-type {
        background:url(img/miettola_contacts.jpeg) right top / cover no-repeat;

        width:100%;
        min-height:50vh;
        display:block;
        margin-right:-1px;
    }

    #footer .sisalto > div:first-of-type {
        order:3;
        max-width:40vw;
        padding:1em;
        background:linear-gradient(to right, #100d28, #000);

    }




}


/* UTILITIES */

.fs-l {
    font-size: var(--fs-l);
}
