/* settings */
html { font-size: clamp( 14px, calc(14px + (18 - 14) * ((100vw - 360px) / (1700 - 360))), 18px ); }
:root{ --grid-gap: 1.22rem; --grid-cols: 12; --grid-unit: calc((100vw - (13 * var(--grid-gap))) / var(--grid-cols)); --indent: calc( ( 2 * var(--grid-unit) ) + ( 2 * var(--grid-gap) ) ); }
@media (min-width: 2000px) { :root{ --grid-gap: 1.22rem; --grid-cols: 12; --grid-unit: calc((2000px - (13 * var(--grid-gap))) / var(--grid-cols)); } }
@media (max-width: 1200px) {  
    
}



/* yleisiä */
a:hover { opacity: 1; }
.wp-block-group-is-layout-grid { gap: 1.22rem; }
.img-mb-0, .img-mb-0 img { display: block; margin-bottom: 0px!important; }
.img-mb-gap, .img-mb-gap img { display: block; margin-bottom: var(--grid-gap)!important; }
.img-mb-gap-small, .img-mb-gap-small img { display: block; margin-bottom: 0.5rem!important; }

/* container */
/*
@media (max-width: 1600px) { .container { padding-right: 3rem; padding-left: 3rem; } }
@media (max-width: 768px) { .container { padding-right: 2rem; padding-left: 2rem; } }
@media (max-width: 500px) { .container { padding-right: 1rem; padding-left: 1rem; } } */


@media (min-width: 960px) and (max-width: 1700px) {
  h3 { font-size: calc( 0.85 * var(--h3fontsize) ); }
}

h1, h2, h3, h4 { letter-spacing: -0.04em; }



:where(.is-layout-flex) {
  gap: var(--grid-gap);
}




/* header - navilink colors */
.m-style>ul>li.violet>.wrap::after, .m-style>ul>li.violet.current-menu-item>.wrap::after { background-color: var(--nv-primary-accent); }
.m-style>ul>li.orange>.wrap::after, .m-style>ul>li.orange.current-menu-item>.wrap::after { background-color: var(--nv-secondary-accent); }
.m-style>ul>li.green>.wrap::after, .m-style>ul>li.green.current-menu-item>.wrap::after { background-color: var(--nv-c-1); }
.m-style>ul>li.gray>.wrap::after, .m-style>ul>li.gray.current-menu-item>.wrap::after { background-color: var(--custom-1); }
@media (max-width: 1300px) { .nav-ul { justify-content: end; } .nav-ul>li { margin: 0 0.3rem; } }
.m-style>ul>li.current-menu-item>.wrap::after { width: 100%; }




/* Sisennykset */
.has-indent { text-indent: calc( ( 2 * var(--grid-unit) ) + ( 2 * var(--grid-gap) ) ); }


.mb-0 { margin-bottom: 0px!important; }
.h-100 { height: 100%; }
.space-between-vertical { height: 100%; }
.space-between-vertical > div{
    height: 100%; 
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}
.space-between-horizontal {
    justify-content: space-between!important;
}




/* FOOTER */
.footer_area > div {
    padding-top: 5rem;
    padding-bottom: 3rem;
}

.footer_area > div > div {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem; 
}

.footer_area .left_col { align-self: flex-start; }

.footer_area .left_col > div > * {
    margin-bottom: 3rem;
}

.footer_area .row_logo, .footer_area .row_contact, .footer_area .row_copyright {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem; 
}

.footer_area .row_logo { align-items: flex-end; }

.footer_area .row_logo p, .footer_area .row_contact p { font-weight: 500; }

.footer_area .right_col {
    align-self: flex-start;
}

.footer_area a { color: #ffffff; text-decoration: underline; }


@media (max-width: 959.99px) {
    .footer_area > div > div {
        grid-template-columns: 1fr;
    }
} 

@media (max-width: 599.99px) {
    .footer_area .row_logo, .footer_area .row_contact, .footer_area .row_copyright {
        grid-template-columns: 1fr;
    }
} 






/* Footerlinks (ACF-block) */
.footerlinks .footerlinks__list {
    list-style: none;
    margin: 0;
    padding: 0;
    border-top: 2px solid #707070;
    border-bottom: 2px solid #707070;
  }
  
  .footerlinks .footerlinks__item {
    border-top: 2px solid #707070;
  }
  
  .footerlinks .footerlinks__item:first-child {
    border-top: none; 
  }


  .footerlinks .footerlinks__link{
    display: grid;
    grid-template-columns: 1fr 120px 20px; /* desc | domain | ikoni */
    align-items: center;
    column-gap: 24px;
  
    padding: 6px 0;
  
    color: var(--custom-2);
    font-size: 0.833rem;
    text-decoration: none;
  }
  
  .footerlinks .footerlinks__domain{
    text-align: left;      /* domain vasemmalle */
    white-space: nowrap;
  }
  
  .footerlinks .footerlinks__icon img{
    width: 18px;
    height: 18px;
    display: block;
  }
  
  .footerlinks .footerlinks__icon img{
    width: 18px;
    height: 18px;
    display: block;
  }




/* fonts */
.has-small-font-size {
    font-size: 0.83rem;
}
.has-medium-font-size {
    
}
.has-large-font-size {
    font-size: var(--h5fontsize)!important;
    font-weight: var(--h5fontweight);
    line-height: var(--h5lineheight);
    letter-spacing: var(--h5letterspacing);
    text-transform: var(--h5texttransform);
}
.has-x-large-font-size {
    font-size: var(--h4fontsize)!important;
    font-weight: var(--h4fontweight);
    line-height: var(--h4lineheight);
    letter-spacing: var(--h4letterspacing);
    text-transform: var(--h4texttransform);
    margin-top: -10px;
}



/* GROUP BLOCK - valinnat */
@media (min-width: 1400px) {
.wp-block-group[data-max-width="928px"]{ max-width: calc( ( 6 * var(--grid-unit) ) + ( 5 * var(--grid-gap) ) ); }
.wp-block-group[data-max-width="612px"]{ max-width: calc( ( 4 * var(--grid-unit) ) + ( 3 * var(--grid-gap) ) ); }
.wp-block-group[data-max-width="454px"]{ max-width: calc( ( 3 * var(--grid-unit) ) + ( 2 * var(--grid-gap) ) ); }
.wp-block-group[data-max-width="296px"]{ max-width: calc( ( 2 * var(--grid-unit) ) + ( 1 * var(--grid-gap) ) ); }
.wp-block-group[data-max-width="60%"]{ max-width: calc( ( 8 * var(--grid-unit) ) + ( 7 * var(--grid-gap) ) ); margin: auto; } 
}
@media (max-width: 1399.99px) {
    .wp-block-group[data-max-width="928px"]{ max-width: 928px; }
    .wp-block-group[data-max-width="612px"]{ max-width: 612px; }
    .wp-block-group[data-max-width="454px"]{ max-width: 454px; }
    .wp-block-group[data-max-width="296px"]{ max-width: 296px; }
    .wp-block-group[data-max-width="60%"]{ max-width: calc( ( 10 * var(--grid-unit) ) + ( 11 * var(--grid-gap) ) ); margin: auto; } 
}




/* buttons */
.wp-block-button:not(.is-style-primary):not(.is-style-secondary) a, .field-wrap input[type=submit] {
    cursor: pointer;
    box-sizing: border-box;
    background: var(--primarybtnbg);
    color: var(--primarybtncolor);
    border-style: solid;
    border-color: currentColor;
    fill: currentColor;
    border-width: var(--primarybtnborderwidth, 0);
    border-radius: var(--primarybtnborderradius, 3px);
    padding: var(--primarybtnpadding, 13px 15px);
    font-weight: var(--btnfontweight, 700);
    font-size: var(--btnfs, var(--bodyfontsize));
    line-height: var(--btnlineheight, 1.6);
    letter-spacing: var(--btnletterspacing, var(--bodyletterspacing));
    text-transform: var(--btntexttransform, none);
}

.wp-block-button:not(.is-style-primary):not(.is-style-secondary) a:hover, .field-wrap input[type=submit]:hover {
    background: var(--primarybtnbg);
    color: var(--secondarybtnhovercolor);
    border-color: var(--secondarybtnhovercolor);
}



.wp-block-button__link {
    display: flex;
    align-items: center;
}


/* button icon base */
.wp-block-button__link::before, .field-wrap input[type=submit]:before {
    content:"";
    width:1rem;
    height:1rem;
    display:inline-block;
    margin-right:0.5rem;
    background-size:contain;
    background-repeat:no-repeat;
    background-position:center;
  }
  
  /* default = green */
  .wp-block-button__link::before, .field-wrap input[type=submit]:before {
    background-image:url(../img/icon_btn_green.svg);
  }
  
  /* secondary = orange */
  .wp-block-button.is-style-secondary .wp-block-button__link::before{
    background-image:url(../img/icon_btn_orange.svg);
  }
  
  /* primary = violet */
  .wp-block-button.is-style-primary .wp-block-button__link::before{
    background-image:url(../img/icon_btn_violet.svg);
  }

  /* button icon base */
.wp-block-button__link, .field-wrap input[type=submit]{
    display:inline-flex;
    align-items:center;
  }
  
  .wp-block-button__link::before, .field-wrap input[type=submit]::before{
    content:"";
    width:1rem;
    height:1rem;
    display:inline-block;
    margin-right:0.6rem;
    background-size:contain;
    background-repeat:no-repeat;
    background-position:center;
  
    transition: transform 0.2s ease;
  }
  
  /* hover zoom */
  .wp-block-button__link:hover::before, .field-wrap input[type=submit]:hover:before{
    transform: scale(1.3);
  }
  
  /* default = green */
  .wp-block-button__link::before, .field-wrap input[type=submit]::before{
    background-image:url(../img/icon_btn_green.svg);
  }
  
  /* secondary = orange */
  .wp-block-button.is-style-secondary .wp-block-button__link::before{
    background-image:url(../img/icon_btn_orange.svg);
  }
  
  /* primary = violet */
  .wp-block-button.is-style-primary .wp-block-button__link::before{
    background-image:url(../img/icon_btn_violet.svg);
  }




  /* header video area */
  .header_video {
    --video_margin: calc( ( 4 * var(--grid-unit) ) + ( 4.7 * var(--grid-gap) ) + 6px ); 
  }
  .header_video_row {
    margin-top: calc( -1 * ( var(--video_margin) - 2.3rem ) );
  }
  .header_video_row > * {
    width: calc( ( 3 * var(--grid-unit) ) + ( 2 * var(--grid-gap) ) ); 
  }

  .header_video_row > .video_area {
        width: calc( ( 8 * var(--grid-unit) ) + ( 7 * var(--grid-gap) ) ); 
        height: var(--video_margin);
  }

  .header_video_row .video_area img, .header_video_row .video_area video {
    display: block;
    width: 100%;
  }

  .video_empty_area {
    height: calc( var(--video_margin) - 6rem ) !important;
  }

  .video_area > div, .video_area > div > * {
    position: relative;
}

  .header_video .video_btn {
    position: absolute;
    width: 50%;
    right: 0px;
    bottom: -1px;
    z-index: 999;
    height: 4.5rem;
    display: flex;
    align-items: center;
    padding-left: 2rem;
  }

  .header_video .video_btn a {
      background-color: #ffffff!important;
      color: #000000!important;
  }

  @media (max-width: 959px) {
    .header_video_row {
      width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    padding: 0 7.5px;
    background: linear-gradient(
  to bottom,
  var(--nv-primary-accent) 0 66.666%,
  transparent 66.666% 100%
);

      flex-direction: column;
      margin-top: 0px ;
    }
    .header_video_row > * {
      width: 100%; 
    }

    .video_empty_area { display: none; }

    .header_video_row > .video_area { width: 100%;}

    .header_video {
      --video_margin: auto;
    }

  }


  




  /* 2 columns */
  .two_columns_grid{
    display: grid;
    gap: 1.22rem!important;
    grid-template-columns: repeat(2, minmax(350px, 1fr))!important;
  }
  
  /* jos tila ei riitä kahdelle 350px sarakkeelle */
  @media (max-width: calc(700px + 1.22rem)){
    .two_columns_grid{
      grid-template-columns: 1fr!important;
    }
  }



/* osittain väritaustan päälle tulevat kuvat */
.image_over_color_large { margin-top: -18rem; }
.image_over_color_large-space { height: 18rem!important; }
@media (max-width: 960px) {
    .image_over_color_large { margin-top: -12rem; }
    .image_over_color_large-space { height: 12rem!important; }
}
@media (max-width: 600px) {
    .image_over_color_large { margin-top: -8rem; }
    .image_over_color_large-space { height: 8rem!important; }
}

/* osittain väritaustan päälle tulevat kuvat */
.image_over_color_medium { margin-top: -22rem; }
.image_over_color_medium-space { height: 18rem!important; }
@media (max-width: 960px) {
    .image_over_color_medium { margin-top: -18rem; }
    .image_over_color_medium-space { height: 15rem!important; }
}
@media (max-width: 600px) {
    .image_over_color_medium { margin-top: -12rem; }
    .image_over_color_medium-space { height: 9rem!important; }
}






.relative {
    position: relative;
}

.image_space {
    height: 400px!important;
}

.image_over_bottom {
    position: absolute;
    top: 2rem;
}





  /* Group corner icons */
.wp-block-group[data-corner-left="1"],
.wp-block-group[data-corner-right="1"]{
  position: relative;
}

/* vasen kulma */
.wp-block-group[data-corner-left="1"]::before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  width:40px;
  height:40px;
  background-repeat:no-repeat;
  background-size:contain;
  background-image:url(../img/kulma_vasen_vharmaa.svg);
  z-index: 2;
}

/* oikea kulma */
.wp-block-group[data-corner-right="1"]::after{
  content:"";
  position:absolute;
  top:0;
  right:0;
  width:40px;
  height:40px;
  background-repeat:no-repeat;
  background-size:contain;
  background-image:url(../img/kulma_oikea_vharmaa.svg);
  z-index: 2;
}

/* jos group on bg-containerin sisällä, vaihda ikonit samalla logiikalla kuin content-area */
.bg-container--violet .wp-block-group[data-corner-left="1"]::before,
.bg-container--orange .wp-block-group[data-corner-left="1"]::before,
.bg-container--gray   .wp-block-group[data-corner-left="1"]::before,
.bg-container--green  .wp-block-group[data-corner-left="1"]::before{
  background-image:url(../img/kulma_vasen_musta.svg);
}

.bg-container--black .wp-block-group[data-corner-left="1"]::before{
  background-image:url(../img/kulma_vasen_oranssi.svg);
}


.bg-container--dark .wp-block-group[data-corner-left="1"]::before{
  background-image:url(../img/kulma_vasen_harmaa.svg);
}

/* oikea puoli vastaavasti */
.bg-container--violet .wp-block-group[data-corner-right="1"]::after,
.bg-container--orange .wp-block-group[data-corner-right="1"]::after,
.bg-container--gray   .wp-block-group[data-corner-right="1"]::after,
.bg-container--green  .wp-block-group[data-corner-right="1"]::after{
  background-image:url(../img/kulma_oikea_musta.svg);
}

.bg-container--black .wp-block-group[data-corner-right="1"]::after{
  background-image:url(../img/kulma_oikea_oranssi.svg);
}
.bg-container--dark .wp-block-group[data-corner-right="1"]::after{
    background-image:url(../img/kulma_oikea_harmaa.svg);
  }









  .custom_position_1 {
      justify-content: space-between;
  }





  .colors ul {
      margin-top: 0px!important;
      gap: 1rem;
  }
  .colors ul li {
    margin-top: 0px!important;
  }





  /* Header video row */
  .header_video_row {

  }


  .between_end {
    justify-content: space-between!important;
    align-items: end!important;
  }



  /* single reference */
  .nv-single-post-wrap>div:first-child { margin-top: 0px; }
  .nv-single-post-wrap>div:last-child { padding-bottom: 0px; }
    .nv-single-post-wrap { margin-bottom: 0px; }



/* lomake */
.nf-form-fields-required {display: none; }




.custom-list-style {
list-style: none;
  margin: 0!important;
  padding: 0;
  border-top: 2px solid #707070;
  border-bottom: 2px solid #707070;
  width: 100%;
}



.custom-list-style > li{
  font-size: 0.89rem;
  font-weight: 500;
  padding: 5px 0;
  margin-top: 5px!important;
  border-top: 2px solid #707070;
}

.custom-list-style > li:first-child{
  border-top: none; 
}

.custom-list-style.black {
  border-top: 2px solid #000000;
  border-bottom: 2px solid #000000;
}

.custom-list-style.black > li {
  border-top: 2px solid #000000;
}

.custom-list-style.black > li:first-child{
  border-top: none; 
}


.d-flex-h.justify-space-between {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.d-flex-h.justify-space-between p {
  margin-bottom: 0px;
}


.wp-block-table.technical {
  margin-top: 0px;
  margin-bottom: 0px;
}
.wp-block-table.technical table {
  border-width: 0px;
}


.wp-block-table.technical tr {
  
}

.wp-block-table.technical td {
  font-weight: 500;
  font-size: 15px;
  border-width: 0px;
  border-bottom: 2px solid #CCCCCC;
  border-bottom-width: 2px !important;
  padding-left: 0px;
}

.wp-block-table.technical tr > td:first-child {
  color: #999999;
}