@charset "UTF-8";
/*
** import core file
*/
/*
** -- two point
*/
/*---------------
  subnav
----------------*/
/*
** -- three point
@mixin break-pc {//pcのみ
	@media screen and (min-width:961px) {
		@content;
	}
}
@mixin break-pc-tab {//pcとtab共通
	@media screen and (min-width:768px) {
		@content;
	}
}
@mixin break-tab-sp {//tabとsp共通
	@media screen and (max-width:960px) {
		@content;
	}
}
@mixin break-tab {//tabのみ
	@media screen and (max-width:960px) and (min-width:768px) {
		@content;
	}
}
@mixin break-sp {//spのみ
	@media screen and (max-width:767px) {
		@content;
	}
}
@mixin break-sps {//iphone5/SE
	@media screen and (max-width:374px) { @content; }
}
*/
/*
** -- two point
*/
/*---------------
  subnav
----------------*/
/*
** -- three point
@mixin break-pc {//pcのみ
	@media screen and (min-width:961px) {
		@content;
	}
}
@mixin break-pc-tab {//pcとtab共通
	@media screen and (min-width:768px) {
		@content;
	}
}
@mixin break-tab-sp {//tabとsp共通
	@media screen and (max-width:960px) {
		@content;
	}
}
@mixin break-tab {//tabのみ
	@media screen and (max-width:960px) and (min-width:768px) {
		@content;
	}
}
@mixin break-sp {//spのみ
	@media screen and (max-width:767px) {
		@content;
	}
}
@mixin break-sps {//iphone5/SE
	@media screen and (max-width:374px) { @content; }
}
*/
/*
@include animation(scrollpoint,2.5,ease,0,infinite,normal,forwards);
<div class="scroll">
	<a href="#indexSolving">scroll</a>
	<span class="bar"></span>
</div>
*/
/*
&:before {
	content:'';
	@include sizes(1px,50px);
	display: block;
	background: #333;
	position: absolute;
	top:0;left:0;right:0;
	margin:auto;
	@include animation ( down-border, 2, ease, 0, infinite,normal,forwards);
	@include transform( translate3d(0,0,0) );
}
*/
/*
**
template style
**
** overall
** header
** gnav
** contents
** topicpath
** main
** pagetop
** footer
**
*/
/*==================================================

** overall
==================================================*/
*,
*:before,
*:after {
  box-sizing: border-box; }

*::selection {
  background: #777777;
  color: #fff; }

*::-moz-selection {
  background: #777777;
  color: #fff; }

html, body, .sitewrap {
  min-height: 100%;
  min-width: 100%; }

@media screen and (max-width: 600px) {
  html.open {
    overflow: hidden; } }

body {
  color: #444;
  position: relative;
  -webkit-text-size-adjust: 100%; }
  @media screen and (min-width: 601px) {
    body {
      min-width: 1240px; } }

.wrap,
#topicpath ol {
  margin-left: auto;
  margin-right: auto;
  position: relative; }
  @media screen and (min-width: 601px) {
    .wrap,
    #topicpath ol {
      width: 1240px;
      padding-right: 20px;
      padding-left: 20px; } }
  @media screen and (max-width: 600px) {
    .wrap,
    #topicpath ol {
      width: 90%; } }

.clear:after {
  clear: both;
  content: '';
  display: block;
  height: 0; }

a {
  transition: all 0.3s; }
  a:hover {
    opacity: 0.8;
    transition: all 0.4s; }

img {
  max-width: 100%;
  height: auto; }
  img[src$=".svg"] {
    width: 100%; }

/*==================================================

** header
==================================================*/
#header {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 99;
  width: 100%;
  min-width: 1240px;
  background: rgba(255, 255, 255, 0.95); }
  #header .headerwrap {
    padding: 0 0 0 24px;
    height: 100px; }
  #header #logo {
    width: 233px; }
    #header #logo a {
      display: block; }
  @media screen and (max-width: 600px) {
    #header {
      min-width: auto;
      background: #fff; }
      #header .headerwrap {
        padding: 0 0 0 5%;
        height: 60px; }
      #header #logo {
        width: 160px; }
      #header #menubtn {
        width: 60px; }
        #header #menubtn button {
          background: none;
          border: none;
          outline: none;
          position: relative;
          display: block;
          width: 100%;
          height: 60px; }
        #header #menubtn .bar {
          display: block;
          width: 26px;
          height: 2px;
          position: absolute;
          left: 0;
          right: 0;
          margin: auto;
          background: #333;
          transition: all 0.3s; }
          #header #menubtn .bar:nth-of-type(1) {
            top: 18px; }
          #header #menubtn .bar:nth-of-type(2) {
            top: 29px; }
          #header #menubtn .bar:nth-of-type(3) {
            top: 40px; }
          .open #header #menubtn .bar {
            transition: all 0.4s; }
            .open #header #menubtn .bar:nth-of-type(1) {
              top: 29px;
              transform: rotate(45deg); }
            .open #header #menubtn .bar:nth-of-type(2) {
              width: 0; }
            .open #header #menubtn .bar:nth-of-type(3) {
              top: 29px;
              transform: rotate(-45deg); } }

/*==================================================

** gnav
==================================================*/
#gnav .gnav .contact {
  margin: 0 0 0 20px; }
  #gnav .gnav .contact a {
    background: #006bb4;
    color: #fff;
    padding: 0 35px; }
    #gnav .gnav .contact a:hover {
      background: #007ace;
      color: #fff; }
#gnav .mainmenu {
  height: 100px;
  padding: 0 20px;
  font-size: 1.28rem;
  font-weight: 500;
  line-height: 1;
  text-align: center;
  text-decoration: none;
  letter-spacing: 0.1em; }
  #gnav .mainmenu:before {
    content: attr(data-en);
    display: block;
    width: 100%;
    font: normal normal 400 1.6rem/2 "Lato", "Noto Sans JP", "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック体", YuGothic, Verdana, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", Meiryo, Osaka, "MS PGothic", "M+ 1p", sans-serif;
    letter-spacing: 0.15em;
    line-height: 1;
    margin: 0 0 10px; }
#gnav .submenu {
  opacity: 0;
  padding-top: 0;
  max-height: 0px;
  overflow: hidden;
  position: absolute;
  z-index: 9;
  top: calc(100% - 20px);
  left: 50%;
  -webkit-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  transform: translateX(-50%);
  transition: all 0.3s; }
  #gnav .submenu:before {
    content: '';
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 0 8px 10px 8px;
    border-color: transparent transparent rgba(0, 107, 180, 0.95) transparent;
    position: absolute;
    left: 0;
    right: 0;
    top: 0px;
    margin: auto; }
#gnav .subnav {
  background: rgba(0, 107, 180, 0.95);
  width: 180px;
  padding-top: 5px; }
  #gnav .subnav li + li {
    border-top: 1px solid #6da8d7; }
  #gnav .subnav a {
    display: block;
    text-align: center;
    padding: 10px 5px;
    font-size: 1.5rem;
    font-weight: 500;
    line-height: 1.6;
    color: #fff;
    text-decoration: none; }
    #gnav .subnav a span {
      font-size: 80%; }
@media screen and (min-width: 601px) {
  #gnav {
    display: block !important; }
    #gnav .gnav > li {
      position: relative; }
      #gnav .gnav > li:hover:not(.contact) .mainmenu {
        opacity: 1;
        color: #006bb4; }
      #gnav .gnav > li:hover:not(.contact) .submenu {
        opacity: 1;
        max-height: 999px;
        padding-top: 10px;
        transition: all 0.4s linear 0.2s; }
    #gnav .submenu {
      display: block !important; } }
@media screen and (max-width: 600px) {
  #gnav {
    display: none;
    position: fixed;
    top: 60px;
    left: 0;
    width: 100%;
    height: calc(100vh - 60px); }
    #gnav .gnavwrap {
      background: #006bb4;
      max-height: 100%;
      overflow: auto;
      -webkit-overflow-scrolling: touch;
      -ms-overflow-style: none;
      overflow: -moz-scrollbars-none; }
      #gnav .gnavwrap::-webkit-scrollbar {
        display: none; }
    #gnav .gnav {
      display: block; }
      #gnav .gnav > li {
        width: 100%; }
        #gnav .gnav > li + li {
          border-top: 1px solid #6da8d7; }
      #gnav .gnav .contact {
        margin: 0;
        padding: 40px 20px 60px; }
        #gnav .gnav .contact a {
          border: 1px solid #fff;
          padding: 15px 35px;
          text-align: center; }
    #gnav .drop-sp {
      cursor: pointer;
      position: relative; }
      #gnav .drop-sp:before {
        content: "";
        font: normal normal 900 2rem "Font Awesome 5 Free";
        line-height: inherit;
        color: #fff;
        position: absolute;
        height: 0;
        top: 0;
        bottom: 0;
        right: 5%;
        margin: auto;
        line-height: 0;
        transition: all 0.4s; }
      #gnav .drop-sp.open:before {
        transform: rotate(180deg);
        transition: all 0.3s; }
    #gnav .mainmenu {
      display: block;
      height: auto;
      padding: 20px 5%;
      color: #fff;
      text-align: left; }
      #gnav .mainmenu:hover {
        opacity: 0.8;
        color: #fff; }
    #gnav .submenu {
      display: none;
      opacity: 1;
      max-height: none;
      position: static;
      transform: none;
      transition: auto; }
      #gnav .submenu:before {
        content: none; }
    #gnav .subnav {
      background: #00548c;
      width: 100%;
      padding: 25px 5%; }
      #gnav .subnav li + li {
        border: none;
        margin: 20px 0 0; }
      #gnav .subnav a {
        padding: 0;
        text-align: left; }
        #gnav .subnav a span {
          font-size: 80%; } }

/*==================================================

** contents
==================================================*/
#contents {
  padding: 100px 0 0; }
  @media screen and (max-width: 600px) {
    #contents {
      padding: 60px 0 0; } }

/*==================================================

** topicpath
==================================================*/
#topicpath {
  margin: 0 0 25px; }
  #topicpath ol li {
    display: inline-block;
    line-height: 1; }
    #topicpath ol li + li:before {
      content: "";
      font: normal normal 900 1em "Font Awesome 5 Free";
      line-height: inherit;
      margin: 0 20px; }
  #topicpath ol span + span:before {
    content: ',';
    margin: 0 5px; }
  #topicpath ol a:hover {
    color: #006bb4; }

/*==================================================

** main
==================================================*/
/* pagettl */
#pagettl {
  width: 100%;
  height: 250px;
  background: url("../img/pagettl/pagettl_default_pc.jpg") no-repeat center center;
  background-size: cover; }
  #pagettl .pagettl {
    font-size: 3.6rem;
    letter-spacing: 0.08em;
    text-align: center;
    text-shadow: 0 0 10px rgba(255, 255, 255, 0.3);
    line-height: 1; }
    #pagettl .pagettl:after {
      content: attr(data-en);
      display: block;
      font: normal normal 400 1.6rem/2 "Lato", "Noto Sans JP", "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック体", YuGothic, Verdana, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", Meiryo, Osaka, "MS PGothic", "M+ 1p", sans-serif;
      color: #006bb4;
      margin: 15px 0 0; }
  #pagettl.aboutus {
    background-image: url("../img/pagettl/pagettl_aboutus_pc.jpg"); }
  #pagettl.services {
    background-image: url("../img/pagettl/pagettl_services_pc.jpg"); }
  #pagettl.facilities {
    background-image: url("../img/pagettl/pagettl_facilities_pc.jpg"); }
  #pagettl.visit {
    background-image: url("../img/pagettl/pagettl_visit_pc.jpg"); }
  #pagettl.equipment {
    background-image: url("../img/pagettl/pagettl_equipment_pc.jpg"); }
  #pagettl.meals {
    background-image: url("../img/pagettl/pagettl_meals_pc.jpg"); }
  #pagettl.flow {
    background-image: url("../img/pagettl/pagettl_flow_pc.jpg"); }
  #pagettl.request {
    background-image: url("../img/pagettl/pagettl_request_pc.jpg"); }
  #pagettl.contact {
    background-image: url("../img/pagettl/pagettl_contact_pc.jpg"); }
  #pagettl.recruit {
    background-image: url("../img/pagettl/pagettl_recruit_pc.jpg"); }
  @media screen and (max-width: 600px) {
    #pagettl {
      height: 200px; }
      #pagettl .pagettl {
        font-size: 2.8rem; }
        #pagettl .pagettl:after {
          margin: 10px 0 0; }
      #pagettl.aboutus {
        background-image: url("../img/pagettl/pagettl_aboutus_sp.jpg"); }
      #pagettl.services {
        background-image: url("../img/pagettl/pagettl_services_sp.jpg"); }
      #pagettl.facilities {
        background-image: url("../img/pagettl/pagettl_facilities_sp.jpg"); }
      #pagettl.visit {
        background-image: url("../img/pagettl/pagettl_visit_sp.jpg"); }
      #pagettl.equipment {
        background-image: url("../img/pagettl/pagettl_equipment_sp.jpg"); }
      #pagettl.meals {
        background-image: url("../img/pagettl/pagettl_meals_sp.jpg"); }
      #pagettl.flow {
        background-image: url("../img/pagettl/pagettl_flow_sp.jpg"); }
      #pagettl.request {
        background-image: url("../img/pagettl/pagettl_request_sp.jpg"); }
      #pagettl.contact {
        background-image: url("../img/pagettl/pagettl_contact_sp.jpg"); }
      #pagettl.recruit {
        background-image: url("../img/pagettl/pagettl_recruit_sp.jpg"); } }

/* main style */
.main p, .main address {
  margin: 20px 0 0; }
  .main p + p, .main p + address, .main address + p, .main address + address {
    margin-top: 20px; }
.main ul {
  margin: 40px 0 0; }
  .main ul li {
    line-height: 1.5;
    padding: 0 0 0 30px;
    position: relative; }
    .main ul li:before {
      content: '';
      display: block;
      width: 12px;
      height: 2px;
      background: #006bb4;
      position: absolute;
      left: 0;
      top: 13px; }
    .main ul li + li {
      margin-top: 10px; }
    .main ul li > :first-child {
      margin-top: 0; }
  .main ul.noicon li {
    padding: 0; }
    .main ul.noicon li:before {
      content: none; }
.main ol, .main ul {
  counter-reset: number; }
  .main ol > li, .main ul > li {
    counter-increment: number; }
    .main ol > li > :first-child, .main ul > li > :first-child {
      margin-top: 0; }
  .main ol.numbering li:before, .main ul.numbering li:before {
    content: counter(number) ".";
    position: absolute;
    left: 0;
    top: 0; }
.main table {
  width: 100%;
  margin: 40px 0 0; }
  .main table tr {
    border-bottom: 1px solid #ccc; }
  .main table th,
  .main table td {
    padding: 20px 0;
    text-align: left;
    vertical-align: top;
    line-height: 1.5; }
    .main table th > :first-child,
    .main table td > :first-child {
      margin-top: 0; }
  .main table th {
    width: 250px;
    font-weight: 500;
    padding-right: 20px; }
  .main table td {
    vertical-align: middle; }
  .main table.ctm1 {
    border: 1px solid #ccc; }
    .main table.ctm1 th,
    .main table.ctm1 td {
      padding: 15px 16px 14px; }
    .main table.ctm1 th {
      color: #006bb4;
      font-weight: 500;
      background: #e5f5ff;
      border-right: 1px solid #ccc;
      vertical-align: middle; }
  .main table.ctm2 {
    margin-top: 20px;
    border: 1px solid #ccc; }
    .main table.ctm2 thead th {
      padding: 15px 20px 14px;
      color: #fff;
      font-weight: 500;
      background: #006bb4; }
      .main table.ctm2 thead th.name {
        width: 300px;
        border-right: 1px solid #ccc; }
      .main table.ctm2 thead th.detail {
        width: 757px; }
    .main table.ctm2 tbody th {
      color: #006bb4;
      font-weight: 500;
      vertical-align: middle;
      background: #e5f5ff;
      border-right: 1px solid #ccc; }
    .main table.ctm2 tbody th, .main table.ctm2 tbody td {
      padding: 14px 16px; }
.main dl dt > :first-child, .main dl dd > :first-child {
  margin-top: 0; }
.main dl.dlctm + dl {
  margin-top: 16px; }
.main dl.dlctm dt {
  line-height: 1.5;
  font-weight: 500; }
.main dl.dlctm dd {
  margin-top: 7px;
  line-height: 1.5; }
.main em {
  font-style: oblique; }
.main strong {
  font-weight: 500; }
.main h2, .main h3, .main h4, .main h5 {
  font: normal normal 600 1em/2 "Noto Serif JP", "Noto Serif JP", YuMincho, "Yu Mincho", "ヒラギノ明朝 ProN W3", "HiraMinProN-W3", "HG明朝E", "MS PMincho", "MS 明朝", serif;
  text-align: center;
  line-height: 1.5;
  letter-spacing: 0.08em; }
.main h2 .en, .main h3 .en {
  display: block;
  font-size: 1.4rem;
  letter-spacing: 0.15em;
  color: #006bb4;
  line-height: 1;
  margin: 10px 0 0; }
.main h2 {
  margin: 110px 0 0;
  font-size: 3.2rem; }
  .main h2.bar:after {
    content: '';
    display: block;
    margin: 30px auto 0;
    width: 60px;
    height: 1px;
    background: #006bb4; }
  .main h2 + * {
    margin-top: 50px; }
  .main h2 + p {
    margin-top: 40px; }
.main h3 {
  margin: 80px 0 0;
  font-size: 2.6rem; }
  .main h3 + * {
    margin-top: 40px; }
  .main h3 + p {
    margin-top: 25px; }
.main h4 {
  margin: 50px 0 0;
  font-size: 2.2rem; }
  .main h4 + * {
    margin-top: 35px; }
  .main h4 + p {
    margin-top: 20px; }
.main h5 {
  margin: 40px 0 0;
  font-size: 1.8rem; }
  .main h5 + * {
    margin-top: 30px; }
  .main h5 + p {
    margin-top: 15px; }
.main h6 {
  margin: 30px 0 0; }
  .main h6 + * {
    margin-top: 0; }
  .main h6 + p {
    margin-top: 0; }
@media screen and (max-width: 600px) {
  .main p, .main address {
    margin: 20px 0 0; }
  .main ul {
    margin: 40px 0 0; }
  .main table {
    margin: 30px 0 0; }
    .main table th, .main table td {
      display: block; }
    .main table th {
      width: 100%;
      padding: 20px 0 4px; }
    .main table td {
      padding: 4px 0 20px; }
    .main table.ctm1 th {
      border-right: none;
      border-bottom: 1px solid #ccc; }
    .main table.ctm2 thead {
      display: none; }
    .main table.ctm2 tbody th {
      width: 100%;
      border-right: none;
      border-bottom: 1px solid #ccc; }
    .main table.ctm2 tbody th, .main table.ctm2 tbody td {
      padding: 15px 20px 16px; }
  .main h2 {
    margin: 70px 0 0;
    font-size: 2.6rem; }
    .main h2.bar:after {
      margin: 20px auto 0; }
    .main h2.bar-l {
      text-align: left; }
      .main h2.bar-l:after {
        margin: 20px auto 0 0; }
    .main h2 + * {
      margin-top: 40px; }
    .main h2 + p {
      margin-top: 30px; }
  .main h3 {
    margin: 60px 0 0;
    font-size: 2.2rem; }
    .main h3 + * {
      margin-top: 35px; }
    .main h3 + p {
      margin-top: 25px; }
  .main h4 {
    margin: 40px 0 0;
    font-size: 1.8rem; }
    .main h4 + * {
      margin-top: 30px; }
    .main h4 + p {
      margin-top: 20px; }
  .main h5 {
    margin: 35px 0 0;
    font-size: 1.6rem; }
    .main h5 + * {
      margin-top: 25px; }
    .main h5 + p {
      margin-top: 10px; }
  .main h6 {
    margin: 25px 0 0; } }
@media screen and (max-width: 374px) {
  .main h2 {
    font-size: 2.4rem; } }

/*==================================================

** pagetop
==================================================*/
#pagetop {
  display: none;
  position: fixed;
  z-index: 99;
  bottom: 20px;
  right: 20px; }
  #pagetop a {
    display: block;
    background: rgba(34, 34, 34, 0.9);
    width: 44px;
    line-height: 44px;
    text-decoration: none;
    text-align: center; }
  #pagetop i:before {
    content: '';
    display: inline-block;
    width: 15px;
    height: 9px;
    background: url("../img/common/pagetop.svg") no-repeat center center;
    background-size: contain;
    vertical-align: 2px; }

/*==================================================

** footer
==================================================*/
#footerSitemap {
  border-top: 1px solid #ccc;
  border-bottom: 1px solid #ccc;
  padding: 65px 0 45px; }
  #footerSitemap .sitemap {
    width: 25%; }
    #footerSitemap .sitemap li {
      font-size: 1.6rem;
      font-weight: 500;
      line-height: 1.5;
      position: relative; }
      #footerSitemap .sitemap li a:hover {
        color: #006bb4; }
    #footerSitemap .sitemap > li {
      padding: 0 0 0 20px; }
      #footerSitemap .sitemap > li:before {
        content: '';
        display: block;
        width: 12px;
        height: 2px;
        background: #006bb4;
        position: absolute;
        left: 0;
        top: 13px; }
      #footerSitemap .sitemap > li + li {
        margin-top: 25px; }
      #footerSitemap .sitemap > li li {
        margin-top: 10px;
        font-weight: 400;
        color: #888; }
  #footerSitemap .bn-list {
    margin-top: 50px;
    gap: 0 16px; }
    #footerSitemap .bn-list li {
      width: 240px;
      margin-top: 0; }

#footerInfo {
  padding: 20px 0; }
  #footerInfo .snslist li + li {
    margin-left: 10px; }
  #footerInfo .snslist a {
    display: block;
    width: 44px;
    line-height: 42px;
    border: 1px solid #444;
    border-radius: 1000px;
    text-align: center;
    text-decoration: none; }
    #footerInfo .snslist a:hover {
      color: #006bb4;
      border-color: #006bb4; }
  #footerInfo .snslist .blog i:before {
    content: "";
    font: normal normal 900 2rem "Font Awesome 5 Free";
    line-height: inherit; }
  #footerInfo .snslist .facebook i:before {
    content: "";
    font: normal normal 400 1.8rem "Font Awesome 5 Brands";
    line-height: inherit; }
  #footerInfo .copy {
    font-size: 1.2rem;
    @incldue letter(80); }

@media screen and (max-width: 600px) {
  #footerSitemap {
    padding: 55px 0; }
    #footerSitemap .sitemap {
      width: 100%; }
      #footerSitemap .sitemap + .sitemap {
        margin-top: 20px; }
      #footerSitemap .sitemap > li + li,
      #footerSitemap .sitemap > li li {
        margin-top: 20px; }
    #footerSitemap .bn-list {
      margin-top: 40px;
      gap: 20px 0; }
      #footerSitemap .bn-list li {
        width: 100%; }

  #footerInfo {
    padding: 25px 0 20px; }
    #footerInfo .snslist {
      width: 100%; }
    #footerInfo .copy {
      width: 100%;
      text-align: center;
      margin: 15px 0 0; } }
