@charset "utf-8"; html {
  font-size: 62.5%;
}

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;
}

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;
}

ins {
  background-color: #ff9;
  color: #000;
  text-decoration: none;
}

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;
}

hr {
  display: block;
  height: 1px;
  border: 0;
  border-top: 1px solid #cccccc;
  margin: 1em 0;
  padding: 0;
}

input, select {
  vertical-align: middle;
}

address, caption, cite, code, dfn, em, strong, th, var {
  font-style: normal;
  font-weight: normal;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

caption, th {
  text-align: left;
}

object, embed {
  vertical-align: middle;
}

legend {
  display: none;
}

h1, h2, h3, h4, h5, h6 {
  font-size: 100%;
  font-weight: normal;
}

img, abbr, acronym, fieldset {
  border: 0 none;
}

img {
  vertical-align: middle;
  display: block;
  margin: auto;
}

ul li {
  list-style-type: none;
}

/*----------------------------------------------------
	共通
----------------------------------------------------*/
/* スクロールバーの有無によるズレ対策 */
html {
  overflow-y: scroll;
}

input, textarea {
  font-family: 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', 'メイリオ', Meiryo, 'ＭＳ Ｐゴシック', 'Lucida Grande', 'Lucida Sans Unicode', Arial, Verdana, sans-serif;
}

/* for IE6 */
* html body {
  font-family: 'ＭＳ Ｐゴシック', 'MS PGothic', Sans-Serif;
}

* html input, * html textarea {
  font-family: 'ＭＳ Ｐゴシック', 'MS PGothic', Sans-Serif;
}

/* リンク
----------------------------------------------------*/
a {
  color: #595959;
  text-decoration: underline;
}

a:hover {
  text-decoration: none;
}

/* 汎用
----------------------------------------------------*/
/* clear clerfix */
.clear {
  clear: both;
  display: block;
  overflow: hidden;
  visibility: hidden;
  width: 0;
  height: 0;
}

.content:after, .clearfix:after {
  content: '';
  display: block;
  clear: both;
}

.content, .clearfix {
  zoom: 1; /* for IE5.5 - IE7 */
}

/*box-sizing */
*, *:before, *:after {
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

body {
  font-family: 'Meiryo', 'メイリオ', 'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ ProN W3', 'sans-serif';
  font-size: 14px;
  background: #fff;
  line-height: 25.2px;
}

/*----------------------------------------------------
	各ページスタイル
----------------------------------------------------*/
/* 共通
-----------------------------------------------------------------------------------------------*/
#contents:after, #contents_low:after {
  content: '.';
  display: block;
  visibility: hidden;
  height: 0.1px;
  font-size: 0.1em;
  line-height: 0;
  clear: both;
}

a.trance:hover {
  opacity: 0.7;
  filter: alpha(opacity=70);
  -ms-filter: 'alpha( opacity=70 )';
}

#index p, #category p, #page p {
  margin: 10px 0;
}

/*----------------------------------------------------
	PCサイトcss
----------------------------------------------------*/
a[href^='tel:'] {
  cursor: default;
  pointer-events: none;
}

a:hover {
  opacity: 0.7;
}

.sp {
  display: none !important;
}

#contents {
  margin: 0 auto 100px;
  max-width: 1000px;
  width: 100%;
}

/* body */
body {
  color: #595959;
  text-size-adjust: none;
  -webkit-text-size-adjust: none;
}

#index, #category, #page {
  padding: 0 0 20px;
  max-width: 740px;
  float: left;
  width: 74%;
}

h1, h2, h3, h4, h5 {
  font-weight: bold;
}

#side {
  max-width: 230px;
  float: right;
}

.inner {
  margin: auto;
  max-width: 1000px;
  width: 100%;
  position: relative;
}

/* header */
#header .inner {
  padding: 5px 0 3px;
  text-align: center;
}

#header h1, #header .site_title {
  padding: 1rem 0;
  font-size: 1.4rem;
  line-height: 1.4;
  text-align: right;
  font-weight: normal;
}

#header h1::before, #header .site_title::before {
  content: 'PR';
  display: inline-block;
  background: #000;
  color: #fff;
  text-align: center;
  width: 3rem;
  margin-right: 0.5rem;
}

#header .site_title a {
  text-decoration: none;
}

#header .site_title a:hover {
  text-decoration: none;
  opacity: 0.6;
}

#header .lead {
  padding: 20px;
  font-size: 2.8rem;
  font-weight: bold;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #1a2440;
}

#header .lead::before {
  content: url(img/lead_icon.png);
  margin-right: 1rem;
}

#header .lead a {
  color: #1a2440;
  text-decoration: none;
}

.menu_box {
  display: none;
}

/*g_nav*/
#g_nav {
  margin-bottom: 30px;
}

#g_nav ul {
  padding-left: 1px;
  display: flex;
  justify-content: center;
}

#g_nav ul li {
  display: inline-block;
  font-size: 15px;
  text-align: center;
  border-left: 1px solid #dcdcdc;
  flex: 1;
}

#g_nav ul li:last-child {
  border-left: 1px solid #dcdcdc;
  border-right: 1px solid #dcdcdc;
}

#g_nav li a {
  padding: 0 10px;
  width: 100%;
  height: 100%;
  display: table;
  font-weight: bold;
  line-height: 1.45;
  text-decoration: none;
}

#g_nav li a span {
  padding: 12px 10px 7px;
  display: block;
}

#g_nav li a:hover {
  color: #fff;
}

#g_nav li a:hover span {
  background-color: #29b69b;
}

#g_nav li a span {
  display: table-cell;
  vertical-align: middle;
}

#g_nav .gnav_inner {
  margin: auto;
  max-width: 1000px;
  width: 100%;
  padding: 5px 0;
}

/* main_visual */
#main_visual {
  background: url(img/mv01.png) no-repeat left top, url(img/mv02.png) no-repeat left top 180px, url(img/mv03.png) no-repeat right bottom;
  background-size: auto,auto,80%;
}

#main_visual .inner {
  padding: 0 0 30px;
  height: 358px;
  position: relative;
}

#main_visual .text_area {
  padding: 24px 30px 24px;
  width: 610px;
  color: #333;
  background: rgba(255, 255, 255, 0.85);
  position: absolute;
  /* bottom: 25px;
  right: 25px; */
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

#main_visual .text_area h2 {
  margin-bottom: 8px;
  font-size: 24px;
  line-height: 1.4;
  text-align: center;
  color: #2b3a63;
}

#main_visual .text_area .text {
  line-height: 1.72;
}

/* pankuzu */
#page_path, #pankuzu {
  margin: 20px auto 0;
  max-width: 1000px;
  width: 100%;
  font-size: 12px;
  color: #5b3d32;
}

#pankuzu a, #pankuzu span {
  color: #333;
}

#page_path li {
  margin-right: 12px;
  display: inline;
  font-size: 12px;
  color: #5b3d32;
  vertical-align: top;
}

#pankuzu span:first-child {
  margin-left: 0;
}

#pankuzu span {
  margin: 0 4px;
  display: inline;
  font-size: 12px;
  color: #333;
  vertical-align: top;
}

#page_path li a {
  margin-right: 12px;
  color: #5b3d32;
}

/* index */
#index h2, #category h1, #page h1 {
  margin: 30px 0;
  padding: 22px 55px 16px;
  color: #2b3a62;
  font-size: 28px;
  text-align: left;
  line-height: 1.5;
  border: 3px solid #2b3a62;
  position: relative;
  text-align: center;
}

#index h2::after, #category h1::after, #page h1::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 45px 45px 0 0;
  border-color: #2b3a62 transparent transparent transparent;
}

#index h3, #category h2, #page h2 {
  margin: 30px 0;
  padding: 5px 60px;
  font-size: 24px;
  text-align: center;
  line-height: 1.5;
  color: #2b3a62;
  background: url(img/h3_bg01.png) no-repeat left center, url(img/h3_bg02.png) no-repeat right center;
}

#index h4, #category h3, #page h3 {
  margin: 30px 0;
  padding: 0 0 9px;
  font-size: 20px;
  line-height: 1.4;
  text-align: left;
  color: #333;
  background: url(img/h4_bg.jpg) no-repeat left bottom;
}

#index h5, #category h4, #page h4 {
  margin: 30px 0;
  padding-bottom: 8px;
  font-size: 20px;
  color: #333;
  background: url(img/h5_bg.jpg) repeat-x left bottom;
}

.rank, .recommend, .check, .point {
  margin: 35px 0 35px 20px;
  padding: 15px 10px 12px 88px;
  font-size: 24px;
  font-weight: bold;
  line-height: 1.5;
  position: relative;
  background-color: #ecf4f9;
  color: #2b3a62;
}

.rank:before, .recommend:before, .check:before, .point:before {
  margin-top: -40px;
  width: 80px;
  height: 80px;
  background: url(img/rank_img01.png) no-repeat;
  position: absolute;
  top: 50%;
  left: -21px;
  content: '';
}

.rank2:before {
  background: url(img/rank_img02.png) no-repeat;
}

.rank3:before {
  background: url(img/rank_img03.png) no-repeat;
}

.rank4:before {
  background: url(img/rank_img04.png) no-repeat;
}

.recommend:before {
  background: url(img/recommend.png) no-repeat;
}

.check:before {
  background: url(img/check.png) no-repeat;
}

.point:before {
  background: url(img/point.png) no-repeat;
}

#index ul, #category ul, #page ul {
  margin: 20px 0;
}

#index ul li, #category ul li, #page ul li {
  padding-left: 25px;
  font-size: 14px;
  margin: 10px 0 10px 4px;
  position: relative;
}

#index ul li::before, #category ul li::before, #page ul li::before {
  content: '';
  position: absolute;
  top: 6px;
  left: 0;
  background: #29b69b;
  width: 12px;
  height: 12px;
  background-size: cover;
  border-radius: 100px;
}

#index ul li:last-child, #category ul li:last-child, #page ul li:last-child {
  margin-bottom: 0;
}

#index ol, #category ol, #page ol {
  margin: 15px 0 30px;
  list-style: none;
  counter-reset: ol_li;
}

#index ol li, #category ol li, #page ol li {
  padding-left: 30px;
  font-size: 14px;
  position: relative;
  margin: 10px 0;
}

#index ol li:last-child, #category ol li:last-child, #page ol li:last-child {
  margin-bottom: 0;
}

#index ol li:before, #category ol li:before, #page ol li:before {
  padding-top: 3px;
  width: 20px;
  height: 20px;
  position: absolute;
  left: 0;
  top: 2px;
  color: #104e96;
  font-size: 14px;
  line-height: 1.2;
  font-weight: bold;
  text-align: center;
  counter-increment: ol_li;
  content: counter(ol_li);
  background-color: #eef6f8;
}

#index p span, #category p span, #page p span {
  color: #f49c2d;
  font-size: 18px;
  font-weight: bold;
  vertical-align: middle;
}

.table-layout {
  margin: 40px 0 45px;
}

.table-layout table {
  width: 100%;
  border-collapse: collapse;
}

.table-layout th, .table-layout td {
  padding: 13px 10px 11px;
  border: 1px solid #ddd;
  text-align: center;
  line-height: 1.7;
  vertical-align: middle;
  word-wrap: break-word;
  word-break: break-all;
}

.table-layout th {
  width: 27%;
  color: #333;
  font-size: 16px;
  font-weight: bold;
  background-color: #f1f1f1;
}

.table-layout td {
  font-size: 14px;
  background-color: #fff;
}

.table-layout::-webkit-scrollbar {
  height: 5px;
}

.table-layout::-webkit-scrollbar-track {
  background: #f1f1f1;
}

.table-layout::-webkit-scrollbar-thumb {
  background: #bcbcbc;
}

.float-wrap {
  margin-bottom: 13px;
}

.float-wrap .float-img.fl {
  margin: 8px 20px 10px 3px;
  width: 240px;
  float: left;
}

.float-wrap .float-img img {
  width: 100%;
}

.float-wrap p {
  margin-bottom: 16px;
  color: #444;
  line-height: 1.8;
}

.float-wrap .float-img.fr {
  margin: 8px 3px 10px 20px;
  float: right;
  width: 240px;
}

.caption {
  margin-top: 12px;
  text-align: center;
  color: #888;
  font-size: 10px;
  line-height: 1.4;
  word-wrap: break-word;
  text-decoration: none;
}

.btn-web {
  margin: 30px auto;
  width: 350px;
  padding: 13px 20px 13px 20px;
  color: #fff;
  font-size: 15px;
  font-weight: bold;
  display: block;
  text-align: center;
  text-decoration: none !important;
  background: #e2a021;
  position: relative;
  line-height: 1.4;
}

.btn-web:hover {
  color: #333;
  opacity: 1;
  background: #f2e966;
  cursor: pointer;
}

.btn-web:hover a {
  color: #333;
}

.btn-web:hover::after {
  content: '';
  position: absolute;
  top: 50%;
  right: 20px;
  transform: translateY(-50%);
  width: 10px;
  height: 10px;
  margin-top: -2px;
  border-top: solid 3px #333;
  border-right: solid 3px #333;
  transform: rotate(45deg) translateY(-50%);
  position: absolute;
  top: 50%;
  right: 25px;
  background-image: none;
}

.btn-web a {
  color: #fff;
  text-decoration: none;
}

.btn-web a:hover {
  opacity: 1;
}

.btn-web a::before {
content: "";
position: absolute;
top: 0px;
left: 0px;
right: 0px;
bottom: 0px;
}

.btn-internal {
  margin: 30px auto;
  padding: 13px 45px 13px 20px;
  font-size: 18px;
  width: 350px;
  color: #fff;
  font-weight: bold;
  display: block;
  text-align: center;
  text-decoration: none;
  background: linear-gradient(90deg, rgb(42 200 170), rgb(11 148 153));
  position: relative;
}

.btn-web::after, .btn-internal::after {
  content: '';
  position: absolute;
  top: 50%;
  right: 20px;
  transform: translateY(-50%);
  width: 10px;
  height: 14px;
  background: url(img/icon05.png) no-repeat;
}

.btn-internal a {
  color: #fff;
  text-decoration: none;
}

.btn-internal:hover {
  color: #fff;
  opacity: 1;
  background: #85cbbe url(img/icon05.png) no-repeat 320px center;
  cursor: pointer;
}

.btn-internal a::before {
content: "";
position: absolute;
top: 0px;
left: 0px;
right: 0px;
bottom: 0px;
}


.btn-internal:hover a {
  opacity: 1;
}

.btn-link {
  color: #333;
  font-size: 16px;
  font-weight: bold;
  display: block;
  text-decoration: none;
  text-align: right;
}

.btn-link a {
  padding-right: 20px;
  position: relative;
}

.btn-link a::after {
  content: '';
  width: 10px;
  height: 10px;
  margin-top: -2px;
  border-top: solid 3px #333;
  border-right: solid 3px #333;
  transform: rotate(45deg) translateY(-50%);
  position: absolute;
  top: 50%;
  right: 0;
}

.btn-link:hover a {
  color: #29b69b;
  text-decoration: none;
}

.btn-link:hover a::after {
  border-top: solid 3px #29b69b;
  border-right: solid 3px #29b69b;
}

.btn-link:hover {
  opacity: 1;
}

/*----- btn-tel（電話ボタン） -----*/
.btn-tel {
  display: none;
}

.box-wrap {
  margin: 100px 0 30px;
  display: flex;
}

.box-wrap .box {
  margin-right: 16px;
  padding: 10px 25px 14px;
  width: 362px;
  position: relative;
  border: 1px solid #d9d9d9;
}

.box-wrap .box:before {
  position: absolute;
  width: 132px;
  height: 31px;
  background: #f4f8fb;
  position: absolute;
  top: -31px;
  left: -1px;
  content: 'POINT';
  text-align: center;
  color: #7fd3c3;
  border: 1px solid #d9d9d9;
  border-bottom: none;
}

.box-wrap .box.right_box {
  margin-right: 0;
}

.box-wrap .box p {
  margin-bottom: 10px;
  line-height: 1.72;
}

.box-wrap .box .box-head {
  margin-bottom: 17px;
  padding: 14px 20px 10px 0;
  display: block;
  font-size: 20px;
  font-weight: bold;
  line-height: 1.55;
  border-bottom: 1px solid #dcdcdc;
  color: #29b69b;
}

.box-wrap .box .box-head a {
  text-decoration: none;
  color: #29b69b;
  position: relative;
  display: block;
}

.box-wrap .box .box-head a:hover {
  color: #7fd3c3;
}

.box-wrap .box .box-head a::after {
  content: '';
  width: 10px;
  height: 10px;
  margin-top: -2px;
  border-top: solid 3px #2b3a63;
  border-right: solid 3px #2b3a63;
  position: absolute;
  top: 50%;
  right: -10px;
  transform: rotate(45deg) translateY(-50%);
}

.box-wrap .box .permalink {
  display: block;
  position: absolute;
  left: 0;
  top: -30px;
  width: 100%;
  height: 112%;
}

.frame-wrap {
  padding: 10px 0;
  display: flex;
}

.frame-wrap .frame {
  margin-right: 10px;
  width: 240px;
  border: 2px solid #ecf4f9;
}

.frame-wrap .frame:last-child {
  margin-right: 0;
}

.frame-wrap .frame .frame-head {
  background: #ecf4f9;
}

.frame-wrap .frame .frame-head a {
  margin: 0 !important;
  padding: 20px 25px 19px 15px;
  color: #333;
  font-size: 18px;
  font-weight: bold;
  text-align: center;
  text-decoration: none;
  position: relative;
  
　height: 9rem;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
}

.frame-wrap .frame .frame-head a::after {
  content: '';
  width: 10px;
  height: 10px;
  margin-top: -2px;
  border-top: solid 3px #2b3a63;
  border-right: solid 3px #2b3a63;
  transform: rotate(45deg) translateY(-50%);
  position: absolute;
  top: 50%;
  right: 15px;
}

.frame-wrap .frame .frame-head p {
  margin: 0 !important;
  padding: 20px 15px 19px;
  color: #333;
  font-size: 18px;
  font-weight: bold;
  text-align: center;
}

.frame-wrap .frame .frame-body {
  margin-top: -10px;
  padding: 30px 18px 14px;
}

.frame-wrap .frame .frame-body p {
  margin: 0 !important;
  line-height: 1.74;
}

/* side */
#side {
  margin-top: 33px;
  max-width: 23%;
  width: 230px;
  float: right;
}

#side .freespace {
  margin-bottom: 17px;
  padding: 20px;
  background: url(img/freespace-bg.png) repeat-y center top;
  border: 1px solid #0f4e96;
  box-shadow: 0 0 0 1px #fff, 0 0 0 3px #0f4e96;
}

#side .freespace .s_photo {
  margin-bottom: 15px;
  width: 180px;
}

#side .freespace .s_photo img {
  width: 100%;
}

#side .freespace p {
  margin-bottom: 16px;
  line-height: 1.7;
  text-align: justify;
}

#side .freespace .title {
  margin-bottom: 20px;
  padding: 0 0 9px;
  font-size: 18px;
  font-weight: bold;
  line-height: 1.45;
  border-bottom: 3px solid #7fa7d1;
  text-align: center;
}

#side .freespace .title a {
  text-decoration: none;
}

#side .freespace .title a:hover {
  opacity: 0.5;
}

#side .freespace .btn-internal {
  margin: 5px 0 3px;
  padding: 9px 40px 8px 30px;
  width: auto;
  font-size: 14px;
  line-height: 1.4;
  background: #194f92 url(img/icon12.png) no-repeat 163px center;
}

#side .freespace .btn-internal:hover {
  background: #c65fa5 url(img/icon12.png) no-repeat 163px center;
}

#side .cate {
  margin-bottom: 17px;
}

#side .cate .title {
  display: table;
  width: 100%;
}

#side .cate .title a {
  padding: 10px 10px 6px;
  display: table-cell;
  height: 64px;
  color: #333;
  font-size: 16px;
  font-weight: bold;
  line-height: 1.45;
  vertical-align: middle;
  text-decoration: none;
  border-bottom: 1px solid #bfbfbf;
}

#side .cate .title a:hover {
  color: #29b69b;
  opacity: 1;
}

#side .cate .s_navi li {
  border-bottom: 1px solid #bfbfbf;
}

#side .cate .s_navi li a {
  padding: 15px 10px 15px 35px;
  display: block;
  text-decoration: none;
  background: url(img/icon09.png) no-repeat 11px center;
}

#side .cate .s_navi li a:hover {
  color: #29b69b;
  opacity: 1;
}

/* footer */
#footer {
  padding-top: 40px;
  background-color: #1a2440;
}

#footer .f_box {
  margin: 0 auto;
  width: 1000px;
  position: relative;
}

#footer .f_box .page_top {
  position: fixed;
  bottom: 50px;
  right: 20px;
  z-index: 999;
}

#footer .f_box .page_top a {
  height: 100px;
  width: 100px;
}

#footer .page_top:hover {
  opacity: 0.6;
}

#footer .f_box .f_ttl {
  margin: 17px 0;
  padding: 10px 10px;
  font-size: 16px;
}

#footer .f_box .f_ttl a {
  padding: 5px 10px 5px 15px;
  display: block;
  font-size: 18px;
  font-weight: bold;
  border-left: 6px solid #29b69b;
  text-decoration: none;
  color: #fff;
}

#footer .f_box .f_ttl a:hover {
  color: #adadad;
}

#footer .f_box .f_navi {
  margin: 0 0 21px 20px;
  display: flex;
  justify-content: left;
  flex-wrap: wrap;
}

#footer .f_box .f_navi li {
  margin-bottom: 10px;
  display: inline-block;
  width: 19.6%;
}

#footer .f_box .f_navi li:last-child {
  margin-right: 0;
}

#footer .f_box .f_navi li a {
  padding: 0 15px 0 1.2em;
  display: inline-block;
  color: #fff;
  font-size: 14px;
  text-decoration: none;
  background: url(img/icon10.png) no-repeat left 7px;
}

#footer .f_box .f_navi li a:hover {
  color: #adadad;
  opacity: 1;
  text-decoration: none;
  background: url(img/icon11.png) no-repeat left 7px;
}

#footer .bottom_area {
  margin: 40px auto;
}

#footer .f_txt {
  margin: 0 auto;
  padding: 15px 20px;
  width: 600px;
  text-align: left;
  color: #fff;
  font-size: 12px;
  line-height: 1.8;
  border: 1px solid #fff;
}

#footer .f_site {
  text-align: right;
  margin-top: -31px;
}

#footer .f_site a {
  padding: 3px 19px 1px;
  display: inline-block;
  color: #fff;
  font-size: 14px;
  text-decoration: none;
}

#footer .f_site a:hover {
  color: #7fc7d5;
  font-size: 14px;
  background-color: #fff;
  opacity: 1;
  font-weight: bold;
}

#footer .copyright {
  padding: 4px 0 2px;
  font-size: 12px;
  color: #fff;
  text-align: center;
  border-top: 1px solid #fff;
}

#footer .copyright a {
  color: #fff;
  text-decoration: none;
}

#footer .copyright a:hover {
  opacity: 1;
  text-decoration: underline;
}

/*--------------------------------------
	toc_parts
---------------------------------------*/
.toc_parts {
  background: #f0f0f0;
  margin: 5rem 0;
  padding: 4rem 5rem;
  box-sizing: border-box;
}

.toc_parts .ttl {
  padding: 0 0 0 1rem;
  font-size: 2rem;
  font-weight: bold;
  color: #303030;
  border-left: 4px solid #2b3a62;
}

#toc {
  margin: 1.5rem 0 0 0;
  padding: 0 2rem 0;
}

#toc .chapter {
  margin: 0 0 2rem;
  counter-reset: count;
}

#toc .chapter .chapter-h {
  margin: 2rem 0 0;
  padding: 0 0 0 3.5rem;
  font-size: 1.6rem;
  line-height: 1.8;
  position: relative;
  counter-increment: count;
  background: none;
}

#toc .chapter .chapter-h:last-child {
  margin-bottom: 0;
}

#toc ul.chapter .chapter-h::before {
  content: counter(count, decimal-leading-zero);
  position: absolute;
  top: 14px;
  left: 0;
  transform: translate(0, -50%);
  color: #575757;
  font-size: 2rem;
  font-weight: bold;
  background: none;
  width: auto;
  height: auto;
  border-radius: 0;
}

#toc .chapter .chapter-h a {
  font-weight: bold;
  text-decoration: none;
  color: #303030;
}

#toc .chapter .chapter-h a:hover {
  opacity: 0.6;
}

#toc .chapter .chapter-h span {
  color: #0b072b;
  font-weight: bold;
}

#toc li.chapter-h.chapter-h-three {
  margin: 1rem 0 1rem 4rem;
  padding: 0 0 0 1.5rem;
  counter-increment: none;
}

#toc li.chapter-h.chapter-h-three::before {
  content: '';
  position: absolute;
  top: 8px;
  left: 0;
  width: 8px;
  height: 8px;
  border-top: solid 1px #0b072b;
  border-right: solid 1px #0b072b;
  -webkit-transform: rotate(180deg);
  transform: rotate(180deg);
}

#toc li.chapter-h.chapter-h-three a {
  font-weight: 400;
}

#toc li.chapter-h.chapter-h-three span {
  font-weight: 400;
}

#toc .chapter br {
  display: none;
}

.ac-btn {
  width: 40%;
  margin: 0 auto 20px auto !important;
  padding: 20px 32px 20px 20px;
  display: block;
  background: #f7f7f7;
  font-size: 18px;
  font-weight: bold;
  line-height: 1.4;
  color: #1d2334;
  text-decoration: none;
  text-align: center;
  cursor: pointer;
  position: relative;
}

.ac-btn .ac-btn-off {
  color: #1d2334 !important;
}

.ac-btn:hover {
  opacity: 0.7;
  filter: alpha(opacity=70);
  -ms-filter: 'alpha(opacity=70)';
}

.ac-btn.is-open .ac-btn-off {
  display: none;
}

.ac-btn.is-open:before {
  content: '目次を閉じる';
}

.accordion-item {
  display: none;
}

.ac-btn-icon::before, .ac-btn-icon::after {
  content: '';
  display: inline-block;
  width: 20px;
  height: 2px;
  background-color: #1d2334;
  position: absolute;
  right: 20px;
  top: 50%;
  transform: translateY(-50%);
}

.ac-btn-icon::after {
  transform: translateY(-50%) rotate(90deg);
  transition: transform 0.5s;
}

.ac-btn-icon.open::after {
  transform: translateY(-50%) rotate(180deg);
}

/* SP ------------------------------*/
@media screen and (max-width: 768px) {
  .toc_parts {
    margin: 3rem 0;
    padding: 3rem 2.5rem 2rem;
  }

  .toc_parts .ttl {
    font-size: 1.6rem;
    border-left: 2px solid #6e6e6e;
  }

  #toc {
    margin: 1.5rem 0 0 0;
    padding: 1rem 0 0;
  }

  #toc .chapter .chapter-h {
    margin: 1rem 0;
    padding: 0 0 0 3rem;
    font-size: 1.5rem;
    line-height: 1.6;
  }

  #toc ul.chapter .chapter-h::before {
    top: 11px;
    font-size: 1.8rem;
  }

  #toc li.chapter-h.chapter-h-three {
    margin: 0.5rem 0 0.5rem 2rem;
  }

  #toc li.chapter-h.chapter-h-three::before {
    top: 6px;
    width: 6px;
    height: 6px;
  }

  #toc li.chapter-h-three + .chapter-h-two {
    margin-top: 2rem;
  }
}

/* lower-bottom */
.lower_bottom {
  margin: 40px 0;
  padding: 20px;
  background: #ecf4f9;
  overflow-x: hidden;
}

#index .lower_bottom .mainttl, #category .lower_bottom .mainttl, #page .lower_bottom .mainttl {
  margin: 0 0 2rem;
  padding: 2rem 1rem;
  background: url(img/bg_box02.png) left top repeat;
  background-size: 100% auto;
  color: #fff;
  font-size: 2.8rem;
  text-align: center;
  border: none;
  width: 100vw;
  margin: 0 calc(50% - 50vw);
}

#index .lower_bottom .mainttl::after, #category .lower_bottom .mainttl::after, #page .lower_bottom .mainttl::after {
  display: none;
}

.lower_bottom .mainttl span {
  display: block;
  font-size: 1.8rem;
}

.lower_bottom .cmn-column3 {
  display: flex;
  flex-wrap: wrap;
  margin-top: 3rem;
}

.lower_bottom .cmn-column3 .cmn-parts-box {
  padding: 1.5rem;
  background: #fff;
}

.lower_bottom .cmn-column3 .cmn-parts-box ul {
  margin: 0 !important;
  min-height: 14rem;
}

.cmn-column3 .cmn-parts-box {
  width: calc((99% - 20px) / 3);
  margin: 0 10px 0 0;
}

.cmn-column3 .cmn-parts-box:nth-child(3n) {
  margin: 0 0 0 0;
}

.lower_bottom .cmn01-catch-copy {
  font-size: 16px;
  font-weight: bold;
}

.lower_bottom .cmn01-catch-copy, .lower_bottom .cmn-parts-box > p:first-child {
  margin: 0 0 2rem;
  color: #29b69b;
  position: relative;
}

.contents-full p {
  font-size: 14px;
  font-size: 1.4rem;
  line-height: 1.7;
  margin: 0 0 15px;
}

.lower_bottom .cmn-parts-box span {
  font-size: 1.1rem;
  margin: 0 !important;
}

.lower_bottom .cmn-parts-box .emphasis {
  font-size: 1.8rem;
  font-weight: bold;
  color: #f49c2d;
}

#index .lower_bottom .cmn-parts-box .ttl, .lower_bottom .cmn-parts-box .ttl {
  margin: 0 0;
  font-size: 2rem;
  font-weight: bold;
  color: #222;
  text-align: center;
  background: none;
  padding: 0;
}

#index .lower_bottom .cmn-parts-box .ttl.matchheight, .lower_bottom .cmn-parts-box .ttl.matchheight {
  min-height: 10rem;
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  align-content: center;
  justify-content: center;
}

.lower_bottom .cmn01-image {
  margin: 0 0 1rem;
  text-align: center;
  min-height: 20rem;
  align-items: center;
  display: flex;
  justify-content: center;
}

.lower_bottom .cmn01-image img {
  width: 100%;
}

.lower_bottom .caption {
  font-size: 1rem;
  margin-top: 0;
}

.lower_bottom .cmn-parts-box .ttl1 {
  min-height: 6rem;
  align-items: center;
  display: flex;
  justify-content: center;
  margin: 2rem 0 0 !important;
}

.contents-full p {
  font-size: 14px;
  font-size: 1.4rem;
  line-height: 1.7;
  margin: 0 0 15px;
}

.lower_bottom .btn-web {
  width: 100%;
}

.lower_bottom .btn-web a {
  text-decoration: none;
  color: #fff;
}

.lower_bottom .btn-web:hover a {
  color: #333;
}

.lower_bottom .btn-web::after {
  content: '';
  width: 10px;
  height: 10px;
  margin-top: -2px;
  border-top: solid 3px #fff;
  border-right: solid 3px #fff;
  transform: rotate(45deg) translateY(-50%);
  position: absolute;
  top: 50%;
  right: 15px;
  background: none;
}

.lower_bottom .btn-web:hover::after {
  border-top: solid 3px #333;
  border-right: solid 3px #333;
}

.lower_bottom .annot_txt {
  font-size: 12px;
  color: #888;
}

/*----------------------------------------------------
	SPサイトcss
----------------------------------------------------*/
@media screen and (max-width: 480px) {
  .sp {
    display: block !important;
  }

  body {
    font-size: 16px;
  }

  #contents {
    margin: 0 auto 30px;
    width: 100%;
  }

  #contents {
    margin-bottom: 0;
  }

  .inner {
    padding: 0 3%;
  }

  .pc {
    display: none !important;
  }

  img {
    max-width: 100%;
    height: auto;
  }

  a[href^='tel:'] {
    cursor: pointer;
    pointer-events: auto;
  }

  h1, h2, h3, h4, h5 {
    margin: 20px 0;
    font-weight: bold;
  }

  #index, #category, #page {
    padding: 0 10px;
    float: none;
    max-width: 100%;
    width: 100%;
    margin-top: 3rem;
  }

  /* body */
  body {
    color: #595959;
    text-size-adjust: none;
    -webkit-text-size-adjust: none;
  }

  /* #page_path */
  #page_path {
    margin: 14px 10px 0;
    font-size: 13px;
    color: #333;
  }

  #pankuzu {
    margin: 14px 0 0;
    font-size: 13px;
    color: #333;
  }

  #page_path li {
    margin-right: 12px;
    display: inline;
    font-size: 13px;
    color: #333;
    vertical-align: top;
  }

  #pankuzu span:first-child {
    margin-left: 0;
  }

  #pankuzu span {
    margin: 0 4px;
    display: inline;
    font-size: 14px;
    color: #333;
    vertical-align: top;
  }

  #page_path li a {
    margin-right: 12px;
    color: #333;
  }

  #page_path li a:hover, #pankuzu span a:hover {
    text-decoration: underline;
  }

  /* header */
  #header {
    position: relative;
    z-index: 200;
  }

  #header.under {
    border-bottom: 1px solid #d7edf1;
  }

  #header .inner {
    padding: 0;
    display: table;
    width: 100%;
    position: relative;
    z-index: 1000;
    background-color: #fff;
  }

  #header h1, #header .site_title {
    margin: 0 0 5px;
    font-size: 1.2rem;
    font-weight: bold;
    line-height: 1.28;
    vertical-align: middle;
    display: flex;
    justify-content: center;
    text-align: left;
  }

  #header h1::before, #header .site_title::before {
    margin-right: 0.5rem;
    padding: 2px 0 0 0;
  }

  #header .site_title a {
    text-decoration: none;
  }

  #header .lead {
    width: 100%;
    padding: 2px 5px;
    font-size: 18px;
    line-height: 1.2;
    text-align: center;
    position: relative;
  }

  #header .lead::before {
    content: '';
    background: url(img/lead_icon.png)no-repeat;
    background-size: contain;
    width: 40px;
    height: 40px;
  }

  .ac-btn {
    width: 100%;
  }

  #header .m_box {
    position: absolute;
    right: 10px;
    top: 35px;
    z-index: 999;
  }
/*--------------------------------------
　spMenuBox
---------------------------------------*/
	/*navWrap*/
	#navWrap {
		box-sizing: border-box;
		margin: 0 auto;
		width: 100%;
		height: auto;
	}
	/*navTop*/
	#navWrap .navTop {
		position: fixed;
		top: 0;
		z-index: 9999;
		width: 100%;
		border-bottom: 1px solid #b5b5b5;
		background-color: #fff;
		opacity: 0;
		transition: all 0.3s ease;
	}
	body.open #navWrap .navTop {
		top: 0 !important;
		opacity: 1!important;
	}
	#navWrap .navTopInner {
		position: relative;
		display: table;
		padding: 0.5rem 0;
		width: 100%;
	}
	#navWrap .siteName {
		display: table-cell;
		padding: 0 1.0rem 0 5rem;
    font-size: 18px;
    line-height: 1.2;
    text-align: center;
		width: 88%;
    color: #1a2440;
    font-weight: bold;
    text-decoration: none;
		border-right: 1px solid #bbb;
		vertical-align: middle;
    position: relative;
	}
  #navWrap .siteName::before {
    content: "";
    background: url(img/lead_icon.png)no-repeat;
    background-size: contain;
    width: 30px;
    height: 30px;
    display: block;
    position: absolute;
    right: 143px;
    left: 0;
    margin: auto;
    top: 10px;
  }
	#menuBtn {
		z-index: 9999;
		display: table-cell;
		box-sizing: content-box;
		padding: 0 1.0rem;
		width: 21px;
		height: 50px;
		vertical-align: middle;
		cursor: pointer;
	}
	#menuBtn .menu {
		position: absolute;
		top: calc(50% - 8px);
		width: 21px;
		height: 16px;
		outline: none;
		border: none;
		background: #000;
		background: url("img/sp/sp_ico_menu.png") center no-repeat;
		background-size: 100%;
	}
	body.open #menuBtn .menu {
		width: 21px;
		height: 16px;
		background: url("img/sp/sp_ico_close.png") center no-repeat;
		background-size: 100%;
	}
	/*navSp*/
	#navSp {
		position: fixed;
		top: 0;
		z-index: 999;
		display: none;
		box-sizing: border-box;
		width: 100%;
		height: 100%;
		background-color: rgba(238, 238, 238, 0.94);
	}
	#navSp>div {
		overflow-y: scroll;
		height: 100%;
	}
	#navSp a {
		text-decoration: none;
	}
  #navSp a:hover {
    opacity: 1;
  }
	/* 以下装飾など */
	#navSp .navBox:first-child {
		overflow: hidden;
		border-top: 1px solid #ccc;
	}
	#navSp .navBox .sttl a,
	#navSp .sitemap a {
		display: block;
		box-sizing: border-box;
		padding: 1.5rem 9% 1.5rem 4%;
		background: url("img/arrow_black.png") 96% center no-repeat;
		background-size: 6px auto;
		font-weight: 400;
		font-size: 1.6rem;
		line-height: 1.4;
	}
	#navSp .navBox .tglMenu a {
		background: #1a2440 url("img/arrow_white_down.png") 96% center no-repeat;
    color: #fff;
		background-size: 10px auto;
	}
	#navSp .navBox .sttl.collapsible a {
		background: url("img/arrow_white_down.png") 96% center no-repeat;
		background-size: 10px auto;
	}
	#navSp .navBox .sttl a br {
		display: none;
	}
	#navSp .navBox .sttl.open>a {
		background-image: url("img/arrow_white_up.png");
		background-size: 10px auto;
	}
	#navSp .navBox .sttl,
	#navSp .sitemap {
		margin: 0;
		padding: 0;
		border-bottom: 1px solid #ccc;
	}
	#navSp .sitemap {
		margin: 0 0 100px;
	}
	#navSp .navBox .accChild {
		display: none;
		box-sizing: border-box;
		padding: 0;
		background-color: rgba(255, 255, 255, 0.8);
		font-size: 1.3rem;
	}
	#navSp .navBox .accChild li {
		float: none;
	}
	#navSp .navBox .accChild li a {
		display: block;
		box-sizing: border-box;
		padding: 1.2rem 9% 1.2rem 7%;
		border-bottom: 1px solid #ccc;
		background: url("img/arrow_black.png") 95.5% center no-repeat;
		background-size: 5px auto;
		color: #000;
	}
	body.open {
		height: inherit !important;
	}
  

  /* g_navi */
  .category_list {
    padding: 10px 0;
  }

  .category_list .ttl {
    margin-bottom: 10px;
    font-weight: bold;
  }

  .category_list .ttl a {
    padding: 10px 30px 10px 15px;
    display: block;
    text-decoration: none;
    background: #1a2440 url(img/icon05.png) no-repeat 95% center;
    background-size: 10px 15px;
    color: #fff;
  }

  .category_list ul {
    margin: -10px 0 10px;
  }

  .category_list li {
    font-weight: normal;
  }

  .category_list li a {
    padding: 11px 30px 7px 15px;
    display: block;
    text-decoration: none;
    border-bottom: 1px solid #d7d7d7;
    background: #f5f5f5 url(img/common/arrow01.png) no-repeat 95% center;
    background-size: 10px 15px;
    color: #222;
  }

  .category_list li:last-child a {
    border-bottom: none;
  }

  /* main_visual */
  #main_visual {
    margin-bottom: 30px;
    background: #f1f1f0;
  }

  #main_visual .inner {
    padding: 0;
    background: none;
    position: static;
    height: auto;
  }

  #main_visual .img_area {
    position: relative;
  }

  #main_visual .sp-text {
    font-size: 22px;
  }

  #main_visual .left_side {
    float: left;
    width: 42%;
  }

  #main_visual .right_side {
    float: right;
    width: 58%;
  }

  #main_visual h2 {
    color: #2b3a63;
    font-size: 15px;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    padding: 20px 10px;
    width: 90%;
    margin: 10px auto;
    font-weight: bold;
    line-height: 1.4;
    background: rgba(255, 255, 255, 0.8);
    text-align: center;
  }

  #main_visual .text_area {
    position: static;
    width: 100%;
    background: #f5f5f5;
    padding: 20px;
    transform: none;
  }

  #main_visual .text_area h2 {
    display: none;
  }

  #main_visual .text_area .text {
    line-height: 1.74;
  }

  /* index */
  #index h2, #category h1, #page h1 {
    padding: 16px 10px 11px 25px;
    color: #2b3a62;
    font-size: 24px;
    line-height: 1.4;
    text-align: center;
  }

  #index h3, #category h2, #page h2 {
    padding: 10px 35px;
    font-size: 22px;
    font-weight: bold;
    text-align: center;
    background: url(img/h3_bg01.png) no-repeat left center, url(img/h3_bg02.png) no-repeat right center;
    background-size: 25px, 25px;
    line-height: 1.4;
  }

  #index h4, #category h3, #page h3 {
    padding: 8px 0;
    font-size: 20px;
    line-height: 1.4;
    background: url(img/h4_bg.jpg) no-repeat left bottom;
    background-size: 100% 3px;
  }

  #index h5, #category h4, #page h4 {
    padding: 7px 0;
    text-align: center;
    font-size: 18px;
    background: url(img/h5_bg.jpg) repeat-x left bottom;
    background-size: 5px 2.5px;
    line-height: 1.4;
  }

  #index ul, #category ul, #page ul {
    margin: 15px 0 12px;
  }

  #index ul li, #category ul li, #page ul li {
    margin-bottom: 5px;
    padding-left: 25px;
  }

  #index ul li:last-child, #category ul li:last-child, #page ul li:last-child {
    margin-bottom: 0;
  }

  #index ol, #category ol, #page ol {
    margin: 15px 0 10px;
    list-style: none;
    counter-reset: ol_li;
  }

  #index ol li, #category ol li, #page ol li {
    margin-bottom: 5px;
    padding-left: 1.6em;
    position: relative;
    background: none !important;
  }

  #index ol li:before, #category ol li:before, #page ol li:before {
    padding-top: 3px;
    width: 18px;
    height: 18px;
    position: absolute;
    left: 0;
    top: 2px;
    color: #104e96;
    font-size: 14px;
    line-height: 1;
    font-weight: bold;
    text-align: center;
    counter-increment: ol_li;
    content: counter(ol_li);
    background-color: #eef6f8;
  }

  .rank, .recommend, .check, .point {
    margin: 20px 0 20px 20px;
    padding: 10px 10px 10px 45px;
    min-height: 40px;
    font-size: 20px;
    font-weight: bold;
    position: relative;
  }

  .rank:before, .recommend:before, .check:before, .point:before {
    margin-top: -28px;
    width: 55px;
    height: 55px;
    background: url(img/rank_img01.png) no-repeat;
    background-size: 55px !important;
    position: absolute;
    top: 50%;
    left: -20px;
    content: '';
  }

  .rank2:before {
    background: url(img/rank_img02.png) no-repeat;
  }

  .rank3:before {
    background: url(img/rank_img03.png) no-repeat;
  }

  .rank4:before {
    background: url(img/rank_img04.png) no-repeat;
  }

  .rank5:before {
    background: url(img/rank_img05.png) no-repeat;
  }

  .recommend:before {
    background: url(img/recommend.png) no-repeat;
  }

  .check:before {
    background: url(img/check.png) no-repeat;
  }

  .point:before {
    background: url(img/point.png) no-repeat;
  }

  #index p, #category p, #page p {
    margin-bottom: 20px;
  }

  #index p span, #category p span, #page p span {
    font-size: 17px;
    font-weight: bold;
    vertical-align: middle;
  }

  .table-layout {
    margin-bottom: 30px;
    overflow-x: auto;
  }

  .table-layout table {
    margin-bottom: 10px;
    border-collapse: collapse;
    width: 100%;
  }

  .table-layout table tr, .table-layout table th, .table-layout table td {
    display: block;
    width: 100%;
  }

  .table-layout table th, .table-layout table td {
    padding: 10px;
    font-size: 16px;
    text-align: center;
    vertical-align: middle;
    word-wrap: break-word;
    border: 1px solid #dcdcdc;
  }

  .table-layout table th {
    color: #333;
    font-weight: bold;
    background-color: #f1f1f1;
  }

  .table-layout::-webkit-scrollbar {
    height: 5px;
  }

  .table-layout::-webkit-scrollbar-track {
    background: #f1f1f1;
  }

  .table-layout::-webkit-scrollbar-thumb {
    background: #bcbcbc;
  }

  .float-wrap {
    margin: 0 0 10px;
  }

  .float-wrap .fl, .float-wrap .fr {
    margin-bottom: 11px;
    text-align: center;
  }

  .float-wrap .float-img img {
    width: 100%;
    box-sizing: border-box;
  }

  .float-wrap p {
    margin: 10px 0 !important;
    line-height: 1.74;
  }

  .caption {
    margin-top: 15px;
    color: #999;
    line-height: 1.2;
    text-decoration: none;
    text-align: center;
    word-wrap: break-word;
  }

  .btn-web {
    margin: 20px auto;
    padding: 15px 25px;
    width: 90%;
  }

  .btn-internal {
    margin: 20px auto;
    padding: 15px 25px;
    text-align: center;
    width: 90%;
  }

  .btn-internal:hover {
    background-image: none;
  }

  .btn-internal a:hover {
    opacity: 1;
  }

  .btn-tel {
    margin: 20px auto !important;
    padding: 15px 40px;
    display: block;
    color: #fff;
    font-size: 18px;
    font-weight: bold;
    text-align: center;
    text-decoration: none;
    position: relative;
    background: #1a2440;
    width: 90%;
  }

  .btn-tel a:hover {
    opacity: 1;
  }

  .btn-tel::before {
    content: '';
    background: url(img/sp/icon04.png) no-repeat 20px center;
    background-size: 17px 20px;
    display: block;
    width: 35px;
    height: 40px;
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
  }

  .btn-link {
    margin: 20px 0;
    padding: 15px 40px;
    border: 2px solid #29b69b;
    display: block;
    color: #b59bf7;
    font-size: 18px;
    font-weight: bold;
    text-align: center;
    text-decoration: none !important;
  }

  .btn-link a {
    width: 100%;
    display: block;
    text-decoration: none;
  }

  .btn-link a::after {
    content: '';
    width: 10px;
    height: 10px;
    margin-top: -2px;
    border-top: solid 3px #333;
    border-right: solid 3px #333;
    transform: rotate(45deg) translateY(-50%);
    position: absolute;
    top: 50%;
    right: 0;
  }

  /*----- btn-tel（電話ボタン） -----*/
  .btn-tel a {
    display: block;
    box-sizing: border-box;
    color: #fff;
    font-size: 1.8rem;
    font-weight: bold;
    text-align: center;
    line-height: 1.5;
    text-decoration: none !important;
    position: relative;
  }
.btn-tel a::before {
content: "";
position: absolute;
top: -15px;
left: -40px;
right: -40px;
bottom: -15px;
}
  .box-wrap {
    margin-bottom: 20px;
    flex-direction: column;
    width: 100%;
  }

  .box-wrap .box {
    margin: 60px 0 20px;
    padding: 0 15px 5px;
    border: 1px solid #d9d9d9;
    width: 100%;
  }

  .box-wrap .box:before {
    width: 95px;
    height: 26px;
    top: -26px;
    left: -1px;
  }

  .box-wrap .box p {
    margin: 0 !important;
    line-height: 1.72;
  }

  .box-wrap .box .box-head {
    padding: 14px 0 10px;
  }

  .box-wrap .box .box-head a {
    padding: 0 20px 0 0;
    display: block;
    font-size: 20px;
    font-weight: bold;
    line-height: 1.45;
    text-decoration: none;
  }

  .box-wrap .box .box-head a::after {
    right: 10px;
  }

  .box-wrap .box .in_link_btn {
    margin: 10px 0;
    padding: 10px 25px 7px;
    display: block;
    color: #7fa9d5;
    font-size: 18px;
    font-weight: bold;
    text-align: center;
    border: 2px solid #7fa9d5;
    text-decoration: none !important;
    background: #fff url(img/sp/icon05.png) no-repeat right 10px center;
    background-size: 7px 10px;
  }

  .frame-wrap {
    flex-direction: column;
  }

  .frame-wrap .frame {
    margin: 20px 0;
    padding: 0;
    width: 100%;
  }

  .frame-wrap .frame .frame-head p {
    padding: 15px 10px;
    color: #333;
    font-size: 20px;
    font-weight: bold;
    text-align: center;
    line-height: 1.45;
  }

  .frame-wrap .frame .frame-body {
    margin-top: -17px;
    padding: 15px 15px 5px;
  }

  .frame-wrap .frame .frame-body p {
    margin: 10px 0 !important;
    line-height: 1.72;
  }

  .lower_bottom .cmn-column3 {
    flex-direction: column;
  }

  .cmn-column3 .cmn-parts-box {
    width: 100%;
    margin: 10px 0 0;
  }

  .cmn-column3 .cmn-parts-box:nth-child(3n) {
    margin: 10px 0 0;
  }

  .lower_bottom .btn-web::after {
    background: none;
  }

  #index .lower_bottom .cmn-parts-box .ttl.matchheight, .lower_bottom .cmn-parts-box .ttl.matchheight {
    min-height: auto;
    display: block;
    width: 100%;
  }

.lower_bottom .cmn-parts-box span {
  font-size: 1.4rem;
}

.lower_bottom .cmn01-image {
  margin: 2rem 0 1rem;
  min-height: auto;
  display: block;
}

.lower_bottom .cmn-parts-box .ttl1 {
  min-height: auto;
  display: block;
}

.lower_bottom .cmn-column3 .cmn-parts-box ul {
  margin: 1.5rem 0 3rem !important;
  min-height: auto;
}




  
  /* side */
  #side {
    margin: 10px 15px;
    width: auto;
    float: none;
  }

  #side .freespace {
    margin-bottom: 50px;
    padding: 12px 12px 6px;
    background: url(img/freespace-bg.png) no-repeat center center;
    background-size: cover;
    border: 1px solid #0f4e96;
    box-shadow: 0 0 0 1px #fff, 0 0 0 3px #0f4e96;
  }

  #side .freespace .title {
    margin-bottom: 15px;
    padding: 0 0 6px;
    font-size: 20px;
    font-weight: bold;
    line-height: 1.5;
    text-align: center;
    border-bottom: 2px solid #7fa7d1;
  }

  #side .freespace .title a {
    text-decoration: none;
  }

  #side .freespace .s_photo {
    margin-bottom: 8px;
  }

  #side .freespace .s_photo img {
    width: 100%;
  }

  #side .freespace p {
    margin-bottom: 10px;
    font-size: 16px;
    line-height: 1.75;
  }

  #side .freespace .btn-internal {
    margin: 10px 0;
    padding: 13px 25px 10px;
    font-size: 18px;
    line-height: 1.4;
  }

  #side .cate {
    display: none;
  }

  /* footer */
  #footer {
    padding: 0 10px;
  }

  #footer .f_box {
    margin-bottom: 18px;
    padding-top: 18px;
    position: relative;
    width: 100%;
  }

  #footer .f_box .page_top {
    position: fixed;
    top: auto;
    bottom: 30px;
    right: 15px;
    z-index: 999;
    width: 61px;
    height: 61px;
  }

  #footer .page_top a img {
    width: 61px;
  }

  #footer .f_box .top_ttl {
    margin-bottom: 19px;
    text-align: center;
    background-color: #29b69b;
    color: #fff;
    font-size: 16px;
    font-weight: bold;
    padding: 10px 5px;
  }

  #footer .f_box .top_ttl a {
    padding: 10px 5px;
    display: block;
    color: #fff;
    font-size: 16px;
    font-weight: bold;
    text-decoration: none;
  }

  #footer .f_box .f_ttl {
    font-weight: bold;
    text-align: left;
    display: table;
    width: 100%;
    margin: 0;
    padding: 0;
  }

  #footer .f_box .f_ttl a {
    padding: 10px 5px 10px;
    font-size: 16px;
    display: table-cell;
    line-height: 1.5;
    vertical-align: middle;
    text-decoration: none;
  }

  #footer .f_box .f_navi {
    margin: 0 0 21px;
  }

  #footer .f_box .f_navi li {
    display: block;
    width: 100%;
    height: auto;
    border-bottom: 1px solid #fff;
  }

  #footer .f_box .f_navi li:last-child {
    margin-bottom: 0;
  }

  #footer .f_box .f_navi li a {
    padding: 15px 15px 15px 25px;
    display: block;
    text-decoration: none;
    background: url(img/icon10.png) no-repeat 10px center;
    background-size: 5.5px 8px;
  }

  #footer .f_box .f_navi li a:hover {
    background: url(img/icon11.png) no-repeat 10px center;
    background-size: 5.5px 8px;
  }

  #footer .f_site {
    margin: 20px 0;
    width: 100%;
    text-align: center;
    display: table;
  }

  #footer .f_site a {
    padding-left: 50px;
    display: table-cell;
    height: 47px;
    font-size: 18px;
    font-weight: bold;
    text-decoration: none;
    text-align: left;
    vertical-align: middle;
    background: url(img/sp/site_bg.png) no-repeat left center;
    background-size: 40px;
  }

  #footer .f_site a:hover {
    background-color: #1a2440;
    color: #fff;
    font-size: 18px;
  }

  #footer .f_txt {
    padding: 5px 10px;
    color: #fff;
    font-size: 12px;
    line-height: 1.54;
    border: 1px solid #fff;
    width: 100%;
  }

  #footer .copyright {
    padding: 15px 0;
    color: #f4f4f4;
    font-size: 12px;
    text-align: center;
    border-top: 1px solid #fff;
    line-height: 1.4;
  }

  #footer .copyright a {
    color: #f4f4f4;
    text-decoration: underline;
  }

  /* toc */
  #toc {
    padding: 15px;
  }

  #toc .chapter {
    margin-top: 12px;
  }

  #toc .chapter .chapter-h {
    font-size: 14px;
  }

  #toc .chapter > .chapter-h.chapter-h-two {
    padding-left: 30px;
  }

  #toc .chapter > .chapter-h.chapter-h-two::before {
    top: 12px;
  }

  #toc .chapter .chapter-h-three {
    font-size: 13px;
    margin: 3px 0 3px 25px;
  }

  #toc .chapter-h.chapter-h-three::before {
    top: 5px;
  }
}
