@charset "UTF-8";
/*================================================
 *  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,
main,
menu,
nav.gnav,
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.gnav,
section {
    display: block;
}
ul {
    list-style: none;
}
blockquote,
q {
    quotes: none;
}
blockquote:before,
blockquote:after,
q:before,
q:after {
    content: none;
}
a {
    margin: 0;
    padding: 0;
    font-size: 100%;
    vertical-align: baseline;
    background: transparent;
}
del {
    text-decoration: line-through;
}
abbr[title],
dfn[title] {
    border-bottom: 1px dotted;
    cursor: help;
}
table {
    border-collapse: collapse;
    border-spacing: 0;
}
hr {
    display: block;
    height: 1px;
    border: 0;
    border-top: 1px solid #ccc;
    margin: 1em 0;
    padding: 0;
}
input,
select {
    vertical-align: middle;
}
/*================================================
 *  一般・共通設定
 ================================================*/
*,
*:before,
*:after {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    -o-box-sizing: border-box;
    -ms-box-sizing: border-box;
    box-sizing: border-box;
}
body {
    font-size: 16px;
    font-family: "Hiragino Sans W3", "Hiragino Kaku Gothic ProN",
        "ヒラギノ角ゴ ProN W3", "メイリオ", Meiryo, "ＭＳ Ｐゴシック",
        "MS PGothic", sans-serif;
    line-height: 1.75;
    letter-spacing: 0.12em;
    -webkit-text-size-adjust: 100%;
    color: #232323;
}
#contents {
    width: 100%;
    margin: 0 auto;
    background-color: #fff;
}
picture {
    display: none;
}
header + #contents {
    padding-top: 50px;
}
section.body_inner,
section.page_inner {
    margin: 0 auto 60px;
    width: 1100px;
    max-width: 100%;
}
section.body_inner:last-child,
section.page_inner:last-child {
    margin: 0 auto;
    padding-bottom: 60px;
}
section.body_inner100 {
    margin: 0 auto 60px;
    width: 100%;
}
.inner_box {
    position: relative;
    width: 1100px;
    max-width: 100%;
    margin: 0 auto;
}
a {
    color: #232323;
}
a:hover {
    color: #24943a;
}
h1 {
    font-size: 28px;
}
h2 {
    color: #232323;
    font-size: 28px;
    margin-bottom: 60px;
    font-weight: bold;
}
h2.page_ttl {
    font-size: 50px;
    line-height: 1.5;
    font-weight: bold;
    margin: 0.5em auto 30px;
    text-align: center;
    background-color: inherit;
    border-left: none;
}
h2.page_ttl span {
    display: block;
    font-size: 20px;
}
.recruit_section .page_ttl,
.contents_section .page_ttl {
    margin-top: 0;
}
h2.con_ttl {
    text-align: center;
}
h2.con_ttl span {
    position: relative;
    display: inline-block;
    padding: 0 100px;
}
h2.con_ttl span:before,
h2.con_ttl span:after {
    content: "";
    position: absolute;
    top: 50%;
    display: inline-block;
    width: 75px;
    height: 3px;
    background-color: #000000;
}
h2.con_ttl span:before {
    left: 0;
}
h2.con_ttl span:after {
    right: 0;
}
h3.ttl {
    color: #223870;
    font-size: 24px;
    line-height: 1.5em;
    margin-bottom: 2em;
    letter-spacing: 0;
    text-align: center;
}
h3.ttl span {
    position: relative;
    display: inline-block;
    padding: 0 45px;
    font-weight: bold;
}
h3.ttl span:before,
h3.ttl span:after {
    content: "";
    position: absolute;
    top: 50%;
    display: inline-block;
    width: 32px;
    height: 2px;
    background-color: #223870;
    -webkit-transform: rotate(-60deg);
    transform: rotate(-60deg);
}
h3.ttl span:before {
    left: 0;
}
h3.ttl span:after {
    right: 0;
}
h3.line-ttl {
    padding: 0.5em;
    background: #effefb;
    border-left: solid 5px #1b933b;
    font-size: 16px;
    margin-bottom: 2em;
    width: 100%;
}
h3.grid_ttl {
    position: relative;
    padding: 0 0 0 25px;
    font-size: 20px;
    color: #106809;
    text-align: left;
    letter-spacing: 0.15em;
    margin-bottom: 2em;
}
h3.grid_ttl::before {
    position: absolute;
    content: "";
    bottom: -3px;
    left: 0;
    width: 0;
    height: 0;
    border: none;
    border-left: solid 15px transparent;
    border-bottom: solid 15px rgb(16, 104, 9);
}
h3.grid_ttl::after {
    position: absolute;
    content: "";
    bottom: -3px;
    left: 10px;
    width: 99%;
    border-bottom: solid 3px rgb(16, 104, 9);
}
h4 {
    margin-top: 0.25em;
    margin-bottom: 0.25em;
    font-size: 20px;
    color: #106809;
}
h4.f_black {
    margin-top: 0.25em;
    margin-bottom: 0.25em;
    font-size: 20px;
    color: #232323;
    font-weight: bold;
}
h4.f_black span {
    margin-top: 0.25em;
    margin-bottom: 0.25em;
    font-size: 30px;
    display: inline-block;
    margin-right: 6px;
}
p {
    margin: 0 0 1em 0;
}
img {
    max-width: 100%;
    vertical-align: bottom;
    flex-shrink: 0;
}
em {
    font-weight: bold;
}
strong {
    font-weight: bold;
    color: #ff0000;
}
pre {
    margin: 1em 0;
    padding: 1em;
}
blockquote {
    margin-bottom: 1em;
    padding: 1em;
    border: 1px dotted #ddd;
    border-left: 5px solid #ddd;
}
ul,
ol,
dl {
    margin: 0 0 1em 0;
}
ul li {
    list-style: none;
}
ol li {
    list-style: none;
}
li {
    margin-left: 0em;
}
dt {
    margin-bottom: 0.6em;
    display: inline-block;
    width: 100%;
}
dd {
    margin-bottom: 0.6em;
    display: inline-block;
    width: 100%;
}
.table,
.table_x,
.formTable,
.infotable {
    width: 100%;
    margin: 0 auto 1em;
    border-collapse: collapse;
    border: 1px solid #e1e1e1;
}
.table th,
.table_x th,
.formTable th,
.infotable th {
    padding: 10px 10px 10px 1.6em;
    text-align: left;
    vertical-align: top;
    border-top: 1px solid #e1e1e1;
    width: 30%;
    background-color: #f5f5f5;
}
.table_x th {
    border-left: 1px solid #e1e1e1;
}
.table td,
.table_x td,
.formTable td,
.infotable td {
    padding: 10px 10px 10px 1.6em;
    text-align: left;
    border-top: 1px solid #e1e1e1;
    border-left: 1px solid #e1e1e1;
    word-break: break-word;
    vertical-align: middle;
}
.formTable td.mark_hissu,
.formTable td.mark_nohissu {
    border-left: none;
    background-color: #f5f5f5;
    vertical-align: top;
    font-size: 13px;
}
.table tr:first-child th,
.table tr:first-child td,
.table_x tr:first-child th,
.table_x tr:first-child td,
.formTable tr:first-child th,
.formTable tr:first-child td {
    border-top: none;
}
.table dl {
    margin-bottom: 0;
}
.table dt {
    width: 20%;
}
.table dd {
    width: 78%;
}
.infotable {
    border: none;
    font-size: 90%;
}
.infotable th {
    width: 20%;
}
.infotable th,
.infotable td {
    border-top: none;
    border-left: none;
    border-bottom: 1px solid #e3dfd9;
    background-color: inherit;
}
.infotable td a {
    text-decoration: none;
}
/*================================================
 *  汎用クラス
 ================================================*/
.center {
    text-align: center !important;
}
.left {
    text-align: left !important;
}
.right {
    text-align: right !important;
}
/* 写真中央寄せ */
.imgC {
    clear: both;
    overflow: hidden;
    margin: 0 auto 50px auto;
    margin-bottom: 50px;
    text-align: center;
}
.imgC img {
    margin-bottom: 10px;
}
/* 写真左寄せ */
.imgL {
    clear: both;
    overflow: hidden;
    margin-bottom: 50px;
}
.imgL img {
    float: left;
    margin: 0 10px 0 0;
}
.p_t {
    padding-top: 80px;
}
.m_t {
    margin-top: 80px !important;
}
.bg_gray {
    background-color: #f5f5f5;
}
.p_tb {
    padding: 1.5em 0;
}
.f_green {
    color: #1b933b;
}
.f_blue {
    color: #223870;
}
.f_Lage {
    font-size: 130%;
    font-weight: bold;
}
.f_Small {
    font-size: 70%;
    display: inline-block;
    margin-left: 10px;
}
.f_Small a {
    color: rgba(118, 118, 118, 1);
    text-decoration: none;
}
.f_bold {
    font-weight: bold;
}
.bg_gray {
    background-color: #f5f5f5;
    text-align: left;
    padding: 16px;
}
.bg_black {
    background-color: #5a5a5a;
    text-align: left;
    padding: 16px;
}
.bg_green {
    background-color: #24943a;
    text-align: left;
    padding: 12px;
}
.bg_white {
    background-color: rgba(255, 255, 255, 1);
}
.mb_40 {
    margin-bottom: 40px !important;
}
.mb_15 {
    margin-bottom: 15px !important;
}
.mt_40 {
    margin-top: 40px !important;
}
.mt_15 {
    margin-top: 15px;
}
.mb_none {
    margin-bottom: none;
}
.bg_wgreen {
    background-color: #effefb;
}
.bg_wgray {
    background-color: #f5f5f5;
}
.p_relative {
    position: relative;
}
.p_L {
    padding: 0 0 0 5%;
}
.p_12 {
    padding: 12px;
}
.d_block {
    display: block;
}
.f_14 {
    font-size: 14px !important;
}
/*================================================
 *  SNSボタン
 ================================================*/
.footer-icon {
    display: flex;
    justify-content: center;
    align-items: center;
}
.sns-icon {
    display: flex;
    flex-direction: column;
    gap: 15px;
    align-items: center;
}
.certification-logos {
    display: flex;
    gap: 20px;
    align-items: center;
    margin-top: 15px;
}
.certification-logos a {
    display: inline-block;
}
.certification-logos a:not(:last-child) {
    margin-right: 10px;
}
.certification-logos img {
    height: 100px;
    width: auto;
    display: block;
}
/* ボタン全体 */
.flowbtn6,
.flowbtn-face {
    border-radius: 13px;
    position: relative;
    display: inline-block;
    width: 50px;
    height: 50px;
    font-size: 33px;
    color: #fff !important;
    transition: 0.5s;
    text-decoration: none;
}
.flowbtn-face {
    width: 100%;
    height: 100%;
}
/* アイコンをど真ん中に*/
.flowbtn6 i {
    position: absolute;
    top: 50%;
    left: 53%;
    -ms-transform: translate(-50%, -50%);
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
}
.flowbtn-face i {
    position: absolute;
    bottom: 0;
    right: 0;
}
/* ulタグの内側余白を０にする */
ul.snsbtniti {
    padding: 0 !important;
}
/* アイコンボタン全体の位置 */
.snsbtniti {
    display: flex;
    justify-content: center;
    flex-flow: row wrap;
    width: 281px;
    margin: 10px auto;
}
/* アイコンボタン同士の余白 */
.snsbtniti li {
    flex: 0 0 28%;
    text-align: center !important;
}
/* アイコンボタンにマウスを乗せた時 */
.flowbtn6:hover {
    opacity: 0.8;
}
/* Twitter */
.fl_tw1 {
    background: #000;
}
/* Instagramアイコン位置 */
.insta_btn6 .fa-instagram {
    font-size: 40px;
}
/* Instagram紫グラデ背景 */
.insta_btn6 {
    background: -webkit-linear-gradient(135deg, #427eff 0%, #f13f79 70%)
        no-repeat;
    background: linear-gradient(135deg, #427eff 0%, #f13f79 70%) no-repeat;
    overflow: hidden;
}
/* Instagramオレンジグラデ背景 */
.insta_btn6:before {
    content: "";
    position: absolute;
    top: 27px;
    left: -12px;
    width: 59px;
    height: 40px;
    background: -webkit-radial-gradient(
        #ffdb2c 7%,
        rgba(255, 105, 34, 0.3) 60%,
        rgba(255, 88, 96, 0) 70%
    );
    background: radial-gradient(
        #ffdb2c 7%,
        rgba(255, 105, 34, 0.3) 60%,
        rgba(255, 88, 96, 0) 70%
    );
}
/* Facebookアイコン位置 */
.fl_fb6 .fa-facebook-f {
    top: 28px;
    left: 32px;
    font-size: 43px;
}
.flowbtn-face.fl_fb6 .fa-facebook-f {
    top: 18%;
    left: 30%;
    font-size: 50px;
}
/* Facebookアイコン背景*/
.fl_fb6 {
    background: -webkit-linear-gradient(top, #5c80c6 0%, #34528c 74%);
    background: linear-gradient(to bottom, #5c80c6 0%, #34528c 74%);
}
.fa-instagram:before {
    content: "\f16d";
}
.fa-facebook-f:before {
    content: "\f39e";
}
@media screen and (max-width: 834px) {
    .footer-icon {
        margin-top: 20px;
    }
    .certification-logos {
        justify-content: center;
        gap: 15px;
    }
    .certification-logos img {
        height: 80px;
    }
}
@media screen and (max-width: 480px) {
    .footer-icon {
        flex-direction: column;
    }
    .sns-icon {
        width: 100%;
        margin-left: 0;
    }
    .certification-logos {
        flex-direction: column;
        gap: 15px;
    }
    .certification-logos img {
        height: 70px;
    }
}
@media screen and (max-width: 834px) {
    .imgL {
        margin-bottom: 20px;
    }
    .imgL img {
        float: none;
        margin: 0 0 10px 0;
    }
}
/* 写真右寄せ */
.imgR {
    clear: both;
    overflow: hidden;
    margin-bottom: 50px;
}
.imgR img {
    float: right;
    margin: 0 0 0 10px;
}
@media screen and (max-width: 834px) {
    .imgR {
        clear: both;
        overflow: hidden;
        margin-bottom: 20px;
    }
    .imgR img {
        float: right;
        margin: 0 0 10px 0;
    }
}
/* 写真ズーム */
.zoom {
    overflow: hidden;
}
.zoom img {
    display: block;
    -moz-transition: -moz-transform 0.8s linear;
    -webkit-transition: -webkit-transform 0.8s linear;
    -o-transition: -o-transform 0.8s linear;
    -ms-transition: -ms-transform 0.8s linear;
    transition: transform 0.8s linear;
}
.zoom img:hover {
    -webkit-transform: scale(1.05);
    -moz-transform: scale(1.05);
    -o-transform: scale(1.05);
    -ms-transform: scale(1.05);
    transform: scale(1.05);
}
.zoom img {
    margin-bottom: 0;
}
/* オーバーレイ */
.overlay {
    position: relative;
}
.overlay::after {
    background: rgba(0, 0, 0, 0.3);
    content: "　";
    display: block;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    transition: all 0.3s ease-out;
    pointer-events: none;
}
.overlay:hover::after {
    background: rgba(0, 0, 0, 0.1);
    transition: all 0.3s ease-out;
}
.overlay img {
    margin-bottom: 0;
}
/* ボタン */
.btn-gradient-radius,
.btn-gradient-radius-s,
.btn-gradient-radius-m {
    display: inline-block;
    /*padding: 8px 6em;*/
    border-radius: 25px;
    text-decoration: none;
    color: #fff;
    background-image: linear-gradient(45deg, #6bb96b 0%, #24943a 100%);
    transition: 0.4s;
    margin-top: 2em;
    font-weight: bold;
    border: none;
}
.btn-gradient-radius.blue {
    background: rgb(53, 93, 175);
    background: linear-gradient(
        90deg,
        rgba(53, 93, 175, 1) 0%,
        rgba(40, 81, 163, 1) 35%,
        rgba(79, 119, 199, 1) 100%
    );
}
.btn-gradient-radius:hover,
.btn-gradient-radius-s:hover,
.btn-gradient-radius-m:hover {
    background-image: linear-gradient(45deg, #6bb96b 0%, #0bd783 100%);
    color: #ffffff;
}
.btn-gradient-radius.blue:hover {
    background: rgb(105, 141, 213);
    background: linear-gradient(
        270deg,
        rgba(105, 141, 213, 1) 0%,
        rgba(125, 161, 232, 1) 35%,
        rgba(118, 193, 222, 1) 100%
    );
}
.btn-gradient-radius-s {
    padding: 0px;
    margin-top: 0em;
    font-weight: normal;
    border: 1px solid rgba(255, 255, 255, 0.3);
}
.btn-gradient-radius-m {
    padding: 0px 4em;
    margin-top: 1em;
    font-weight: normal;
    border: 1px solid rgba(255, 255, 255, 0.3);
}
p.btn-gradient-radius-s {
    margin-bottom: 1.5em;
}
.btn-gradient-radius span {
    background: url("../img/icon_more.png") no-repeat 80% center / 10px;
    display: block;
    padding: 8px 6em;
}
.btn-gradient-radius-s span,
.btn-gradient-radius-m span {
    background: url("../img/icon_more.png") no-repeat right 1em center / 8px;
    display: block;
    padding: 0 2em;
}
.btn-gradient-radius-s a {
    text-decoration: none;
    display: block;
    color: #fff;
}
.btn-gra-blue {
    background: rgb(53, 93, 175);
    background: linear-gradient(
        90deg,
        rgba(53, 93, 175, 1) 0%,
        rgba(40, 81, 163, 1) 35%,
        rgba(79, 119, 199, 1) 100%
    );
    display: inline-block;
    border-radius: 25px;
    text-decoration: none;
    color: #fff;
    transition: 0.4s;
    margin-bottom: 2em;
    font-weight: bold;
    border: none;
}
.btn-gra-blue:hover {
    background: rgb(105, 141, 213);
    background: linear-gradient(
        270deg,
        rgba(105, 141, 213, 1) 0%,
        rgba(125, 161, 232, 1) 35%,
        rgba(118, 193, 222, 1) 100%
    );
}
.btn-gra-blue span {
    background: url("../img/icon_more.png") no-repeat 93% center / 10px;
    display: block;
    padding: 12px 16em;
    color: #fff;
    font-weight: bold;
    letter-spacing: 0.3em;
}
/* 2カラム（スマートフォンでは1カラム) */
.twoCol {
    display: -ms-flexbox;
    display: -webkit-box;
    display: -webkit-flex;
    display: flex;
    -ms-flex-pack: justify;
    -webkit-box-pack: justify;
    -webkit-justify-content: space-between;
    justify-content: space-between;
    -ms-flex-wrap: wrap;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
    position: relative;
    overflow: hidden;
    margin-bottom: 0px;
}
.twoCol .inner,
.twoCol .inner_L,
.twoCol .inner_R,
.twoCol .inner_LL,
.twoCol .inner_RR,
.twoCol .inner_LLL,
.twoCol .inner_50 {
    position: relative;
    overflow: hidden;
    display: -ms-flexbox;
    display: -webkit-box;
    display: -webkit-flex;
    display: flex;
    -ms-flex-align: center;
    -webkit-box-align: center;
    -webkit-align-items: center;
    align-items: center;
    -ms-flex-pack: justify;
    -webkit-box-pack: justify;
    -webkit-justify-content: space-between;
    justify-content: space-between;
    -ms-flex-direction: column-reverse;
    -webkit-box-direction: reverse;
    -webkit-flex-direction: column-reverse;
    flex-direction: column;
    width: 48%;
    width: calc((530 / 1100) * 100%);
    height: auto;
    margin: 0 0 20px 0;
}
.twoCol .inner p,
.twoCol .inner_L p,
.twoCol .inner_R p,
.twoCol .inner_LL p,
.twoCol .inner_RR p {
    width: 100%;
}
.twoCol .inner > a {
    width: 100%;
    height: 100%;
}
.twoCol .inner img,
.twoCol .inner_L img,
.twoCol .inner_R img,
.twoCol .inner_LL img,
.twoCol .inner_RR img {
    max-width: 100%;
}
.twoCol .inner_L {
    width: 55%;
    margin: 0 0 0 0;
    -webkit-box-pack: start;
    -webkit-justify-content: start;
    justify-content: flex-start;
}
.twoCol .inner_R {
    width: 35%;
    margin: 0 0 0 0;
}
.twoCol .inner_LL {
    width: 20%;
    margin: 0 0 0 0;
}
.twoCol .inner_RR {
    width: 70%;
    margin: 0 0 0 0;
    -webkit-box-direction: normal;
    -ms-flex-direction: row;
    flex-direction: row;
}
.twoCol .inner_LLL {
    width: 19%;
    margin-bottom: 0;
    border-right: 1px solid rgba(255, 255, 255, 0.6);
}
.twoCol .inner_RRR {
    width: 78%;
    margin-bottom: 0;
    -webkit-box-align: start;
    -ms-flex-align: start;
    align-items: flex-start;
}
.twoCol .inner_50 {
    width: 50%;
}
.twoCol .flex-container {
    -webkit-box-direction: normal;
    -ms-flex-direction: row;
    flex-direction: row;
    margin-bottom: 0;
}
.twoCol .flex-container ul {
    height: 460px;
    width: 75%;
    padding: 1em 20px;
}
.twoCol .flex-container p {
    margin-bottom: 0;
    width: 25%;
}
.object-fit-n img {
    width: 100%;
    height: 460px;
    object-fit: none;
}
@media screen and (max-width: 834px) {
    .twoCol {
        /*display: block;*/
        margin-bottom: 20px;
    }
    .twoCol .inner {
        width: 100%;
        margin: 0 0 10px 0;
    }
    .twoCol .inner_L,
    .twoCol .inner_R,
    .twoCol .inner_LL,
    .twoCol .inner_RR,
    .twoCol .inner_LLL,
    .twoCol .inner_RRR {
        width: 100%;
    }
    .twoCol .inner ul li.business_icon img {
        max-width: 70%;
    }
    .flex-cr {
        flex-direction: column-reverse !important;
    }
}
/* 3カラム（スマートフォンでは1カラム) */
.threeCol {
    display: -ms-flexbox;
    display: -webkit-box;
    display: -webkit-flex;
    display: flex;
    -ms-flex-pack: justify;
    -webkit-box-pack: justify;
    -webkit-justify-content: space-between;
    justify-content: space-between;
    -ms-flex-wrap: wrap;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
    position: relative;
    overflow: hidden;
    margin-bottom: 0px;
}
.threeCol .inner {
    position: relative;
    overflow: hidden;
    display: -ms-flexbox;
    display: -webkit-box;
    display: -webkit-flex;
    display: flex;
    -ms-flex-align: center;
    -webkit-box-align: center;
    -webkit-align-items: center;
    align-items: center;
    -ms-flex-pack: justify;
    -webkit-box-pack: justify;
    -webkit-justify-content: space-between;
    justify-content: space-between;
    -ms-flex-direction: normal;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
    flex-direction: column;
    width: 31%;
    width: calc((350 / 1100) * 100%);
    margin: 0 0 20px 0;
}
.threeCol .inner h4 {
    width: 100%;
    margin-top: 0.5em;
    text-align: left;
}
.threeCol .inner p {
    width: 100%;
    text-align: left;
}
.threeCol .inner img {
    max-width: 100%;
}
@media screen and (max-width: 834px) {
    .threeCol {
        display: block;
        margin-bottom: 20px;
    }
    .threeCol .inner {
        width: 100%;
        margin: 0 0 30px 0;
    }
}
/* 4カラム（スマートフォンでは2カラム) */
.fourCol {
    display: -ms-flexbox;
    display: -webkit-box;
    display: -webkit-flex;
    display: flex;
    -ms-flex-pack: justify;
    -webkit-box-pack: justify;
    -webkit-justify-content: space-between;
    justify-content: space-between;
    -ms-flex-wrap: wrap;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
    position: relative;
    overflow: hidden;
    margin-bottom: 0px;
}
.fourCol .inner,
.fourCol .inner_100 {
    position: relative;
    overflow: hidden;
    display: -ms-flexbox;
    display: -webkit-box;
    display: -webkit-flex;
    display: flex;
    -ms-flex-align: center;
    -webkit-box-align: center;
    -webkit-align-items: center;
    align-items: center;
    -ms-flex-pack: justify;
    -webkit-box-pack: justify;
    -webkit-justify-content: space-between;
    justify-content: space-between;
    -ms-flex-direction: normal;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
    flex-direction: column;
    width: 23.46%;
    width: calc((250 / 1100) * 100%);
    padding: 0 0 20px 0;
}
.fourCol .inner p,
.fourCol .inner_100 p {
    width: 100%;
}
.fourCol .inner > a,
.fourCol .inner_100 > a {
    width: 100%;
    height: 100%;
}
.fourCol .inner img,
.fourCol .inner_100 img {
    width: 100%;
}
@media screen and (max-width: 834px) {
    .fourCol {
        margin-bottom: 0px;
        padding-bottom: 20px;
    }
    .fourCol .inner {
        box-sizing: border-box;
        width: 46%;
        width: calc((515 / 1100) * 100%);
        margin-bottom: 0px;
        padding-bottom: 10px;
    }
    .fourCol .inner_100 {
        box-sizing: border-box;
        width: 100%;
        margin-bottom: 20px;
        padding-bottom: 10px;
    }
}
/* お知らせ */
dl.information {
    max-height: 120px;
    height: 120px;
    overflow: hidden;
    overflow-x: hidden;
    overflow-y: hidden;
    width: 100%;
    padding-right: 0px;
    margin: 0;
    clear: both;
    color: #fff;
}
.information dt {
    margin: 0 0 0.2em;
    padding: 5px 0;
    vertical-align: top;
    border-bottom: 1px dotted #fff;
    font-size: 90%;
    float: left;
    width: 20%;
}
.information dd {
    margin: 0 0 0.2em;
    padding: 5px 0;
    vertical-align: top;
    border-bottom: 1px dotted #fff;
    font-size: 90%;
    width: 74%;
}
.information dd a {
    text-decoration: none;
    color: #fff;
}
@media screen and (max-width: 834px) {
    .information dt {
        float: none;
        margin: 0;
        padding: 12px 0 0 0;
        vertical-align: top;
        border-bottom: none;
    }
    .information dd {
        margin: 0;
        padding: 0 0 5px 0;
        border-bottom: 1px dotted #ffffff;
        display: block;
        width: 100%;
    }
    .flowbtn-face.fl_fb6 .fa-facebook-f {
        font-size: 43px;
    }
}
/* ヘッダー・ナビゲーションスタイルは header.css に一元化 */
/*================================================
 *  フッター
 ================================================*/
footer {
    clear: both;
    padding-top: 30px;
    background: #f5f5f5;
}
footer .inner {
    width: 1100px;
    max-width: 100%;
    margin: 0 auto;
    padding-bottom: 30px;
}
.fnav {
    display: -ms-flexbox;
    display: -webkit-box;
    display: -webkit-flex;
    display: flex;
    -ms-flex-pack: justify;
    -webkit-box-pack: justify;
    -webkit-justify-content: space-between;
    justify-content: space-between;
    margin: 0 0px;
    padding: 20px 0;
}
.fnav > ul {
    width: 16%;
    margin-bottom: 0;
    font-size: 13px;
}
.fnav > ul:first-child {
    width: 20%;
}
.fnav > ul:nth-child(2) {
    width: 40%;
}
.fnav > ul:first-child li img {
    /* width: 80%;
    height: 90px; */
    margin-bottom: 10px;
    object-fit: cover;
}
.fnav > ul li {
    text-align: left;
}
.fnav > ul:last-child li,
.fnav > ul:nth-child(3) li {
    text-align: right;
}
.fnav > ul:nth-child(2) li {
    text-align: center;
    display: inline-block;
}
.fnav > ul li a {
    text-decoration: none;
}
.fnav > ul li a:hover {
    text-decoration: underline;
}
.copyright {
    padding: 10px 0;
    color: #fff;
    font-size: 11px;
    text-align: center;
    background: #1b933b;
}
@media screen and (max-width: 834px) {
    footer {
        margin-top: 40px;
    }
    .fnav {
        margin: 0;
        display: flex;
        -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    }
    .fnav > ul {
        width: 100%;
        text-align: center;
    }
    .fnav > ul li {
        text-align: center;
    }
    .fnav > ul:nth-child(2) li {
        display: inline-block;
    }
    .fnav > ul:first-child,
    .fnav > ul:nth-child(2) {
        width: 100%;
    }
    .fnav > ul:last-child,
    .fnav > ul:nth-child(3) {
        width: 48%;
        margin-top: 1em;
    }
    .fnav > ul:last-child li,
    .fnav > ul:nth-child(3) li {
        text-align: center;
    }
}
/*================================================
 *  index
 ================================================*/
.pg-canvas {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    height: 100%;
    display: block;
    z-index: 10;
}
.mv {
    padding-top: 90px;
    width: 100%;
    position: relative;
}
.mvInner {
    margin: 0 auto;
    text-align: center;
    position: relative;
    z-index: 90;
    width: 1100px;
    max-width: 100%;
    padding: 100px 0;
}
.mvInner .mv_text {
    text-align: center;
    color: #232323;
}
.mvInner .mv_ttl {
    text-align: center;
    width: 35%;
}
.mvInner .catch {
    text-align: center;
    font-weight: bold;
    margin-bottom: 0;
    width: 65%;
}
.mvInner .catch p {
    margin-bottom: 0;
}
.typ {
    opacity: 0;
}
.typ span {
    opacity: 0;
}
.w40 {
    width: 36%;
}
.w60 {
    width: 64%;
}
.news_box .inner_box {
    display: flex;
    width: 80%;
    justify-content: space-between;
    align-items: center;
}
.news_box {
    height: auto;
}
.news {
    /* width: 1100px;
    margin: 0 auto;*/
    width: 50%;
    /*    position: absolute;
    left: -56px;
    top: 0;
*/
}
.banner01 {
    padding-right: 1%;
}
.m-100 {
    margin-top: -100px;
    position: relative;
}
/*.movie-font-g {
	position: absolute;
    top: 30%;
    left: 10%;
}
.movie-font{
	background-color: #208932;
	font-size: ;
	padding: 4px 20px;
	color: #fff;
	margin-bottom: 30px;
}
.movie-font-2{
	background-color: #208932;
	font-size: 80px;
	padding: 4px 20px;
	color: #fff;
}
*/
/* ---------------------------- */
/* --- Animation --- */
/* ---------------------------- */
.typing-g {
    opacity: 0;
    /* アニメーション */
    animation: appeare 0s ease 2s 1 normal forwards running;
    animation-fill-mode: both;
}
@keyframes appeare {
    0% {
        opacity: 0;
    }
    100% {
        opacity: 1;
    }
}
.typing-animation {
    letter-spacing: 3px;
    width: 17ch; /*文字の長さ*/
    border-right: 5px solid #fff; /*点滅バー*/
    overflow: hidden; /*必須*/
    white-space: nowrap; /*必須*/
    color: #fff;
    font-size: 5rem;
    line-height: 1.7;
    font-weight: 600;
    animation: typing 2s steps(12), blink 0.4s step-end infinite alternate; /*アニメーション関連*/
    position: absolute;
    top: 55%;
    animation-delay: 2s;
}
.typing-animation br {
    display: none;
}
.typing-g {
    display: flex;
    justify-content: center;
    align-content: center;
}
@keyframes typing {
    from {
        width: 0;
    }
}
@keyframes blink {
    50% {
        border-color: transparent; /*点滅風に見せる*/
    }
}
.ict-f {
    color: #00b31f;
    font-size: 5.5rem;
}
@media screen and (max-width: 1220px) {
    .news_box .inner_box {
        width: 90%;
    }
    .news {
        width: 55%;
    }
    .typing-animation {
        font-size: 3.5rem;
        font-weight: 600;
        width: 18ch;
    }
    .ict-f {
        font-size: 4rem;
    }
}
@media screen and (max-width: 1850px) {
    .news_box .inner_box {
        width: 90%;
    }
    .news {
        width: 55%;
    }
}
@media screen and (max-width: 1600px) {
    .news_box .inner_box {
        width: 95%;
    }
    .news {
        width: 65%;
    }
}
@media screen and (max-width: 1450px) {
    .news {
        width: 78%;
    }
}
@media screen and (max-width: 1350px) {
    .news_box .inner_box {
        width: 100%;
    }
    .news {
        width: 85%;
    }
}
@media screen and (max-width: 1300px) {
    .news_box .inner_box {
        width: 100%;
    }
    .news {
        width: 100%;
    }
}
@media screen and (max-width: 1250px) {
    .news_box .inner_box {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
    }
    .news {
        width: 85%;
        margin: auto;
    }
    .banner {
        padding: 1.5% 3% 0% 3%;
    }
    #navi h1 {
        width: 13%;
    }

    footer .inner {
        padding: 0 16px 30px;
    }
    .twoCol .flex-container ul,
    .object-fit-n img {
        height: 475px;
    }
}
@media screen and (max-width: 950px) {
    .news {
        width: 100%;
        margin: auto;
    }
    .banner {
        padding: 5.5% 1% 2% 1%;
    }
}
@media screen and (max-width: 730px) {
    .news_box .inner_box {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
    }
    .banner {
        padding: 2% 1% 2% 1%;
    }
    .banner01 {
        padding-top: 10%;
    }
}
@media screen and (max-width: 834px) {
    .movie-pc {
        display: none;
    }
    .m-100 {
        margin-top: 0;
        position: relative;
    }
    .typing-animation {
        font-size: 2.5rem;
        font-weight: 600;
        width: 18ch;
    }
    .ict-f {
        font-size: 3rem;
    }
}
@media screen and (min-width: 835px) {
    .movie-sp {
        display: none;
    }
}
@media screen and (max-width: 600px) {
    .typing-animation {
        font-size: 2rem;
        width: 19ch;
        border-right: 3px solid #fff; /*点滅バー*/
    }
    .ict-f {
        font-size: 2.5rem;
    }
}
@media screen and (max-width: 500px) {
    .typing-animation {
        font-size: 1.5rem;
    }
    .iPhone .typing-animation {
        width: 18ch;
    }
    .Android .typing-animation {
        width: 300px;
    }
    .ict-f {
        font-size: 2rem;
    }
}
p.news_ttl {
    color: #fff;
    font-size: 30px;
    font-weight: bold;
    line-height: 1em;
    margin-bottom: 0;
    padding-top: 6px;
}
ul li.business_icon {
    text-align: center;
}
ul li.business_ttl {
    text-align: left;
    font-size: 20px;
    font-weight: bold;
    margin: 0.8em 0 0.5em;
    color: #24943a;
    text-align: center;
}
ul li.business_btn {
    text-align: center;
}
.navy_ttl {
    font-size: 36px;
    padding: 10px 18px 5px;
    line-height: 1.2;
    position: relative;
    margin: 0 0 0 auto;
    letter-spacing: 0.1em;
}
.navy_ttl span {
    font-size: 30px;
}
.navy_ttl_R {
    font-size: 36px;
    position: relative;
    margin: 0 auto 0em 0;
    letter-spacing: 0.1em;
    padding: 10px 18px 5px;
    line-height: 1.2;
}
.navy_ttl_R span {
    font-size: 30px;
}
.item_center {
    -webkit-box-pack: center !important;
    -ms-flex-pack: center !important;
    justify-content: center !important;
}
ul.btn_link {
    padding: 1em 0;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
    list-style: none;
}
ul li.btn_contact,
ul li.btn_partner,
ul li.btn_staff_blog,
ul li.btn_tech_blog,
ul li.btn_x,
ul li.btn_instagram {
    height: 154px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 20px 10px 14px;
    position: relative;
    background: #fff;
    overflow: hidden;
    box-sizing: border-box;
}
ul li.btn_contact a,
ul li.btn_partner a,
ul li.btn_staff_blog a,
ul li.btn_tech_blog a,
ul li.btn_x a,
ul li.btn_instagram a {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 20px 10px 14px;
    text-decoration: none;
}
ul li.btn_contact h3,
ul li.btn_partner h3,
ul li.btn_staff_blog h3,
ul li.btn_tech_blog h3,
ul li.btn_x h3,
ul li.btn_instagram h3 {
    font-size: 40px;
    font-weight: bold;
    text-align: left;
    line-height: 1.3;
    flex-shrink: 1;
    min-width: 0;
}
ul li.btn_contact h3 span,
ul li.btn_partner h3 span,
ul li.btn_staff_blog h3 span,
ul li.btn_tech_blog h3 span,
ul li.btn_x h3 span,
ul li.btn_instagram h3 span {
    font-size: 18px;
    font-weight: normal;
    display: block;
}
ul li.btn_contact a i,
ul li.btn_partner a i,
ul li.btn_staff_blog a i,
ul li.btn_tech_blog a i,
ul li.btn_x a i,
ul li.btn_instagram a i {
    font-size: 90px;
    line-height: 1;
    opacity: 0.5;
    flex-shrink: 0;
    margin-left: 8px;
}
ul li.btn_contact {
    border: 2px solid #1b933b;
    color: #1b933b;
}
ul li.btn_contact a,
ul li.btn_contact a:hover {
    color: #1b933b;
}
ul li.btn_partner {
    border: 2px solid #223870;
    color: #223870;
}
ul li.btn_partner a,
ul li.btn_partner a:hover {
    color: #223870;
}
ul li.btn_staff_blog {
    border: 2px solid #f39801;
    color: #f39801;
}
ul li.btn_staff_blog a,
ul li.btn_staff_blog a:hover {
    color: #f39801;
}
ul li.btn_tech_blog {
    border: 2px solid #3ea8ff;
    color: #3ea8ff;
}
ul li.btn_tech_blog a,
ul li.btn_tech_blog a:hover {
    color: #3ea8ff;
}
ul li.btn_x {
    border: 2px solid #000000;
    color: #000000;
}
ul li.btn_x a,
ul li.btn_x a:hover {
    color: #000000;
}
ul li.btn_instagram {
    border: 2px solid #e1306c;
    color: #e1306c;
}
ul li.btn_instagram a,
ul li.btn_instagram a:hover {
    color: #e1306c;
}
/* RECRUIT section banners */
.recruit_section .recruit_banners {
    display: flex;
    gap: 20px;
    justify-content: center;
    align-items: stretch;
    padding: 0 1em;
}
.recruit_banners a {
    flex: 1;
    display: block;
}
.recruit_banners a img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 4px;
} /*================================================
 *  page
 ================================================*/
.mv_page {
    width: 100%;
    margin: 85px auto 0;
    text-align: center;
    padding: 60px 0;
}
.line_font,
.line_font_blue {
    display: block;
    overflow: hidden;
    position: relative;
    padding: 3em 0;
    background-color: #45b75b;
}
.line_font_blue {
    padding: 0;
    background-color: #223870;
    position: relative;
    margin: 0 auto 0 0;
}
.line_font::after,
.line_font_blue::after {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    height: 100%;
    background-color: #ffffff;
    animation: secondaryImageOverlayIn 0.6s 0s cubic-bezier(0.77, 0, 0.175, 1),
        secondaryImageOverlayOut 0.6s 0.6s cubic-bezier(0.77, 0, 0.175, 1);
    animation-fill-mode: both;
    -webkit-transform: translate3d(0, 0, 0);
    -ms-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
}
h1.mv_text {
    margin: 0;
    font-size: 38px;
    padding: 0;
    font-weight: bold;
    letter-spacing: 0.2em;
    color: #ffffff;
    animation: fadeIn 0.5s 0.8s;
    animation-fill-mode: both;
    line-height: 1em;
}
h1.mv_text span {
    font-size: 22px;
    font-weight: bold;
    display: block;
}
.line_font_blue .navy_ttl_R,
.line_font_blue .navy_ttl {
    color: #ffffff;
    animation: fadeIn 0.5s 0.8s;
    animation-fill-mode: both;
}
/*.inner .navy_ttl:nth-child(2){
    margin-bottom: 0;
}
.inner .line_font_blue:nth-child(2){
    margin-bottom: 0;
}*/
@keyframes fadeIn {
    0% {
        opacity: 0;
    }
    100% {
        opacity: 1;
    }
}
@keyframes secondaryImageOverlayIn {
    0% {
        width: 0;
    }
    100% {
        width: 100%;
    }
}
@keyframes secondaryImageOverlayOut {
    0% {
        transform: translateX(0);
    }
    100% {
        transform: translateX(102%);
    }
}
#contents_page {
    width: 100%;
    padding: 60px 0px;
    background-color: #fff;
}
#contents_page_dream {
    width: 100%;
    padding: 60px 0;
    background: #fff url("../img/bg_dream_L.png") no-repeat 0 0;
    background-size: contain;
}
#contents_page_dream h2 {
    background: url("../img/img_dream.png") no-repeat 0 0;
    color: #fff;
    font-size: 30px;
    text-align: left;
    min-height: 218px;
    margin-top: 0;
    text-indent: -9999px;
}
#contents_page_dream .inner_dream {
    background-color: rgba(255, 255, 255, 0.8);
    padding: 40px 20px;
    width: 90%;
    margin: 0 auto;
}
article.block01 {
    margin-bottom: 3em;
    text-align: left;
    clear: both;
}
article.block01 img {
    float: left;
    margin-right: 4em;
    width: 30%;
}
article.block01 h3 {
    font-size: 22px;
    color: #223870;
    text-align: left;
    background: linear-gradient(transparent 50%, #a7d6ff 50%);
    display: inline-block;
    margin-bottom: 16px;
}
.philosophy p {
    font-family: "游明朝", YuMincho, "Hiragino Mincho ProN W3",
        "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝",
        "ＭＳ 明朝", serif !important;
    font-size: 25px;
    font-weight: bold;
    font-feature-settings: "palt";
}
.border {
    border: 1px solid #ccc;
    justify-content: flex-start !important;
    padding-bottom: 0 !important;
}
.sttl {
    background-color: #1b933b;
    padding: 10px;
    text-align: center !important;
    color: #fff;
    margin-bottom: 0.5em;
}
.border p {
    padding: 10px;
    margin-bottom: 0 !important;
}
.formTable td.mark_hissu span {
    display: block;
    color: #fff;
    background-color: #cfb903;
    padding: 3px 5px;
    text-align: center;
    font-size: 13px;
}
.formTable td.mark_nohissu span {
    display: block;
    color: #fff;
    background-color: #737373;
    padding: 3px 5px;
    text-align: center;
    font-size: 13px;
}
.formTable input[type="text"],
.formTable input[type="email"],
.formTable select {
    margin: 3px 5px 3px 0;
    padding: 8px;
}
.formTable input,
.formTable select,
.formTable textarea {
    vertical-align: middle;
    border: 1px solid #ccc;
}
.formTable input[type="file"] {
    border: none !important;
}
.formTable .formText {
    width: 90%;
    word-wrap: break-word;
    overflow-wrap: break-word;
    padding: 10px;
}
.formTable small {
    font-size: 75%;
    color: rgba(43, 43, 43, 1);
    font-weight: 400;
}
.button-form {
    width: 200px;
}
.button-form input[type="submit"],
.button-form input[type="button"],
.button-form input[type="reset"] {
    display: block;
    text-align: center;
    border: none;
    margin: 0 auto;
    color: #fff;
    width: 100%;
    /*height: 100%;*/
    font-weight: bold;
    cursor: pointer;
    background: url("../img/icon_more.png") no-repeat right 1em center / 8px;
    padding: 8px 0;
}
.button-form input[type="submit"]:hover,
.button-form input[type="button"]:hover,
.button-form input[type="reset"]:hover {
    text-align: center;
    color: #fff;
}
/* パンくず */
#breadcrumb_box {
    background-color: #f5f5f5;
    padding: 0;
}
.breadcrumb {
    margin: 0 auto;
    padding: 0;
    list-style: none;
    width: 1100px;
}
.breadcrumb li {
    display: inline;
    list-style: none;
    font-size: 12px;
}
.breadcrumb li:after {
    content: ">";
    padding: 0 0.2em;
}
.breadcrumb li:last-child:after {
    content: "";
}
.breadcrumb li a {
    text-decoration: none;
}
.breadcrumb li:first-child a:before {
    font-family: FontAwesome;
    content: "\f015";
    font-weight: normal;
    font-size: 1.1em;
    color: #1b933b;
}
.breadcrumb li a:hover {
    text-decoration: underline;
}
ul.privacy {
    margin: 1em 0 1em;
    padding-left: 1.8em;
}
ul.privacy li {
    list-style-type: decimal;
    padding-bottom: 1em;
}
ul.privacy-mark {
    margin: 1em 0;
    display: flex;
    -webkit-justify-content: space-between;
    justify-content: space-between;
}
ul.privacy-mark li.mark {
    width: 15%;
}
ul.privacy-mark li.privacy-text {
    width: 80%;
    padding-top: 12px;
}
.sp_con figure {
    position: relative;
    overflow: hidden;
    width: 100%;
}
.sp_con figcaption {
    position: absolute;
    bottom: -80px;
    left: 0;
    z-index: 2;
    width: 100%;
    height: 80px;
    background: rgba(0, 0, 0, 0.6);
    -webkit-transition: 0.3s;
    transition: 0.3s;
    padding: 12px 10px 5px;
    text-align: center;
}
.sp_con figure:hover figcaption {
    bottom: 0;
}
.sp_con figure:hover figcaption h3 {
    color: #fff;
    font-weight: bold;
    font-size: 18px;
    line-height: 1.3;
}
.sp_con figure:hover figcaption p {
    color: #fff;
    font-size: 100%;
    text-align: center !important;
    margin-bottom: 0;
}
#business_button .snip figcaption h2 {
    font-size: 14px;
}
.attention {
    background: url("../img/icon_attention.png") no-repeat left top;
    padding: 16px 10px 16px 50px;
}
.attention_normal {
    padding: 16px 10px 16px 50px;
}
.attention h3,
.attention_normal h3 {
    font-size: 22px;
    font-weight: bold;
    color: #03a35d;
    margin: 0 0 0.5em;
    padding: 5px 1em 2px;
    border-bottom: 1px solid #ccc;
    text-align: center;
}
.attention ul.business_in {
    margin-bottom: 1em;
}
.attention ul.business_in li {
    list-style-type: disc;
    list-style-position: inside;
    margin-bottom: 0.3em;
    padding-left: 1em;
    text-indent: -1em;
    font-size: 15px;
}
.attention p.bg_text,
.attention_normal p.bg_text {
    background-color: #e1e1e1;
    padding: 6px;
    font-size: 14px;
}
.attention_R {
    padding: 2em 0px 16px 10px;
}
figure.attention_pic {
    position: relative;
    overflow: hidden;
}
figure.attention_pic figcaption {
    position: absolute;
    top: 30%;
    right: 50px;
    z-index: 2;
    width: 100%;
    background: rgba(236, 50, 0, 0.8);
    /*  -webkit-transition: .3s;
  transition: .3s;*/
    padding: 1em;
}
figure.attention_pic h4 {
    color: #fff;
    font-size: 22px;
    text-align: center;
}
figure.attention_pic h4 span {
    font-size: 14px;
    display: block;
}
figure.attention_pic p {
    text-align: center;
    color: #fff;
    margin-bottom: 0;
}
.c_pointer {
    cursor: pointer;
}
ul.vision_con {
    background: url("../img/page_vision_bg02.jpg") no-repeat 0 0;
    position: relative;
    height: 700px;
}
li.vision_txt01 {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
}
/* MISSION Section */
.mission_section {
    padding: 60px 0;
}
.mission_container {
    display: flex;
    align-items: center;
    gap: 88px;
    max-width: 1200px;
    margin: 0 auto;
}
.mission_image {
    flex: 0 0 530px;
    width: 530px;
    height: 377px;
    overflow: hidden;
    border-radius: 8px;
}
.mission_image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.mission_content {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 60px;
}
.mission_heading {
    font-size: 1.5rem;
    font-weight: bold;
    line-height: 1.43;
    color: #24943a;
    letter-spacing: 0.1em;
    margin: 0;
}
.mission_text {
    font-size: 1.25rem;
    font-weight: 500;
    line-height: 1.5;
    color: #232323;
    margin: 0;
}
.mission_btn {
    margin: 0;
}
.mission_btn .btn-gradient-radius {
    display: inline-block;
}

/* Philosophy PVMV Section */
.philosophy_pvmv {
    padding: 80px 0;
}
.philosophy_heading_container {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 100px;
    margin-bottom: 60px;
}
.philosophy_heading_line {
    width: 75px;
    height: 3px;
    background-color: #232323;
}
.philosophy_heading {
    font-size: 28px;
    font-weight: bold;
    color: #232323;
    letter-spacing: 1.92px;
    margin: 0;
    white-space: nowrap;
}
.philosophy_items {
    display: flex;
    flex-direction: column;
    gap: 100px;
    max-width: 1100px;
    margin: 0 auto;
}
.philosophy_item {
    display: flex;
    gap: 100px;
    align-items: flex-start;
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.8s ease, transform 0.8s ease;
}
.philosophy_item.fade-in {
    opacity: 1;
    transform: translateY(0);
}
.philosophy_label {
    width: 20%;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    /* gap: 20px; */
    align-items: center;
    text-align: center;
}
.philosophy_label_title {
    font-size: 40px;
    font-weight: bold;
    color: #232323;
    letter-spacing: 1.92px;
    margin: 0;
    line-height: 1;
}
.philosophy_label_title .philosophy_accent {
    color: #45b75b;
}
.philosophy_label_sub {
    font-size: 16px;
    font-weight: 500;
    color: #232323;
    letter-spacing: 1.92px;
    margin: 0;
    line-height: 28px;
}
.philosophy_description {
    flex: 1;
}
/* .philosophy_description > p {
    font-size: 25px;
    line-height: 50px;
    color: #232323;
    letter-spacing: 1.92px;
    margin: 0;
} */
.philosophy_mission_title {
    font-size: 1.5rem;
    line-height: 1.75;
    font-weight: 500;
    color: #232323;
    letter-spacing: 1.92px;
    margin: 0 0 20px 0;
    font-family: "游明朝", "Yu Mincho", YuMincho, "Hiragino Mincho ProN", "Hiragino Mincho Pro", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
}
.philosophy_mission_text {
    font-size: 1rem;
    /* line-height: 50px; */
    color: #232323;
    letter-spacing: 1.92px;
    margin: 0 0 20px 0;
}
.philosophy_step_indent {
    margin-left: 1em;
}
.philosophy_step_indent .philosophy_mission_text {
    margin-bottom: 0;
}
.philosophy_mission_text:last-child {
    margin-bottom: 0;
}
.philosophy_value_item {
    margin-bottom: 20px;
}
.philosophy_value_item:last-child {
    margin-bottom: 0;
}
.philosophy_value_title {
    font-size: 25px;
    line-height: 50px;
    font-weight: 500;
    color: #232323;
    letter-spacing: 1.92px;
    margin: 0;
    font-family: "游明朝", "Yu Mincho", YuMincho, "Hiragino Mincho ProN", "Hiragino Mincho Pro", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
}
.philosophy_value_text {
    font-size: 16px;
    line-height: 2;
    color: #232323;
    letter-spacing: 1.92px;
    margin-left: 1.5em;
}

li.vision_txt02 {
    position: absolute;
    top: 390px;
    left: 50%;
    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
}
.vision {
    background: url("../img/bg_vision100.jpg") no-repeat left top / cover;
    padding: 120px 0 380px;
    margin-bottom: 100px !important;
}
.vision02 {
    background: url("../img/bg_vision100_02.jpg") no-repeat left top / cover;
    padding: 120px 0 380px;
}
ul.vision_body {
    background: url("../img/bg_vision.png") no-repeat left top;
    height: 513px;
    width: 1100px;
    margin: 0 auto;
    position: relative;
}
li.vision_body_txt01 {
    position: absolute;
    top: 0px;
    left: 0px;
}
li.vision_body_txt02 {
    position: absolute;
    top: 105px;
    left: 0px;
}
li.vision_body_txt03 {
    position: absolute;
    top: 206px;
    left: 0px;
}
li.vision_body_txt04 {
    position: absolute;
    top: 310px;
    left: 0px;
}
li.vision_body_txt05 {
    position: absolute;
    top: 410px;
    left: 0px;
}
li.vision_body_txt06 {
    position: absolute;
    top: 0px;
    right: 300px;
}
.vision_body02 {
    background: url("../img/page_vision_bg03.png") no-repeat left top;
    height: 540px;
    width: 1100px;
    margin: 0 auto;
    position: relative;
}
h3.vision_ttl {
    color: #fff;
    font-size: 40px;
    text-align: center;
    text-shadow: 1px 2px 3px #808080;
    margin-bottom: 30px;
}
li.vision_body_txt07 {
    position: absolute;
    top: 0px;
    left: 320px;
}
li.vision_body_txt08 {
    position: absolute;
    top: 107px;
    left: 320px;
}
li.vision_body_txt09 {
    position: absolute;
    top: 215px;
    left: 320px;
}
li.vision_body_txt10 {
    position: absolute;
    top: 320px;
    left: 320px;
}
li.vision_body_txt11 {
    position: absolute;
    top: 430px;
    left: 320px;
}
li.vision_body_txt12 {
    position: absolute;
    top: 0px;
    right: 100px;
}
ul.aisatu {
    width: 100%;
}
ul.aisatu li {
    display: block;
    font-weight: bold;
    width: 100%;
}
ul.aisatu li.first_ttl {
    text-align: left;
    color: #1b933b;
}
ul.aisatu li span {
    display: inline-block;
    padding-right: 5px;
    font-weight: bold;
    margin-bottom: 6px;
}
ul.aisatu li.second_text {
    text-align: left;
    list-style: none;
    padding-left: 2em;
    text-indent: -1em;
}
.aisatu_m_b {
    margin-bottom: 1em;
    margin-top: 1em;
}
.aisatu_mb0 {
    margin-bottom: 0 !important;
}
.chart {
    margin: 80px auto 40px;
    display: flex;
    flex-direction: column;
    -ms-flex-align: center;
    -webkit-box-align: center;
    -webkit-align-items: center;
    align-items: center;
    justify-content: center;
}
.chart p.number_ttl {
    margin-bottom: 60px;
    font-size: 18px;
    color: #222222;
    letter-spacing: 0;
    text-align: center;
}
.chart_box {
    position: relative;
    width: 680px;
    height: auto;
    margin: 0;
}
.chart_box p.chart_text {
    position: absolute;
    top: -50px;
    left: 30px;
}
/*================================================
 *  スポンサーページ用
 ================================================*/
.spo-col-head {
    padding: 32px;
}
.spo-table {
    width: 60%;
    border-collapse: collapse;
}
.spo-table th,
.spo-table td {
    padding: 8px;
    border-top: 1px solid #e1e1e1;
}
.spo-table th {
    background-color: #f5f5f5;
    border-left: 1px solid #e1e1e1;
    border-right: 1px solid #e1e1e1;
    width: 30%;
}
.spo-table td:nth-child(even) {
    border-right: 1px solid #e1e1e1;
}
.b-bottom {
    border-bottom: 1px solid #e1e1e1;
}
.b-bottom.b-right {
    border-right: 1px solid #e1e1e1;
}
.spo-sns {
    width: 35%;
    padding: 0;
    margin-bottom: 0;
}
.spo-sns-lead {
    background-color: #f5f5f5;
    border-left: 3px solid #45b75b;
    text-align: left;
    display: block;
    padding: 6px 8px;
    margin-bottom: 16px;
}
.spo-sns-icon {
    display: grid;
    justify-content: start;
    grid-template-columns: repeat(auto-fit, minmax(60px, 60px));
    gap: 16px 48px;
    margin-bottom: 0;
}
.spo-sns-icon dd {
    margin-bottom: 0;
}
p.spo-message {
    position: relative;
    padding-left: 28px;
    margin-top: 24px;
}
p.spo-message::before {
    content: "";
    background: url("../img/pen-to-square-regular.svg") no-repeat left bottom /
        cover;
    width: 20px;
    height: 20px;
    display: inline-block;
    position: absolute;
    top: 1px;
    left: 0;
}
.spo-col {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 320px));
    gap: 56px 32px;
    padding: 0 32px 32px;
    justify-content: center;
}
.spo-col figcaption {
    font-size: 13px;
    text-align: left;
    margin-top: 4px;
}
/*======================================================
 *  追記　2026.8.17　スポンサーシップページの画像サイズ調整
 =======================================================*/
/* スポンサーシップページ内の画像を一括指定 */
.spo-col .pic img {
    /* 画像の表示領域を縦横比4:3に固定 */
    aspect-ratio: 4/3;
    /* 画像が縦横に伸張せず上記の枠内一杯に広がるように設定 */
    object-fit: cover;
}
@media screen and (min-width: 835px) {
    .br-pc {
        display: block;
    }
    .br-sp {
        display: none;
    }
}
@media screen and (max-width: 834px) {
    .br-pc {
        display: none;
    }
    .br-sp {
        display: block;
    }
}
/*================================================
 *  印刷用
 ================================================*/
@page {
    size: 210mm 297mm;
} /* A4縦サイズ */
@media print {
    #navi {
        background-color: rgba(255, 255, 255, 0);
    }
    #navi ul.menu,
    footer,
    header img {
        display: none;
    }
    header {
        position: static;
        height: 50px;
        background: url("../img/img_Logo_print.png") no-repeat left top;
    }
    canvas#chart1 {
        display: block !important;
    }
}
/*================================================
 *  ページトップへの戻り
 ================================================*/
.totop {
    position: fixed;
    bottom: 15px;
    right: 15px;
    z-index: 1;
}
.totop a {
    display: block;
    text-decoration: none;
}
.totop img {
    background: #6bb96b;
}
.totop img:hover {
    background: #7ec77e;
}
/*================================================
 *  img 100%
 ================================================*/
.img {
    width: 100%;
    max-width: 100%;
}
/*================================================
 *  reCAPTCHA　check
 ================================================*/
.check_Ok,
.check_Ng {
    display: none;
}
/*================================================
 *  PC向けデザイン
 ================================================*/
@media print, screen and (min-width: 835px) {
    .pc_none {
        display: none !important;
    }
}
/*================================================
 *  タブレット向けデザイン
 ================================================*/
@media print, screen and (min-width: 1025px) {
    .xpc_none {
        display: none !important;
    }
}
@media print, screen and (max-width: 1024px) {
    .tab_none {
        display: none !important;
    }
    ul.btn_link {
        padding: 1em 16px;
    }
}
/*================================================
 *  sp向けデザイン
 ================================================*/
@media print, screen and (max-width: 834px) {
    .sp_none {
        display: none !important;
    }
    footer,
    footer .inner {
        width: 100%;
        margin-top: 0;
    }
    footer .inner {
        padding: 0 20px;
    }
    .lock {
        position: fixed;
        z-index: -1;
        width: 100%;
        height: 100%;
        top: 0;
        right: 0;
    }
    header {
        height: 65px !important;
    }
    header .inner {
        padding: 0 0px;
    }
    header #navi  h1 {
        width: auto;
        padding: 0px 0 0;
    }
    .mv {
        padding-top: 65px;
        width: 100%;
    }
    .mvInner {
        padding: 2em 5%;
        width: 100%;
    }
    .mvInner table.mv_ttl {
        margin: 1em auto;
    }
    .right {
        text-align: left;
    }
    .mvInner h2.kizuna {
        font-size: 50px;
        margin-right: 10px;
    }
    .mvInner p.catch {
        font-size: 20px;
    }
    .mvInner p.catch span {
        font-size: 1.2em;
    }
    .w60 {
        width: 88%;
    }
    .w40 {
        width: 12%;
    }
    .mvInner p.mv_text {
        font-size: 12px;
    }
    .btn-gradient-radius {
        margin-top: 0;
        padding: 10px 30px;
    }
    #contents {
        padding: 0;
    }
    section.body_inner {
        width: 100%;
        padding: 30px 30px;
        margin-bottom: 0;
    }
    section.body_inner100 {
        width: 100%;
        padding: 30px 0px;
        margin-bottom: 0;
    }
    .p_t {
        padding-top: 30px !important;
    }
    .inner_box {
        width: 100%;
        padding: 0px 20px;
    }
    .news {
        width: 100%;
    }
    .news_box {
        height: 100%;
    }
    .banner {
        position: static;
    }
    .twoCol .inner_50 {
        width: 100%;
    }
    .twoCol .flex-container ul {
        width: 100%;
        height: 100%;
    }
    .twoCol .flex-container p {
        display: none;
    }
    .navy_ttl,
    .navy_ttl_R {
        font-size: 24px;
        padding: 10px 10px 5px;
    }
    .navy_ttl span,
    .navy_ttl_R span {
        font-size: 18px;
    }
    .mb_40,
    .mb_15 {
        margin-bottom: 5px !important;
    }
    .mt_40 {
        margin-top: 0px !important;
    }
    ul.btn_link {
        grid-template-columns: 1fr;
        gap: 10px;
    }
    ul li.btn_contact,
    ul li.btn_partner,
    ul li.btn_staff_blog,
    ul li.btn_tech_blog,
    ul li.btn_x,
    ul li.btn_instagram {
        height: 110px;
    }
    ul li.btn_contact h3,
    ul li.btn_partner h3,
    ul li.btn_staff_blog h3,
    ul li.btn_tech_blog h3,
    ul li.btn_x h3,
    ul li.btn_instagram h3 {
        font-size: 30px;
    }
    ul li.btn_contact a i,
    ul li.btn_partner a i,
    ul li.btn_staff_blog a i,
    ul li.btn_tech_blog a i,
    ul li.btn_x a i,
    ul li.btn_instagram a i {
        font-size: 60px;
    }
    .recruit_banners {
        flex-direction: column;
    }
    .twoCol .inner_LLL {
        border-right: none;
        border-bottom: none;
        margin-bottom: 10px;
    }
    p.btn-gradient-radius-s {
        padding: 0;
        width: 30%;
        margin-top: 10px;
    }
    dl.information {
        max-height: 230px;
        height: 230px;
        padding-right: 6px;
        overflow-y: auto;
    }
    ul#dream {
        padding-top: 2em;
    }
    ul li.dream_btn {
        margin: 1em 0 2em;
    }
    ul li.dream_icon {
        bottom: 5px;
    }
    section.body_inner:last-child {
        padding: 0 20px;
    }
    .copyright {
        padding: 0 20px;
    }
    .mv_page {
        margin: 65px auto 0;
        padding: 20px 0;
    }
    h2.mv_text {
        font-size: 26px;
        letter-spacing: 0.1em;
    }
    #breadcrumb_box {
        padding: 0px 20px;
    }
    #contents_page {
        padding-top: 30px;
    }
    section.body_inner,
    section.page_inner {
        margin-bottom: 40px;
        width: 100%;
        padding: 0 16px;
    }
    h3.ttl {
        margin-bottom: 1em;
        font-size: 20px;
    }
    .philosophy p {
        font-size: 17px;
        font-feature-settings: "palt";
    }
    .table td,
    .table_x td,
    .formTable td,
    .table th,
    .table_x th,
    .formTable th {
        display: block;
    }
    .table th,
    .table_x th,
    .formTable th {
        width: 100%;
    }
    section.body_inner:last-child,
    section.page_inner:last-child {
        padding-bottom: 20px;
    }
    dt {
        margin-bottom: 0.6em;
        display: inline;
    }
    dd {
        margin-bottom: 0.6em;
        display: inline;
    }
    article.block01 img {
        width: 50%;
        margin: 0 auto 20px;
        float: none;
    }
    article.block01 {
        text-align: center;
    }
    article.block01 h3 {
        display: block;
        background: linear-gradient(transparent 60%, #a7d6ff 60%);
        font-size: 18px;
    }
    article.block01 p {
        text-align: left;
    }
    .ch-grid li.pic {
        margin: 0 auto;
        float: none;
        display: block;
    }
    .ch-grid li.name {
        padding-top: 20px;
        margin-bottom: 20px;
    }
    .ch-grid li.images img {
        width: 60%;
        margin-top: 10px;
    }
    ul.privacy-mark {
        flex-direction: column;
    }
    ul.privacy-mark li.mark {
        text-align: center;
        width: 100%;
    }
    ul.privacy-mark li.privacy-text {
        width: 100%;
    }
    h3.grid_ttl {
        font-size: 18px;
    }
    section.special_inner {
        width: 100%;
    }
    section.special_inner ul.btn_box {
        width: 80px;
    }
    section.special_inner ul.btn_box li {
        width: 50%;
    }
    .formTable th {
        border-bottom: 1px solid #e3dfd9;
    }
    .formTable td {
        display: inline-block;
        border-top: none;
        padding-left: 10px;
        border-left: none;
    }
    .formTable input[type="text"] {
        width: 60vw;
    }
    .formTable td.mark_hissu,
    .formTable td.mark_nohissu {
        background-color: #fff;
        font-size: 13px;
    }
    .formTable .formText {
        width: 60vw;
        padding: 8px;
    }
    .button-form {
        width: 160px;
    }
    .button-blue {
        width: 100%;
    }
    .btn-gra-blue {
        border-radius: 40px;
        display: block;
    }
    .btn-gra-blue span {
        padding: 8px 1em;
        letter-spacing: 0.1em;
    }
    .infotable th,
    .infotable td {
        display: block;
        padding: 6px 0;
    }
    .infotable th {
        border-bottom: none;
        width: 100%;
        padding-bottom: 0;
    }
    h2 {
        font-size: 24px;
        margin-bottom: 20px;
    }
    h2.con_ttl span {
        padding: 0 30px;
    }
    h2.con_ttl span::before,
    h2.con_ttl span::after {
        width: 20px;
    }
    .attention {
        background: url("../img/icon_attention.png") no-repeat left top / 11%;
        padding: 16px 0px 16px 0px;
    }
    .attention_normal {
        padding: 16px 0px 16px 0px;
    }
    .attention h3,
    .attention_normal h3 {
        font-size: 22px;
        display: block;
        padding: 5px 1.3em 2px;
    }
    .attention_R {
        padding: 0em 0px 16px 0px;
    }
    .vision_sttl {
        padding: 1em 0 0;
        text-align: center;
        margin: 0em auto 0em;
    }
    .vision h2.vision_ttl {
        font-size: 24px;
    }
    h1.mv_text {
        margin: 0;
        font-size: 36px;
        letter-spacing: 0.1em;
    }
    .breadcrumb {
        width: 100%;
    }
    #contents_page > h2.con_ttl {
        padding: 0 20px;
    }
    .m_t40 {
        margin-top: 40px !important;
    }
    ul.vision_con {
        background: url("../img/page_vision_bg02.jpg") no-repeat 0 0 / 100%;
        position: static;
        height: 100%;
        width: 100%;
    }
    li.vision_txt01 {
        position: inherit;
        transform: translate(0%, 0%);
        -webkit-transform: translate(0%, 0%);
        -ms-transform: translate(0%, 0%);
        text-align: center;
    }
    li.vision_txt01 img {
        width: 60%;
    }
    /* MISSION Section Mobile */
    .mission_section {
        padding: 40px 20px;
    }
    .mission_container {
        flex-direction: column;
        gap: 40px;
    }
    .mission_image {
        flex: none;
        width: 100%;
        height: auto;
        aspect-ratio: 530 / 377;
    }
    .mission_content {
        gap: 30px;
    }
    .mission_heading {
        font-size: 24px;
        line-height: 1.5;
        letter-spacing: 1px;
    }
    .mission_text {
        font-size: 16px;
        line-height: 1.6;
    }
    .mission_btn {
        text-align: center;
    }
    /* Philosophy PVMV Section Mobile */
    .philosophy_pvmv {
        padding: 40px 20px;
    }
    .philosophy_heading_container {
        gap: 20px;
        margin-bottom: 40px;
    }
    .philosophy_heading_line {
        width: 30px;
    }
    .philosophy_heading {
        font-size: 20px;
    }
    .philosophy_items {
        gap: 60px;
    }
    .philosophy_item {
        flex-direction: column;
        gap: 30px;
    }
    .philosophy_label {
        width: 100%;
    }
    .philosophy_label_title {
        font-size: 32px;
    }
    .philosophy_label_sub {
        font-size: 14px;
    }
    /* .philosophy_description > p {
        font-size: 16px;
        line-height: 1.8;
    } */
    .philosophy_mission_title {
        font-size: 1.25rem;
        line-height: 1.6;
        font-weight: 500;
        margin-bottom: 15px;
        font-family: "游明朝", "Yu Mincho", YuMincho, "Hiragino Mincho ProN", "Hiragino Mincho Pro", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
        text-align: center;
    }
    .philosophy_mission_text {
        font-size: 16px;
        line-height: 1.8;
        margin-bottom: 15px;
    }
    .philosophy_step_indent {
        margin-left: 1em;
    }
    .philosophy_step_indent .philosophy_mission_text {
        margin-bottom: 0;
        display: flex;
    }
    .philosophy_step_indent .philosophy_mission_text .philosophy_step_label {
        flex-shrink: 0;
    }
    .philosophy_value_title {
        font-size: 1.25rem;
        line-height: 1.6;
        font-weight: 500;
        font-family: "游明朝", "Yu Mincho", YuMincho, "Hiragino Mincho ProN", "Hiragino Mincho Pro", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
        text-align: center;
    }
    .philosophy_value_text {
        font-size: 16px;
        line-height: 1.8;
    }
    .vision {
        background: url("../img/bg_vision100.jpg") no-repeat left top / cover;
        min-height: 100%;
        height: 100%;
        background-attachment: inherit;
    }
    .vision_body {
        width: 100%;
        height: auto;
        margin: 0 auto;
    }
    .vision_body li {
        width: 100%;
        letter-spacing: 0;
    }
    li.vision_body_sp05 {
        background: rgb(69, 183, 91);
        background: linear-gradient(
            90deg,
            rgba(69, 183, 91, 1) 0%,
            rgba(69, 183, 91, 0.6) 42%,
            rgba(69, 183, 91, 0.25252107679009106) 65%,
            rgba(0, 212, 255, 0) 100%
        );
        padding: 10px 0 10px 3em;
        border-top: 1px solid #ccc;
        border-bottom: 1px solid #ccc;
        display: table;
    }
    li.vision_body_sp04 {
        background: rgb(91, 194, 111);
        background: linear-gradient(
            90deg,
            rgba(91, 194, 111, 1) 0%,
            rgba(91, 194, 111, 0.6) 60%,
            rgba(91, 194, 111, 0.25) 70%,
            rgba(91, 194, 111, 0) 100%
        );
        padding: 10px 0 10px 3em;
        border-top: 1px solid #ccc;
        display: table;
    }
    li.vision_body_sp03 {
        background: rgb(123, 211, 140);
        background: linear-gradient(
            90deg,
            rgba(123, 211, 140, 1) 0%,
            rgba(123, 211, 140, 0.6) 56%,
            rgba(123, 211, 140, 0.2) 72%,
            rgba(91, 194, 111, 0) 100%
        );
        padding: 10px 0 10px 3em;
        border-top: 1px solid #ccc;
        display: table;
        position: relative;
    }
    li.vision_body_sp02 {
        background: rgb(151, 222, 164);
        background: linear-gradient(
            90deg,
            rgba(151, 222, 164, 1) 0%,
            rgba(198, 228, 204, 0.6) 70%,
            rgba(198, 228, 204, 0.2) 80%,
            rgba(171, 226, 182, 0) 100%
        );
        padding: 10px 0 10px 3em;
        border-top: 1px solid #ccc;
        display: table;
    }
    li.vision_body_sp01 {
        background: rgb(186, 224, 195);
        background: linear-gradient(
            90deg,
            rgba(186, 224, 195, 1) 0%,
            rgba(186, 224, 195, 0.6) 75%,
            rgba(186, 224, 195, 0.2) 95%,
            rgba(171, 226, 182, 0) 100%
        );
        padding: 10px 0 10px 3em;
        border-top: 1px solid #ccc;
        display: table;
    }
    li.vision_body_sp05 span,
    li.vision_body_sp04 span,
    li.vision_body_sp03 span,
    li.vision_body_sp02 span,
    li.vision_body_sp01 span {
        background-color: rgba(255, 255, 255, 0.7);
        width: 50px;
        height: 50px;
        border-radius: 50%;
        display: inline-block;
        text-align: center;
        padding-top: 12px;
        margin-right: 12px;
        color: #0b9f26;
    }
    li.vision_body_sp03 span {
        position: absolute;
        top: 23px;
    }
    li.vision_body_sp05 .in_vision,
    li.vision_body_sp04 .in_vision,
    li.vision_body_sp03 .in_vision,
    li.vision_body_sp02 .in_vision,
    li.vision_body_sp01 .in_vision {
        display: table-cell;
        vertical-align: middle;
        width: 100%;
        font-size: 15px;
    }
    li.vision_body_sp03 .in_vision {
        padding-left: 60px;
    }
    li.vision_body_sp06 {
        position: absolute;
        display: inline-block;
        width: 62px;
        top: 2%;
        right: 4em;
    }
    .vision_body li b {
        display: block;
        margin-left: 1em;
        color: #f28b11;
        /*font-weight: bold;*/
        font-size: 15px;
        text-shadow: 1px 1px 1px #fff;
    }
    h2.page_ttl {
        font-size: 30px;
        line-height: 1.5;
        font-weight: bold;
        margin: 24px auto;
        text-align: center;
        background-color: inherit;
        border-left: none;
    }
    h2.page_ttl span {
        display: block;
        font-size: 16px;
    }
    .bg_gray {
        background-color: #fff;
    }
    .size_s {
        width: 50%;
    }
    h3.ttl span {
        padding: 0 35px;
    }
    .btn-gradient-radius span {
        background: url("../img/icon_more.png") no-repeat right center / 10px;
        display: block;
        padding: 0 1em;
    }
    .btn-gradient-radius {
        padding: 6px 1.2em;
    }
    .formTable select {
        width: 90%;
    }
    table td.sp_layout {
        width: 80%;
    }
    figure.attention_pic figcaption {
        position: absolute;
        right: 20px;
        top: 20%;
    }
    .button-form input[type="submit"],
    .button-form input[type="button"],
    .button-form input[type="reset"] {
        padding: 0px 0;
    }
    .chart {
        margin: 30px auto 40px;
    }
    .spo-col-head {
        padding: 0px;
    }
    .spo-table {
        width: 100%;
        margin-bottom: 16px;
    }
    .spo-table th {
        width: 40%;
    }
    .spo-sns {
        width: 100%;
    }
    .spo-sns-icon {
        grid-template-columns: repeat(auto-fit, minmax(40px, 50px));
        gap: 16px 16px;
    }
    .spo-col {
        gap: 24px 24px;
        padding: 0;
    }
    .spo-col figcaption {
        font-size: 13px;
        text-align: left;
        margin-top: 4px;
    }
    ul.btn_link {
        padding: 1em 16px;
    }
    .totop {
        bottom: 71px;
    }
}
/*================================================
 *  spのみ向けデザイン(680px)
 ================================================*/
@media screen and (max-width: 680px) {
    .chart_box {
        width: 530px;
        height: auto;
        position: relative;
    }
    .chart_box p.chart_text {
        position: absolute;
        top: -30px;
        left: 20px;
    }
}
/*================================================
 *  spのみ向けデザイン(480px)
 ================================================*/
@media screen and (max-width: 480px) {
    .attention {
        background: url("../img/icon_attention.png") no-repeat left top / 18%;
        padding: 16px 0px 16px 0px;
    }
    p.btn-gradient-radius-s {
        padding: 0 0em;
        width: 60%;
        margin-top: 10px;
    }
    li.vision_body_sp01,
    li.vision_body_sp02,
    li.vision_body_sp03,
    li.vision_body_sp04,
    li.vision_body_sp05 {
        padding: 10px 0 10px 0.5em;
    }
    li.vision_body_sp06 {
        right: 10px;
    }
    .btn-gradient-radius-s span {
        text-align: center;
    }
    .chart_box {
        width: 360px;
        height: auto;
        position: relative;
    }
    .chart_box p.chart_text {
        position: absolute;
        top: -30px;
        left: 0px;
    }
    .f_Small {
        font-size: 80%;
        display: block;
        margin-left: 10px;
    }
    /* .fnav > ul:first-child li img {
        width: 38%;
        height: 70px;
    } */
}
/*================================================
 *  sp向けデザイン(iPhone5S)
 ================================================*/
@media screen and (max-width: 320px) {
    li.vision_body_sp01,
    li.vision_body_sp02,
    li.vision_body_sp03,
    li.vision_body_sp04,
    li.vision_body_sp05 {
        padding: 10px 0 10px 5px;
    }
    li.vision_body_sp01 span,
    li.vision_body_sp02 span,
    li.vision_body_sp03 span,
    li.vision_body_sp04 span,
    li.vision_body_sp05 span {
        margin-right: 0;
    }
    li.vision_body_sp06 {
        right: 1px;
    }
    li.vision_body_sp03 .in_vision {
        padding-left: 50px;
    }
    .btn-gradient-radius-s span {
        background: url("../img/icon_more.png") no-repeat right 1em center / 8px;
        display: block;
        padding: 0;
        text-align: center;
    }
    #navi h1 img {
        margin-top: 6px !important;
        height: 60px;
    }
    .chart_box {
        width: 300px;
        height: auto;
        position: relative;
    }
    .chart_box p.chart_text {
        position: absolute;
        top: -20px;
        left: 10px;
    }
    .btn-gra-blue span {
        padding: 8px;
        background: url("../img/icon_more.png") no-repeat 96% center / 10px;
    }
}
/*================================================
 *  clear
 ================================================*/
.clearfix:after {
    content: " ";
    display: block;
    clear: both;
    height: 0;
    visibility: hidden;
}
.clearfix {
    min-height: 1px;
}
* html .clearfix {
    height: 1px;
    /*\*/ /*/
	height: auto;
	overflow: hidden;
	/**/
}
.both {
    clear: both;
}
.inline_block {
    display: inline-block;
}
/*GWのお知らせ追加CSS*/
/*834以下の時にdisplay: noneにする*/
@media screen and (max-width: 834px) {
    .max834 {
        display: none;
    }
}
@media screen and (min-width: 1200px) {
    .information dt,
    .information dd {
        font-size: 85%;
        padding: 8px 0;
    }
}
/*================================================
 *  追記　2022.9.13 経営理念編集
 ================================================*/
.mrp_mean {
    text-align: center;
    font-size: 200%;
    margin: 3% 0;
}
@media screen and (max-width: 834px) {
    .mrp_mean {
        text-align: left;
    }
}
/*================================================
 *  追記　2022.9.15　TOPタイピング風コード
 ================================================*/
.jaticker_text {
    position: absolute;
    top: 55%;
    left: 50%;
    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    color: #fff;
    font-weight: 600;
    font-size: 5rem;
    white-space: nowrap;
    font-family: Helvetica, Arial, sans-serif;
}
.jaticker_text {
    opacity: 0;
    animation: appeare 0s ease 0.7s 1 normal forwards running;
}
@keyframes appeare {
    0% {
        opacity: 0;
    }
    70% {
        opacity: 0.5;
    }
    100% {
        opacity: 1;
    }
}
.jaticker_text span.ict {
    animation: color 3s forwards;
    font-weight: 700;
}
@keyframes color {
    0% {
        color: #fff;
    }
    50% {
        color: #00b31f;
    }
    100% {
        color: #00b31f;
    }
}
@media screen and (max-width: 1220px) {
    .jaticker_text {
        font-size: 3.5rem;
    }
}
@media screen and (max-width: 834px) {
    .jaticker_text {
        font-size: 2.5rem;
    }
}
@media screen and (max-width: 500px) {
    .jaticker_text {
        font-size: 1.5rem;
    }
}
.grecaptcha-badge {
    margin-bottom: 60px;
}

/* 新卒採用フローティングボタン（PC・SP） */
.floating-button {
    position: fixed;
    top: 50%;
    right: 0;
    z-index: 99999;
    padding: 20px 12px;
    background: linear-gradient(86.13deg, #7080F7 -3.42%, #3E9ED9 59.59%);
    /* background: linear-gradient(86.13deg, #2db85f -3.42%, #1b933b 59.59%); */
    box-shadow: -4px 0 10px rgba(0, 0, 0, 0.15);
    border-radius: 12px 0 0 12px;
    transform: translateY(-50%);
    writing-mode: vertical-rl;
    text-orientation: upright;
    transition: box-shadow 0.3s ease, filter 0.3s ease;
}
.floating-button a,
.floating-button-sp a {
    color: #fff;
    font-weight: bold;
    letter-spacing: 0.1em;
    text-decoration: none;
}
/* .floating-button:hover,
.floating-button-sp:hover {
    box-shadow:
        -4px 0 10px rgba(0, 0, 0, 0.15),
        0 0 12px rgba(27, 147, 59, 0.6);
    filter: brightness(1.05);
} */
.floating-button:hover,
.floating-button-sp:hover {
    box-shadow:
        -4px 0 10px rgba(0, 0, 0, 0.15),
        0 0 12px rgba(62, 158, 217, 0.6);
    filter: brightness(1.05);
}
.floating-button-sp {
    display: none;
}
@media screen and (max-width: 834px) {
    .floating-button {
        display: none;
    }
    .floating-button-sp {
        display: block;
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        z-index: 99999;
        padding: 14px 16px;
        background: linear-gradient(86.13deg, #7080F7 -3.42%, #3E9ED9 59.59%);
        /* background: linear-gradient(86.13deg, #2db85f -3.42%, #1b933b 59.59%); */
        text-align: center;
        box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.15);
        border-radius: 12px 12px 0 0;
        transition: box-shadow 0.3s ease, filter 0.3s ease;
    }
    .floating-button-sp a {
        display: block;
    }
    /* 20260218 フローティングボタンでcopyrightが隠れないようにする */
    body {
        padding-bottom: 56px;
    }
}

/*================================================
 *  追記　2026.6.18　会社概要テーブルに認定資格ロゴ追加
 ================================================*/
    /* ロゴサイズ・gap調整
    vw≦375pxの場合
        gap:38px,ロゴのheight:76pxで固定
    375px<vw<455pxの場合
        gap, ロゴのheight自動調整
    vw≧455pxの場合
        gap:50px,ロゴのheight:100pxで固定
    */
 .license {
    display: flex;
    flex-wrap: wrap;
    gap: clamp(2.375rem, -1.141rem + 15vw, 3.125rem);
    margin: 15px 0;
 }
 .license_logo {
    height: clamp(4.75rem, -2.281rem + 30vw, 6.25rem);
    width: auto;
 }
