@charset "utf-8";
@import "base_layout.css";
@import "common_parts.css";
.pagetitle {
    background: url("../../img/common/header_bg.png") no-repeat left #469db6;
    background-size: auto 100%;
    color: #FFF;
    line-height: 180px;
    text-align: center;
}
.pagetitle h1 {
    font-size: 36px;
    font-weight: 400;
}
.pagetitle h1 span {
    font-size: 18px;
    padding: 0 25px;
}
/*title
************************************************************************************/
.lv_h1 {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 20px;
    width: 100%;
    margin-bottom: 1em;
}
/* 斜線 */
.lv_h1::before, .lv_h1::after {
    content: '';
    width: 44px;
    height: 2px;
    background: #000;
    transform: rotate(-60deg);
}
.lv_h2, .cms-posts h2 {
    font-weight: normal;
    margin-bottom: 1em;
    color: #2f3640;
    font-size: 28px;
    font-weight: 400;
    padding: .5em 1em;
    background: #DEEEF0;
    border-left: 2px solid #58B0C7;
}
.lv_h3, .cms-posts h3 {
    font-size: 24px;
    font-weight: normal;
    padding-bottom: 8px;
    margin-bottom: 1em;
    color: #2f3640;
    font-weight: 400;
    position: relative;
}
.lv_h3:before, .cms-posts h3:before {
    position: absolute;
    bottom: 0;
    left: 0;
    content: "";
    background: #58B0C7;
    height: 2px;
    width: 1.5em;
}
.lv_h4, .cms-posts h4 {
    font-size: 22px;
    font-weight: normal;
    margin-bottom: 20px;
    font-weight: 400;
}
.lv_h1 a, .cms-posts h1 a, .lv_h2 a, .cms-posts h2 a, .lv_h3 a, .cms-posts h3 a, .lv_h4 a, .cms-posts h4 a {
    color: #2f3640;
    text-decoration: none;
}
.sub_title {
    font-size: 18px;
    font-weight: 700;
}
@media screen and (max-width: 768px) {
    .pagetitle {
        padding: 1.5em;
        line-height: normal;
        font-size: 16px;
        font-weight: 400;
    }
    .pagetitle h1 {
        font-size: 21px !important;
    }
    .lv_h1, .cms-posts h1 {
        font-size: 25px;
        padding-bottom: 50px;
    }
    .lv_h2, .cms-posts h2 {
        margin: 40px 0 20px;
        font-size: 21px;
    }
    .lv_h3, .cms-posts h3 {
        font-size: 18px;
        padding-bottom: 8px;
        margin-bottom: 20px;
    }
    .sub_title {
        font-size: 18px;
        font-weight: 700;
    }
}
/*section
************************************************************************************/
.section {
    padding: 30px 0;
    text-align: left;
}
.section:after {
    content: "";
    display: block;
    clear: both;
    height: 1px;
    overflow: hidden;
}
/*\*/
* html .section {
    height: 1em;
}
.section {
    display: block;
}
/* ▲ */
/* for IE7 */
*:first-child + html .section {
    zoom: 1;
}
.section_box {
    border: 1px solid #ccc;
    border-radius: 5px;
    -webkit-border-radius: 5px;
    -moz-border-radius: 5px;
    margin: 15px 0;
}
.section_innner {
    padding-bottom: 15px;
    margin-bottom: 15px;
}
.section_line {
    margin: 20px 0;
    padding: 20px 10px 40px !important;
    border-bottom: 3px solid #dcdcdc;
}
.section_line:first-child {
    margin: 0 0 20px 0;
    padding: 0 10px 20px 10px;
}
.text {
    padding: 10px;
    line-height: 1.7;
}
.text20 {
    padding: 20px;
    line-height: 1.7;
}
.text p, .text20 p {
    padding-bottom: 1em;
}
.text p:last-child, .text20 p:last-child {
    padding-bottom: 0;
}
.text:after, .text20:after {
    content: "";
    display: block;
    clear: both;
    height: 1px;
    overflow: hidden;
}
/*\*/
* html .text, * html .text20 {
    height: 1em;
}
.text, .text20 {
    display: block;
}
/* ▲ */
/* for IE7 */
*:first-child + html .text, *:first-child + html .text20 {
    zoom: 1;
}
.box_line {
    border-bottom: 1px solid #ededed;
}
.div_table {
    display: table;
}
.div_table .cell {
    display: table-cell;
}
.div_table .cell.middle {
    vertical-align: middle;
}
.div_table .cell.top {
    vertical-align: top;
}
@media screen and (max-width: 979px) {
    .section_innner {
        padding: 0 10px 15px 10px;
    }
    .section {
        margin: 0 auto;
        padding: 30px 1%;
        -webkit-box-sizing: border-box;
        -moz-box-sizing: border-box;
        -o-box-sizing: border-box;
        -ms-box-sizing: border-box;
        box-sizing: border-box;
    }
}
@media screen and (max-width: 768px) {
    .section_line {
        padding: 20px 10px;
    }
}
@media screen and (max-width: 620px) {}
@media screen and (max-width: 480px) {}
/*button
----------------------------------------------------------------------*/
/*contents_nav*/
.contents_nav ul {
    display: -webkit-flex;
    display: flex;
    -webkit-flex-flow: row wrap;
    flex-flow: row wrap;
    -webkit-justify-content: left;
    justify-content: left;
}
.contents_nav ul li {
    margin: 0.5%;
    width: 24%;
    box-sizing: border-box;
    background: #FFF;
}
.contents_nav ul li a {
    flex: 1 1 auto;
    padding: 7px 20px;
    border: 1px solid #2f3640;
    text-transform: uppercase;
    position: relative;
    overflow: hidden;
    transition: .3s;
    z-index: 100;
    font-size: 16px;
    font-weight: 500;
    color: #2f3640;
    display: block;
    text-decoration: none;
    text-align: center;
}
@media screen and (min-width: 980px) {
    .contents_nav ul li a:after {
        position: absolute;
        transition: .3s;
        content: '';
        width: 0;
        left: 50%;
        bottom: 0;
        height: 3px;
        background: #3c8da7;
    }
    .contents_nav ul li a:after {
        height: 120%;
        left: -10%;
        transform: skewX(15deg);
        z-index: -1;
    }
    .contents_nav ul li a:hover {
        cursor: pointer;
        color: #FFF;
    }
    .contents_nav ul li a:hover:after {
        width: 100%;
        left: 0;
        color: #FFF;
    }
    .contents_nav ul li a:hover:after {
        left: -10%;
        width: 120%;
    }
}
@media screen and (max-width: 768px) {
    .contents_nav ul li {
        width: 48%;
    }
}
@media screen and (max-width: 620px) {
    .contents_nav ul li {
        width: 98%;
        font-size: 14px;
    }
}
/*contents_nav*/
.contents_nav_s ul {
    display: -webkit-flex;
    display: flex;
    -webkit-flex-flow: row wrap;
    flex-flow: row wrap;
    -webkit-justify-content: left;
    justify-content: left;
}
.contents_nav_s ul li {
    margin: 0.5%;
    width: 19%;
    box-sizing: border-box;
    background: #FFF;
    border: 1px solid #ccc;
}
.contents_nav_s ul li a {
    padding: 10px;
    font-size: 14px;
    font-weight: 500;
    color: #2f3640;
    display: block;
    text-decoration: none;
    text-align: center;
}
@media screen and (max-width: 768px) {
    .contents_nav_s ul li {
        width: 48%;
    }
}
@media screen and (max-width: 620px) {
    .contents_nav_s ul li {
        width: 98%;
        font-size: 14px;
    }
}
/*btn_moreview & pageback*/
.btnmore, .btnback {
    font-size: 18px;
    width: 200px;
    border: 1px solid #ccc;
    margin: 20px auto;
    text-align: center;
    z-index: 20;
    background-color: rgba(255, 255, 255, 0.85);
}
.btnmore a, .btnback a {
    color: #2f3640 !important;
    text-decoration: none;
    display: block;
    padding: 9px 0;
}
.btnmore a:before {
    content: "→";
    padding-right: .5em;
}
.btnback a:before {
    content: "←";
    padding-right: .5em;
}
@media screen and (max-width: 979px) {
    .btnmore, .btnback {
        font-size: 15px;
    }
}
@media screen and (max-width: 768px) {
    .btnmore, .btnback {
        font-size: 14px;
        width: auto;
        padding: 0 15px;
        margin: auto 1%;
    }
    .btnmore a, .btnback a {
        display: block;
        padding: 20px 0;
    }
}
@media screen and (min-width: 980px) {
    .btnmore a:before, .btnback a:before {
        -webkit-transition: 0.3s ease-in-out;
        -moz-transition: 0.3s ease-in-out;
        -o-transition: 0.3s ease-in-out;
        transition: 0.3s ease-in-out;
    }
    .btnmore a:hover:before {
        content: "→";
        padding-right: .8em;
    }
    .btnback a:hover:before {
        content: "←";
        padding-right: .8em;
    }
}

/*card btn
************************************************************************************/
ul.card-btns{
	display: grid;
	grid-template-columns: 1fr 1fr;
	grid-template-rows: auto;
	column-gap: 30px;
	row-gap: 30px;
	align-items: stretch;
	padding: 20px 0 30px;
    margin-bottom: 50px;
}
ul.card-btns li{
	background: #FFF;
	box-shadow: 0px 0px 32px -11px #a2a2a2;
	padding: 30px;
}
ul.card-btns li .title a{
	font-size: 1.313em;
	font-weight: bold;
	display: block;
	text-decoration: none;
	margin-bottom: 1em;
	background: url("../../img/common/ar_bk_circle.svg") no-repeat right center;
    line-height: 35px;
	padding-right: 30px;
}
ul.card-btns li .title + p{
	line-height: 2.4;
}

@media screen and (max-width: 1024px){
	ul.card-btns{
		column-gap: 40px;
		row-gap: 40px;
		margin: 0 50px;
	}
}
@media screen and (max-width: 768px){
	ul.card-btns{
		column-gap: 20px;
		row-gap: 20px;
		margin: 0 20px;
	}
	ul.card-btns li .title a{
		min-height: 30px;
	}
}
@media screen and (max-width: 599px) {
	ul.card-btns{
		grid-template-columns: 1fr;
		column-gap: 40px;
		row-gap: 40px;
		margin: 0 10px;
	}
}

/*columns
************************************************************************************/
.divtable {
    display: table;
    margin: 1em auto;
}
.divtable .cell {
    display: table-cell;
}
.divtable .pd {
    padding: 0 15px;
}
.divtable .top {
    vertical-align: top;
}
.divtable .middle {
    vertical-align: middle;
}
/*table
----------------------------------------------------------------------*/
table.normal, .cms-posts table {
    margin: 5px auto 15px auto;
    width: 100%;
    border-top: 1px solid #aaa;
    border-bottom: 1px solid #aaa;
}
table.normal caption, .cms-posts table caption {
    padding: 5px 0;
    text-align: left;
    display: block;
    font-weight: bold;
}
table.normal caption:before, .cms-posts table caption:before {
    content: "■";
}
table.normal thead th, .cms-posts table thead th {
    padding: 15px 10px;
    border: 1px solid #fff;
    text-align: center;
    font-weight: bold;
    background-color: #4b4b4b;
    color: #FFF;
}
table.normal thead th a, .cms-posts table th a {
    color: #FFF;
}
table.normal tbody th, .cms-posts table tbody th {
    padding: 15px 10px;
    text-align: center;
    font-weight: normal;
    background-color: #eeeeee;
    border: 1px solid #999;
    border-top: 1px dotted #aaa;
    border-bottom: 1px dotted #aaa;
    color: #000;
}
table.normal tbody td, .cms-posts table tbody td {
    padding: 15px 10px;
    border: 1px solid #999;
    border-top: 1px dotted #aaa;
    border-bottom: 1px dotted #aaa;
}
table.normal.center td {
    text-align: center;
}
table.lineBtm {
    width: 100%;
    border: 0;
    border-top: 1px solid #333;
}
table.lineBtm th {
    border-bottom: 1px solid #333;
    padding: 15px 15px;
    text-align: left;
}
table.lineBtm td {
    border-bottom: 1px solid #333;
    padding: 5px 15px;
}
dl.normal dt {
    font-weight: bold;
    color: #0085cc;
    padding: 0 0 0 0;
    font-weight: 700;
}
dl.normal dt:before {
    content: "■";
}
dl.normal dd {
    padding: 0 0 10px 1em;
}
@media screen and (max-width: 620px) {
    table.smartphone {
        display: block;
        width: 100%;
    }
    table.smartphone thead {
        display: none;
    }
    table.smartphone tbody {
        display: block;
        width: 100%;
    }
    table.smartphone tr {
        display: block;
        margin-bottom: 1.5em;
        width: 100%;
    }
    table.smartphone th, table.smartphone td {
        display: list-item;
        width: 100%;
        padding: 5px 10px !important;
        -webkit-box-sizing: border-box;
        -moz-box-sizing: border-box;
        -o-box-sizing: border-box;
        -ms-box-sizing: border-box;
        box-sizing: border-box;
        display: block;
        border: 0;
    }
    table.smartphone th {
        list-style-type: none;
        display: block;
        background: #ededed;
    }
    table.smartphone td {
        margin-left: 0;
        list-style-type: none;
        border: 0;
        padding-left: 25px;
    }
}
/*cms-posts
************************************************************************************/
.alignleft {
    float: left;
    margin: 0 10px 10px 0;
}
.alignright {
    float: right;
    margin: 0 0 10px 10px;
}
.aligncenter {
    display: block;
    margin-left: auto;
    margin-right: auto;
    clear: both;
}
.cms-posts img {
    max-width: 100%;
    height: auto;
}
.cms-posts ol {
    counter-reset: number;
    list-style: none;
    margin: 0;
    padding: 0;
}
.cms-posts ol li {
    margin: 0 0 1em 2.5em;
    background: none;
    line-height: 2.0 !important;
    list-style-type: none;
}
.cms-posts ol li:before {
    counter-increment: number;
    content: counter(number);
    float: left;
    background: #516279;
    color: #FFF;
    width: 2em;
    height: 2em;
    border-radius: 50%;
    text-align: center;
    line-height: 2.0 !important;
    margin: 0 7px 0 -2.5em;
}
.cms-posts ol.color_red li:before {
    background: #ff0000;
}
.cms-posts ol li p, .cms-posts ol li div {
    overflow: auto;
    zoom: 1;
    margin: 0 !important;
    padding: 0 !important;
}
.cms-posts ul {
    list-style-type: square;
    margin-left: 2.4em;
    margin-top: 5px;
}
.cms-posts ul li {
    margin-bottom: 5px;
    background: none;
    padding: 0;
    list-style-type: square;
}
.cms-posts ul li p {
    padding: 0;
}
/*btn_moreview & pageback*/
.cms-posts .btn {
    font-size: 18px;
    width: 200px;
    border: 1px solid #ccc;
    margin: 20px auto;
    text-align: center;
    z-index: 20;
    background-color: rgba(255, 255, 255, 0.85);
}
.cms-posts .btn a {
    color: #2f3640;
    text-decoration: none;
    display: block;
    padding: 9px 0;
}
.cms-posts .btn a:before {
    content: "→";
    padding-right: .5em;
}
.wp-block-buttons {
    margin-bottom: 50px;
}
.wp-block-button a {
    color: #FFF;
    text-decoration: none;
    display: block;
}
.wp-block-column {
    border: 0 !important;
}
@media screen and (max-width: 979px) {
    .cms-posts .btn {
        font-size: 15px;
    }
}
@media screen and (max-width: 768px) {
    .wp-block-column {
        margin-bottom: 2em;
    }
    .cms-posts .btn {
        font-size: 14px;
        width: auto;
        padding: 0 15px;
        margin: auto 1%;
    }
    .cms-posts .btn a {
        display: block;
        padding: 20px 0;
    }
    .alignleft, .alignright, .aligncenter {
        display: block;
        margin: 5px auto !important;
        clear: both;
        float: none !important;
    }
}
@media screen and (min-width: 980px) {
    .cms-posts .btn a:before {
        -webkit-transition: 0.3s ease-in-out;
        -moz-transition: 0.3s ease-in-out;
        -o-transition: 0.3s ease-in-out;
        transition: 0.3s ease-in-out;
    }
    .cms-posts .btn a:hover:before {
        content: "→";
        padding-right: .8em;
    }
}
/*ページング
----------------------------------------------------------------------*/
.page_navi {
    text-align: center;
}
ul.page_navi li {
    margin: 10px 0 15px 0;
    background: none;
    padding: 0;
    list-style-type: none;
    display: inline-block;
    font-size: 18px;
    font-weight: 600;
}
ul.page_navi li span {
    background: #666565;
    border: 2px solid #666565;
    width: 2.5em;
    height: 2.5em;
    border-radius: 50%;
    color: #fff;
    text-align: center;
    line-height: 2.5;
    margin: 0 5px;
    display: block;
    -webkit-transition: all 0.9s ease-in-out;
    -moz-transition: all 0.9s ease-in-out;
    -o-transition: all 0.9s ease-in-out;
    transition: all 0.9s ease-in-out;
}
ul.page_navi li a {
    background: #c9c9ca;
    border: 2px solid #c9c9ca;
    width: 2.5em;
    height: 2.5em;
    border-radius: 50%;
    color: #fff;
    text-align: center;
    line-height: 2.5;
    margin: 0 5px;
    display: block;
    text-decoration: none;
    -webkit-transition: all 0.9s ease-in-out;
    -moz-transition: all 0.9s ease-in-out;
    -o-transition: all 0.9s ease-in-out;
    transition: all 0.9s ease-in-out;
}
ul.page_navi li:first-child a {
    border: 2px solid #666565;
    background: #FFF url(../../img/common/pagenav_prev.png) no-repeat center center;
    -moz-background-size: 20px auto;
    background-size: 20px auto;
    display: block;
    text-indent: -9999px;
}
ul.page_navi li:last-child a {
    border: 2px solid #666565;
    background: #FFF url(../../img/common/pagenav_next.png) no-repeat center center;
    -moz-background-size: 20px auto;
    background-size: 20px auto;
    display: block;
    text-indent: -9999px;
}
ul.page_navi li:hover span, ul.page_navi li:hover a {
    background: #666565;
}
ul.page_navi li:first-child:hover a {
    border: 2px solid #666565;
    background: #FFF url(../../img/common/pagenav_prev.png) no-repeat center center;
    -moz-background-size: 20px auto;
    background-size: 20px auto;
}
ul.page_navi li:last-child:hover a {
    border: 2px solid #666565;
    background: #FFF url(../../img/common/pagenav_next.png) no-repeat center center;
    -moz-background-size: 20px auto;
    background-size: 20px auto;
}
/*page*/
.pager {
    text-align: center;
}
.pager span, .pager a {
    margin: 10px 0 15px 0;
    background: none;
    padding: 0;
    list-style-type: none;
    display: inline-block;
    font-size: 18px;
    font-weight: 600;
}
.pager span.page-numbers.current {
    background: #666565;
    border: 2px solid #666565;
    width: 2.5em;
    height: 2.5em;
    border-radius: 50%;
    color: #fff;
    text-align: center;
    line-height: 2.5;
    margin: 0 5px;
    display: inline-block;
    -webkit-transition: all 0.9s ease-in-out;
    -moz-transition: all 0.9s ease-in-out;
    -o-transition: all 0.9s ease-in-out;
    transition: all 0.9s ease-in-out;
}
.pager a.page-numbers {
    background: #c9c9ca;
    border: 2px solid #c9c9ca;
    width: 2.5em;
    height: 2.5em;
    border-radius: 50%;
    color: #fff;
    text-align: center;
    line-height: 2.5;
    margin: 0 5px;
    display: inline-block;
    text-decoration: none;
    -webkit-transition: all 0.9s ease-in-out;
    -moz-transition: all 0.9s ease-in-out;
    -o-transition: all 0.9s ease-in-out;
    transition: all 0.9s ease-in-out;
}
.pager a.next.page-numbers {
    border: 2px solid #666565;
    background: #FFF url(../../img/common/pagenav_next.png) no-repeat center center;
    -moz-background-size: 20px auto;
    background-size: 20px auto;
    display: inline-block;
    text-indent: -9999px;
}
.pager a.prev.page-numbers {
    border: 2px solid #666565;
    background: #FFF url(../../img/common/pagenav_prev.png) no-repeat center center;
    -moz-background-size: 20px auto;
    background-size: 20px auto;
    display: inline-block;
    text-indent: -9999px;
}
.screen-reader-response, .wpcf7-not-valid-tip, .wpcf7-response-output {
    color: #F00;
    display: block;
    padding: 0.3em 0;
}