@charset "UTF-8";
main{
  padding-bottom: 0;
}
section{
  width: min(1120px,100%);
  margin-inline: auto;
  padding: 0 16px;
}
section .h2-wrap{
  margin-bottom: 48px;

  h2{
    font-size: 26px;
    font-weight: 600;
    line-height: 1.6;
  }
  .h2-ENG{
    font-size: 17px;
    font-family: var(--ff-2);
    font-weight: 700;
    color: var(--tc);
  }
}
section#profile{
  padding-top: 104px;
  padding-bottom: 196px;

  --bg-color: #F7F7F7;
  background: var(--bg-color);
  border-image-source: linear-gradient(var(--bg-color), var(--bg-color));
  border-image-slice: 0 fill;
  border-image-outset: 0 100vw;
}
section#profile .profileContent-wrap{
  position: relative;
  
  .portlait{
    position: absolute;
    top: 144px;
    right: 0;

    width: calc(18% + 200px);
  }
}
section#profile .profileContent{
  position: relative;
  
  width: 82%;
  padding: 80px 0;
  padding-left: 88px;
  padding-right: 240px;


  background: #fff;
  box-shadow: 18px 18px #E0E0E0;
  .name-ENG{
    position: absolute;
    top: 0;
    right: 8px;

    font-size: 52px;
    font-family: "Noto Serif JP", serif;
    font-optical-sizing: auto;
    font-weight: 500;
    color: #EAEAEA;
  }
  .name-wrap{
    margin-bottom: 36px;

    font-family: "Noto Serif JP", serif;
    font-optical-sizing: auto;
    font-weight: 500;
  }
  .job{
    font-size: 18px;
    font-weight: 600;
  }
  .name{
    font-size: 40px;
    color: var(--tc);
  }
  .textContent{
    line-height: 1.6;
  }
}
section:is(#outline,#history){
  display: grid;
  grid-template-columns: auto 1fr;
  column-gap: 120px;
}
section#outline{
  padding-top: 96px;
}
section#outline ul.outline-list{
  .item dl{
    display: grid;
    grid-template-columns: 160px 1fr;
  }
  .item *:is(dt,dd){
    padding: 24px 0;
  }
  .item dt{
    display: flex;
    justify-content: center;

    font-weight: 700;

    border-bottom: solid 1px var(--tc);
  }
  .item:nth-child(1) dt{
    border-top: solid 1px var(--tc);
  }
  .item dd{
    padding-left: 120px;
    padding-right: 120px;
    
    border-bottom: solid 1px #DEDEDE;
  }
  .item:nth-child(1) dd{
    border-top: solid 1px #DEDEDE;
  }
}
section#history{
  padding-top: 120px;
  padding-bottom: 24px;
}
section#history ul.history-list{

  .item{
    position: relative;

    padding-left: 32px;
  }
  >*+*{
    margin-block-start: 32px;
  }
  .item::before{
    content: '';
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    z-index: 2;

    width: 12px;
    height: 12px;

    background: #fff;
    border: solid 2px var(--tc);
    border-radius: 50%;
  }
  .item:not(:last-child)::after{
    content: '';
    position: absolute;
    top: 8px;
    left: 6px;

    display: inline-block;
    width: 1px;
    height: calc(100% + 32px);

    background: var(--tc);
  }
  .item dl{
    display: grid;
    align-items: center;
    grid-template-columns: 88px 1fr;
    column-gap: 24px;
  }
  .item dt{
    font-size: 17px;
    color: var(--tc);
    font-weight: 700;
  }
  .item dd{
    font-size: 16px;
  }
}
section#access{
  padding-top: 120px;
  padding-bottom: 120px;

  address{
    width: 100%;
  }
  address>p{
    margin-bottom: 8px;
  }
  address iframe{
    width: 100%;
  }
}
section#link{
  padding-top: 88px;
  padding-bottom: 120px;

  --bg-color: #F7F7F7;
  background: var(--bg-color);
  border-image-source: linear-gradient(var(--bg-color), var(--bg-color));
  border-image-slice: 0 fill;
  border-image-outset: 0 100vw;

  .linkCON-title{
    margin-bottom: 8px;

    font-weight: 700;
  }
}
section#link >.linkCON-wrap+*{
  margin-block-start: 48px;
}
section#link .linkCON{
  display: grid;
  grid-template-columns: repeat(3,1fr);
  column-gap: 24px;
  row-gap: 32px;

  .item{
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: 90px;

    padding: 24px;

    background: #fff;
  }
  .item:has(p.desc){
    grid-template-rows: 96px auto;
  }
  .item>picture{
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .item p.desc{
    width: 100%;
    font-size: 15px;
    line-height: 1.6;
  }
}
@media (min-width : 1200px){
}
@media (max-width : 1200px){
  section:is(#outline,#history){
    display: grid;
    grid-template-columns: 1fr;
    column-gap: 0;
  }
  section#profile .profileContent-wrap{
    position: relative;
    display: grid;
    grid-template-columns: repeat(2,1fr);
    column-gap: 24px;

    padding: 16px;

    background: #fff;
    
    .portlait{
      position: inherit;
      top: 0;
      right: 0;

      display: flex;
      justify-content: right;
  
      width: 100%;
    }
  }
  section#profile .profileContent{
    width: 100%;
    padding: 16px 0;

    box-shadow: none;
    .name-ENG{
      display: none;
    }
  }
}
@media (max-width : 599px){
  section .h2-wrap{
    margin-bottom: 24px;
  }
  section#profile{
    padding-top: 32px;
    padding-bottom: 40px;
  }
  section#profile .profileContent-wrap{
    position: relative;
    display: grid;
    grid-template-columns: 1fr;

    padding: 16px;
  }
  section#outline{
    padding-top: 32px;
    padding-bottom: 40px;
  }
  section#outline ul.outline-list{
    .item dl{
      display: grid;
      grid-template-columns: 1fr;
    }
    .item *:is(dt,dd){
      padding: 16px;
    }
    .item dt{
      display: flex;
      justify-content: left;
  
      font-weight: 700;
  
      border-bottom: solid 1px var(--tc);
    }
    .item:nth-child(1) dt{
      border-top: solid 0px var(--tc);
    }
    .item dd{
      border-bottom: solid 0px #DEDEDE;
    }
    .item:nth-child(1) dd{
      border-top: solid 0px #DEDEDE;
    }
  }
  section#history ul.history-list{

    .item{
      padding-left: 32px;
    }
    >*+*{
      margin-block-start: 32px;
    }
    .item::before{
      content: '';
      position: absolute;
      top: 12px;
      left: 0;
      transform: 0;
      z-index: 2;
    }
    .item dl{
      grid-template-columns: 1fr;
      row-gap: 4px;
    }
  }
  section#link .linkCON{
    display: grid;
    grid-template-columns: repeat(1,1fr);
    column-gap: 24px;
    row-gap: 32px;
  
    .item{
      padding: 16px;
    }
  }
}