@charset "utf-8";

@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700;900');
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@300;400;500;600;700;900');
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700');
@import url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900');

@media screen and (min-width: 751px) {
  /* reset css */
  html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary, time, mark, audio, video { margin: 0; padding: 0; border: 0; outline: 0; font-size: 100%; vertical-align: baseline; background: transparent; }body { line-height: 1; }article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { display: block; }nav ul { list-style: none; }blockquote, q { quotes: none; }blockquote:before, blockquote:after, q:before, q:after { content: ''; content: none; }a { margin: 0; padding: 0; font-size: 100%; vertical-align: baseline; background: transparent; }/* change colours to suit your needs */ins { background-color: #ff9; color: #000; text-decoration: none; }/* change colours to suit your needs */mark { background-color: #ff9; color: #000; font-style: italic; font-weight: bold; }del { text-decoration: line-through; }abbr[title], dfn[title] { border-bottom: 1px dotted; cursor: help; }table { border-collapse: collapse; border-spacing: 0; }/* change border colour to suit your needs */hr { display: block; height: 1px; border: 0; border-top: 1px solid #cccccc; margin: 1em 0; padding: 0; }input, select { vertical-align: middle; }


  /*
   * defaut style
   */
  html { height: 100%; overflow-y: scroll; font-size:16px; margin-top:0!important; background:#00405a; }
  body { /* min-height:100%; */  font-size: 100%; color: #000; word-wrap: break-word; overflow:hidden; background:#fff; -webkit-font-smoothing: antialiased; }
  body { font-family:'Noto Sans JP', sans-serif; font-weight: 400; }
  select,
  input[type=text],
  textarea { font-family: 'Noto Sans JP', sans-serif; font-size:16px; color:#000; }
  ::placeholder { font-family: 'Noto Sans JP', sans-serif; font-size:16px;  color:#CDCCCC; }
  div { font-size:16px; }
  table { word-break: break-word; }
  img { max-width: 100%; height: auto; width: auto; vertical-align: bottom; border: none; }
  li { list-style-type: none; }
  ol { margin-bottom:1.5em; }
  ol li {  margin-left:20px; padding-left:5px; list-style-type:decimal; margin-bottom:0.2em; line-height:180%; }
  ul { margin-bottom:1.5em; }
  ul li {  margin-left:20px; padding-left:0px; list-style-type:disc; margin-bottom:0.5em; line-height:180%; }
  dt { font-weight:bold; line-height:160%; margin-bottom:0.5em; font-size:15px; }
  dd { margin-bottom:1.5em; line-height:160%; font-size:15px; }
  p { margin-bottom: 2.5em; line-height:200%; }
  p:last-child { margin-bottom:0; }
  a { color: inherit; text-decoration: none; }
  a:hover { text-decoration: underline; }
  sup { position: relative; font-size: 100%; top: -5px; }
  sub { position: relative; font-size: 100%; bottom: -5px; }
  .clearfix { *zoom: 1; }
  .clearfix:after { content: ''; display: block; clear: both; height: 0; margin-top: -1px; }
  .sp { display: none!important; }
  .center { text-align:center; }
  .pc-center { text-align:center; }
  .right { text-align:right; } 
  .pc-right { text-align:right; } 
  strong { /* color:#C00; */ }
  em { /* color:#960; */ font-weight:bold; font-style:normal; }
  * { box-sizing:border-box; }
  .eng { font-family:"Montserrat"; }

  #loader-bg {
    display: none;
    position: fixed;
    width: 100%;
    height: 100%;
    top: 0px;
    left: 0px;
    background: #fff;
    z-index: 9999;
  }
  #loader {
    display: none;
    position: fixed;
    top: calc(50%);
    left: 0%;
    width: 100%;
    height: 2;
    margin-top: 0px;
    margin-left: 0px;
    text-align: center;
    color: #000;
    z-index: 10000;
  }
  #loader .circle { position:relative; top:-5px; }
  #loader .circle > span { display:inline-block; width:8px; height:8px; margin:4px; background:#162a75; border-radius:50%; opacity:0.2; }
  #loader .bar { display:none; background:#ff9900; height:2px; width:0%; transition:0.5s ease-in-out; }



  /*
   * contents
   */
  #container { }
  body.loading #container { visibility:hidden; } 
  .contents { padding-top:80px; }
  .content-wrapper { }
  .main-content { max-width:1200px; margin:0 auto; padding:0 20px; position:relative; box-sizing:content-box; }
  body.topics-single .main-wrapper { max-width:1200px; margin:0 auto; padding:0 30px; box-sizing:content-box;  }
  body.topics-single .main-content { width:68.18181818181818%; padding:0; float:left; }
  body.topics-single .sub-content { width:27.27272727272727%; float:right; }


  /* 汎用 */
  .section { margin-bottom:200px;  }
  /*.section:first-child { margin-top:0px; padding-top:0px; }*/
  .article { margin:0 40px; }
  .article p { line-height:200%; }
  .indent01 { margin:0 45px 0; }
  .red { color:#e60012; }
  .note { font-size:15px; }
  .caption { margin-top:2rem; line-height:160%; }
  .section p a { text-decoration:underline; }
  .section p a:hover { color:#2ca7d5; text-decoration:none; }

  .page-title { margin-top:0px; margin-bottom:100px; position:relative; height:260px; }
  .page-title .inner { max-width: 1200px; height: 100%; margin: 0 auto; position: relative; }
  .page-title h1 { color: #000; position:absolute; left: 0; bottom: 0; min-width: 330px; height: 160px; background: #fff; padding:50px 40px 0; }
  .page-title h1 span:nth-child(1) { font-size:30px; font-weight: 500; display:block; margin-bottom: 20px;}
  .page-title h1 span:nth-child(2) { font-family: Roboto; font-size: 16px; font-weight: 700; color: #1FA1DB; display:block; }
  body.about .page-title { background:url(../../about/img/bg_main.jpg) no-repeat center center; background-size:cover;  }
  body.service .page-title { background:url(../../service/img/bg_main.jpg) no-repeat center center; background-size:cover;  }
  body.checklist .page-title { background:url(../../checklist/img/bg_main.jpg) no-repeat center center; background-size:cover;  }
  body.works .page-title { background:url(../../works/img/bg_main.jpg) no-repeat center center; background-size:cover;  }
  body.works .page-title h1 { width: 380px; }
  body.download .page-title { background:url(../../download/img/bg_main.jpg) no-repeat center center; background-size:cover;  }
  body.news .page-title { background:url(../../news/img/bg_main.jpg) no-repeat center center; background-size:cover;  }
  body.privacy .page-title { background:url(../../privacy/img/bg_main.jpg) no-repeat center center; background-size:cover;  }
  body.privacy .page-title h1 span:nth-child(1) { font-size: 24px;  }
  body.contact .page-title { background:url(../../contact/img/bg_main.jpg) no-repeat center center; background-size:cover;  }
  body.error .page-title { background:#E9F6FB;  }
  body.error .page-title h1 { font-family: Roboto; font-size: 50px; font-weight: 500; font-style: italic; color: #1388B9; background: transparent; position: static; width: auto; height: auto; line-height: 260px; margin: 0; padding: 0; text-align:center; }



  .title01 { margin-bottom:110px; opacity: 0; transition:all 0.5s ease-in-out 0s; }
  .title01 span:nth-child(1) { font-size: 70px; font-weight: 600; font-family: Montserrat; margin-bottom:35px; display: block;}
  .title01 span:nth-child(2) { font-weight: 700; display: block; }
  .title02 { margin-bottom:125px; font-size: 26px; font-weight: 500; position: relative; }
  .title02:before { content: ""; display: block; width: 25px; height: 4px; background: #1FA1DB; position:absolute; left: 0; bottom: -32px;}
  .title03 { margin-bottom:110px; font-size: 20px; font-weight: 400; line-height: 1.4; text-align: center; }
  .title04 { margin-bottom:70px; font-size: 26px; font-weight: 500; line-height: 1.4; text-align: center; color: #1FA1DB; }


  .btn01 { position:relative; margin:40px auto; }
  .btn01 a { font-size: 15px; font-weight: 700; font-family: Roboto; color:#fff; background:#1FA1DB; border: 2px solid #1FA1DB; display:inline-block; width:140px; padding:calc(15px) 0; text-align:center; position:relative; text-decoration:none; transition: 0.3s ease-in-out; box-sizing: border-box; }
  .btn01 a:before{ content:""; display:block; width: 21px; height: 1px; background: #fff; position: absolute; right: -2px; top: 50%; transform: translateY(-50%); transition: 0.3s ease-in-out; }
  .btn01 a:hover { color:#1FA1DB; background:#fff; border:2px solid #1FA1DB; }
  .btn01 a:hover:before { background:#1FA1DB; }
  .btn02 { margin-bottom:60px; }
  .btn02 > * { position:relative; display:inline-block; line-height:16px; color:#1FA1DB; font-family: Roboto; font-size:14px; font-weight:700;  transition:0.3s ease-in-out; }
  .btn02 > * > span { display:block; position:relative; z-index:1; padding-right: 25px; }
  .btn02 > * > span:before { content: ""; display: block; position: absolute; right: 0px; top: 50%; transform: translateY(-50%); width: 16px; height: 16px; background: #1FA1DB; border-radius: 50%; }
  .btn02 > * > span:after { pointer-events:none; display: block; position: absolute; top: 50%; right: 6px; transform: translateY(-50%) rotate(45deg); width: 4px; height: 4px; border-top: 2px solid #fff; border-right: 2px solid #fff; content: ""; z-index: 2; }
  .btn02 > *:hover { text-decoration:none; color: #1388B9; }
  .btn02 > *:hover:before { opacity:1; }
  .btn02 > *:hover span:before { background-color: #1388B9; }
  .btn02 > *:hover span:after { border-color:#F8EDA7; animation: move-arrow 0.5s linear ;}
  .btn03 { position:relative; margin:80px auto 0; }
  .btn03 a { font-size: 18px; font-weight: 700; font-family: Roboto; color:#fff; background:#1FA1DB; border: 2px solid #1FA1DB; display:inline-block; width:100%; padding:calc(45px) 0; text-align:center; position:relative; text-decoration:none; transition: 0.3s ease-in-out; box-sizing: border-box; }
  .btn03 a:before{ content:""; display:block; width: 67px; height: 1px; background: #fff; position: absolute; right: -2px; top: 50%; transform: translateY(-50%); transition: 0.3s ease-in-out; }
  .btn03 a:hover { color:#1FA1DB; background:#fff; border:2px solid #1FA1DB; }
  .btn03 a:hover:before { background:#1FA1DB; }
  .btn04 { text-align: center; margin-top: 120px; }
  .btn04 a { position: relative; display:block; background:#1FA1DB; color:#fff; font-size:22px; font-weight: 700; text-align:center; width: 415px; line-height:80px; border-radius: 10px; display: inline-block; }
  .btn04 a:before { content:""; display:block; position:absolute; left:0; top:0; width:100%; height:100%; background: linear-gradient(35deg, rgba(31,161,219,1) 20%, rgba(16,81,110,1) 80%); opacity:0; transition:0.3s ease-in-out; border-radius: 10px; }
  .btn04 a span { position: relative; display:inline-block; }
  .btn04 a span:after { content: ""; display: block; background:url("../img/ico_arrow01.png") no-repeat; background-size: 17px 15px ; width: 17px; height: 15px; position: absolute; right: -50px; top:50%; transform: translateY(-50%); transition:0.3s ease-in-out; }
  .btn04 a:hover { text-decoration:none; }
  .btn04 a:hover:before { opacity:1; }
  .btn04 a:hover span:after { right:-60px; }
  .btn05 { text-align: center; margin-top: 60px; }
  .btn05 a { position: relative; display: inline-block; background: #FC8813; color: #fff; font-size: 22px; font-weight: 700; text-align: center; width: 518px; line-height: 100px; border-radius: 10px; }
  .btn05 a::before { content: ""; display: block; position: absolute; left: 0; top: 0; width: 100%; height: 100%; background: linear-gradient(135deg, #fba400 0%, #ff6200 100%); opacity: 0; transition: 0.3s ease-in-out; border-radius: 10px; }
  .btn05 a span { position: relative; display: inline-block; }
  .btn05 a span::after { content: ""; display: block; background: url("../img/ico_arrow01.png") no-repeat; background-size: contain; width: 24px; height: 26px; position: absolute; right: -50px; top: 52%; transform: translateY(-50%); transition: 0.3s ease-in-out; }
  .btn05 a:hover { text-decoration: none; }
  .btn05 a:hover::before { opacity: 1; }
  .btn05 a:hover span::after { right: -60px; }
  .btn06 { text-align: center; }
  .btn06 a { position: relative; display: inline-flex; align-items: center; justify-content: center; background: #1FA1DB; color: #fff; font-size: 22px; font-weight: 700; text-align: center; width: 770px; max-width: 100%; height: 140px; border-radius: 10px; text-decoration: none; box-sizing: border-box; }
  .btn06 a::before { content: ""; display: block; position: absolute; left: 0; top: 0; width: 100%; height: 100%; background: linear-gradient(35deg, rgba(31,161,219,1) 20%, rgba(16,81,110,1) 80%); opacity: 0; transition: 0.3s ease-in-out; border-radius: 10px; }
  .btn06 a::after { content: ""; display: block; position: absolute; left: 40px; top: 50%; transform: translateY(-50%); width: 120px; height: 110px; background: url("../../service/img/ico_dl.png") no-repeat center center / contain; z-index: 1; }
  .btn06 a span { position: relative; z-index: 1; line-height: 1.8; display: inline-block; }
  .btn06 a span::after { content: ""; display: block; background: url("../img/ico_arrow01.png") no-repeat; background-size: contain; width: 30px; height: 32px; position: absolute; right: -160px; top: 52%; transform: translateY(-50%); transition: 0.3s ease-in-out; }
  .btn06 a:hover { text-decoration: none; }
  .btn06 a:hover::before { opacity: 1; }
  .btn06 a:hover span::after { right: -170px; }
  .btn07 { position: relative; margin: 0 auto; width: 100%; max-width: 700px; }
  .btn07 a { font-size: 18px; font-weight: 700; color: #1FA1DB; background: #fff; display: block; width: 100%; height: 100px; line-height: 1.4; text-align: center; position: relative; text-decoration: none; transition: 0.3s ease-in-out; box-sizing: border-box; border-radius: 0; display: flex; align-items: center; justify-content: center; }
  .btn07 a::before { content: ""; display: block; width: 68px; height: 1px; background: #1FA1DB; position: absolute; right: 0px; top: 50%; transform: translateY(-50%); transition: 0.3s ease-in-out; }
  .btn07 a:hover { color: #fff; background: #1388B9; }
  .btn07 a:hover::before { background: #fff; }

  
  @keyframes move-arrow {
    0% { right: 6px; opacity: 1;}
    30% { right: 0px ;opacity: 0;}
    60% { right: 12px ; opacity: 0;}
    100% { right: 6px; opacity: 1;}
  }



  .img01 { margin-bottom:100px; position:relative; margin-top:50px; }

  .box-flex01 { display:flex; flex-wrap:wrap; margin:0 auto; }
  .box-flex01 > * { width:calc(580 / 1200 * 100%); margin-right:calc(40 / 1200 * 100%); margin-bottom:100px; }
  .box-flex01 > *:nth-child(2n) { margin-right:0; }
  .box-flex02 { display:flex; flex-wrap:wrap; margin:0 auto; }
  .box-flex02 > * { width:calc(550 / 1200 * 100%); margin-right:calc(100 / 1200 * 100%); margin-bottom:70px; }
  .box-flex02 > *:nth-child(2n) { margin-right:0; }
  .box-flex03 { display:flex; flex-wrap:wrap; margin:0 auto; }
  .box-flex03 > * { width:calc(380 / 1200 * 100%); margin-right:calc(30 / 1200 * 100%); }
  .box-flex03 > *:nth-child(3n) { margin-right:0; }


  .table01 { margin-bottom:70px;}
  .table01 table { width:100%; line-height:180%; }
  .table01 table th { border-bottom:1px solid #707070; font-weight:700; padding:30px 0 30px 0; text-align:left; width:140px; }
  .table01 table td { border-bottom:1px solid #E1E1E1; padding:30px 0 30px 105px; text-align:left;  }



  /* home */
  body.home .main-content { max-width: none; margin-bottom: 0; }
  .main-visual { height: 1000px; position: relative;}
  .main-visual:before { content: ""; display: block; position: absolute; left: 0; top: 230px; background: #E8F6FB; width: 60%; height: 770px; z-index: 0; }
  .main-visual:after { content: ""; display: block; position: absolute; left: 0; top: 0; background: url("../../img/bg_main.png") no-repeat center top; background-size:cover;  width: 100%; height: 100%; z-index: 1; }
  .main-visual .inner { max-width: 1200px; height: 100%; margin: 0 auto; position: relative; }
  .main-visual .title { width: 541px; position: absolute; left: -180px; top:120px; z-index: 2; }
  .main-visual .title + h2 { width: 392px; position: absolute; left: -180px; top:335px; z-index: 2;  }
  .main-visual .title + h2 + p { width: 440px; line-height: 180%; position: absolute; left: -180px; top:500px; z-index: 2; }
  .main-visual .img { position: absolute; left: 315px; top: 0; height: 815px; background: url("../../img/pho_main.jpg") no-repeat center left; background-size: cover; }

  .main-visual .scroll { opacity:0; pointer-events:auto; position:absolute; left:-180px; bottom:70px; /* transform:translateY(-50%); */ z-index:999; /* transition:1.0s ease-in-out 2s; */ }
  .main-visual .scroll .bar { overflow:hidden; height: 86px; width: 1px; position: absolute; top: 0; left: 50%; background:rgba(255,255,255,0.3); }
  .main-visual .scroll .bar:after{
    content: "";
      /*描画位置*/
    position: absolute;
    /*left:50%;*/
    top: 0;
      /*線の形状*/
    width: 10px;
    height: 86px;
    background: #000;
    transform-origin:center bottom;
      /*線の動き1.4秒かけて動く。永遠にループ*/
    animation: pathmove 1.4s ease-in-out infinite;
    opacity:0;
  }

  /*高さ・位置・透過が変化して線が上から下に動く*/
  @keyframes pathmove{
    0%{
      height:0;
      top:0;
      opacity: 0;
    }
    30%{
      height:86px;
      opacity: 1;
    }
    100%{
      height:0;
      top:90px;
      opacity: 0;
    }
  }
  .main-visual .scroll.hidden { opacity:0; pointer-events:none; }
  .main-visual .scroll a { display:block; transition:0.3s ease-in-out; }
  .main-visual .scroll a:hover { opacity:0.7; }
  .main-visual .scroll a img { position:relative; top:-82px; height:82px; }
  .main-visual.visible .scroll { opacity:1; }


  .about-section { position:relative; padding-top: 160px; margin-bottom: 100px; }
  .about-section > .inner { max-width: 1200px; margin: 0 auto; padding-bottom:60px;  }
  .about-section > .inner:before { content:""; display:block; position:absolute; left:0; top:60px; background:url(../../img/txt_about.png) no-repeat; background-size:540px 151px; width:540px; height:151px;  z-index:0; }
  .about-section > .inner > .title01 { opacity: 0; transition:all 0.5s ease-in-out 0s; }
  .about-section .box { position:relative; z-index:2; padding-bottom:35px; margin-top: 110px; padding-right: calc(680 / 1200 * 100%); }
  .about-section .box .title { font-size:24px; font-weight:700; margin-bottom:40px; line-height:160%; transform:translateY(30px); opacity:0; transition:all 0.5s ease-in-out 0s; }
  .about-section .box .lead { margin-bottom:90px; line-height:180%; transform:translateY(30px); opacity:0; transition:all 0.5s ease-in-out 0s; }
  .about-section .box .btn01 { transform:translateY(30px); opacity:0; transition:all 0.5s ease-in-out 0s; }
  .about-section .img { position:absolute; left:calc(600 / 1200 * 100%); top:390px; height:460px; transform:translateY(30px); opacity:0; transition:all 0.5s ease-in-out 0.2s; background:url(../../img/img_about01.jpg) no-repeat center center; background-size:cover; }
  .about-section .img img { display: none; }
  .about-section.is-completed > .inner > .title01 ,
  .about-section.is-completed .title,
  .about-section.is-completed .lead,
  .about-section.is-completed .btn01,
  .about-section.is-completed .img { transform:translateY(0); opacity:1; }

  .service-section { padding-top:100px; background:url("../../img/bg_service.png") no-repeat top left; background-size:cover; color: #fff; margin: 0 -20px 0px; }
  .service-section > .inner { max-width: 1200px; margin: 0 auto; padding: 0 20px 30px; box-sizing: content-box; }
  .service-section > .inner:before { content:""; display:block; position:absolute; right:55px; top:0px; background:url(../../img/txt_service.png) no-repeat; background-size:672px 150px; width:672px; height:150px;  z-index:0; }
  .service-section > .inner > .title01 { margin-bottom: 80px; opacity: 0; transition:all 0.5s ease-in-out 0s; }
  .service-section .service-items .item { transform:translateY(30px); opacity:0; }
  .service-section .service-items .item:nth-child(1) { transition:all 0.3s ease-in-out 0.3s; }
  .service-section .service-items .item:nth-child(2) { transition:all 0.3s ease-in-out 0.6s; }
  .service-section .service-items .item:nth-child(3) { transition:all 0.3s ease-in-out 0.9s; }
  .service-section .service-items .item:nth-child(4) { transition:all 0.3s ease-in-out 1.2s; }
  .service-section .service-items .item .photo { margin-bottom:15px; overflow:hidden; position: relative; background: #000; }
  .service-section .service-items .item .photo:after { content: ""; display: block; background:url("../../img/img_service.png") no-repeat; background-size:20px 20px; width: 20px; height: 20px; position: absolute; right: 11px; bottom: 11px; z-index: 2; transition:all 0.3s ease-in-out; }
  .service-section .service-items .item .photo img { transform:scale(1.0,1.0); opacity: 0.6; transition:all 0.3s ease-in-out;  }
  .service-section .service-items .item .title { font-size:22px; font-weight:700; color:#fff; line-height:160%; text-align:center; text-shadow:0 0 6px rgba(0,0,0,0.3); position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); white-space: nowrap; }
  .service-section .service-items .item .title span { font-size: 16px; display: block; }
  .service-section .service-items .item:hover { text-decoration:none; }
  .service-section .service-items .item:hover .photo:after { background-image:url("../../img/img_service_on.png"); }
  .service-section .service-items .item:hover .photo img { transform:scale(1.1,1.1); opacity: 1; }
  .service-section .btn02 { text-align:center; margin-bottom:0; }
  .service-section.is-completed > .inner > .title01 ,
  .service-section.is-completed .service-items .item { transform:translateY(0); opacity:1; }

  .works-section { padding-top:160px; margin: 0 -20px 100px; }
  .works-section > .inner { max-width: 1200px; margin: 0 auto; padding: 0 20px 60px; box-sizing: content-box;  }
  .works-section > .inner:before { content:""; display:block; position:absolute; left:0px; top:60px; background:url(../../img/txt_works.png) no-repeat; background-size:568px 142px; width:568px; height:142px;  z-index:0; }
  .works-section > .inner > .title01 { margin-bottom:110px; opacity: 0; transition:all 0.5s ease-in-out 0s; }
  .works-section .btn { position:relative; line-height:16px; color:#1FA1DB; font-family: Roboto; font-size:14px; font-weight:700;  transition:0.3s ease-in-out; text-align: right;}
  .works-section .btn > span { display:block; position:relative; z-index:1; padding-right: 25px; }
  .works-section .btn > span:before { content: ""; display: block; position: absolute; right: 0px; top: 50%; transform: translateY(-50%); width: 16px; height: 16px; background: #1FA1DB; border-radius: 50%; }
  .works-section .btn > span:after { pointer-events:none; display: block; position: absolute; top: 50%; right: 6px; transform: translateY(-50%) rotate(45deg); width: 4px; height: 4px; border-top: 2px solid #fff; border-right: 2px solid #fff; content: ""; z-index: 2; }
  .works-section .box { position:relative; z-index:2; padding-bottom:35px; margin-top: 0; padding-left: calc(680 / 1200 * 100%); min-height: 460px; }
  .works-section .box .title { font-size:24px; font-weight:700; margin-bottom:40px; line-height:160%; transform:translateY(30px); opacity:0; transition:all 0.5s ease-in-out 0s; }
  .works-section .box .lead { margin-bottom:90px; line-height:180%; transform:translateY(30px); opacity:0; transition:all 0.5s ease-in-out 0s; }
  .works-section .box .btn01 { transform:translateY(30px); opacity:0; transition:all 0.5s ease-in-out 0s; text-align: right;}
  .works-section .img { position:absolute; right:calc(600 / 1200 * 100%); top:390px; height:460px; transform:translateY(30px); opacity:0; transition:all 0.5s ease-in-out 0.2s; background:url(../../img/pho_works01.jpg) no-repeat right center; background-size:cover; }
  .works-section .img img { display: none; }
  .works-section.is-completed > .inner > .title01 ,
  .works-section.is-completed .title,
  .works-section.is-completed .lead,
  .works-section.is-completed .btn01,
  .works-section.is-completed .img { transform:translateY(0); opacity:1; }



  .news-section { padding-top:100px; background: #F8F8F8; margin: 0 -20px 0px; padding-bottom: 60px; }
  .news-section > .inner { max-width: 1200px; margin: 0 auto; padding: 0 20px 30px; box-sizing: content-box;  }
  .news-section > .inner:before { content:""; display:block; position:absolute; right:0; top:0px; background:url(../../img/txt_news.png) no-repeat; background-size:1054px 140px; width:1054px; height:140px;  z-index:0; }
  .news-section > .inner > .title01 { margin-bottom: 90px; opacity: 0; transition:all 0.5s ease-in-out 0s; }
  .news-section .news-box { position: relative;}
  .news-section .menu { position:absolute; left:0; top:0px; width:260px; transform:translateY(30px); opacity:0; transition:all 0.3s ease-in-out; }
  .news-section .menu .news-nav li { font-size: 15px; line-height:140%; margin:0 0 30px; position:relative; padding-left:15px; list-style-type:none; }
  .news-section .menu .news-nav li:before { content:""; display:block; position:absolute; left:-10px; top:calc(50% + 2px); transform:translateY(-50%); width:11px; height:11px; background:#fff; border: 1px solid #1FA1DB; transition:all 0.3s ease-in-out; border-radius: 50px; }
  .news-section .menu .news-nav li.active { }
  .news-section .menu .news-nav li.active a {}
  .news-section .menu .news-nav li.active:before { background:#1FA1DB; }
  .news-section .menu .news-nav a { transition:all 0.3s ease-in-out; }
  .news-section .menu .news-nav li:hover { /* opacity:0.5; */ }
  .news-section .menu .news-nav li:hover a { text-decoration:none; }
  .news-section .menu .news-nav li:hover:before { } 
  .news-section .menu .btn { position:absolute; left:0; top:150px; }
  .news-section .news-items { background: #fff; display:none; max-width:calc(945 / 1200 * 100%); position:relative; margin-left:255px; padding: 10px 45px; }
  .news-section .news-items.active { display:block; }
  .news-section .news-items > p { padding: 50px 0 ;}
  .news-section .news-items .item { position:relative; display:block; padding:45px 20px; border-bottom:1px solid #ccc; transition:0.3s ease-in-out; }
  .news-section .news-items .item:last-child{ border-bottom:none; }
  .news-section .news-items .item:before { content: ""; display: block; background:url("../../news/img/ico_arrow.png") no-repeat; background-size: 24px 24px; width: 24px; height: 24px; position: absolute; right:10px; top: 50%; transform: translateY(-50%); transition: 0.3s ease-in-out; }
  .news-section .news-items .item .thumb { display: none; }
  .news-section .news-items .item .category { transition:0.2s ease-in-out; }
  .news-section .news-items .item .category span { position:absolute; left:124px; top:50%; transform:translateY(-50%); width:105px; line-height:24px; padding-bottom:1px; white-space:nowrap; font-size:12px; font-weight:700; color:#fff; text-align:center; display:inline-block; border-radius:3px; transition:0.2s ease-in-out; }
  .news-section .news-items .item .category.cat-news span { background: #1FA0DA; }
  .news-section .news-items .item .category.cat-example span { background: #0F863D; }
  .news-section .news-items .item .date { position:absolute; left:20px; top:50%; transform:translateY(-50%);  font-family:"Roboto"; font-size:14px; font-weight:700; line-height:25px; transition:0.2s ease-in-out; }
  .news-section .news-items .item .title { position:relative; padding-left:240px; padding-right:80px; font-size:16px; line-height:160%; transition:0.2s ease-in-out; }
  .news-section .news-items .item.pdf .title:after { content:"PDF"; display:inline-block; width:50px; line-height:24px; padding-bottom:1px; white-space:nowrap; font-size:13px; color:#fff; text-align:center; background:#777777; border-radius:50px; margin-left:20px; position: relative; top: -1px;}
  .news-section .news-items .item:hover { text-decoration:none; }
  .news-section .news-items .item:hover:before { right:0px; }
  .news-section .news-items .item:hover .category { }
  .news-section .news-items .item:hover .date { }
  .news-section .news-items .item:hover .title { color:#1FA0DA; }
  .news-section.is-completed .menu,
  .news-section.is-completed .news-items,
  .news-section.is-completed > .inner > .title01 { transform:translateY(0); opacity:1; }


  /* about */
  .message-box { display: grid; grid-template-columns: minmax(0, 682px) 330px; justify-content: space-between; gap: 0 40px; }
  .message-box > p:nth-of-type(1) { grid-column: 1 / 2;  grid-row: 1 / 2;  max-width: 682px; }
  .message-box > .photo {  grid-column: 2 / 3;  grid-row: 1 / 2;  width: 330px;  text-align: center; }
  .message-box > .photo .img img {  width: 330px;  height: auto; }
  .message-box > p:nth-of-type(2) { grid-column: 1 / 3;  grid-row: 2 / 3;  margin-top: 2em; }
  .message-box .title { font-family: "Noto Serif JP"; font-size: 28px; font-weight: 700; color: #0B2E57; line-height: 160%; margin-bottom: 35px; }
  .message-box .position { font-size: 14px; margin-top: 35px; }
  .message-box .name { font-family: "Noto Serif JP"; font-size: 26px; font-weight: 500; margin-top: 25px; }
  .map { margin-bottom: 50px;}
  .map iframe { width: 100%; height: 550px; }
  .philosophy-block { margin-bottom: 80px; }
  .philosophy-block .group { display: flex; justify-content: space-between; flex-wrap: wrap; position: relative; margin-bottom: 100px; }
  .philosophy-block .group .texts { width:calc(580 / 1200 * 100%); margin-right:calc(60 / 1200 * 100%) ; }
  .philosophy-block .group:nth-child(2) .texts { width: auto; margin-right: 0; }
  .philosophy-block .title { font-size: 30px; font-weight: 500; margin-bottom: 45px; line-height: 160%; color: #1FA1DB; }
  .philosophy-block .lead { font-size: 20px; font-weight: 500; line-height: 180%; margin-bottom: 30px; letter-spacing: -0.3px; }
  .philosophy-block .thumb { width:calc(560 / 1200 * 100%); }
  .philosophy-block + .img { max-width: 1000px; margin:0 auto 100px;}
  .philosophy-items .item { position: relative; }
  .philosophy-items .item .thumb { overflow: hidden; position: relative; }
  .philosophy-items .item .thumb img { transform: scale(1.0, 1.0); transition: all 0.3s ease-in-out; }
  .philosophy-items .item .btn { position:relative; line-height:16px; color:#1FA1DB; font-family: Roboto; font-size:14px; font-weight:700;  transition:0.3s ease-in-out; text-align: center; margin-top: 30px;}
  .philosophy-items .item .btn > span { display:inline-block; position:relative; z-index:1; padding-right: 25px; }
  .philosophy-items .item .btn > span:before { content: ""; display: block; position: absolute; right: 0px; top: 50%; transform: translateY(-50%); width: 16px; height: 16px; background: #1FA1DB; border-radius: 50%; }
  .philosophy-items .item .btn > span:after { pointer-events:none; display: block; position: absolute; top: 50%; right: 6px; transform: translateY(-50%) rotate(45deg); width: 4px; height: 4px; border-top: 2px solid #fff; border-right: 2px solid #fff; content: ""; z-index: 2; }
  .philosophy-items .item:hover { text-decoration: none; }
  .philosophy-items .item:hover:after { opacity: 1; }
  .philosophy-items .item:hover .thumb img { transform: scale(1.1, 1.1); }
  .philosophy-items .item:hover .btn { text-decoration:none; color: #1388B9; }
  .philosophy-items .item:hover .btn:before { opacity:1; }
  .philosophy-items .item:hover .btn span:before { background-color: #1388B9; }
  .philosophy-items .item:hover .btn span:after { border-color:#F8EDA7; animation: move-arrow 0.5s linear ;}



  /* service */
  .service-block .lead { font-size: 24px; font-weight: 500; margin:80px 0 80px; text-align: center; line-height: 140%; }
  .service-block .task-items { display: flex; justify-content: space-between; margin: 135px auto; }
  .service-block .task-items.col3 { max-width: 1130px; }
  .service-block .task-items .item { width: calc(270 / 1200 * 100%); }
  .service-block .task-items.col3 .item { width: calc(270 / 1130 * 100%); }
  .service-block .task-items .title { position: relative; border: 1px solid #1FA1DB; border-radius: 8px; padding: 40px 22px 35px; margin-bottom: 92px; text-align: center; font-weight: 700; font-size: 1.28vw; line-height: 160%; display: flex; align-items: center; justify-content: center;}
  .service-block .task-items .title span:before { content: ""; display: block; background: url("../../service/img/ico_ttl01.png") no-repeat; background-size: cover; width: 66.52px; height: 78.99px; position: absolute; left: 50%; top: -54px; transform: translateX(-50%); }
  .service-block .task-items .item:nth-child(1) .title span:before { background-image: url("../../service/img/ico_ttl01.png"); }
  .service-block .task-items .item:nth-child(2) .title span:before { background-image: url("../../service/img/ico_ttl02.png"); }
  .service-block .task-items .item:nth-child(3) .title span:before { background-image: url("../../service/img/ico_ttl03.png"); }
  .service-block .task-items .item:nth-child(4) .title span:before { background-image: url("../../service/img/ico_ttl04.png"); }
  .service-block .task-items .content { position: relative; border: 1px solid #1FA1DB; border-radius: 8px; padding: 25px 22px; margin-bottom: 130px; }
  .service-block .task-items .content * { font-size: 1.28vw; line-height: 160%; }
  .service-block .task-items .content .ttl { position: relative; text-align: center; font-weight: 700; z-index: 1; margin:-25px auto 1.5em; background: #1FA1DB; border-radius: 0 0 8px 8px; color: #fff; padding: 5px 0 7px; }
  .service-block .task-items .benefit { position: relative; border: 1px solid #1FA1DB; border-radius: 8px; padding: 25px 22px; background: #FFFDF0; }
  .service-block .task-items .benefit * { font-size: 1.28vw; line-height: 160%; }
  .service-block .task-items .benefit .ttl { position: relative; text-align: center; font-weight: 700; z-index: 1; margin:0.5em auto 1.5em; }
  .service-block .task-items .benefit .ttl:before { content: ""; display: block; background: url("../../service/img/ico_benefit.svg") no-repeat; background: cover; width: 30.07px; height: 52.63px; position: absolute; left: 50%; top: -67px; transform: translateX(-50%); }
  .service-block .task-items .benefit .ttl:after { content: ""; display: block; background: #FFEB00; background-size: cover; width: 136px; height: 9px; border-radius: 50px;  position: absolute; left: 50%; top: 14px; transform: translateX(-50%); z-index: -1; opacity: 0.6; }
  .service-block .task-items .title:before { content: ""; display: block; background: #fff; background: cover; width: 74px; height: 3px; position: absolute; left: 50%; top: -2px; transform: translateX(-50%); }
  .service-block .task-items .benefit:before { width: 48px; }
  .service-block .task-items .title:after,
  .service-block .task-items .content:after { content: ""; display: block; background: url("../../service/img/ico_arrow.svg") no-repeat; background: cover; width: 35px; height: 32px; position: absolute; left: 50%; bottom: -33px; transform: translateX(-50%); }
  .service-block .description { background: #F2F9FC; width: 100vw; position: relative; left: 50%; transform: translateX(-50%); padding: 110px 20px; margin-bottom: 100px; }
  .service-block .description .inner { display: flex; justify-content: space-between; max-width: 1200px; width: 100%; margin: 0 auto; }
  .service-block .description .text { width: calc(555 / 1200 * 100%); }
  .service-block .description .photo { width: calc(570 / 1200 * 100%); }
  .service-block .summary-items { margin-bottom: 150px; }
  .service-block .summary-items .item { position: relative; border: 1px solid #1FA1DB; border-radius: 8px; padding: 40px 50px; margin-bottom: 65px; display: flex; justify-content: flex-start; align-items: center; }
  .service-block .summary-items .title { position: relative; width: 115px; margin-right: 35px; font-weight: 700; text-align: center;}
  .service-block .summary-items .title:before { content: ""; display: block; background: no-repeat; background-size: cover; width: 80px; height: 80px; left: 50%; transform: translateX(-50%); position: relative; margin-bottom: 18px; }
  .service-block .summary-items.service01 .item:nth-child(1) .title:before { background-image: url("../../service/img/service01/ico_summary01.svg"); }
  .service-block .summary-items.service01 .item:nth-child(2) .title:before { background-image: url("../../service/img/service01/ico_summary02.svg"); }
  .service-block .summary-items.service02 .item:nth-child(1) .title:before { background-image: url("../../service/img/service02/ico_summary01.svg"); }
  .service-block .summary-items.service03 .item:nth-child(1) .title:before { background-image: url("../../service/img/service03/ico_summary01.svg"); }
  .service-block .summary-items.service03 .item:nth-child(2) .title:before { background-image: url("../../service/img/service03/ico_summary02.svg"); }
  .service-block .summary-items.service03 .item:nth-child(3) .title:before { background-image: url("../../service/img/service03/ico_summary03.svg"); }
  .service-block .summary-items.service03 .item:nth-child(4) .title:before { background-image: url("../../service/img/service03/ico_summary04.svg"); }
  .service-block .summary-items.service04 .item:nth-child(1) .title:before { background-image: url("../../service/img/service04/ico_summary01.svg"); }
  .service-block .summary-items .content { display: flex; width: calc(100% - 115px - 35px); }
  .service-block .summary-items .content .group { width: calc(455 / 946 * 100%); border: 1px solid #ccc;  }
  .service-block .summary-items .content .group .ttl { background: #f4f4f4; font-weight: 700; padding: 10px 20px; line-height: 160%; }
  .service-block .summary-items .content .group .text { padding: 25px 20px; line-height: 160%; }
  .service-block .summary-items .content .group:nth-child(1) { margin-right: calc(35 / 946 * 100%);  }
  .service-block .check-section { background: #F2F9FC; width: 100vw; position: relative; left: 50%; transform: translateX(-50%); padding: 0; margin-bottom: 100px; }
  .service-block .check-section .inner { background: url("../../service/img/bg_check.jpg") no-repeat center center / cover; max-width: 1200px; width: 100%; margin: 0 auto; padding: 70px 50px; box-sizing: border-box; }
  .service-block .check-section .main-heading { display: block; width: fit-content; margin-left: auto; margin-right: auto; background-color: #104979; color: #fff; font-size: 25px; font-weight: 700; line-height: 1.6; padding: 12px 20px; border-radius: 5px; margin-bottom: 50px; }
  .service-block .check-section .desc { font-size: 16px; line-height: 1.8; margin-bottom: 35px; }
  .service-block .check-section .description p { margin: 0 0 8px; }
  .service-block .check-section .check-box { background: rgba(255, 255, 255, 0.65); border-radius: 10px; padding: 18px 38px; max-width: 518px; box-shadow: 0 0 8px rgba(0, 0, 0, 0.07); display: flex; align-items: center; gap: 40px; }
  .service-block .check-section .check-title-wrap { text-align: center; flex-shrink: 0; }
  .service-block .check-section .check-title-wrap h3 { color: #104979; font-size: 15px; font-weight: 700; margin-bottom: 15px; }
  .service-block .check-section .check-title-wrap .icon img { width: 60px; height: auto; display: block; margin: 0 auto; }
  .service-block .check-section .check-list { padding: 0; margin: 0; }
  .service-block .check-section .check-list li { position: relative; padding-left: 30px; font-size: 15px; font-weight: 400; margin-bottom: 16px; list-style-type: none; white-space: nowrap; }
  .service-block .check-section .check-list li:last-child { margin-bottom: 0; }
  .service-block .check-section .check-list li::before { content: ""; display: block; position: absolute; left: 0; top: 50%; transform: translateY(-50%); width: 20px; height: 20px; background: url("../../service/img/ico_list.png") no-repeat center center / contain; }
  .service-block .detail-section { width: 100%; margin: 120px 0 120px; text-align: center; }
  .service-block .detail-section .inner { max-width: 1200px; width: 100%; margin: 0 auto; padding: 0 20px; box-sizing: border-box; }
  .service-block .detail-section .section-title { font-size: 30px; color: #1FA1DB; font-weight: 700; margin-bottom: 55px; text-align: center; }
  .service-block .detail-section .section-title span { position: relative; display: inline-block; z-index: 1; }
  .service-block .detail-section .section-title span::after { content: ""; display: block; background: #FFEB00; background-size: cover; width: 110%; height: 11px; position: absolute; left: 50%; top: 100%; margin-top: -4px; transform: translateX(-50%); z-index: -1; }
  .service-block .detail-section .desc { font-size: 26px; line-height: 1.6; font-weight: 500; margin-bottom: 60px; }
  .service-block .detail-section .desc p { margin: 0; }
  .service-block .faq-section { background: #F2F9FC; width: 100vw; position: relative; left: 50%; transform: translateX(-50%); padding: 110px 20px; margin-bottom: 100px; }
  .service-block .faq-list { max-width: 1030px; margin:0 auto; }
  .service-block .faq-list .item { border: 1px solid #CCC; background: #fff; border-radius: 8px; margin-bottom:45px; padding:0 25px; transition: 0.3s ease-in-out; }
  .service-block .faq-list .question { position:relative; font-size:18px; font-weight: 500; line-height:140%; padding:18px 40px 18px 55px; /* font-size:20px; */ transition: 0.3s ease-in-out; }
  .service-block .faq-list .question:after {	content:"";	display:block;	width: 18px;	height: 18px; background:url("../../service/img/ico_plus.svg") no-repeat; background-size:cover; position:absolute; right:0px; top:50%; transform:translateY(-50%); }
  .service-block .faq-list .is_open .question:after {	content:"";	display:block;	width: 18px;	height: 3px; background:url("../../service/img/ico_minus.svg") no-repeat; background-size:cover; position:absolute; right:0px; top:calc(50% - 3px); transform:translateY(-50%); margin-top:3px; }
  .service-block .faq-list .question:before { content:"Q."; display:block; position:absolute; left:0px; top:18px; font-size:28px; font-weight:700; font-family:"Roboto"; color:#1FA1DB; }
  .service-block .faq-list .answer { font-size:16px; height:0px; overflow:hidden; line-height:160%; position:relative; padding:0px 0 0px 110px; transform:translateZ(0); transition:0.3s ease-in-out; box-sizing:content-box; }
  .service-block .faq-list .answer p { margin-bottom:1.5em; line-height:160%; }
  .service-block .faq-list .answer:after { content:"A."; display:block; position:absolute; left:40px; top:50%; transform:translateY(-50%); width:45px; padding-left:5px; line-height:50px; color:#F47A00; font-size:28px; font-weight:700; text-align:center; font-family:"Roboto"; }
  .service-block .faq-list .answer.is_open { padding:28px 0 28px 110px; }
  .service-block .faq-list .answer.is_open:after { }
  .service-block .faq-list .answer.is_open_fixed { height:auto; }
  .service-block .faq-list .item:hover { border-color: #1FA1DB; }
  .service-block .faq-list .item:hover .question { color:#1FA1DB; }
  .service-block .download { margin-bottom: 150px; }
  .service-block .download .inner { display: flex; justify-content: space-between; max-width: 1200px; width: 100%; margin: 0 auto; }
  .service-block .download .text { width: calc(600 / 1200 * 100%); }
  .service-block .download .photo { width: calc(450 / 1200 * 100%); }

  .consultation-box { max-width: 810px; width: 100%; padding: 45px 80px; background-color: #1FA1DB; border-radius: 12px; box-sizing: border-box; margin: 80px auto 0; color: #fff; text-align: center; }
  .consultation-title { font-size: 18px; font-weight: 700; margin-bottom: 24px; line-height: 1.5; }
  .consultation-text { font-size: 14px; line-height: 1.8; margin-bottom: 35px; text-align: left; }
  .consultation-box .btn07 { position: relative; margin: 0 auto; width: 100%; max-width: 600px; }
  .consultation-box .btn07 a { font-size: 20px; font-weight: 700; color: #1FA1DB; background: #fff; display: flex; align-items: center; justify-content: center; width: 100%; height: 70px; line-height: 1.4; text-align: center; position: relative; text-decoration: none; transition: 0.3s ease-in-out; box-sizing: border-box; border-radius: 0; }
  .consultation-box .btn07 a::before { content: ""; display: block; width: 68px; height: 1px; background: #1FA1DB; position: absolute; right: 0px; top: 50%; transform: translateY(-50%); transition: 0.3s ease-in-out; }
  .consultation-box .btn07 a:hover { color: #fff; background: #1388B9; }
  .consultation-box .btn07 a:hover::before { background: #fff; }

  
  /* checklist */
  .checklist-block { width: 100%; text-align: center; }
  .checklist-block .title-main { font-size: 28px; color: #1FA1DB; font-weight: 700; margin-bottom: 20px; }
  .checklist-block .lead-text { font-size: 18px; font-weight: 500; margin-bottom: 50px; }
  .checklist-block .lead-text.checklist02 { max-width: 835px; margin-left:auto; margin-right: auto; font-size: 16px; font-weight: 400; text-align: left;}
  .checklist-block .tag-list { background: #eef7fc; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 25px; max-width: 900px; width: 100%; margin: 0 auto 50px; padding: 50px 32px; list-style: none; box-sizing: border-box; }
  .checklist-block .tag-list li { display: flex; align-items: center; justify-content: center; width: calc((100% - 50px) / 3); background: #fff; font-size: 16px; font-weight: 500; line-height: 1.4; min-height: 60px; height: auto; padding: 10px; margin: 0; border-radius: 9px; box-sizing: border-box; text-align: center; list-style-type: none; }
  .checklist-block .intro-desc { font-size: 18px; font-weight: 500; line-height: 1.8; margin-bottom: 80px; }
  .checklist-block .intro-desc p { margin: 0 0 10px; }
  .checklist-block .check-container { max-width: 740px; width: 100%; margin: 0 auto; padding: 65px 60px; border: 1px solid #ccc; border-radius: 5px; box-shadow: 0 0 8px rgba(0,0,0,0.06); box-sizing: border-box; background: #fff; text-align: left; }
  .checklist-block .check-group { margin-bottom: 80px; }
  .checklist-block .check-group:last-child { margin-bottom: 0; }
  .checklist-block .group-ttl { background: #f2f2f2; font-size: 16px; font-weight: 700; padding: 12px 15px; margin-bottom: 40px; border-radius: 3px; text-align: center; }
  .checklist-block .check-items { list-style: none; padding: 0 0 0 0; margin: 0 0 0 140px; }
  .checklist-block .check-items.checklist02 { margin: 0 0 0 80px; }
  .checklist-block .check-items li { margin: 0; margin-bottom: 12px; font-size: 16px; list-style-type: none; }
  .checklist-block .check-items label { cursor: pointer; display: inline-flex; align-items: center; gap: 15px; }
  .checklist-block .check-items input[type="checkbox"] { width: 16px; height: 16px; cursor: pointer; }
  .checklist-block .triangle-icon { width: 57px; height: 25px; margin: 45px auto; background: url("../../checklist/img/img_triangle.svg") no-repeat center center / contain; }
  .checklist-block .result-section { background: #eef7fc; width: 100vw; position: relative; left: 50%; transform: translateX(-50%); padding: 50px 0; margin-bottom: 100px; }
  .checklist-block .result-section .inner { max-width: 740px; width: 100%; margin: 0 auto; text-align: left; box-sizing: border-box; }
  .checklist-block .result-ttl { background: #fff; text-align: center; font-size: 20px; color: #104979; font-weight: 700; padding: 16px 0;  margin-bottom: 45px; border-top: 1px solid #ccc; border-bottom: 1px solid #ccc; }
  .checklist-block .result-list { list-style: none; padding: 0; margin: 0; }
  .checklist-block .result-list li { display: flex; align-items: center; gap: 26px; margin: 0; margin-bottom: 26px; font-size: 16px; }
  .checklist-block .result-list li:last-child { margin-bottom: 0; font-weight: bold;}
  .checklist-block .result-list .badge { width: 130px; text-align: center; background: #707070; color: #fff; font-family:"Roboto"; font-size: 22px; font-weight: 500; padding: 7px 0 5px; border-radius: 50px; flex-shrink: 0; }
  .checklist-block .result-list .badge:after { content: "個"; font-size: 12px; font-weight: 500; margin-left: 6px; }
  .checklist-block .result-list li:nth-child(3) .badge { background: #D51F1F; }
  .checklist-block .result-list li:nth-child(3) .badge:after { content: "個以上";}
  .checklist-block .outro-desc { font-size: 20px; font-weight: 500; line-height: 1.8; margin-bottom: 80px; }
  .checklist-block .outro-desc p { margin: 0 0 8px; }
  .checklist-block .cv-banner { max-width: 900px; width: 100%; margin: 0 auto; background: #1FA1DB; padding: 65px 20px 65px; border-radius: 12px; box-sizing: border-box; color: #fff; text-align: center; position: relative; }
  .checklist-block .banner-ttl { font-size: 26px; font-weight: 700; margin-bottom: 62px; position: relative; display: inline-block; padding: 0 45px; letter-spacing: 0.05em; }
  .checklist-block .banner-ttl::before { content: ""; display: block; width: 37px; height: 66px; background: url("../../checklist/img/ico_dl_ttl_l.svg") no-repeat center / contain; position: absolute; left: 0; top: 50%; transform: translateY(-50%); }
  .checklist-block .banner-ttl::after { content: ""; display: block; width: 37px; height: 66px; background: url("../../checklist/img/ico_dl_ttl_r.svg") no-repeat center / contain; position: absolute; right: 0; top: 50%; transform: translateY(-50%); }
  .checklist-block .banner-middle { display: flex; justify-content: center; margin-bottom: 40px; }
  .checklist-block .banner-sub { position: relative; padding-left: 160px; min-height: 100px; display: flex; flex-direction: column; justify-content: center; text-align: center; }
  .checklist-block .banner-sub::before { content: ""; display: block; width: 140px; height: 110px; background: url("../../service/img/ico_dl.png") no-repeat center / contain; position: absolute; left: 0; top: 50%; transform: translateY(-50%); }
  .checklist-block .banner-sub .sub-line1 { font-size: 24px; font-weight: 700; color: #fff; margin: 0 0 -5px; letter-spacing: 0.02em; }
  .checklist-block .banner-sub .sub-line1 span { color: #FFEB00; }
  .checklist-block .banner-desc { font-size: 16px; line-height: 1.8; margin: 0 auto 40px; text-align: left; font-weight: 400; max-width: 700px; }

  
  /* works */
  .works-block .lead { font-size: 18px; font-weight: 400; margin:-20px 0 80px; text-align: center; line-height: 140%; }
  .works-items { margin-bottom: -70px; }
  .works-items .item { position: relative; box-shadow: 0 0 20px rgba(0,0,0,0.08); padding:35px calc(15 / 550 * 100%);  }
  .works-items .item:after { content: ""; display: block; border: 1px solid #1FA1DB; width: 100%; height: 100%; position: absolute; left: 0; top: 0; opacity: 0; transition: 0.3s ease-in-out; box-sizing: border-box; }
  .works-items .item .title { font-size: 16px; font-weight: 700; line-height: 160%; margin-bottom: 25px; }
  .works-items .item .group { display: flex; flex-wrap: nowrap; }
  .works-items .item .thumb { width: calc(190 / 480 * 100%); margin-right:calc(20 / 480 * 100%) ; }
  .works-items .item .text { width: calc(264 / 480 * 100%); } 
  .works-items .item .text li { position: relative; list-style-type: none; }
  .works-items .item .text li:before { content: ""; display: block; position: absolute; left: -16px; top: 13px; width:4px; height: 4px; border-radius: 50px; background: #1FA1DB; }
  .works-items .item .text strong { color:#FF0000; }



  /* news */
  body.news .news-box { position: relative;}
  body.news .news-box .menu { position:absolute; left:0; top:0px; width:220px; border-radius: 5px; box-shadow:0 0 15px rgba(31,160,218,0.17); }
  body.news .news-box .menu .news-nav { padding: 25px; }
  body.news .news-box .menu .news-nav .title { font-family: 700; font-size: 20px; font-weight: 700; border-bottom: 1px solid #1FA0DA; padding:0 0 20px; text-align: center; margin-bottom: 40px; }
  body.news .news-box .menu .news-nav li { font-size: 15px; line-height:140%; margin:0 0 30px; position:relative; padding-left:25px; list-style-type:none; }
  body.news .news-box .menu .news-nav li:before { content:""; display:block; position:absolute; left:-0px; top:calc(50% + 2px); transform:translateY(-50%); width:11px; height:11px; background:#E6E6E6;  transition:all 0.3s ease-in-out; border-radius: 50px; }
  body.news .news-box .menu .news-nav li.active { }
  body.news .news-box .menu .news-nav li.active a {}
  body.news .news-box .menu .news-nav li.active:before { background:#1FA1DB; }
  body.news .news-box .menu .news-nav a { transition:all 0.3s ease-in-out; }
  body.news .news-box .menu .news-nav li:hover { /* opacity:0.5; */ }
  body.news .news-box .menu .news-nav li:hover a { text-decoration:none; }
  body.news .news-box .menu .news-nav li:hover:before { } 
  body.news .news-box .menu .btn { position:absolute; left:0; top:150px; }
  body.news .news-box .news-items { display:none; max-width:calc(900 / 1200 * 100%); position:relative; margin-left:300px; min-height: 200px; }
  body.news .news-box .news-items.active { display:block; }
  body.news .news-box .news-items .item { position:relative; display:block; padding:45px 20px; border-bottom:1px solid #ccc; transition:0.3s ease-in-out; }
  body.news .news-box .news-items .item:nth-child(2) { border-top:1px solid #ccc; }
  body.news .news-box .news-items .item:before { content: ""; display: block; background:url("../../news/img/ico_arrow.png") no-repeat; background-size: 24px 24px; width: 24px; height: 24px; position: absolute; right:10px; top: 50%; transform: translateY(-50%); transition: 0.3s ease-in-out; }
  body.news .news-box .news-items .item .thumb { display: none; }
  body.news .news-box .news-items .item .category { transition:0.2s ease-in-out; }
  body.news .news-box .news-items .item .category span { position:absolute; left:124px; top:50%; transform:translateY(-50%); width:105px; line-height:24px; padding-bottom:1px; white-space:nowrap; font-size:12px; font-weight:700; color:#fff; text-align:center; display:inline-block; border-radius:3px; transition:0.2s ease-in-out; }
  body.news .news-box .news-items .item .category.cat-news span { background: #1FA0DA; }
  body.news .news-box .news-items .item .category.cat-example span { background: #0F863D; }
  body.news .news-box .news-items .item .date { position:absolute; left:20px; top:50%; transform:translateY(-50%);  font-family:"Roboto"; font-size:14px; font-weight:700; line-height:25px; transition:0.2s ease-in-out; }
  body.news .news-box .news-items .item .title { position:relative; padding-left:240px; padding-right:80px; font-size:16px; line-height:160%; transition:0.2s ease-in-out; }
  body.news .news-box .news-items .item.pdf .title:after { content:"PDF"; display:inline-block; width:50px; line-height:24px; padding-bottom:1px; white-space:nowrap; font-size:13px; color:#fff; text-align:center; background:#777777; border-radius:50px; margin-left:20px; position: relative; top: -1px;}
  body.news .news-box .news-items .item:hover { text-decoration:none; }
  body.news .news-box .news-items .item:hover:before { right:0px; }
  body.news .news-box .news-items .item:hover .category { }
  body.news .news-box .news-items .item:hover .date { }
  body.news .news-box .news-items .item:hover .title { color:#1FA0DA; }
  .news-article { max-width:calc(900 / 1200 * 100%); position:relative; margin-left:300px; }
  .news-header { position:relative; margin-top:-10px; margin-bottom:50px; }
  .news-header h2 { font-size: 22px; font-weight: 500; padding-bottom: 15px; border-bottom: 1px solid #ccc; margin-bottom: 15px; line-height: 140%; }
  .news-header .date { font-size:12px; font-family:"Roboto";  line-height:23px; }
  .news-body { margin-bottom:100px; }
  .news-body + .btn02 { text-align:center; }


  /* privacy */
  .privacy-box { max-width: 900px; margin: 0 auto; }
  body.privacy .adobe {display: flex; border: 1px solid #cccccc; padding: 30px 55px; justify-content: space-around; align-items: center; flex-wrap: nowrap; }
  body.privacy .adobe img {width: 220px; height: auto; margin-right: 120px; max-width:none; }
  body.privacy .adobe p {}	
  body.privacy .title02 { margin: 100px 0 60px; }



  /* contact */
  body.contact .section > .inner > p { margin-bottom:110px; }
  .progress { position: relative; width:295px; height:88px; margin:0 auto 50px; background: url("../../contact/img/line.png") no-repeat center bottom 29px; background-size: 216px 2px; }
  .progress > div { position:absolute; font-weight: 700; }
  .progress > div:before { content: ""; display: block; position: absolute; left: 50%; bottom: -65px; transform: translateX(-50%); border-radius:100px; width:48px; height:48px; background: #fff; }
  .progress > div:after { content: ""; display: block; position: absolute; left: 50%; bottom: -51px; transform: translateX(-50%); z-index: 2; border-radius:100px; width:18px; height:18px; background: #1FA1DB; opacity: 0; }
  /* .progress > div:after { content:""; display:block; background:#757070; width:126px; height:1px; position:absolute; left:107px; top:50%; transform:translateY(-50%); } */
  .progress > div:nth-child(2) { left: 124px; }
  .progress > div:nth-child(3) { left: 247px; }
  .progress > div:last-child { margin-right:0; }
  .progress > div.current:after { opacity:1; }
  .progress.complete { margin:-50px auto 140px; }
  .progress.complete + p { margin-bottom:85px!important; }
  .contact-form-items { background:#E9F6FB; padding:100px 0; font-size:16px; }
  .contact-form-items table { display: block; max-width:calc(800 / 1200 * 100%); margin:0 auto; }
  .contact-form-items thead { display: block; }
  .contact-form-items tbody { display: block; }
  .contact-form-items tr { display: block; }
  .contact-form-items th { display: block; color: #1388B9; padding:42px 0 0; vertical-align:top; font-weight:700; line-height:160%; text-align:left; white-space:nowrap; }
  .contact-form-items td { display: block; padding:20px 0 20px; line-height:160%; }
  .contact-form-items th span { white-space:nowrap; display:inline-block; }
  .contact-form-items .select { background:#fff; border:1px solid #CCCCCC; border-radius:5px; width:180px; height:auto;  position:relative; }
  .contact-form-items .select select { padding:13px 15px; height:auto; }
  .contact-form-items .select:before { content:"";
  display:block;
  width: 5px;
  height: 5px;
  border-top: 2px solid #000;
  border-right: 2px solid #000;
  background:none;
  transform: rotate(135deg) translate(0,-50%);
  position:absolute;
  top:50%;
  right:20px;
  margin-top:-6px;
  transition-duration: .4s;
  z-index:2;
  }
  .contact-form-items ::placeholder { color:#CDCCCC; }
  .contact-form-items input[type=text] { background:#fff; border: none; border-radius:5px; width:100%; padding:15px 15px; font-family: 'Noto Sans JP', sans-serif; font-size:16px; color:#000; }
  .contact-form-items input[name^="group"],
  .contact-form-items input[name^="birthday"] { width:32%; margin-right:2%; }
  .contact-form-items input[name^="group"]:last-child,
  .contact-form-items input[name^="birthday"]:last-child { margin-right:0; }
  .contact-form-items textarea { background:#fff; border: none; border-radius:5px; height:180px; width:100%; padding:15px 15px; font-family: 'Noto Sans JP', sans-serif; font-size:16px; color:#000;}
  .contact-form-items .select,
  .contact-form-items *[id*="location"] { margin-bottom:12px; }
  .contact-form-items .form-must { background:#FC8813; color:#fff; font-size:14px; font-weight:500; border-radius:3px; line-height:26px; width:57px; text-align:center; display:inline-block; position:relative; top:0px; margin-left:12px; }
  .contact-form-items .form-any { background:#B1B1B1; color:#fff; font-size:14px; font-weight:500; border-radius:3px; line-height:26px; width:57px; text-align:center; display:inline-block; position:relative; top:0px; margin-left:12px; }
  .contact-form-items .agree-text { font-size:14px; }
  .contact-form-items label[for=agree] { color: #000; font-weight: 400; }
  .contact-form-items label[for=agree] a { color: #1388B9; font-weight: 700;}
  .contact-form-items label { margin-right:10px; white-space:nowrap; }
/* チェックボックス共通カスタムスタイル */
.contact-form-items input[type="checkbox"].agree-input,
.contact-form-items input[type="checkbox"].custom-check {
  display: none;
}

/* 個別項目（ご希望の資料 / 関心のあるテーマ共通）のマージン設定 */
.contact-form-items .check-item {
  margin-bottom: 12px; /* 縦の項目同士の間隔を確保 */
}

.contact-form-items input[type="checkbox"].agree-input + label,
.contact-form-items input[type="checkbox"].custom-check + label {
  cursor: pointer;
  display: inline-block;
  background: url(../../contact/img/cb_off.png) no-repeat left center;
  background-size: 34px auto;
  line-height: 34px;
  padding: 0px;
  padding-left: 46px;
  font-size: 14px;
}

.contact-form-items input[type="checkbox"].agree-input:checked + label,
.contact-form-items input[type="checkbox"].custom-check:checked + label {
  background-image: url(../../contact/img/cb_on.png);
}

/* 3列レイアウト用のレイアウト設定（現在関心のあるテーマ） */
.contact-form-items .checkbox-grid {
  display: flex;
  flex-wrap: wrap;
}

.contact-form-items .checkbox-grid .check-item {
  width: 33.333%; /* 3列に均等分割 */
  box-sizing: border-box;
}



  .contact-form-items input[type=radio] { margin:0 10px 0 10px; }
  .contact-form-items .msg-choose-text { margin-bottom:15px; }
  .contact-form-items .msg-choose { display:block; margin-bottom:5px; }
  .contact-form-items .msg { margin-top:0px; }
  .contact-form-items .submit a { width: 196px; height: 51px; }
  .contact-form-items .error { background:#c00; color:#fff; border-radius:5px; padding:12px 15px; margin:0 0 10px; }
  .contact-form-items .thanks { max-width:calc(830 / 1100 * 100%); margin:0 auto -30px; }
  .contact-form-items.confirm td { padding:42px 0 30px; }
  .contact-form-items.confirm .btns { text-align:center; }
  .contact-form-items.confirm .btns > div { width:250px; display:inline-block; margin:50px 12px 0; }
  .contact-form-items.confirm .btns > div a { width:100%; }
  .g-recaptcha { text-align:center; }
  .g-recaptcha > div { display:inline-block; }
  .gotop { position:relative; display:inline-block; text-decoration:none; padding-right:22px; }
  .gotop:after {
  pointer-events:none;
  content:"";
  display:block;
  width: 7px;
  height: 7px;
  border-top: 1px solid #DC000C;
  border-right: 1px solid #DC000C;
  transform: rotate(45deg) translate(50%,50%);
  position:absolute;
  top:8px;
  right:0px;
  transition:0.3s ease-in-out;
  z-index:2;
  }
  .gotop:hover { text-decoration:none; color:#DC000C; }
  .grecaptcha-badge { visibility:hidden; }
  .grecaptcha-text { margin-top:50px; }

  
  /* download */
  body.download .lead-text { max-width: 900px; margin-left:auto; margin-right: auto; margin-bottom: 100px; }
  .contact-form-items.download { padding-left: 20px; padding-right: 20px; }
  .contact-form-items.download .inner { max-width: 900px; margin: 0 auto; }
  .contact-form-items.download .box-flex { display: flex; justify-content: space-between; }
  .contact-form-items.download .photo { width: 380px; }
  .contact-form-items.download .info { width: calc(450 / 900 * 100%); }
  .contact-form-items.download .info dl { margin-top: 60px; }
  .contact-form-items.download .info dt { font-size: 18px; font-weight: 700; color: #1FA1DB; margin-bottom:20px; display: block;}
  .contact-form-items.download .info dd li {}
  .contact-form-items.download form { width: calc(448 / 900 * 100%); margin-top: -42px; }
  .contact-form-items.download table { max-width: none; margin-bottom: -20px; }
  .contact-form-items.download th { color: #000; padding-top: 20px; }
  .contact-form-items.download .form-must { margin: 0 10px 0 0; }
  .contact-form-items.download .agree-input + label { font-size: 14px; }
  .contact-form-items.download .btn01 { position:relative; margin:40px auto; }
  .contact-form-items.download .btn01 a { 
    font-size: 20px; /* 15px -> 20px に変更 */
    font-weight: 700; 
    font-family: Roboto; 
    color:#fff; 
    background:#1FA1DB; 
    border: 2px solid #1FA1DB; 
    display:inline-block; 
    width: 448px; /* 140px -> 448px に変更 */
    height: 70px; /* 高さを指定 */
    line-height: 66px; /* 枠線(2px*2)を除いた高さでテキストを上下中央揃え */
    padding: 0; /* padding計算を解除 */
    text-align:center; 
    position:relative; 
    text-decoration:none; 
    transition: 0.3s ease-in-out; 
    box-sizing: border-box; 
  }

  .contact-form-items.download .btn01 a:before{ 
    content:""; 
    display:block; 
    width: 44px; /* 21px -> 44px に変更 */
    height: 1px; /* 線高 1px */
    background: #fff; 
    position: absolute; 
    right: -2px; 
    top: 50%; 
    transform: translateY(-50%); 
    transition: 0.3s ease-in-out; 
  }

  .contact-form-items.download .btn01 a:hover { color:#1FA1DB; background:#fff; border:2px solid #1FA1DB; }
  .contact-form-items.download .btn01 a:hover:before { background:#1FA1DB; }

  .contact-form-items.download-complete p { font-size: 18px; margin-bottom: 45px; }
  .contact-form-items.download-complete .btn07 { margin-bottom: 30px; }
  .contact-form-items.download-complete .btn02 { margin: 85px auto 0; }
  
  
  /* error */
  body.error .section h2 { font-size: 30px; font-weight: 400; text-align: center; margin-bottom: 70px; line-height:160%;}
  body.error .section p { text-align: center; margin-bottom: 80px; }





  .pager { text-align:center; margin:50px 0; }
  .pager a { margin:0 8px; color:#000; text-decoration:underline; }
  .pager a.current { text-decoration:none; }
  .article-nav { position:relative; width:100%; margin:80px auto 0; }
  .article-nav .prev-next { }
  .article-nav .prev { float:left; }
  .article-nav .next { float:right; }


  /* wordpress エディター */
  .editor { margin-top:15px; }
  .editor a { color:#000; text-decoration:underline; }
  .editor a:hover { text-decoration:none; }
  .editor p { }

  .editor h3 { font-size: 20px; font-weight: 700; color: #1286B7; line-height: 140%; margin:60px 0 40px; }
  .editor h4 { font-size: 18px; font-weight: 700; line-height: 140%; margin:60px 0 32px; padding: 15px 0; border-top: 1px solid #ccc; border-bottom:1px solid #ccc;  }
  .editor li { line-height:150%; margin-bottom:5px; font-size:16px; }
  .editor ol li { margin-left:0; }
  .editor figcaption { line-height: 160%; font-size: 85%; text-align:center; }

  .editor  .alignleft {
    float: left;
    margin: 0 28px 28px 0;
    max-width:520px;
    width:calc(520 / 1200 * 100%);
  }

  .editor  .alignright {
    float: right;
    margin: 0 0 28px 28px;
    max-width:520px;
    width:calc(520 / 1200 * 100%);
  }

  .editor  .aligncenter {
    clear: both;
    display: block;
    margin: 0 auto 28px;
  }

  .editor  blockquote.alignleft,
  .editor  blockquote.alignright {
    border-top: 1px solid rgba(0, 0, 0, 0.1);
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
    padding-top: 17px;
    width: 50%;
  }

  .editor  blockquote.alignleft p,
  .editor  blockquote.alignright p {
    margin-bottom: 17px;
  }

  .editor  ul,
  .editor  ol {
    list-style: none;
    margin: 0 0 24px 20px;
    padding-left: 20px;
    overflow:hidden;
  }

  .editor  ul li {
    list-style: disc;
  }

  .editor  ol li {
    list-style: decimal;
    margin-left:0!important;
  }

  .editor  li > ul,
  .editor  li > ol {
    margin: 0 0 0 20px;
  }


  .editor table { width:100%; margin:0 auto 40px; line-height:180%; border:1px solid #bfbfbf; border-collapse:collapse; font-size:16px; }
  .editor table th { position:relative; border:1px solid #bfbfbf; padding:15px 25px; font-weight:normal; text-align:center; }
  .editor table td { position:relative; border:1px solid #bfbfbf; padding:15px 25px; font-weight:normal; }
  .editor table tr *:nth-child(1) { width:145px; }
  .editor table tr:nth-child(2n+1) > * { background:#f5f5f5; }


  .editor blockquote { color:#666; font-style:italic; position:relative; padding:10px 10px 10px 35px; background:#f6f6f6; margin-bottom:2.5em; }
  .editor blockquote:before { content:'"'; font-size:50px; position:absolute; left:0; top:20px; }

  .editor figure { margin-bottom:2.5em; max-width:100%; }
  .editor figure img { margin-bottom:10px; }




  /* animation */
  .standby { transform: translateY(30px); opacity:0; }
  .is-animated { transition-delay:0.50s!important; transform: translateY(0px); opacity:1; transition-duration: .5s!important; transition-property:transform,opacity!important; }
  .is-completed { transition-delay:0s!important; transition-duration:0s!important; }

  h2.standby,
  h3.standby,
  h4.standby { transform: translateY(0px); opacity:0; }
  h2.is-animated,
  h3.is-animated,
  h4.is-animated { transition-delay:0.50s; opacity:1;  transition-duration: .5s; transition-property:transform,opacity; }



  /* anime class */
  .fadeInEx { animation:_fadeInEx 1s ease 0.3s forwards!important; }
  .slideInEx { animation:_slideInEx 1s ease 1s forwards!important; }
  .slideInEx2 { animation:_slideInEx2 1s ease 1s forwards!important; }

}

@keyframes _fadeInEx {
		0% { opacity:0; }
	100% { opacity:1; }
}

@keyframes _slideInEx {
		0% { opacity:0; left:-100px; }
	100% { opacity:1; left:-0px; }
}

@keyframes _slideInEx2 {
		0% { opacity:0; left:100px; }
	100% { opacity:1; left:0px; }
}

@media screen and (min-width: 1200px) {

  /*
   * header & footer
   */
  #header { position:fixed; top:0; height:80px; width:100%; z-index:1000; background:#fff; transition:background 0.3s ease-in-out; }
  #header.hidden { background:rgba(255,255,255,0.9); }
  #header-inner { margin:0 auto; padding:0; position:relative; z-index:10; box-sizing:content-box; }
  #header .logo { padding:0; position: relative; z-index: 2; pointer-events: none; width: 150px; box-sizing: content-box; }
  #header .logo a { pointer-events:auto; }
  #header .logo img { }
  
  #header .download-btn { position:absolute; right:164px; top:0; z-index:4; }
  #header .download-btn > a { position: relative; display:block; font-size:13px; font-weight:700; background:#1FA1DB; color:#fff; line-height:80px; width:164px; height: 80px; transition:0.3s ease-in-out; }
  #header .download-btn > a:before { content:""; display:block; position:absolute; left:0; top:0; width:100%; height:100%; background: #1388B9; opacity:0; transition:0.3s ease-in-out; }
  #header .download-btn > a:after { content:""; display:block; position:absolute; left:18px; top:50%; transform: translateY(-50%); width:27.4px; height:25.18px; background:url("../img/ico_download.svg") no-repeat center / cover; }
  #header .download-btn > a span { display:block; position:absolute; left: 55px; top: 50%; transform: translateY(-50%); line-height: 18px; white-space: nowrap; }
  #header .download-btn > a small { font-size: 12px; }
  #header .download-btn > a:hover { text-decoration:none; }
  #header .download-btn > a:hover:before { opacity:1; }
  
  #header .contact-btn { position:absolute; right:0; top:0; z-index:4; border-left: 1px solid #fff; }
  #header .contact-btn > a { display:block; font-size:13px; font-weight:700; background:#1FA1DB; color:#fff; text-align:center; line-height:80px; width:164px; transition:0.3s ease-in-out; padding-left: 32px; }
  #header .contact-btn > a:before { content:""; display:block; position:absolute; left:0; top:0; width:100%; height:100%; background:#1388B9; opacity:0; transition:0.3s ease-in-out; }
  #header .contact-btn > a:after { content:""; display:block; position:absolute; left:25px; top:50%; transform: translateY(-50%); width:25px; height:18px; background:url("../img/ico_contact.svg") no-repeat center / cover; }
  #header .contact-btn > a span { display:block; position:relative; }
  #header .contact-btn > a:hover { text-decoration:none; }
  #header .contact-btn > a:hover:before { opacity:1; }

  #header .header-gnav { position:absolute; right:350px; top:0; z-index:3; height:80px; }
	#header .header-gnav > ul { position:absolute; right:0px; top:0; width:1200px; display:block; text-align:right; }
	#header .header-gnav > ul > li { display:inline-block; color:#fff; margin:0 35px 0 0; }
	#header .header-gnav > ul > li > a { font-size:14px; font-weight: 500; color:#000; display:inline-block; padding:0; line-height:80px; text-align:center; position:relative; transition:0.3s ease-in-out; }
	#header .header-gnav > ul > li > a > span { padding:2px 12px; position:relative; line-height:16px; }
	#header .header-gnav > ul > li > a:hover { color:#1FA0DA; }
	#header .header-gnav > ul > li > a:before { content:""; display:block; position:absolute; left:5px; top:0px; width:0%; height:2px; background:#1FA0DA; pointer-events: none; transition:0.3s ease-in-out; }
  #header .header-gnav > ul > li > a:after { content:""; display:inline-block; background: url("../img/gnav_line.png") no-repeat; background-size: cover; width: 15px; height: 15px; position: absolute; right: -25px; top: 50%; transform: translateY(-50%); }
  #header .header-gnav > ul > li.works { margin-right: 0; }
  #header .header-gnav > ul > li.works > a:after { display: none; }
	#header .header-gnav > ul > li > a:hover:before { width:calc(100% - 10px); }
  body.home #header .header-gnav > ul > li.home > a:before,
  body.about #header .header-gnav > ul > li.about > a:before,
  body.service #header .header-gnav > ul > li.service > a:before,
  body.works #header .header-gnav > ul > li.works > a:before { width:calc(100% - 10px); }
  #header .header-gnav > ul > li:hover > a { text-decoration:none; }

	#header .header-gnav > ul > li { /* position:absolute; right:0px; top:0px; */ }
	#header .header-gnav > ul > li .sub { display:none; white-space:nowrap; position:absolute; right:-175px; top:80px; width:765px; text-align:left; padding:0 0; min-height:200px; }
	#header .header-gnav > ul > li .sub .ttl { position:absolute; left:-566px; top:42px; width:156px; }
	#header .header-gnav > ul > li .sub .ttl span:nth-child(1) { display:block; font-size:20px; font-weight: 700; margin-bottom:5px; }
	#header .header-gnav > ul > li .sub .ttl span:nth-child(2) { display:block; font-family:Roboto; font-size:14px; font-weight: 700; color:#fff; }
  #header .header-gnav > ul > li .sub .ttl:after { content: ""; display: block; background:no-repeat center center / cover; width: 265px; height: 175px; position: absolute; left: 226px; top: 0; }
  #header .header-gnav > ul > li.about .sub .ttl:after { background-image: url("../img/img_gnav01.jpg"); }
  #header .header-gnav > ul > li.service .sub .ttl:after { background-image: url("../img/img_gnav02.jpg"); }
	#header .header-gnav > ul > li .sub .nav { display:flex; position:relative; top:0; }
	#header .header-gnav > ul > li .sub ul { font-size:14px; margin:0; }
	#header .header-gnav > ul > li .sub ul:nth-child(1) { /* border-left:1px solid #e60012; */ padding-left:40px; margin-left:0; }
	#header .header-gnav > ul > li .sub li { list-style-type: none; margin:0; position: absolute; left: 0; top: 0; height: 130px; width: 310px; }
  #header .header-gnav > ul > li .sub li:nth-child(1) { }
  #header .header-gnav > ul > li .sub li:nth-child(2) { top:130px; }
  #header .header-gnav > ul > li .sub li:nth-child(3) { left: 370px; }
  #header .header-gnav > ul > li .sub li:nth-child(4) { top:130px; left: 370px; }
  #header .header-gnav > ul > li .sub li:nth-child(1):after,
  #header .header-gnav > ul > li .sub li:nth-child(3):after { content:""; width: 100%; height: 1px; background:rgba(255,255,255,0.2); position: absolute; left: 0; bottom: 0; }
	#header .header-gnav > ul > li .sub li:last-child { margin-bottom:0; }
  #header .header-gnav > ul > li.service .sub li { height: 86px; }
  #header .header-gnav > ul > li.service .sub li:nth-child(1) { }
  #header .header-gnav > ul > li.service .sub li:nth-child(2) { top:86px; }
  #header .header-gnav > ul > li.service .sub li:nth-child(3) { top:172px; left: 0px; }
  #header .header-gnav > ul > li.service .sub li:nth-child(4) { top:0; left: 370px; }
  #header .header-gnav > ul > li.service .sub li:nth-child(5) { top:86px; left: 370px; }
  #header .header-gnav > ul > li.service .sub li:nth-child(6) { top:172px; left: 370px; }
  #header .header-gnav > ul > li.service .sub li:nth-child(1):after,
  #header .header-gnav > ul > li.service .sub li:nth-child(2):after,
  #header .header-gnav > ul > li.service .sub li:nth-child(4):after,
  #header .header-gnav > ul > li.service .sub li:nth-child(5):after { content:""; width: 100%; height: 1px; background:rgba(255,255,255,0.2); position: absolute; left: 0; bottom: 0; }
  
	#header .header-gnav > ul > li .sub li > a { position: absolute; top: 50%; transform: translateY(-50%); width: 310px; font-size: 15px; background:url("../img/gnav_arrow.png") no-repeat right center; background-size:16px 16px; padding-left:16px; display:inline-block; line-height:140%; transition: 0.3s ease-in-out; }
	#header .header-gnav > ul > li .sub li > a:hover { color: #B2F3FF; text-decoration:none; background-image:url("../img/gnav_arrow_on.png"); }
	#header .gnav-sub-area { display:none;  opacity:0; background:#1081B0; height:260px; width:100%; position:absolute; z-index: 2; left:0; top:80px; transition:opacity 0.3s ease-in-out; pointer-events: none; }
	


  .footer-contact { background:url("../img/bg_contact.png") no-repeat center center #1FA1DB; background-size:cover; height: 335px; }
  .footer-contact > .inner { max-width:900px; transform:translateX(-50%); left:50%; position:relative; padding:80px 0;  }
  .footer-contact .title { font-size:20px; font-weight: 700; color:#fff; text-align:center; margin-bottom:50px; }
  .footer-contact .box { position:relative; }
  .footer-contact .box .box-left { width:540px; float:left; padding-top:18px; }
  .footer-contact .box .box-left span { color:#fff; font-weight:500; display:inline-block; margin-left:20px; vertical-align:middle; line-height: 200%; }
  .footer-contact .box .box-right { width:360px; float:right; }
  .footer-contact .box img { margin-top:0px; vertical-align:middle; width: 318px; }
  .footer-contact .box .btn a { position: relative; display:block; background:#1388B9; color:#fff; font-size:22px; font-weight: 700; text-align:center; line-height:80px; border-radius: 10px; }
  .footer-contact .box .btn a:before { content:""; display:block; position:absolute; left:0; top:0; width:100%; height:100%; background: linear-gradient(35deg, rgba(104,198,236,1) 0%, rgba(19,135,184,1) 60%); opacity:0; transition:0.3s ease-in-out; border-radius: 10px; }
  .footer-contact .box .btn a span { position: relative; display:inline-block; }
  .footer-contact .box .btn a span:after { content: ""; display: block; background:url("../img/ico_arrow01.png") no-repeat; background-size: 17px 15px ; width: 17px; height: 15px; position: absolute; right: -75px; top:50%; transform: translateY(-50%); transition:0.3s ease-in-out; }
  .footer-contact .box .btn a:hover { text-decoration:none; }
  .footer-contact .box .btn a:hover:before { opacity:1; }
  .footer-contact .box .btn a:hover span:after { right:-85px; }
  
  
  #footer { background:#fff; }
  #footer ul li { list-style-type:none; }
  #footer-inner { position:relative; box-sizing:content-box; max-width:1200px; margin:0 auto; padding: 80px 0 30px; }
  #footer .page-top { position:absolute; right:30px; bottom:45px; z-index:999; transition: 0.3s ease-in-out; }
  #footer .page-top a { position:fixed; right:30px; bottom:45px; margin-left:-80px; color:#23793a; background:url(../img/pagetop.png) no-repeat left center; background-size:	41px 41px; width:41px; height:41px; display:block; text-indent:-9999px; }
  #footer .page-top.end { opacity: 0; }
  #footer .logo { position: absolute; left:0; top: 80px; width:157px; }
  #footer .address { position: absolute; left:0; top: 270px; font-size: 12px; line-height: 200%; }
  #footer .footer-gnav { display:flex; justify-content: end; max-width: 1200px; padding: 0 20px; }
  #footer .footer-gnav .group { margin:0 0 90px 90px; text-align:center; }
  #footer .footer-gnav .group > ul { display:inline-block; text-align:left; margin-bottom:0; }
  #footer .footer-gnav .group > ul > li { margin:0 0 18px 0; padding:0; list-style-type:none; }
  #footer .footer-gnav .group > ul > li > a { color:#1388B9; font-size:15px; font-weight:700; white-space:nowrap; transition:0.3s ease-in-out; }
  #footer .footer-gnav .group > ul > li > a:hover { opacity: 0.7; text-decoration:none; }
  #footer .footer-gnav .group > ul > li:last-child { margin-bottom:0; }
  #footer .footer-gnav .group > ul > li > ul { margin-top:15px; margin-bottom:0; }
  #footer .footer-gnav .group > ul > li > ul > li { margin:0 0 8px 0; padding:0; list-style-type:none; white-space:nowrap; }
  #footer .footer-gnav .group > ul > li > ul > li > a { color:#000; font-size:14px; white-space:nowrap; transition:0.3s ease-in-out; }
  #footer .footer-gnav .group > ul > li > ul > li > a:hover { opacity: 0.7; text-decoration:none; }
  #footer .footer-gnav .group > ul > li > ul > li:last-child { margin-bottom:0; }
  #footer .sns { margin-bottom: 60px; text-align: right; }
  #footer .sns li { display: inline-block; list-style-type: none; margin:0 0 0 18px; padding: 0; }
  #footer .sns li a { transition: 0.3s ease-in-out; }
  #footer .sns .tw { width: 20px; }
  #footer .sns .fb { width: 22px; }
  #footer .sns .insta { width: 21px; }
  #footer .sns .youtube { width: 24px; }
  #footer .sns li a:hover { opacity: 0.7; }
  #footer .utils ul { margin-bottom: 0; text-align: right; }
  #footer .utils li { margin: 0 0 0 20px; padding: 0; list-style-type: none; font-size: 12px; display: inline; }
  #footer .utils li a { transition: 0.3s ease-in-out; }
  #footer .utils li a:hover { text-decoration: none; opacity: 0.7; }
  #footer .copyright { position: absolute; left: 0; bottom: 35px; font-size:12px; font-family: Roboto; }

}

@media screen and (min-width: 1260px) {
  .service-block .task-items .title { font-size: 16px; }
  .service-block .task-items .content * { font-size: 16px; }
  .service-block .task-items .benefit * { font-size: 16px; }
}

@media screen and (min-width: 1200px) and (max-width: 1635px) {

   /* home */
  .main-visual .title { left: 20px; }
  .main-visual .title + h2 { left: 20px; }
  .main-visual .title + h2 + p { left: 20px; }
  .main-visual .scroll { left: 20px; }
   
}

@media screen and (min-width: 1200px) and (max-width: 1550px) {

	#header .header-gnav > ul > li .sub { right:-400px!important; }
}

@media screen and (min-width: 1200px) and (max-width: 1350px) {

  #header .header-gnav > ul > li .sub .ttl { left: -455px; }
  #header .header-gnav > ul > li .sub .ttl:after { left: 196px; }
  #header .header-gnav > ul > li .sub li { left: 40px; }
  #header .header-gnav > ul > li.service .sub li:nth-child(3){ left: 40px; }
}

@media screen and (min-width: 751px) and (max-width: 1199px) {

  /*
   * header & footer
   */
  #header .pc { display:none!important; }
  #header .sp { display:block!important; }
  #header img.sp { display:inline-block!important; }	
	#header { position:fixed; left:0; top:0; width:100%; height:80px; z-index:1000; background:#fff; }
  #header ul li { list-style-type:none; }
  #header-inner { }
	#header .logo { text-align:center; position: absolute; left: 0; top: 0; z-index: 10;  width: 80px; height: 80px; }
	#header .header-gnav { /* display:none; */ position:fixed; z-index:3; width:100%; top:0px; height:calc(0px); overflow: auto; -webkit-overflow-scrolling: touch; transition:all 0.5s ease-in-out; background:#DDF5FF; }
  #header .header-gnav.isopen { height:calc(100vh - 54px); top:0px; padding-top:110px; /* display:block; */ }
  #header #sp-menu .btn { cursor:pointer; display:block; width:35px; height:23px; position:absolute; right:25px; top:28px; transition:0.2s ease-in-out; z-index:20; -webkit-tap-highlight-color:rgba(0,0,0,0); cursor:pointer; }
  #header #sp-menu .btn i { height:1px; background:#019BB7; display:block; position:absolute; left:0; top:0; transform-origin: 50% 0%; transition:0.5s ease-in-out; }
  #header #sp-menu .btn i:nth-child(1) { width:35px; top:0px; left:0; }
  #header #sp-menu .btn i:nth-child(2) { width:35px; top:14px; left:0; }
  #header #sp-menu .btn i:nth-child(3) { width:35px; top:28px; left:0; }
  #header #sp-menu.isopen .btn { top:30px; }
  #header #sp-menu.isopen .btn i { width:35px; background:#019BB7; }
  #header #sp-menu.isopen .btn i:nth-child(1) { top:10px; left:0px; transform:rotate(45deg); }
  #header #sp-menu.isopen .btn i:nth-child(2) { opacity:0; left:0px; }
  #header #sp-menu.isopen .btn i:nth-child(3) { top:10px; left:0px; transform: rotate(-45deg); }
	#header .header-gnav > ul > li { margin:0; padding:0 20px; }
	#header .header-gnav > ul > li > a { line-height:140%; display:block; color:#1FA0DA; border-top:1px solid #1FA0DA; padding:20px 0; font-size:14px; font-weight: 500; position:relative; }
  #header .header-gnav > ul > li:first-child > a { border-top: none; }
  #header .header-gnav > ul > li:last-child > a { border-bottom:1px solid #1FA0DA; }
	#header .header-gnav > ul > li > a:before{ content:""; display:block; background: url("../img/gnav_arrow.png") no-repeat; background-size:16px 16px; width: 16px; height: 16px; position:absolute; top:50%; right:20px; transform: translateY(-50%); z-index:2; }
	#header .header-gnav > ul > li > a:hover { text-decoration:none; }
	#header .header-gnav > ul > li.has-child > a:before{ background: url("../img/ico_plus.png") no-repeat center center; background-size:10px 10px; }
  #header .header-gnav > ul > li.sp-open > a:before{ background: url("../img/ico_minus.png") no-repeat center center; background-size:10px 10px; }
	#header .header-gnav > ul > li .sub { display:none; }
	#header .header-gnav > ul > li .sub.sp-open { display:block!important; border-top:1px solid #eee; }
	#header .header-gnav > ul > li .sub .ttl { display:none; }	
	#header .header-gnav > ul > li .sub ul { margin:0; padding:0; }
	#header .header-gnav > ul > li .sub ul > li { padding:0; margin:0 0 0 30px; }
	#header .header-gnav > ul > li .sub ul > li > a { line-height:140%; display:block; color:#1FA0DA; border-top:1px solid #1FA0DA; padding:16px 0; font-size:14px; font-weight: 500; position:relative;  }
	#header .header-gnav > ul > li .sub ul > li > a:before { content:""; display:block; background: url("../img/gnav_arrow.png") no-repeat; background-size:16px 16px; width: 16px; height: 16px; position:absolute; top:50%; right:20px; transform: translateY(-50%); z-index:2; }
  #header .header-gnav > ul > li .sub ul > li > a:hover { text-decoration: none; }
  #header .sns { margin: 60px 0; text-align: center; }
  #header .sns li { display: inline-block; list-style-type: none; margin:0 10px 0 10px; padding: 0; }
  #header .sns li a { transition: 0.3s ease-in-out; }
  #header .sns .tw { width: 20px; }
  #header .sns .fb { width: 22px; }
  #header .sns .insta { width: 21px; }
  #header .sns .youtube { width: 24px; }
  #header .sns li a:hover { opacity: 0.7; }

	#header .gnav-sub-area { display:none; opacity:0; background:#000; height:50px; width:100%; position:absolute; left:0; top:80px; transition:opacity 0.3s ease-in-out; pointer-events: none; }
	
  
  .footer-contact .pc { display:none!important; }
  .footer-contact .sp { display:block!important; }
  .footer-contact { background:#1FA1DB; }
  .footer-contact > .inner { max-width:360px; transform:translateX(-50%); left:50%; position:relative; padding:40px 20px;  }
  .footer-contact .title { font-size:15px; line-height: 200%; font-weight: 700; color:#fff; margin:0 0 35px; }
  .footer-contact .box { position:relative; }
  .footer-contact .box .box-left { }
  .footer-contact .box .box-left span { color:#fff; font-weight:500; display:inline-block; margin:0; vertical-align:middle; line-height: 200%; }
  .footer-contact .box .box-right { max-width:360px; margin: 0 auto 35px; }
  .footer-contact .box img { margin-top:0px; vertical-align:middle; width: 318px; }
  .footer-contact .box .btn a { position: relative; display:block; background:#1388B9; color:#fff; font-size:18px; font-weight: 700; text-align:center; line-height:80px; border-radius: 10px; }
  .footer-contact .box .btn a:before { content:""; display:block; position:absolute; left:0; top:0; width:100%; height:100%; background: linear-gradient(35deg, rgba(104,198,236,1) 0%, rgba(19,135,184,1) 60%); opacity:0; transition:0.3s ease-in-out; border-radius: 10px; }
  .footer-contact .box .btn a span { position: relative; display:inline-block; }
  .footer-contact .box .btn a span:after { content: ""; display: block; background:url("../img/ico_arrow01.png") no-repeat; background-size: 17px 15px ; width: 17px; height: 15px; position: absolute; right: -75px; top:50%; transform: translateY(-50%); transition:0.3s ease-in-out; }
  .footer-contact .box .btn a:hover { text-decoration:none; }
  .footer-contact .box .btn a:hover:before { opacity:1; }
  .footer-contact .box .btn a:hover span:after { right:-85px; }
  
  #footer { background:#fff; }
  #footer ul li { list-style-type:none; }
  #footer-inner { position:relative; box-sizing:content-box; max-width:1200px; margin:0 auto; padding:50px 0 30px; }
  #footer .page-top { position:absolute; right:12px; bottom:12px; z-index:999; transition: 0.3s ease-in-out; }
  #footer .page-top a { position:fixed; right:12px; bottom:12px; margin-left:-80px; color:#23793a; background:url(../img/pagetop.png) no-repeat left center; background-size:	41px 41px; width:41px; height:41px; display:block; text-indent:-9999px; }
  #footer .page-top.end { opacity: 0; }
  #footer .logo { width:100px; margin: 0 auto 35px; }
  #footer .address { font-size: 12px; line-height: 200%; text-align: center; margin-bottom: 60px;}
  #footer .footer-gnav { display: none; }
  #footer .sns { position: absolute; left:50%; bottom: 70px; transform: translateX(-50%); text-align: center; }
  #footer .sns ul { margin-bottom: 0; }
  #footer .sns li { display: inline-block; list-style-type: none; margin:0 10px 0 10px; padding: 0; }
  #footer .sns li a { transition: 0.3s ease-in-out; }
  #footer .sns .tw { width: 20px; }
  #footer .sns .fb { width: 22px; }
  #footer .sns .insta { width: 21px; }
  #footer .sns .youtube { width: 24px; }
  #footer .sns li a:hover { opacity: 0.7; }
  #footer .utils { position: relative; margin-bottom: 75px; }
  #footer .utils ul { margin-bottom: 0; text-align: center; }
  #footer .utils li { margin: 0 10px 0 10px; padding: 0; list-style-type: none; font-size: 12px; display: inline; }
  #footer .utils li.contact { margin: 0; position: absolute; left: 50%; transform: translateX(-50%); top: -35px; }
  #footer .utils li a { transition: 0.3s ease-in-out; }
  #footer .utils li a:hover { text-decoration: none; opacity: 0.7; }
  #footer .copyright { text-align: center; font-size:12px; font-family: Roboto; }



   /* home */
  .main-visual .title { left: 20px; }
  .main-visual .title + h2 { left: 20px; }
  .main-visual .title + h2 + p { left: 20px; }
  .main-visual .scroll { left: 20px; }

  .news-section .menu { position:static; width:auto; }
  .news-section .news-items { margin-left: 0; max-width: none;}
  .news-section .menu { margin:0 10px 50px; }
  .news-section .menu .news-nav li { display: inline; margin: 0 30px 0 0; }
  
  /* service */
  .service-block .task-items.col3 { margin: 0 40px; }
  .service-block .task-items.col3 .item { width: calc(270 / 1050 * 100%); }
  .service-block .check-section .check-box { flex-direction: column; align-items: center; text-align: center; gap: 20px;  }
  .service-block .check-section .check-list li { text-align: left; }
  
  
  /* download */
  .contact-form-items.download .box-flex { display: block; }
  .contact-form-items.download .info {
    width: 100%; /* 親要素の幅を広げる */
    display: flex;
    align-items: center; /* 垂直方向の中央揃え */
    justify-content: space-between;
    gap: 30px; /* 画像と文章の間の余白 */
    margin-bottom: 50px;
  }

  .contact-form-items.download .info .photo {
    width: 40%; /* 画像エリアの幅 */
    flex-shrink: 0;
  }

  .contact-form-items.download .info .photo img {
    width: 100%;
    height: auto;
  }

  .contact-form-items.download .info dl {
    width: 60%; /* テキストエリアの幅 */
    margin-top: 0; /* PC版の margin-top をリセット */
  }
  .contact-form-items.download form { width: auto; }
  
}

@media screen and (min-width: 751px) and (max-width: 999px) {
  body.news .news-box .menu { position: relative; width:100%; margin-top: 80px; }
  body.news .news-box .news-items { max-width:none; margin-left:0px; }
  body.news .news-box .news-article { max-width:none; margin-left:0px; }
}