@charset "utf-8";

.classListMenu {
  background: #F4F4F4;
  padding: var(--pd30) var(--pd20);
  padding-left: 0;
  max-width: 200px;
    transition: transform 0.6s ease, opacity 0.6s ease; 
  /* position: sticky; */
  /* left: 0; */
  /* top: 0; */
}

.classListMenu.is-hidden {
  transform: translateX(-200px);
  opacity: 0;
  pointer-events: none;
}

.classMenu-toggle{
  position: absolute;
  left: var(--pd15);
  top: var(--pd20);
  z-index: 99999999;
}

.classMenu-toggle .bars{
  display: flex;
  flex-direction: column;
  gap: .3em;
  width: 2em;
}

.classMenu-toggle .bars span{
  display: block;
  height: .15em;
  background:var(--mainColor);
}

.classListMenu_main{
  /* position: sticky;
  top: var(--pd20); */
  position: relative;
}


.Category_t{
  padding: var(--pd20) var(--pd15);
  padding-left: calc(1.6em + var(--pd15));
  display: flex;
  flex-direction: column;
  font-size: var(--fz22);
  line-height: 1.4;
  position: relative;
  color: #444444;
}

.Category_t::before{
  content: '';
  width: 1.4em;
  height: 1.4em;
  position: absolute;
  left: var(--pd15);
  top: var(--pd20);
  background-position: center left;
  background-repeat: no-repeat;
  background-size: 100%;
  background-image: url(../images/ysw_icon19.png);
}

.Category_t h2{
  font-weight: normal;
  font-size: inherit;
}

.Category_t h3{
  font-weight: normal;
  font-size: .63em;
}

.classListMenu_main>ul{
  width: 180px;
  border-top: 1px solid var(--inputColor01);
  display: grid;
  grid-template-columns: 1fr;
  grid-gap: var(--pd20);
}

.Category_list_t{
  color: var(--mainColor);
  font-size: var(--fz18);
  padding-left: calc((var(--fz22) * 1.4) + var(--pd15));
}

.Category_list_t h3{
  letter-spacing: .1em;
  font-size: inherit;
}

.Category_list_t h4{
  font-weight: normal;
  font-size: .78em;
}

.Category_list_t::before{
  width: 1.6em;
  height: 1.6em;
}

.legalList::before{
  background-image: url(../images/ysw_icon01.png);
}

.NotarialList::before{
  background-image: url(../images/ysw_icon02.png);
}

.classListMenu ul ul{
  display: grid;
  /* grid-gap: var(--pd10); */
}

.classListMenu li a{
  display: block;
  padding: .3em .5em;
  padding-left: calc((var(--fz22) * 1.4) + var(--pd15));
  position: relative;
  overflow: hidden;
}

.classListMenu li a::before{
  content: '';
  background: var(--subColor05);
  width: 100%;
  height: 100%;
  border-radius: 0 var(--pd10) var(--pd10) 0;
  position: absolute;
  right: 0;
  top: 0;
  z-index: -1;
  transform: translateX(-100%);
  transition: ease-in-out .6s;
}


/* hover統整 */
@media (hover:hover) and (pointer:fine) {
  .classListMenu li a:hover::before{
    transform: translateX(0);
  }
}
@media (min-width: 1441px) {
  .classListMenu {
    margin-left: 0px;
    opacity: 1;
    transition: margin-left 0.6s ease, opacity 0.6s ease; 
  }

  .classListMenu.is-pc-hidden {
    margin-left: -200px;
    opacity: 0;
  }
}

@media (max-width: 1440px){
  .classListMenu {
    position: fixed;
    left: 0;
    margin-left: 0px !important;
    opacity: 1;
    transform: translateX(0px);
    transition: transform 0.6s ease, opacity 0.6s ease; 
    overflow-y: auto;
    z-index: 99999;
  }

  .classListMenu.is-mb-hidden {
    opacity: 0;
    transform: translateX(-200px); 
  }
}


@media (max-width: 1024px){
  .classMenu-toggle{
    left: 150px;
    position: fixed;
    top: 25px;
  }

  .classListMenu {
    z-index: 88888;
    top: 74px;
    transform: translateY(0);
    transition: transform 0.6s ease, opacity 0.6s ease; 
    width: 100%;
    max-width: 100%;
    height: auto;
    padding-bottom: var(--pd30);
  }

  .classListMenu.is-mb-hidden {
    opacity: 0;
    transform: translateY(-200px); 
  } 

  .classListMenu_main>ul{
    width: 100%;
  }

  .classListMenu ul ul{
    display: flex;
    grid-gap: unset;
    gap: var(--pd10);
    justify-content: flex-start;
    flex-wrap: wrap;
    align-items: flex-start;
  }

  .classListMenu li a{
    padding: .3em .5em;
  }
}