﻿@charset "utf-8";

/* -----------------------------------------------------------
    reset
-------------------------------------------------------------- */
html {
    overflow-x: auto;
    overflow-y: scroll;
    font-size: 62.5%;
}

* {
    box-sizing: border-box;
}

h1, h2, h3, h4, h5, h6, p, ul, ol, li, div, dl, dt, dd, form, img, hr, table, tr, td, br, em, figure {
    margin: 0;
    padding: 0;
    border: none;
    font-style: normal;
}

h1, h2, h3, h4, h5, h6 {
    font-weight: 500;
    font-size: 1.6rem;
}

ul, ol, dl {
    list-style: none;
}

img {
    vertical-align: bottom;
}

@media screen and (max-width: 768px) {
    img {
        width: auto;
        max-width: 100%;
        height: auto;
        margin: 0 auto;
    }
}

:root {
	--black: #333;
	--gray: #595656;
	--gray01: #CAD0D5;
	--bg-gray: #F4F6F8;
	--gold: #BAA86F;
	--blue: #1673b1;
	--blue01: #F2F9FB;
	--bg-blue: #F2F8F9;
	--yellow:#FDD23C;
	--yellow01:#FFEFB8;
	--bg-yellow:#f7f7ee;
	--green: #0FAB81;
	--bg-green: #f7fff7;
	--orange: #FF8A22;
	--bg-orange: #fffbf7;
	--purple: #7154EE;
	--bg-purple: #f8f7ff;
	--pink: #F65555;
	--bg-pink: #fff4f4;
	--line: #06C755;
	--cv-contact: #FF8A22;
	--tell: #1673b1;
	--lato: "Lato", sans-serif;
	--cat: "Catamaran", sans-serif;
	--pop: "Poppins", sans-serif;
}

/* -----------------------------------------------------------
    body
-------------------------------------------------------------- */
body {
    margin: 0 auto;
    padding: 0;
    line-height: 1;
    font-size: 1.6rem;
    color: #333;
    font-family: 'Lato',"Noto Sans JP", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "游ゴシック", YuGothic, "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
    font-weight: 500;
    background: #FFF;
    -webkit-text-size-adjust: 100%;
    word-break: break-all;
    min-width: 1240px;
}

p {
    line-height: 2;
    /*letter-spacing: .05em;*/
}

#wrapper {
    width: 100%;
    height: 100%;
    margin: 0 auto;
    overflow: hidden;
    padding: 100px 0 0 0;
}

@media screen and (max-width: 768px) {
    body {
        min-width: inherit;
    }

    body.open_fix {
        position: relative;
        height: 100vh;
        width: 100%;
        overflow: hidden;
    }

    #wrapper {
        min-width: 100%;
        padding: 60px 0 0 0;
    }

    .drawer_open #main {
        overflow: hidden;
        opacity: 0 !important;
    }

    .drawer_open #wrapper {
        padding: 0;
        height: 100%;
    }
}

/* -----------------------------------------------------------
    link
-------------------------------------------------------------- */
a:link, a:visited {
    color: var(--black);
    text-decoration: none;
    -webkit-transition: 0.5s;
    transition: 0.5s;
}

a:focus {
    outline: none;
}

::-moz-selection {
    background: var(--main);
    color: #fff;
}

@media screen and (max-width: 768px) {
    a:link, a:visited {
        -webkit-transition: 0;
        transition: 0;
    }

    a[href^="tel:"] {
        color: var(--link);
        /*text-decoration: underline;*/
    }
}

/* PCのみ */
@media(min-width: 769px) {
    a:hover {
        color: var(--link);
        text-decoration: none;
    }

    a[href^="tel:"] {
        pointer-events: none; /*電話発信を無効にする*/
    }
}

/* -----------------------------------------------------------
    clear
-------------------------------------------------------------- */
.clear {
    height: 0;
    margin: 0;
    padding: 0;
    line-height: 0;
    clear: both;
    font-size: 0;
}

.clearfix:after {
    content: ".";
    display: block;
    height: 0;
    clear: both;
    visibility: hidden;
}

.clearfix {
    display: inline-block;
}

/* Hides from IE-mac \*/
* html .clearfix {
    zoom: 1;
}

.clearfix {
    display: block;
}

/* End hide from IE-mac */
/* -----------------------------------------------------------
    Frame
-------------------------------------------------------------- */
.inner {
    width: 1200px;
    margin: 0 auto;
}

.inner0 {
    width: 1000px;
    margin: 0 auto;
}

.inner1 {
    width: 1100px;
    margin: 0 auto;
}

.inner3 {
    width: 1300px;
    margin: 0 auto;
}

@media screen and (min-width: 769px) and (max-width: 1400px) {
    .inner3 {
        width: 1200px;
        margin: 0 auto;
    }
}

@media screen and (max-width: 768px) {
    .inner, .inner0, .inner1, .inner3 {
        width: 100%;
        margin: 0 auto;
    }

    .wrap10 {
        padding: 0 10px;
    }

    .wrap15 {
        padding: 0 15px;
    }

    .wrap20 {
        padding: 0 20px;
    }

    .wrap30 {
        padding: 0 30px;
    }
}

/* -----------------------------------------------------------
    header
-------------------------------------------------------------- */
.header {
    top: 0;
    left: 0;
    position: absolute;
    width: 100%;
    z-index: 30;
    min-width: 1240px;
    /*background: #fff;*/
    height: 100px;
}

header.header_active {
    top: -100px;
    transition: all .5s;
}

header.header_active2 {
    position: fixed;
    top: 0 !important;
    height: 100px;
    background: rgba(255, 255, 255, 0.9);
    backdrop-filter: blur(10px);
}

#pc_head {
    min-width: 100%;
    height: 100%;
}

#sp_head {
    display: none;
}

#pc_head .header_wrap {
    align-items: center;
    display: flex;
    justify-content: space-between;
    position: relative;
    margin: 0 auto;
}

.header_logo {
    display: block;
    position: absolute;
    top: 50%;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
    left: 30px;
}

.head_logo a {
    display: block;
    width: fit-content;
}

.header_logo img {
    display: block;
    width: 250px;
}

header.header_active2 .header_logo img {
    width: 250px;
}

.header_logo .s-name{
	font-size: 1.1rem;
	justify-content: center;
	position: relative;
	display: flex;
	padding: 3px 0 0;
}

.h_logo_top {
    display: none !important;
}

/*----------------------------header_nav_top*/
.header_nav_wrap {
    display: flex;
    margin: 0 0 0 auto;
    height: 100%;
}

.header_nav_wrap .header_nav {
    display: flex;
    flex-direction: column;
    gap: 8px;
    transition: .4s all;
    justify-content: space-between;
}

.header_nav_top {
    align-items: center;
    display: flex;
    gap: 10px;
    justify-content: flex-end;
	padding: 20px 0 0;
}

.header_nav_sub {
    align-items: center;
    display: flex;
    flex-shrink: 0;
	margin: 0 15px 0 0;
}

.header_nav_sub a {
    display: block;
    padding: 0 15px;
    position: relative;
}

/*.header_nav_sub li a::before {
    content: "";
    background: var(--cmnblack);
    height: 15px;
    position: absolute;
    top: 50%;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
    right: 0;
    width: 1px;
}*/

.header_nav_sub li:last-child a::before {
    display: none;
}

.header_nav_sub span {
    color: var(--cmnblack);
    font-size: 1.3rem;
    letter-spacing: .05em;
}

.header_nav_sub .seminar-link a::after {
    content: "\f08e";
    font-family: 'FontAwesome';
    font-size: 1.4rem;
    font-weight: normal;
    color: var(--cmnblack);
    padding: 0 0 0 5px;
}

.header_nav_cv {
    align-items: center;
    display: flex;
}

.header_nav_tel {
    align-items: center;
    color: var(--cmnblack);
    display: flex;
    flex-direction: column;
    gap: 5px;
    margin: 0 20px 0 0;
}

.header_nav_tel p {
    line-height: 1 !important;
}

.header_nav_tel .num {
    align-items: center;
    font: 700 2.2rem /1 var(--en);
    display: flex;
    letter-spacing: .05em;
    position: relative;
    justify-content: center;
    gap: 3px;
}

.header_nav_tel .num::before {
    content: "\f879";
    font: 900 1.8rem/1 var(--webicon);
}

.header_nav_tel .timewrap {
    font-size: 1.2rem;
    letter-spacing: .02em;
}

.header_nav_tel .time {
    font-size: 1.3rem;
    padding: 0 5px;
}


.head-nofix header.header_active2 {
    position: absolute;
}

/*----------------------------header_nav_list*/
.header_nav_list {
    align-items: center;
    display: flex;
    color: var(--black);
    font-size: 1.7rem;
    justify-content: flex-end;
    gap: 10px;
    margin: 0 25px 0 0;
}

header.header_active .header_nav_list {
    font-size: 1.7rem;
}

.header_nav_item {
    font-weight: bold;
    transition: .4s all;
    /*padding: 0 15px;*/
}

.header_nav_item:hover .link_line {
    color: var(--link) !important;
}

.header_nav_list .header_nav_item:last-child {
    /*padding-right: 5px;*/
}

.header_nav_link {
    display: block;
    padding: 10px 15px 20px;
    position: relative;
    z-index: 6;
}

.header_nav_list .link_line {
    color: #1d170a;
}

.header_nav_wrap a:hover .link_line {
    color: var(--link);
}

@keyframes btngrad {
    0% {
        background-position: 0% 50%
    }

    50% {
        background-position: 100% 50%
    }

    100% {
        background-position: 0% 50%
    }
}

/*モーダル*/
.header_nav_wrap .top-nav a{
    background: var(--cv-contact);
    color: #fff;
	display: flex;
	width: 270px;
    height: 70px;
	align-items: center;
    justify-content: center;
	font-size: 1.6rem;
	font-weight: bold;
	margin: 15px 20px 0 0;
	position: relative;
	overflow: hidden;
	border-radius: 50px;
	gap: 5px;
	/*box-shadow: 0 5px 20px rgba(0, 0, 0, 0.1);*/
}
.header_nav_wrap .top-nav a::before {
    content: '';
    background: #ef7d17;
    bottom: 0;
    position: absolute;
    top: 0;
    transform-origin: left bottom;
    transform: scale(0, 1);
    transition: all .3s ease-in;
    right: 0;
    left: 0;
}

.header_nav_wrap .top-nav a:hover::before {
    transform: scale(1, 1);
}

.header_nav_wrap .top-nav a p {
	line-height: 1;
	text-align: center;
	position: relative;
	z-index: 1;
}
.header_nav_wrap .top-nav a .icon-flex{
	display: flex;
	gap: 5px;
}

.header_nav_wrap .top-nav a .icon {
    width: 35px;
    height: 35px;
    border-radius: 50%;
    background-color: #fff;
    line-height: 35px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.modal-open {
	cursor: pointer;
}

.modal-box {
	display: none;
	width: 100%;
	max-width: 1300px;
	margin: 0;
	padding: 60px 70px 60px;
	background: var(--bg-blue);
	box-sizing: border-box;
	position: fixed;
	z-index: 9999;
	min-width: 1200px;
}

.modal-close {
	display: block;
	width: 40px;
	line-height: 40px;
	background: #898989;
	color: #fff;
	font-size: 2.0rem;
	text-align: center;
	cursor: pointer;
	position: absolute;
	top: 0;
	right: 0;
}

.modal-close:hover {
	color: #fff;
}

.modal-close i {
	line-height: 44px;
	vertical-align: bottom;
}

.modal-bg {
	display: none;
	width: 100%;
	height: 120%;
	background-color: rgba(0, 0, 0, 0.75);
	position: fixed;
	top: 0;
	left: 0;
	z-index: 1000;
}

.modal-box .top-catch {
	display: block;
    width: 800px;
    height: 65px;
    line-height: 65px;
    border-radius: 100px;
    background-color: #fff;
    text-align: center;
    font-size: 2.6rem;
    margin: 0 auto;
}

.modal-box .cv-list {
	display: flex;
	justify-content: space-between;
	margin: 50px auto 0;
}

.modal-box .cv-list li {
	width: 331px;
	position: relative;
	text-align: center;
}

.modal-box .cv-list li:not(:last-of-type)::before {
	position: absolute;
	content: "";
	width: 1px;
	height: 100%;
	background-color: #D1D1D1;
	right: -35px;
}

.modal-box .cv-list li .sub-catch {
	font-size: 1.6rem;
    font-weight: bold;
    position: relative;
    display: inline-block;
    padding: 0px 30px;
}

.modal-box .cv-list li .sub-catch::before,
.modal-box .cv-list li .sub-catch::after {    
	content: '';
    position: absolute;
    top: 50%;
    display: inline-block;
    width: 20px;
    height: 2px;
    background-color: var(--main);
    -webkit-transform: rotate(60deg);
    transform: rotate(60deg);
}

.modal-box .cv-list li .sub-catch::before {
	left:0;
}

.modal-box .cv-list li .sub-catch::after {
	right:0;
    -webkit-transform: rotate(-60deg);
    transform: rotate(-60deg);
}

.modal-box .cv-list li.cv-tel .sub-catch,
.modal-box .cv-list li.cv-tel .sub-catch::before,
.modal-box .cv-list li.cv-tel .sub-catch::after{
	color: var(--tell);
}

.modal-box .cv-list li.cv-mail .sub-catch{
	color: var(--cv-contact);
	
}
.modal-box .cv-list li.cv-mail .sub-catch::before,
.modal-box .cv-list li.cv-mail .sub-catch::after{
    background-color: var(--cv-contact);
}


.modal-box .cv-list li.cv-line .sub-catch{
	color: var(--line);
	
}
.modal-box .cv-list li.cv-line .sub-catch::before,
.modal-box .cv-list li.cv-line .sub-catch::after{
    background-color: var(--line);
}

.modal-box .cv-list li .cv-ttl {
	font-size: 2.8rem;
    font-weight: bold;
    text-align: center;
    line-height: 1.4;
    margin: 15px 0 15px 0;
}

.modal-box .cv-list li.cv-tel .cv-ttl {
    margin: 15px 0 25px 0;
}

.modal-box .cv-list li .cv-ttl span {
	font-size: 2.2rem;
	display: block;
}

.modal-box .cv-list .cv-tel a {
	font: 600 3.4rem / 1.2 var(--lato);
    position: relative;
    padding: 0 0 0 45px;
    letter-spacing: .01em;
	color: var(--blue);
}

.modal-box .cv-list .cv-tel a::before {    
	content: "";
    background-position: center;
    background-size: contain;
    background-repeat: no-repeat;
    left: 0;
    position: absolute;
    top: 50%;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
    background-image: url(../img/icon-cv-blue-tel.svg);
    width: 35px;
    height: 35px;
}

.modal-box .cv-list .cv-tel .txt {
	font-size: 1.4rem;
	width: 100%;
}

.modal-box .cv-list a.cv-btn {
	transition: all 0.3s ease-out;
    position: relative;
    border-radius: 50px;
    background: var(--cv-contact);
    width: 300px;
    min-height: 75px;
	margin: 0 auto;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    color: #fff;
    font-weight: 600;
    font-size: 2.0rem;
    box-shadow: 0 0.5rem 2rem rgba(0, 0, 0, 0.2);
    overflow: hidden;
}

.modal-box .cv-list .cv-line a.cv-btn {
    background: var(--line);
}

.modal-box .cv-list .cv-mail a.cv-btn::before {
    content: '';
    background: #ef7d17;
    bottom: 0;
    position: absolute;
    top: 0;
    transform-origin: left bottom;
    transform: scale(0, 1);
    transition: all .3s ease-in;
    right: 0;
    left: 0;
}

.modal-box .cv-list .cv-line a.cv-btn::before {
    content: '';
	background: #03AB48;
    bottom: 0;
    position: absolute;
    top: 0;
    transform-origin: left bottom;
    transform: scale(0, 1);
    transition: all .3s ease-in;
    right: 0;
    left: 0;
}

.modal-box .cv-list .cv-mail a.cv-btn:hover::before,
.modal-box .cv-list .cv-line a.cv-btn:hover::before{
    transform: scale(1, 1);
}

.modal-box .cv-list .cv-mail i.icon-mail {
    margin-right: 10px;
    background: url(../img/icon-mail.png) center / cover, no-repeat;
    aspect-ratio: 90 / 90;
    width: 45px;
    position: relative;
    right: -20px;
}


.modal-box .cv-list .cv-line i.icon-line {
    margin-right: 10px;
    background: url(../img/icon-line.png) center / cover, no-repeat;
    aspect-ratio: 90 / 90;
    width: 45px;
    position: relative;
    right: -20px;
}

.modal-box .cv-list .ft_cv_mail_txt {
    color: #fff;
    font-size: 2rem;
    font-weight: bold;
    padding: 0 20px;
    position: relative;
    line-height: 1.4;
    z-index: 2;
}

@media screen and (max-width: 768px) {
    #pc_head {
        display: none;
    }

    #sp_head {
        display: block;
    }

    #sp_head .sp_head_bg {
        background: transparent;
        backdrop-filter: none;
        display: flex;
        height: 60px;
        position: relative;
        width: 100%;
        transition: all .2s;
        z-index: 300;
        justify-content: space-between;
        padding: 15px 0 0 15px;
    }

    header.header_active2, header.header_active2 #sp_head .sp_head_bg {
        background: none;
    }

    header.header_active2 #sp_head .logo_area, header.header_active2 #sp_head .sp_head_cv {
        display: none;
    }

    .drawer_open header.header_active2 #sp_head .sp_head_bg {
        background: #fff;
    }

    .drawer_open header.header_active2 #sp_head .sp_head_cv {
        display: block;
    }

    .drawer_open #sp_head .sp_head_bg {
        position: fixed;
        background: #fff;
        height: 80px;
    }

    .header {
        height: 63px;
        min-width: 100%;
        top: 0;
        background: none;
    }

    .drawer_open .header {
        top: 0;
        position: fixed;
    }

    header.header_active2 {
        backdrop-filter: none;
        height: auto;
    }

    #sp_head .logo_area {
        position: relative;
        z-index: 300;
		line-height: 1;
    }

    .drawer_open header.header_active2 #sp_head .logo_area {
        /*margin: 7px 0 0;*/
        display: block;
    }

    #sp_head .logo_area a {
        width: 185px;
        align-items: center;
        display: block;
    }

    #sp_head .logo_area a .s-name{
		font-size: 1.0rem;
        justify-content: center;
        position: relative;
        display: flex;
		padding: 3px 0 0;
    }

    #sp_head .logo_area img {
        width: 100%;
        /*height: 19.92px;*/
    }

    #sp_head .sp_head_cv {
        position: absolute;
        right: 70px;
    }

    #sp_head .sp_gnav_search {
        padding: 15px 10px 15px 33px;
        line-height: 1;
        color: #333;
    }

    #sp_head .sp_gnav_search::before {
        content: "\f002";
        font: 900 1.7rem/1 var(--webicon);
        margin: 0 3px 0 0;
        position: absolute;
        top: 50%;
        -webkit-transform: translateY(-50%);
        transform: translateY(-50%);
        left: 10px;
    }

    #sp_head [class^="sp_head_cv_"] {
        width: 50px;
        height: 50px;
    }

    #sp_head [class^="sp_head_cv_"] a {
        align-items: center;
        display: flex;
        justify-content: center;
        width: 100%;
        height: 100%;
        position: relative;
    }

    #sp_head [class^="sp_head_cv_"] a::before {
        font: 900 2.5rem/1 var(--webicon);
        position: absolute;
        top: 50%;
        left: 50%;
        -webkit-transform: translate(-50%, -50%);
        transform: translate(-50%, -50%);
    }

    #sp_head .sp_head_cv_tel a::before {
        content: "\f095";
    }

    #sp_head .sp_head_cv_mail a::before {
        content: "\f0e0";
    }

    #sp_head .sp_head_links {
        margin-right: 70px;
    }

    header.header_active2 #sp_head .sp_head_links {
        display: none;
    }

    .drawer_open header.header_active2 #sp_head .sp_head_links {
        display: block;
        margin: 5px 70px 0 auto;
    }

    #sp_head .sp_head_links a {
        animation: btngrad 12s ease infinite;
        color: #fff;
        background: linear-gradient(80deg, #f68142 0, #ecce44 30%, #efa455 100%) fixed;
        background-size: 800% 800%;
        border-radius: 60px;
        display: block;
        font-size: 1.5rem;
        font-weight: bold;
        padding: 16px 28px 18px 48px;
        position: relative;
        text-align: center;
    }

    header.header_active2 #sp_head .sp_head_links a {
        padding: 13px 28px 15px 48px
    }

    #sp_head .sp_head_links a::before, #sp_head .sp_head_links a::after {
        position: absolute;
        top: 50%;
        -webkit-transform: translateY(-50%);
        transform: translateY(-50%);
    }

    #sp_head .sp_head_links a::before {
        content: "\f105";
        color: #fff;
        font: 900 1.5rem/1 var(--webicon);
        right: 10px;
    }

    #sp_head .sp_head_links a::after {
        align-items: center;
        border-radius: 50%;
        background: #fff;
        border: 3px solid #eec344;
        content: "\f12a";
        color: #f68142;
        display: flex;
        font: 900 1.3rem/1 var(--webicon);
        left: 15px;
        width: 21px;
        height: 21px;
        justify-content: center;
    }

    /*----------------------------sp_s_nav*/
    .sp_s_nav {
        display: flex;
        background: #96876d;
        width: 100%;
        margin: 54px 0 0;
    }

    .form_page .sp_s_nav {
        margin: 0;
    }

    .sp_s_nav li {
        width: 50%;
    }

    .sp_s_nav li:first-of-type {
        border-right: 1px solid #544c3e;
    }

    .sp_s_nav li:last-of-type {
        border-left: 1px solid #c0ae8e;
    }

    .sp_s_nav a {
        color: #fff;
        display: block;
        font-size: 1.6rem;
        text-align: center;
        height: 42px;
        line-height: 42px;
    }
	
	/*modal*/
	.modal-box {
		max-width: inherit;
		min-width: inherit;
	}
	
}

@media screen and (max-width: 360px) {
    #sp_head .sp_head_links a {
        min-width: 86px !important;
    }
}

/* -----------------------------------------------------------
    メガメニュー
-------------------------------------------------------------- */
.header_megamenu {
    align-items: center;
    box-shadow: 0 15px 15px 0px rgba(0, 0, 0, .025);
	border-radius: 0 0 10px 10px;
    background: var(--blue);
    display: flex;
    position: absolute;
    pointer-events: auto;
    justify-content: center;
    min-width: 1200px;
    width: 100%;
    top: 100%;
    transform: translateY(-50px);
    transition-duration: .5s;
    transition-timing-function: cubic-bezier(.215, .61, .355, 1);
    visibility: hidden;
    left: 0;
    right: 0;
    opacity: 0;
    overflow: hidden;
    z-index: -1;
}

.header_megamenu.industry {
    background: var(--blue);
}

#header_mega_1:hover .header_nav_link,
#header_mega_2:hover .header_nav_link{
	color: var(--link);
}

.header_nav_link::after {
    bottom: 15px;
    background: var(--link);
    content: '';
    display: inline-block;
    height: 1px;
    left: 0;
    margin: auto;
    position: absolute;
    /* right: 0; */
    -webkit-transition: all 0.3s;
    transition: all 0.4s;
    width: 0;
}

#header_mega_1:hover .header_nav_link::after,
#header_mega_2:hover .header_nav_link::after {
    width: 100%;
    display: inline-block;
}

#header_mega_1:hover .header_megamenu, #header_mega_2:hover .header_megamenu {
    opacity: 1;
    pointer-events: all;
    transform: translateY(0);
    visibility: visible;
    z-index: 2;
}

.header_mega_inner {
    display: flex;
    min-width: 1240px;
    max-width: 1300px;
    padding: 30px 0 30px;
    width: 100%;
}

#header_mega_2 .header_mega_inner {
    justify-content: space-between;
}

/*header_mega1---------------------------*/
.header_mega1_list {
    align-items: center;
    display: flex;
    gap: 25px;
    justify-content: center;
    width: 100%;
	padding: 0 50px;
}

.header_mega1_item {
    display: flex;
    flex-wrap: wrap;
    margin: 0;
    gap: 15px;
    justify-content: center;
    width: calc((100% - 50px) / 3);
	background: #fff;
    border-radius: 5px;
    z-index: 2;
}

.header_mega1_item a {
    align-items: center;
    color: var(--cmnblack) !important;
    display: flex;
    font-size: 2rem;
    gap: 20px;
    line-height: 1.5;
    position: relative;
    transition: all .5s;
    border-radius: 5px;
    height: 100%;
    width: 100%;
	box-shadow: 7px 7px 15px -10px rgb(0 0 0 / 10%);
}


.header_mega1_item a:hover {
	box-shadow:none;
}

.header_mega1_img {
    background-position: center center;
    background-repeat: no-repeat;
    background-size: 100%;
    flex-shrink: 0;
    width: 200px;
    height: 150px;
	border-radius: 5px 0px 0px 5px;
    overflow: hidden;
    transition: .5s;
}

.header_mega1_img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: 1s cubic-bezier(0.33, 1, 0.68, 1);
}

.header_mega1_item a:hover img {
    transform: scale(1.1);
}

/*header_mega2---------------------------*/
.header_mega2_subttl {
    border-bottom-width: 2px;
    border-bottom-style: solid;
    font-weight: bold;
    font-size: 2.2rem;
    line-height: 1;
    letter-spacing: 0;
    text-align: center;
    margin-bottom: 20px;
    padding-bottom: 10px;
}
.header_mega2_box {
	width: 1100px;
    position: relative;
    margin: 0 auto;
}

.header_mega2_list {
    display: flex;
    gap: 0 12px;
    flex-wrap: wrap;
}

[class^="header_mega2_item_"] {
    width: calc((100% - 12px * 5) / 5);
}

[class^="header_mega2_item_"] a {
    align-items: center;
	background: #fff;
    color: var(--cmnblack);
    display: flex;
    font-size: 1.6rem;
	text-align: center;
	line-height: 1.4;
    flex-direction: column;
    gap: 5px;
    height: auto;
    position: relative;
	padding: 10px;
    border-radius: 5px;
    box-shadow: 7px 7px 15px -10px rgb(0 0 0 / 10%);
}

[class^="header_mega2_item_"] a:hover {
	box-shadow:none;
}


.header_mega2_img {
    flex-shrink: 0;
    width: 100%;
    height: 150px;
	margin: 0 0 5px;
    overflow: hidden;
}

.header_mega2_img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: 1s cubic-bezier(0.33, 1, 0.68, 1);
}

[class^="header_mega2_item_"] a:hover img {
    transform: scale(1.15);
}

/* -------------------------------------------------
   共通 検索エリア
---------------------------------------------------- */
#header_search.is-search-show .header_search_head {
    opacity: 1;
    transform: translate(-50%, 0);
    transition: .5s cubic-bezier(.43, .05, .17, 1);
}

#header_search .header_search_head {
    background: #fff;
    padding: 0 40px 40px 40px;
    width: 100vw;
    min-width: 1200px;
    z-index: 9999999999999999;
    left: 50%;
    transform: translate(-50%, -100%);
    transition: .5s cubic-bezier(.43, .05, .17, 1);
    opacity: 0;
    position: fixed;
    top: 0;
    height: 100vh;
    overflow-y: scroll;
    backdrop-filter: blur(50px);
}

#header_search .header_search_body {
    margin: 0 auto;
    max-width: 1300px;
    width: 100%;
    position: relative;
    padding: 15px 0 0 0;
}

#header_search .header_search_otherlink {
    position: absolute;
    left: 0;
    top: 10px;
    z-index: 3;
}

#header_search .header_search_otherlink a {
    display: flex;
    justify-content: center;
    align-items: center;
    color: #f0695b;
    padding: 15px 25px 15px 15px;
    position: relative;
    background: rgba(255, 255, 255, .9);
    border: 1px solid #ff7f71;
}

#header_search .header_search_otherlink a:hover {
    background: #ff7f71;
    color: #fff;
}

#header_search .header_search_otherlink a::before {
    content: "\f054";
    font: 900 1.3rem/1 var(--webicon);
    position: absolute;
    top: 50%;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
    right: 6px;
}

#header_search .header_search_otherlink a:hover::before {
    color: #fff;
}

#header_search .header_search_ttl {
    font-size: 2.8rem;
    text-align: center;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 0 0 0 120px;
    position: relative;
    z-index: 2;
    gap: 7px;
}

#header_search .header_search_ttl small {
    font-size: 1.5rem;
    color: #888;
    margin: 5px 0 0;
}

#header_search .header_search_ttl i {
    position: relative;
    font-size: 2.6rem;
    margin: 5px 0 0;
}

#header_search .header_search_ttl span {
    position: relative;
    font-weight: bold;
}

#header_search .header_search_close {
    align-items: center;
    cursor: pointer;
    border: #dfdfdf 1px solid;
    display: flex;
    position: absolute;
    right: 0;
    top: 10px;
    width: fit-content;
    transition: .5s;
    z-index: 50;
    justify-content: center;
    padding: 13px 18px;
    gap: 5px;
}

#header_search .header_search_close:hover {
    background: #999;
    color: #fff;
}

#header_search .header_search_close:hover i, #header_search .header_search_close:hover span {
    color: #fff;
}

#header_search .header_search_close i {
    color: #aaa;
    font-size: 2rem;
    transition: .5s;
}

#header_search .header_search_close span {
    color: #aaa;
    font: 600 2.3rem / 1 var(--en);
    letter-spacing: .03em;
    transition: .5s;
}

#header_search #topforms {
    margin: 15px auto 0;
}

#header_search .header_search_box {
    width: 100%;
}

/*--header_search_tab----------------------*/
#header_search .header_search_tab {
    display: flex;
}

#header_search .header_search_tab .cate_tab {
    align-items: center;
    background: #f4f4f4;
    cursor: pointer;
    display: flex;
    flex: 1;
    font-size: 2rem;
    font-weight: bold;
    height: 45px;
    padding: 10px 10px 15px;
    position: relative;
    text-align: center;
    justify-content: center;
}

#header_search .header_search_tab .cate_tab.search_tab_current {
    background: #b6cbe6;
    color: #fff;
}

/*--header_search_list----------------------*/
#header_search .header_search_list_wrap {
    margin: 20px 0 0;
    display: flex;
    gap: 20px;
    flex-direction: column;
}

#header_search .header_search_half1 {
    /*display: none;*/
    width: 100%;
    flex-shrink: 0;
}

#header_search .header_search_half2 {
    width: 100%;
    padding: 30px 0 0;
    border-top: 1px solid #ccc;
    margin: 15px 0 0;
    display: flex;
    gap: 15px;
    flex-shrink: 0;
    min-height: 70px;
}

@media screen and (min-width: 769px) and (max-width: 1500px) {
    #header_search .header_search_half2 {
        padding: 20px 0 0;
        margin: 10px 0 0;
    }
}

#header_search .header_search_half2 .function_ttl {
    font-size: 2.2rem;
    font-weight: bold;
    line-height: 1;
    margin: 6px 0 0;
    color: #aaa;
    flex-shrink: 0;
}

#header_search .header_search_item {
    position: relative;
    display: flex;
    align-items: center;
    gap: 15px;
}

#header_search .header_search_list .header_search_item:not(:first-of-type) {
    margin-top: 30px;
}

@media screen and (min-width: 769px) and (max-width: 1500px) {
    #header_search .header_search_list .header_search_item:not(:first-of-type) {
        margin-top: 20px;
    }
}

#header_search .header_search_subttl {
    width: 45px;
    position: relative;
}

#header_search .header_search_subttl::before {
    background-position: center;
    background-size: contain;
    background-repeat: no-repeat;
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    width: 40px;
    height: 32px;
}

#header_search .header_search_list .header_search_item:first-of-type .header_search_subttl::before {
    background-image: url(../img/cmn_search_kitchen.svg);
}

#header_search .header_search_list .header_search_item:nth-of-type(2) .header_search_subttl::before {
    background-image: url(../img/cmn_search_wet.svg);
}

#header_search .header_search_list .header_search_item:nth-of-type(3) .header_search_subttl::before {
    background-image: url(../img/cmn_search_other.svg);
}

#header_search .header_search_cate {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    flex-grow: 1;
    gap: 5px;
}

#header_search .header_search_cate .cate_btn {
    flex-shrink: 0;
    display: flex;
    position: relative;
    width: calc((100% - 60px) / 6);
}

#header_search .header_search_cate .cate_btn:hover label {
    color: var(--link);
    border: var(--link) 1px solid;
    background: #fff7f1;
    font-weight: bold;
    transition: .3s;
}

#header_search .header_search_cate input {
    visibility: hidden;
    width: 0;
    height: 0;
    padding: 0;
    margin: 0;
}

#header_search .header_search_cate input:checked + label {
    color: var(--link);
    border: var(--link) 1px solid;
    background: #fff7f1;
    font-weight: bold;
}

#header_search .header_search_cate label {
    align-items: center;
    background: rgba(255, 255, 255, .8);
    border: 1px solid #fff;
    cursor: pointer;
    color: #333;
    display: flex;
    position: relative;
    gap: 10px;
    width: 100%;
    line-height: 1.2;
    padding: 0 10px 0 0;
    z-index: 2;
    transition: .3s;
}

#header_search .header_search_cate .product_thumb {
    flex-shrink: 0;
    width: 85px;
    height: 60px;
}

#header_search .header_search_cate .product_thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

#header_search .header_search_function {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

#header_search .function_btn input {
    visibility: hidden;
    width: 0;
    height: 0;
    padding: 0;
    margin: 0;
}

#header_search .function_btn label {
    background: rgba(255, 255, 255, .8);
    border: 1px solid #333;
    color: #333;
    display: inline-block;
    pointer-events: auto;
    padding: 10px 8px 11px;
    font-size: 1.5rem;
    cursor: pointer;
    min-width: 70px;
    text-align: center;
    transition: .3s;
}

#header_search .function_btn:hover label {
    color: var(--link);
    border: var(--link) 1px solid;
    background: #fff7f1;
}

#header_search .function_btn input:checked + label {
    color: var(--link);
    border-color: var(--link);
    background: #fff7f1;
    font-weight: bold;
}

/*--header_search_select----------------------*/
#header_search .header_search_select {
    display: flex;
    flex-wrap: wrap;
    padding: 15px 0 0 20px;
}

#header_search .select_output, #header_search .select_ttl {
    line-height: 1.3;
}

#header_search .select_ttl {
    font-weight: bold;
    color: #aaa;
    letter-spacing: 0;
}

/*--header_search_bottom----------------------*/
#header_search .header_search_bottom {
    margin: 30px 0 0 0;
    padding: 30px 0 0;
    border-top: 1px solid #ccc;
}

@media screen and (min-width: 769px) and (max-width: 1500px) {
    #header_search .header_search_bottom {
        margin: 20px 0 0 0;
        padding: 20px 0 0;
    }
}

#header_search .header_search_keyword {
    align-items: center;
    display: flex;
    gap: 17px;
    width: 50%;
    float: left;
}

#header_search .header_search_keyword .keyword_ttl {
    font-size: 2.2rem;
    font-weight: bold;
    color: #aaa;
}

#header_search .header_search_keyword input {
    appearance: none;
    border: 1px solid #333;
    font-weight: 500;
    font-size: 1.6rem;
    font-family: 'Noto Sans JP', "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "游ゴシック", YuGothic, "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
    flex-grow: 1;
    width: calc(100% - 300px);
    padding: 13px 20px;
    letter-spacing: 0.03em;
    height: 100%;
    background: rgba(255, 255, 255, .8);
}

#header_search .header_search_keyword input:focus {
    outline: none;
    background: #fff7f1;
}

#header_search .header_search_btn_wrap {
    position: relative;
}

#header_search .header_search_reset {
    align-items: center;
    display: flex;
    font-size: 1.5rem;
    cursor: pointer;
    color: #aaa;
    gap: 3px;
    line-height: 1;
    position: absolute;
    left: 280px;
    top: 30px;
    text-decoration: underline;
}

#header_search .header_search_reset span {
    display: inline-block;
    vertical-align: middle;
    line-height: 1;
    width: 16px;
    height: 1px;
    background: #aaa;
    position: relative;
    transform: rotate(45deg);
    margin: 4px 0 0;
}

#header_search .header_search_reset span::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 16px;
    height: 1px;
    background: inherit;
    border-radius: inherit;
    transform: rotate(90deg);
}

#header_search .header_search_btn {
    position: relative;
    text-align: center;
    margin: 50px auto 0;
    width: 360px;
}

@media screen and (min-width: 769px) and (max-width: 1500px) {
    #header_search .header_search_btn {
        margin: 40px auto 0;
    }
}

#header_search .header_search_btn input {
    background: var(--link);
    border: none;
    cursor: pointer;
    height: 70px;
    font-family: 'Noto Sans JP', "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "游ゴシック", YuGothic, "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
    font-size: 1.9rem;
    text-align: center;
    width: 100%;
    font-weight: 500;
    transition: .3s;
    position: relative;
    color: #fff !important;
    padding: 0 0 3px;
    font-weight: bold;
}

@media screen and (min-width: 769px) {
    #header_search .header_search_btn:hover input {
        background: #f99d05 !important;
        border-color: #f99d05 !important;
        color: #fff !important;
        opacity: 1 !important;
    }
}

#header_search .header_search_btn::after {
    content: "\f002";
    color: #fff;
    font: 900 2.2rem/1 var(--webicon);
    position: absolute;
    top: 53%;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
    right: 20px;
    z-index: 2;
}

#header_search .header_search_btn:hover::after {
    color: #fff;
}

@media screen and (max-width: 768px) {
    #header_search .header_search_head {
        padding: 0;
        min-width: unset;
    }

    #header_search.is-search-show .header_search_head {
        height: 100vh;
        overflow-y: scroll;
    }

    #header_search .header_search_body {
        width: 100%;
        padding: 75px 0 0 0;
    }

    #header_search .header_search_ttl {
        font-size: 2rem;
        padding: 0 10px;
        gap: 0;
    }

    #header_search .header_search_ttl span {
        white-space: nowrap;
        padding: 0;
        font-size: 1.8rem;
    }

    #header_search .header_search_ttl i {
        margin: 2px 2px 0 0;
        font-size: 2rem;
    }

    #header_search .header_search_ttl small {
        display: block;
        margin: 0;
        font-size: 1.3rem;
        text-align: left;
        line-height: 1.3;
        padding: 0 0 0 1.5em;
        text-indent: -1em;
    }

    #header_search .header_search_close {
        right: 10px;
        padding: 13px 15px;
    }

    #header_search .header_search_close span {
        font-size: 2rem;
    }

    #header_search .header_search_close i {
        font-size: 1.5rem;
        margin: 0;
    }

    #header_search .header_search_otherlink {
        left: 10px;
    }

    #header_search .header_search_otherlink a {
        font-size: 1.5rem;
    }

    #header_search #topforms {
        width: 100%;
        padding: 18px 0 500px;
        margin: 0;
    }

    #header_search .header_search_box {
        padding: 0;
    }

    #header_search .header_search_tab {
        flex-wrap: wrap;
        padding: 0 10px;
    }

    #header_search .header_search_tab .cate_tab {
        font-size: 1.5rem;
        flex: auto;
        width: calc(100% / 4);
        margin: 0 0 7px;
    }

    #header_search .header_search_tab .cate_tab:nth-child(4) {
        border-right: none;
    }

    #header_search .header_search_tab .cate_tab::before {
        width: 32.5px;
        height: 30.5px;
        bottom: 29px;
    }

    #header_search .header_search_list {
        padding: 0 15px 7px;
        overflow-x: scroll;
    }

    #header_search .header_search_list_wrap {
        margin: 0;
        gap: 10px;
    }

    #header_search .header_search_item {
        width: 1150px;
    }

    #header_search .header_search_list .header_search_item:not(:first-of-type) {
        margin-top: 10px;
    }

    #header_search .header_search_cate {
        padding: 0;
        gap: 10px;
    }

    #header_search .header_search_select {
        margin: 20px 0 0;
        width: 100%;
        padding: 0 15px;
    }

    #header_search .select_output, #header_search .select_ttl {
        font-size: 1.5rem;
        width: 100%;
        text-align: center;
        line-height: 1.6;
    }

    #header_search .header_search_keyword {
        padding: 0 15px;
        float: none;
        width: 100%;
    }

    #header_search .header_search_keyword .keyword_ttl {
        font-size: 1.6rem;
        margin: 0;
        flex-shrink: 0;
        letter-spacing: 0;
        color: #999;
    }

    #header_search .header_search_subttl {
        width: 20px;
    }

    #header_search .header_search_subttl::before {
        width: 35px;
        height: 27px;
    }

    #header_search .header_search_keyword input {
        padding: 10px;
        width: 100%;
        -webkit-appearance: none;
        border-radius: 0;
    }

    #header_search .header_search_btn input {
        height: 100%;
        font-size: 1.9rem;
        width: 100%;
        color: #fff;
        padding: 0;
        -webkit-appearance: none;
        border-radius: 0;
    }

    #header_search .header_search_btn::after {
        font-size: 1.8rem;
    }

    #header_search .header_search_cate .product_thumb {
        height: 50px;
        width: 70px;
    }

    #header_search .header_search_cate .cate_btn {
        width: 170px;
    }

    #header_search .header_search_cate label {
        font-size: 1.5rem;
        padding: 0 3px 0 0;
    }

    #header_search .header_search_half2 {
        align-items: center;
        margin-top: 0 !important;
        padding-top: 12px;
        min-height: 60px;
    }

    #header_search .header_search_half2 .function_ttl {
        font-size: 1.6rem;
        margin: 0;
        flex-shrink: 0;
        letter-spacing: 0;
        color: #999;
    }

    #header_search .header_search_function {
        flex-shrink: 0;
        width: 1300px;
    }

    #header_search .function_btn label {
        white-space: nowrap;
    }

    #header_search .header_search_bottom {
        margin: 5px 0 0 0;
        padding: 10px 0 0;
        display: flex;
        flex-wrap: wrap;
    }

    #header_search .header_search_btn {
        max-width: unset;
        width: 300px;
        height: 60px;
        color: #fff;
        font-size: 1.7rem;
        margin: 15px auto 0;
    }

    #header_search .header_search_reset {
        left: 0;
        top: auto;
        right: 0;
        bottom: -50px;
        width: 100%;
        justify-content: center;
    }
}

/* -----------------------------------------------------------
    Responsive
-------------------------------------------------------------- */
.pc-display {}

.pc-display-b {}

.sp-display {
    display: none;
}

.sp-display-b {
    display: none;
}

br.pc-br {
    display: inline;
}

br.sp-br {
    display: none;
}

br.note-br {
    display: none;
}

@media screen and (min-width: 769px) and (max-width: 1400px) {
    br.note-br {
        display: inline;
    }
}

@media screen and (max-width: 768px) {
    .pc-display {
        display: none;
    }

    .pc-display-b {
        display: none;
    }

    .sp-display {
        display: inline;
    }

    .sp-display-b {
        display: block;
    }

    br.pc-br {
        display: none;
    }

    br.sp-br {
        display: inline;
    }

    br.note-br {
        display: none;
    }
}

/* -----------------------------------------------------------
    main
-------------------------------------------------------------- */
.contents {
    position: relative;
}

@media screen and (max-width: 768px) {
    #main {
        position: relative;
    }
}

/* -----------------------------------------------------------
    #page_top
-------------------------------------------------------------- */
#page_top {
    position: fixed;
    bottom: 30px;
    right: 20px;
    z-index: 500;
    line-height: 1.0;
}

#page_top a {
    align-items: center;
    background: #7C7C84;
    backdrop-filter: blur(10px);
    /*border: 1px solid #959595;*/
    display: flex;
    width: 56px;
    height: 56px;
    justify-content: center;
	border-radius: 50px;
}

#page_top span {
    width: 26px;
    height: 26px;
    display: flex;
    align-items: center;
    justify-content: center;
}

#page_top span img {
    width: 100%;
}

#page_top i {
    font-size: 2.2rem;
    color: #fff !important;
}

@media screen and (max-width: 768px) {
    #page_top {
        bottom: 80px;
        right: 10px;
        z-index: 5;
    }

    #page_top a {
        width: 50px;
        height: 50px;
    }

    #page_top span {
        width: 20px;
        height: 20px;
    }
}

/* -----------------------------------------------------------
    アンカーリンクのずれ調整
-------------------------------------------------------------- */
.anchor {
    display: block;
    padding-top: 110px;
    margin-top: -110px;
}

@media screen and (max-width: 768px) {
    .anchor {
        padding-top: 63px;
        margin-top: -63px;
    }
}

/* -----------------------------------------------------------
    jsもっと見るボタン
-------------------------------------------------------------- */
[class^="js-moreview-btn"] {
    align-items: center;
    background: #fff;
    border: #858585 1px solid;
    cursor: pointer;
    font-size: 1.7rem;
    font-weight: bold;
    display: flex;
    width: 300px;
    height: 70px;
    justify-content: center;
    position: relative;
    overflow: hidden;
    transition: .5s;
}

[class^="js-moreview-btn"]:hover {
    background: var(--link);
    border-color: var(--link);
    color: #fff;
}

[class^="js-moreview-btn"]::before, [class^="js-moreview-btn"]::after {
    position: absolute;
    content: '';
    background-color: var(--link);
}

[class^="js-moreview-btn"]:hover::before, [class^="js-moreview-btn"]:hover::after {
    background: #fff !important;
}

[class^="js-moreview-btn"]::before {
    width: 22px;
    height: 1px;
    right: 12px;
    bottom: 34px;
}

[class^="js-moreview-btn"]::after {
    width: 1px;
    height: 22px;
    right: 22px;
    bottom: 23px;
}

@media screen and (min-width: 769px) {
    .js-moreview-hidden {
        opacity: 0;
        height: 0;
        margin: 0 10px;
        padding: 0;
        display: none;
    }
}

/* -----------------------------------------------------------
    テキスト強調箇所
-------------------------------------------------------------- */
.important {
    /*background: linear-gradient(transparent 50%, #e9f0b9 50%);*/
    background: linear-gradient(transparent 70%, var(--blue01) 30%);
    font-weight: bold;
}

.important2 {
    color: var(--main);
}

/* -----------------------------
    テキストラインアニメーション
-------------------------------- */
.ani-line {
    background-image: linear-gradient(to right, #F7F3A3 0%, #F5F08C 50%, transparent 50%);
    background-repeat: no-repeat;
    background-position: 100% 100%;
    background-size: 200% 10px;
    transition: background-position 1s;
}

.ani-line.is-aniline {
    background-position: 0% 100%;
}

/* -----------------------------------------------------------
    回転アニメーション
-------------------------------------------------------------- */
@keyframes rotate {
    to {
        transform: rotate(1turn)
    }
}

/* -----------------------------------------------------------
    rotate-square
-------------------------------------------------------------- */
@keyframes rotate-square {
    0% {
        opacity: 0;
        transform: rotateZ(-20deg);
    }

    100% {
        opacity: 1;
        transform: none;
    }
}

.rotate-square.is-rotate-square {
    animation: .8s alternate;
    animation-name: rotate-square;
    animation-fill-mode: forwards;
}

/* -----------------------------------------------------------
    回転アニメーション2
-------------------------------------------------------------- */
.swing {
    transform: scaleY(0);
    transition: 0.8s ease;
}

.swing.is-swing {
    transform: scaleY(1);
}

/* -----------------------------------------------------------
    浮遊アニメーション
-------------------------------------------------------------- */
@keyframes fuwa {
    0% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-15px);
    }

    100% {
        transform: translateY(0);
    }
}

.fuwa {
    animation: fuwa 1.5s ease-in-out infinite;
}

/* -----------------------------------------------------------
    拡大アニメーション
-------------------------------------------------------------- */
@keyframes zoomInAnime {
    from {
        transform: scale(0.1);
        opacity: 0;
    }

    to {
        transform: scale(1);
        opacity: 1;
    }
}

.zoomIn {
    animation-name: zoomInAnime;
    animation-duration: .8s;
    animation-fill-mode: forwards;
}

/* -----------------------------------------------------------
    共通 線アニメーション
-------------------------------------------------------------- */
.cmn-line {
    background-image: linear-gradient(to right, #fff59b 0%, #fff59b 50%, transparent 50%);
    font-weight: bold;
    background-repeat: no-repeat;
    background-position: 100% 100%;
    background-size: 200% 10px;
    margin: 0 2px 0 0;
    padding: 0 0 0 2px;
    transition: background-position 1s;
}

.cmn-line.is-line-anime {
    background-position: 0% 100%;
}

/* -----------------------------------------------------------
   typeEn
-------------------------------------------------------------- */
.typeEn {
    overflow: hidden;
}

.typeEn span {
    display: inline-block;
    transform: translateY(100%);
    font-weight: bold;
    line-height: 1;
    /*font-family: 'Inter', sans-serif;*/
}

.typeEn.typeEn-active span {
    transform: translateY(0);
    transition: transform cubic-bezier(0.7, 0.2, 0.1, 1) 0.5s;
}

/* -----------------------------------------------------------
   ani-ttl typeEn
-------------------------------------------------------------- */
.ani-ttl span {
    display: inline-block;
    opacity: 0;
    transition: 1s;
}

.anittl-active.ani-ttl span {
    opacity: 1;
    transition: 1s;
}

.anittl-active.ani-ttl span:nth-child(1), .typeEn-active span:nth-child(1) {
    transition-delay: 0s;
}

.anittl-active.ani-ttl span:nth-child(2), .typeEn-active span:nth-child(2) {
    transition-delay: 0.06s;
}

.anittl-active.ani-ttl span:nth-child(3), .typeEn-active span:nth-child(3) {
    transition-delay: 0.12s;
}

.anittl-active.ani-ttl span:nth-child(4), .typeEn-active span:nth-child(4) {
    transition-delay: 0.18s;
}

.anittl-active.ani-ttl span:nth-child(5), .typeEn-active span:nth-child(5) {
    transition-delay: 0.24s;
}

.anittl-active.ani-ttl span:nth-child(6), .typeEn-active span:nth-child(6) {
    transition-delay: 0.3s;
}

.anittl-active.ani-ttl span:nth-child(7), .typeEn-active span:nth-child(7) {
    transition-delay: 0.36s;
}

.anittl-active.ani-ttl span:nth-child(8), .typeEn-active span:nth-child(8) {
    transition-delay: 0.42s;
}

.anittl-active.ani-ttl span:nth-child(9), .typeEn-active span:nth-child(9) {
    transition-delay: 0.48s;
}

.anittl-active.ani-ttl span:nth-child(10), .typeEn-active span:nth-child(10) {
    transition-delay: 0.54s;
}

.anittl-active.ani-ttl span:nth-child(11), .typeEn-active span:nth-child(11) {
    transition-delay: 0.6s;
}

.anittl-active.ani-ttl span:nth-child(12), .typeEn-active span:nth-child(12) {
    transition-delay: 0.66s;
}

.anittl-active.ani-ttl span:nth-child(13), .typeEn-active span:nth-child(13) {
    transition-delay: 0.72s;
}

.anittl-active.ani-ttl span:nth-child(14), .typeEn-active span:nth-child(14) {
    transition-delay: 0.78s;
}

.anittl-active.ani-ttl span:nth-child(15), .typeEn-active span:nth-child(15) {
    transition-delay: 0.84s;
}

.anittl-active.ani-ttl span:nth-child(16), .typeEn-active span:nth-child(16) {
    transition-delay: 0.9s;
}

.anittl-active.ani-ttl span:nth-child(17), .typeEn-active span:nth-child(17) {
    transition-delay: 0.96s;
}

.anittl-active.ani-ttl span:nth-child(18), .typeEn-active span:nth-child(18) {
    transition-delay: 1.02s;
}

.anittl-active.ani-ttl span:nth-child(19), .typeEn-active span:nth-child(19) {
    transition-delay: 1.08s;
}

.anittl-active.ani-ttl span:nth-child(20), .typeEn-active span:nth-child(20) {
    transition-delay: 1.14s;
}

.anittl-active.ani-ttl span:nth-child(21), .typeEn-active span:nth-child(21) {
    transition-delay: 1.2s;
}

.anittl-active.ani-ttl span:nth-child(22), .typeEn-active span:nth-child(22) {
    transition-delay: 1.26s;
}

.anittl-active.ani-ttl span:nth-child(23), .typeEn-active span:nth-child(23) {
    transition-delay: 1.32s;
}

.anittl-active.ani-ttl span:nth-child(24), .typeEn-active span:nth-child(24) {
    transition-delay: 1.38s;
}

.anittl-active.ani-ttl span:nth-child(25), .typeEn-active span:nth-child(25) {
    transition-delay: 1.44s;
}

.anittl-active.ani-ttl span:nth-child(26), .typeEn-active span:nth-child(26) {
    transition-delay: 1.50s;
}

.anittl-active.ani-ttl span:nth-child(27), .typeEn-active span:nth-child(27) {
    transition-delay: 1.56s;
}

.anittl-active.ani-ttl span:nth-child(28), .typeEn-active span:nth-child(28) {
    transition-delay: 1.62s;
}

.anittl-active.ani-ttl span:nth-child(29), .typeEn-active span:nth-child(29) {
    transition-delay: 1.68s;
}

.anittl-active.ani-ttl span:nth-child(30), .typeEn-active span:nth-child(30) {
    transition-delay: 1.74s;
}

.anittl-active.ani-ttl span:nth-child(31), .typeEn-active span:nth-child(31) {
    transition-delay: 1.80s;
}

.anittl-active.ani-ttl span:nth-child(32), .typeEn-active span:nth-child(32) {
    transition-delay: 1.86s;
}

.anittl-active.ani-ttl span:nth-child(33), .typeEn-active span:nth-child(33) {
    transition-delay: 1.82s;
}

.anittl-active.ani-ttl span:nth-child(34), .typeEn-active span:nth-child(34) {
    transition-delay: 1.88s;
}

.anittl-active.ani-ttl span:nth-child(35), .typeEn-active span:nth-child(35) {
    transition-delay: 1.94s;
}

.anittl-active.ani-ttl span:nth-child(36), .typeEn-active span:nth-child(36) {
    transition-delay: 2s;
}

.anittl-active.ani-ttl span:nth-child(37), .typeEn-active span:nth-child(37) {
    transition-delay: 2.02s;
}

.anittl-active.ani-ttl span:nth-child(38), .typeEn-active span:nth-child(38) {
    transition-delay: 2.08s;
}

.anittl-active.ani-ttl span:nth-child(39), .typeEn-active span:nth-child(39) {
    transition-delay: 2.14s;
}

.anittl-active.ani-ttl span:nth-child(40), .typeEn-active span:nth-child(40) {
    transition-delay: 2.20s;
}

.anittl-active.ani-ttl span:nth-child(41), .typeEn-active span:nth-child(41) {
    transition-delay: 2.26s;
}

.anittl-active.ani-ttl span:nth-child(42), .typeEn-active span:nth-child(42) {
    transition-delay: 2.32s;
}

.anittl-active.ani-ttl span:nth-child(43), .typeEn-active span:nth-child(43) {
    transition-delay: 2.38s;
}

.anittl-active.ani-ttl span:nth-child(44), .typeEn-active span:nth-child(44) {
    transition-delay: 2.44s;
}

.anittl-active.ani-ttl span:nth-child(45), .typeEn-active span:nth-child(45) {
    transition-delay: 2.5s;
}

/* -----------------------------------------------------------
    cmn-more
-------------------------------------------------------------- */
.cmn-more {
    align-items: center;
    display: flex;
    gap: 8px;
}

.cmn-more-en {
    color: #534d41;
    font: 600 1.8rem / 1 var(--en);
}

.cmn-more-deco {
    background: var(--more);
    border-radius: 3px;
    height: 24px;
    width: 24px;
    position: relative;
    display: inline-block;
}

.cmn-more-deco::after, .cmn-more-deco::before {
    background: #fff;
    border-radius: 1px;
    content: "";
    position: absolute;
    transition: all .3s;
}

.cmn-more-deco::after {
    height: 14px;
    right: 11px;
    top: 5px;
    width: 2px;
}

.cmn-more-deco::before {
    height: 2px;
    right: 5px;
    width: 14px;
    top: 50%;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
}

.active-cmn-more .cmn-more-deco::after {
    transform: rotate(90deg);
}

/* -----------------------------------------------------------
    view-more
-------------------------------------------------------------- */
.view-more {
    color: #534d41;
    border-bottom: 2px dashed #d5d8da;
    font: 600 2.3rem / 1 var(--en);
    letter-spacing: 0.05em;
    position: relative;
    padding: 0 30px 10px 0;
    width: fit-content;
}

.view-more::after {
    content: "\f138";
    color: #ebc230;
    font: 900 2rem/1 var(--webicon);
    position: absolute;
    top: 50%;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
    right: 0;
}

@media screen and (max-width:768px) {
    .view-more {
        font-size: 1.8rem;
        padding: 0 25px 8px 0;
    }

    .view-more::after {
        font-size: 1.8rem;
    }
}

/* -----------------------------------------------------------
   共通ボタン
-------------------------------------------------------------- */
.cmn-btn{
	text-align: center;
    width: 100%;
    margin: 40px 0 0;
}

.cmn-btn-link {
    display: inline-block;
    text-align: center;
    background: #fff;
    font-size: 1.6rem;
    font-weight: bold;
    line-height: 1.5;
    padding: 18px 40px;
    min-width: 260px;
    min-height: 60px;
    position: relative;
    z-index: 1;
    border: 1px solid var(--blue);
    color: var(--black);
    border-radius: 50px;
    overflow: hidden;
}

.cmn-btn-link:hover {
    color: #fff;
}

.cmn-btn-link::before {
    position: absolute;
    content: "";
    width: 0;
    height: 100%;
    top: 0;
    right: 0;
    z-index: -1;
    background: var(--blue);
    transition: all 0.4s ease;
}

.cmn-btn-link:hover::before {
    left: 0;
    width: 100%;
}

.cmn-btn-link::after {    
	font-family: "Font Awesome 6 Free";
    font-style: normal;
    font-weight: 900;
    content: "\f061";
    display: inline-block;
    color: var(--blue);
    position: absolute;
    right: 30px;
    top: 50%;
    transform: translateY(-50%);
    transition: all .6s ease;
}

.cmn-btn-link:hover::after {
    right: 20px;
    color: #fff;
}

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

@media screen and (max-width: 768px) {
	.cmn-btn{
		margin: 20px 0 0;
	}
    .cmn-btn-link {
        width: 100%;
        max-width: 270px;
        margin: 0 auto;
    }

    .cmn-btn-txt {
        font-size: 1.7rem;
    }

    .cmn-btn .arrow-wrap {
        right: 10px;
    }
}

/* -----------------------------------------------------------
   共通矢印のみ
-------------------------------------------------------------- */
.cmn-arrow {
    transition: all .3s;
}

.cmn-arrow-inner {
    border-bottom: 1px solid #d7bd15;
    background: #fff;
    display: inline-block;
    width: 40px;
    height: 1px;
    position: relative;
}

.cmn-arrow-inner::before {
    content: "";
    position: absolute;
    right: 0;
    bottom: 0;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 5px 0 0 14px;
    border-color: transparent transparent transparent #d7bd15;
}

@media screen and (max-width: 768px) {
    .cmn-arrow-inner {
        width: 30px;
    }

    .cmn-arrow-inner::before {
        border-width: 4px 0 0 12px;
    }
}

/* -----------------------------------------------------------
   共通タイトル 大見出し
-------------------------------------------------------------- */
/*underttl-area*/
.underttl-area {
    position: relative;
    margin: 0 0 90px;
}

.underttl-area .underttl-img {
    aspect-ratio: 1347/450;
    width: calc(50% + 50px);
	min-height: 280px;
    overflow: hidden;
}

.underttl-area .underttl-img .img {
    background-size: cover;
    background-position: bottom;
    background-repeat: no-repeat;
    width: 100%;
    height: 100%;
}
#about .underttl-img .img {
    background-image: url(../img/underttl-about.jpg);
	background-position: right center;
}
#price .underttl-img .img {
    background-image: url(../img/underttl-price.jpg);
}
#industry.restaurant .underttl-img .img {
    background-image: url(../img/underttl-restaurant.jpg);
}
#industry.beauty .underttl-img .img {
    background-image: url(../img/underttl-beauty.jpg);
}
#industry.professionals .underttl-img .img {
    background-image: url(../img/underttl-professionals.jpg);
}
#company .underttl-img .img {
    background-image: url(../img/underttl-company.jpg);
}
#line .underttl-img .img {
    background-image: url(../img/underttl-line.jpg);
}
#recruit .underttl-area .underttl-inner .img {
    background-image: url(../img/underttl-recruit.jpg);
}

.works .underttl-img .img {
    background-image: url(../img/underttl-work.jpg);
}
#blog .underttl-img .img {
    background-image: url("../img/underttl-blog.jpg");
}
#ninews-cmn .underttl-img .img {
    background-image: url("../img/underttl-blog.jpg");
}

.underttl-area .underttl-inner {
    display: flex;
    z-index: 2;
    margin: 0px auto 0;
    padding: 0 0 0 50px;
    justify-content: space-between;
    position: relative;
	background: var(--main);
}
.underttl-area .underttl-inner.simple {
	padding: 70px 0 70px 50px;
}
.underttl-area .underttl-inner.simple .underttl-img{
	display: none;
}
.underttl-area .underttl-inner.recruit {
	background: var(--yellow01);
}

.underttl-area .underttl-inner::before {
    content: "";
    display: inline-block;
    position: absolute;
    top: 0;
    left: 15%;
    background: url(../img/logo-transparent.png) center / cover, no-repeat;
    width: 250px;
    height: initial;
    aspect-ratio: 304 / 426;
}
.underttl-area .underttl-inner.recruit::before {
	background: url(../img/bg-logo-recruit.png) center / cover, no-repeat;
	aspect-ratio: 460 / 617;
	width: 250px;
	height: initial;
}

/*.underttl-area .underttl-inner.simple::before {
	left: auto;
    right: 10%;
}*/

.underttl-area .underttl-txt {
    flex-grow: 1;
    /*align-items: center;*/
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.underttl-area .underttl-txt-inner {
    width: fit-content;
    display: flex;
    flex-direction: column-reverse;
    /*gap: 10px;*/
    flex-wrap: wrap;
}
.underttl-area .underttl-ja {
    font-weight: bold;
    font-size: 2.2rem;
    line-height: 1.5;
    letter-spacing: .05em;
	color: #fff;
    position: relative;
    z-index: 2;
    padding: 0;
}

.underttl-area .underttl-en {
    font: 900 5.6rem /1 var(--lato);
	letter-spacing: .1em;
	color: #fff;
    overflow: hidden;
}


.underttl-area .underttl-inner.recruit .underttl-en{
	color: var(--gray);
}

.underttl-area .underttl-inner.recruit .underttl-ja{
	color: var(--black);
}

@media screen and (min-width: 769px) and (max-width: 1600px){

	.underttl-area .underttl-en {
		font: 900 5.0rem /1 var(--lato);
	}
	
}

@media screen and (max-width: 768px) {
	
	.underttl-area {
        min-width: 100%;
        margin: 0px 0 20px;
    }
	
	.underttl-area .underttl-inner {
        align-items: flex-start;
        flex-direction: column;
        gap: 0;
        width: 100%;
        padding: 0;
        margin: 0px auto 0;
    }
	.underttl-area .underttl-inner.simple {
		padding: 0;
	}
	
	.underttl-area .underttl-inner::before,
	.underttl-area .underttl-inner.simple::before{
		width: 100px;
        top: 0;
        left: auto;
		right: 0;
	}
	.underttl-area .underttl-inner.recruit::before {
		width: 100px;
        top: 0;
        left: auto;
		right: 0;
		z-index: -1;
	}
	
	.underttl-area .underttl-txt {
        padding: 30px 20px 25px;
    }
	
	.underttl-area .underttl-txt-inner {
        gap: 5px;
    }
	
	.underttl-area .underttl-en {
        font-size: 3.4rem;
    }
	
	.underttl-area .underttl-en.s-txt {
        font-size: 3.4rem;
    }
	
	.underttl-area .underttl-ja {
        font-size: 1.6rem;
        margin: 0;
        padding: 0;
    }
	
	.underttl-area .underttl-img {
        border-radius: 0;
        width: 100%;
		min-height: inherit;
    }
	
	.underttl-area .underttl-img .img{
		width: 100%;
		height: 100%;
		position: relative;
		top: 0;
		right: 0;
		z-index: -1;
	}
	
	.underttl-area .underttl-inner.simple .underttl-img{
		aspect-ratio: auto;
	}

}

/* -----------------------------------------------------------
   cmn-form-thanks  完了画面共通
-------------------------------------------------------------- */
@media screen and (max-width: 768px) {
    .cmn-form-thanks .bread-h1-wrap {
        top: -145px;
    }

    .cmn-form-thanks .underttl-area {
        margin: 130px 0 30px;
    }

    .cmn-form-thanks .underttl-area .underttl {
        top: -103px;
    }

    .cmn-form-thanks .underttl-area .underttl-ja {
        font-size: 2.3rem;
    }
}

/* -----------------------------------------------------------
   mini-underttl  縮小
-------------------------------------------------------------- */
.mini-underttl .underttl-area {
    padding: 40px 0 0;
    justify-content: center;
    height: auto;
}

.mini-underttl .underttl-area::before {
    display: none;
}

.mini-underttl .underttl-area .underttl-inner {
    min-height: auto;
    padding: 0;
}

.mini-underttl .underttl-area .underttl-ja {
    color: #333;
    font-size: 4.2rem;
    margin: 0;
    text-align: center;
}

.mini-underttl .underttl-area .p-name {
    display: block;
    font-size: 3rem;
}

.mini-underttl .bread-h1-wrap {
    top: 0 !important;
}

@media screen and (max-width: 768px) {
    .mini-underttl .underttl-area {
        margin: 0;
        padding: 0;
    }

    .mini-underttl .underttl-area .underttl {
        left: 0;
        right: 0;
        position: static;
    }

    .mini-underttl .underttl-area .underttl-ja {
        font-size: 2.5rem;
    }

    .mini-underttl .bread-h1-wrap {
        top: -20px !important;
    }

    .mini-underttl .under-h1 {
        padding: 0 0 7px 0;
    }

    .mini-underttl #wrapper {
        padding: 100px 0 0 0;
    }
}

/* -----------------------------------------------------------
   共通タイトル 下層
-------------------------------------------------------------- */

.c-yellow{
	color: var(--yellow);
}
.c-blue{
	color: var(--blue);
}
.c-wht{
	color: #fff;
}
.c-white{
	color: var(--blue);
	text-shadow: 1px 1px 0px #ffffff, -1px 1px 0px #ffffff, 1px -1px 0px #ffffff, -1px -1px 0px #ffffff, 1px 0px 0px #ffffff, 0px 1px 0px #ffffff, -1px 0px 0px #ffffff, 0px -1px 0px #ffffff;
}
.recruit .c-white{
	color: var(--blue);
	text-shadow: none;
}

.recruit .c-white01{
	color: #fff;
	text-shadow: 1px 1px 0px var(--yellow), -1px 1px 0px var(--yellow), 1px -1px 0px var(--yellow), -1px -1px 0px var(--yellow), 1px 0px 0px var(--yellow), 0px 1px 0px var(--yellow), -1px 0px 0px var(--yellow), 0px -1px 0px var(--yellow);
}

.cmn-secttl {
    position: relative;
}

.cmn-secttl.center {
    text-align: center;
}

.cmn-secttl .en {
    font: 900 5.0rem /1 var(--lato);
    letter-spacing: .07em;
	color: var(--gray);
}

.cmn-secttl .ja {
    font-size: 1.8rem;
    font-weight: bold;
    margin: 5px 0 0 10px;
	position: relative;
	display: inline-block;
	left: 10px;
}

.cmn-secttl .ja::before {    
	position: absolute;
    content: "";
    display: inline-block;
    background: url(../img/icon-ttl.svg) center / cover, no-repeat;
    aspect-ratio: 20 / 31;
    width: 12px;
	background-size: cover;
    top: 10px;
    left: -18px;
}
.cmn-secttl.wht .en,
.cmn-secttl.wht .ja {   
   color: #fff;
}

.cmn-secttl.wht .ja::before {   
    background: url("../img/icon-ttl-wht.png") center / cover, no-repeat;
}

.sec-catch {
    font-size: 3.2rem;
    font-weight: 600;
	line-height: 1.6;
	margin: 20px 0;
}

.sub-catch {
    font-size: 2.6rem;
	font-weight: 600;
}

.basic-txt {
    font-size: 1.6rem;
    line-height: 2;
}

.col-list li{
    line-height: 1.6;
    margin: 10px 0 0;
    padding: 0 0 0 15px;
    position: relative;
    font-size: 1.6rem;
}

.col-list li::before {
    content: "";
    background: var(--main);
    position: absolute;
    width: 6px;
    height: 6px;
    top: 10px;
    left: 0;
    border-radius: 5px;
}

@media screen and (max-width: 768px) {
    .cmn-detail-secttl {
        text-align: left;
    }

    .cmn-secttl .en {
        font-size: 3.6rem;
        text-align: left;
       /* letter-spacing: .03em;*/
    }
    .cmn-secttl .en.s-txt {
        font-size: 3.0rem;
    }

    .cmn-secttl .ja {
        align-items: center;
        display: flex;
        gap: 7px;
        font-size: 1.6rem;
        margin: 5px 0 0 10px;
        line-height: 1.4;
        text-align: left;
    }

    .cmn-secttl .ja::before {
		width: 11px;
		top: 4px;
		left: -17px;
	}

	.sec-catch {
		font-size: 2.2rem;
		line-height: 1.5;
	}

	.sub-catch {
		font-size: 1.8rem;
	}

	.basic-txt {
	}
}

/* -スクロールエフェクト　共通
-------------------------------------------------- */
.cmn-fadeup {
    opacity: 0;
    transform: translateY(140px);
    transition: transform cubic-bezier(.165, .84, .44, 1) .7s;
}

.cmn-fadeup.cmn-effect-fadeup {
    transform: translateY(0);
    opacity: 1;
}

.cmn-fade {
    opacity: 0;
    transition: opacity 2s;
}

.cmn-fade.effect-cmn-fade, .cmn-fade2.effect-cmn-fade {
    opacity: 1;
}

.cmn-fade2 {
    opacity: 0;
    transition: opacity 1s;
}

/*左からスライドイン*/
.cmn-slidein {
    opacity: 0;
    transform: translateX(-60px);
    transition: all .5s 0s ease-out;
}

/*左からスライドイン 早め*/
.cmn-slidein2 {
    opacity: 0;
    transform: translateX(-60px);
    transition: all .6s 0s ease-out;
}

/*cmn-fadeup　SPだけ効かせたい時*/
@media screen and (max-width: 768px) {
    .cmn-fadeup-sp {
        opacity: 0;
        transform: translateY(100px);
        transition: transform cubic-bezier(.165, .84, .44, 1) 1s;
    }
}

/* -スクロールエフェクト 背景色
-------------------------------------------------- */
.bg-slide {
    overflow: hidden;
    opacity: 0;
    transition: opacity .3s;
}

.isPlay .bg-slide {
    opacity: 1;
    position: relative;
}

/*js マスクとマスクを外すアニメーション*/
/*planning-img-slideをスライドイン*/
@keyframes play {
    from {
        transform: translateX(-100%);
    }

    to {
        transform: translateX(0);
    }
}

/*planning-img-slideをスライドアウト*/
@keyframes maskOut {
    from {
        transform: translateX(0);
    }

    to {
        transform: translateX(100%);
    }
}

.trg::after {
    background: var(--aqua);
    content: '';
    width: 100%;
    height: 100%;
    top: 0;
    left: -100%;
    position: absolute;
    transition: transform 0.5s cubic-bezier(0.005, 0.055, 0.305, 0.985) 0.6s;
    will-change: transform;
    transform-origin: right;
    z-index: 1;
}

.isPlay .trg::after {
    -webkit-transform: scaleX(0);
    transform: scaleX(0);
    left: 0;
}

/* -----------------------------------------------------------
   ft_link_area
-------------------------------------------------------------- */
.ft_link_area {
    background: var(--cmnbg);
    margin: 100px 0 0;
    padding: 70px;
}

.ft_link_area .ft_link_inner {
    display: flex;
    justify-content: space-between;
    gap: 50px;
}

.ft_link_area .ft_link_inner a {
    display: block;
    width: calc((100% - 100px) / 3);
}

.ft_link_area .ft_link_img {
    aspect-ratio: 3/1.7;
    width: 100%;
    overflow: hidden;
}

.ft_link_area .ft_link_img img{
    height: 100%;
    width: 100%;
    object-fit: cover;
    transition: .7s;
}

@media screen and (min-width: 769px) {
    .ft_link_area .ft_link_inner a:hover img {
        transform: scale(1.12);
    }
}

.ft_link_area .ft_link_txt {
    border-bottom: 1px solid var(--border1);
    color: var(--cmnblack);
    font-weight: bold;
    font-size: 2.2rem;
    line-height: 1.5;
    letter-spacing: .05em;
    position: relative;
    padding: 12px 5px 17px;
}

.ft_link_area .ft_link_txt::before {
    content: "\f054";
    color: var(--link);
    font: 900 1.7rem/1 var(--webicon);
    position: absolute;
    top: 50%;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
    right: 5px;
}

@media screen and (max-width: 768px) {

    .ft_link_area {
        margin: 50px 0 0;
        padding: 50px 0;
    }

    .ft_link_area .ft_link_inner {
        flex-direction: column;
        gap: 30px;
    }

    .ft_link_area .ft_link_inner a {
        width: 100%;
    }

    .ft_link_area .ft_link_txt {
        font-size: 1.9rem;
        padding: 10px 5px 15px;
    }

    .ft_link_area .ft_link_txt::before {
        font-size: 1.5rem;
    }

}


/* -----------------------------------------------------------
   link_line  gナビで使用　線アニメーション
-------------------------------------------------------------- */
.link_line {
    position: relative;
}

.link_line::after {
    bottom: -1px;
    background: var(--link);
    content: '';
    display: inline-block;
    height: 1px;
    left: 0;
    margin: auto;
    position: absolute;
    /*right: 0;*/ /* 真ん中から開きたい時*/
    -webkit-transition: all 0.3s;
    transition: all 0.4s;
    width: 0;
}

.link_line_wrap:hover .link_line::after {
    width: 100%;
    display: inline-block;
}

/* -----------------------------------------------------------
   cmn-morebtn
-------------------------------------------------------------- */
.cmn-morebtn {
    align-items: center;
    display: flex;
    gap: 3px;
    font: 700 1.7rem/1 var(--en);
    position: relative;
    width: fit-content;
    letter-spacing: .03em;
}

.cmn-morebtn::before {
    content: "";
    background: url("../img/cmn-arrow-1.svg")center/contain no-repeat;
    width: 22px;
    height: 7px;
}

@media screen and (max-width: 768px) {
    .cmn-morebtn {
        font-weight: 730;
        gap: 2px;
    }

    .cmn-morebtn::before {
        margin: 2px 0 0;
    }
}

/* -----------------------------------------------------------
    footer_fixed
-------------------------------------------------------------- */
@media screen and (min-width: 769px) {
    #footer_fixed {
        display: none !important;
    }
}

@media screen and (max-width: 768px) {
    #footer_fixed {
        bottom: 0;
        width: 100%;
        /*height: 65px;*/
        position: fixed;
        z-index: 5;
    }
	
	#footer_fixed .wrap {
		display: block;
		width: 100%;
		justify-content: space-between;
		background: rgba(255, 255, 255, 0.6);
		padding: 8px;
		margin: 0 auto;
	}

    #footer_fixed .sp_f_fixed {
        display: flex;
        width: 100%;
        justify-content: center;
        height: 100%;
        gap: 1.5vw;
    }

    #footer_fixed .sp_f_fixed li {
        flex-shrink: 0;
        height: 50px;
		display: block;
        width: 40vw;
    }

    #footer_fixed .sp_f_fixed a {
		justify-content: center;
        align-items: center;
        background: #fff;
        display: flex;
        color: #333;
        gap: 3px;
        height: 100%;
        font-size: 1.6rem;
        font-weight: bold;
        text-align: center;
        text-decoration: none;
        line-height: 1.2;
        padding: 8px 5px;
        width: 100%;
		border-radius: 3px;
    }

    #footer_fixed div[class^="f_fixicon"] {
		justify-content: center;
		align-items: center;
        border-radius: 100%;
        display: flex;
        flex-shrink: 0;
        width: 17px;
    }

    #footer_fixed div[class^="f_fixicon"] img {
        width: 100%;
        object-fit: cover;
    }
	
    #footer_fixed .txt {
        font-size: 1.4rem;
		color: #fff;
    }

    #footer_fixed li.f_fix_tel {
        width: 50px;
    }

    #footer_fixed .f_fix_tel a{
        width: 50px;
    }

    #footer_fixed .f_fix_tel .txt {
        display: flex;
        flex-direction: column;
        line-height: 1.3;
    }

	#footer_fixed  .wrap li .icon {
        display: flex;
        justify-content: center;
        align-items: center;
        text-align: center;
        height: 32px;
    }

    #footer_fixed .f_fix_tel .txt .en {
        font: 700 1rem /1 var(--en);
    }

    #footer_fixed .f_fixicon_tel {
    }

    #footer_fixed .f_fix_tel a {
		width: 50px;
		background: var(--main);
        gap: 5px;
    }

    #footer_fixed div[class^="f_fixicon"] .f_fixicon_tel img {
		width: 16px;
        aspect-ratio: 15/15;
    }

    #footer_fixed .f_fix_form {
        /*width: 53vw;*/
    }

    #footer_fixed .f_fix_form a {
        background: var(--cv-contact);
        gap: 8px;
    }

    #footer_fixed .f_fix_form .txt {
        font-size: 1.4rem;
    }
	
    #footer_fixed .f_fixicon_form img {
        aspect-ratio: 17/13;
    }
	
	#footer_fixed .sp_f_fixed li.f_fix_line a {
        background: var(--line);
        gap: 8px;
    }

	#footer_fixed .wrap li.f_fix_line img {
        width: 19px;
        margin: 0 auto;
    }

	#footer_fixed .wrap li.f_fix_recruit {
        display: none;
    }
}


/* -----------------------------------------------------------
    ft_cv_area
-------------------------------------------------------------- */
.ft_cv_area {
    background: url(../img/bg-footer.jpg) no-repeat center / cover;
    padding: 150px 0 120px;
	border-radius: 50px 50px 0 0;
	position: relative;
}

.ft_cv_ttl {
    text-align: center;
}

.ft_cv_ttl .en {      
	font-family: var(--lato);
    font-size: 12rem;
    font-weight: 900;
    line-height: 1;
    letter-spacing: 0.1em;
    opacity: 30%;
    color: #fff;
    white-space: nowrap;
    position: absolute;
    top: 100px;
    left: 0;
    right: 0;
}

.ft_cv_ttl .ja {        
	font-size: 2.6rem;
    font-weight: 500;
    color: #fff;
    line-height: 1.7;
    padding: 0px 0 0 30px;
    position: relative;
    display: inline-block;
	left: 20px;
}

.ft_cv_ttl .ja::before {  
	position: absolute;
    content: "";
	display: inline-block;
    background: url(../img/icon-ttl-wht.svg) center/cover, no-repeat;
	aspect-ratio: 20 / 31;
    width: 20px;
    background-size: cover;
	top: 10px;
    left: 0;
}

.ft_cv_catch {
    font-size: 2.8rem;
    margin: 40px 0 0;
    letter-spacing: .05em;
    line-height: 1.7;
    text-align: center;
    color: #fff;
}

.ft_cv_area .txt-box{
	display: none;
}
。
#service.bpo-outsourcing-service .ft_cv_area .txt-box.bpo-outsourcing-service,
#service.subsidies-grants .ft_cv_area .txt-box.subsidies-grants{
	display: block;
	padding: 10px 0 0;
}
#service.bpo-outsourcing-service .ft_cv_area .txt-box.bpo-outsourcing-service p,
#service.subsidies-grants .ft_cv_area .txt-box.subsidies-grants p{
	display: block;
    color: #fff;
    font-size: 1.8rem;
    text-align: center;
    font-weight: 500;
    line-height: 1.6;
}

.ft_cv_body {
    align-items: center;
    display: flex;
    gap: 30px;
    justify-content: center;
    margin: 50px 0 0;
}
.ft_cv_body .ft_flex{
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 30px;
}

.ft_cv_tel {
    display: flex;
    flex-direction: column;
    font-feature-settings: "palt";
    gap:8px;
}

.ft_cv_tel_num {
    font: 600 3.4rem /1 var(--lato);
    position: relative;
    padding: 0 0 0 45px;
    letter-spacing: .01em;
	color: #fff;
}

.ft_cv_tel_num::before {    
	content: "";
    background-position: center;
    background-size: contain;
    background-repeat: no-repeat;
    left: 0;
    position: absolute;
    top: 50%;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
	background-image: url("../img/icon-cv-ft-tel.svg");
    width: 35px;
    height: 35px;
}

.ft_cv_tel_time {
	align-items: center;
    justify-content: flex-start;
    color: #fff;
    display: flex;
    font-size: 1.4rem;
    letter-spacing: .07em;
    line-height: 1;
	margin-bottom: -20px;
}

.ft_cv_tel_hour {
    font-size: 1.4rem;
    margin: 0 2px 0 4px;
}

.ft_cv_mail {
	transition: all 0.3s ease-out;
    position: relative;
    border-radius: 50px;
    background: var(--cv-contact);
    width: 300px;
    min-height: 80px;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    color: #fff;
    box-shadow: 0px 3px 20px rgba(0 0 0 / 16%);
	overflow: hidden;
}

.ft_cv_mail.line {
    background: var(--line);
}

.ft_cv_mail::before {
    content: '';
    background:#ef7d17;
    bottom: 0;
    position: absolute;
    top: 0;
    transform-origin: left bottom;
    transform: scale(0, 1);
    transition: all .3s ease-in;
    right: 0;
    left: 0;
}

.ft_cv_mail.line::before {
     background: #03AB48;
}

.ft_cv_mail:hover::before {
    transform: scale(1, 1);
}

.ft_cv_mail a {
}

.ft_cv_mail i.icon-mail {
    margin-right: 10px;
    background: url(../img/icon-mail.png) center / cover, no-repeat;
    aspect-ratio: 90 / 90;
    width: 45px;
    position: relative;
    /*top: 50%;*/
    right: -20px;
}

.ft_cv_mail i.icon-line {
    margin-right: 10px;
    background: url(../img/icon-line.png) center / cover, no-repeat;
    aspect-ratio: 90 / 90;
    width: 45px;
    position: relative;
    /*top: 50%;*/
    right: -20px;
}

.ft_cv_mail_txt {
    color: #fff;
    font-size: 2rem;
    font-weight: bold;
    padding: 0 20px;
    position: relative;
    line-height: 1.2;
    z-index: 2;
}
.ft_cv_link .s-txt{    
	font-size: 1.5rem;
    font-weight: 500;
    margin: 0 0 5px;
    text-align: center;
    color: #fff;
    letter-spacing: .1em;
}

@media screen and (max-width: 768px) {

    .ft_cv_area {
		background:  url("../img/bg-footer-sp.png") no-repeat center / cover;
        padding: 60px 0 50px 0;
		border-radius: 30px 30px 0 0;
    }

    .ft_cv_ttl .en {
        font-size: 6.0rem;
		top: 55px;
    }

    .ft_cv_ttl .ja {
        font-size: 2.0rem;
        letter-spacing: 0;
		margin: 10px 0 0;
		left: 0;
    }
	
	.ft_cv_ttl .ja::before{        
		width: 13px;
        left: 10px;
	}

    .ft_cv_catch {
        font-size: 2rem;
        line-height: 1.6;
        letter-spacing: .03em;
        text-align: center;
        width: fit-content;
        margin: 30px auto 10px;
		font-weight: bold;
		font-feature-settings: "palt";
    }
    .ft_cv_body {
        flex-wrap: wrap;
        gap: 15px;
        margin: 25px 0 0;
		padding: 50px 0 0;
    }

    .ft_cv_tel {
        font-size: 1.7rem;
        text-decoration: none !important;
        text-align: center;
		margin: 0 0 10px;
    }

    .ft_cv_tel_num {
        font-size: 3.3rem;
        margin: 0 auto;
        text-align: center;
		color: var(--black);
    }

    .ft_cv_tel_num::before {
        font-size: 2.3rem;
    }
    
    .ft_cv_tel_time {
        font-size: 1.4rem;    
		justify-content: center;
		color: var(--black);
    }
    
    .ft_cv_tel_hour {
        font-size: 1.8rem;
    }

	.ft_cv_link .s-txt{
		display: none;
	}
	
	.ft_cv_body .ft_flex{
		gap: 15px;
		margin: 20px 0 0;
	}
    .ft_cv_mail {
        height: inherit;
        width: 100%;
		min-height: 110px;
		max-width: 160px;
        flex-wrap: wrap;
        padding: 15px 0 15px;
		border-radius: 5px;
        gap: 5px;
    }
    
    .ft_cv_mail::after {
        font-size: 1.5rem;
    }

	.ft_cv_mail i.icon-mail,
	.ft_cv_mail i.icon-line{
		width: 40px;
		top: 0;
		right: 0;
		margin: 0 auto;
	}
    .ft_cv_mail_txt {
        font-size: 1.8rem;
		padding: 0;
        width: fit-content;
		min-width: 120px;
    }

    .ft_cv_mail_txt::after {
        
    }
}




/* -----------------------------------------------------------
    footer
-------------------------------------------------------------- */
.footer {
    padding: 80px 0 0;
}

/**************フッター共通タイトル**************/
.ft_cmn_title {
    background: #eaeaea;
    font-size: 2.2rem;
    font-weight: bold;
    letter-spacing: .03em;
    line-height: 1;
    padding: 15px 0 18px;
    text-align: center;
}

.ft_cmn_subtitle {
    font-size: 2.1rem;
    font-weight: bold;
    text-align: center;
}

/**************ft_pay_area**************/
.ft_pay_area {
    padding: 90px 0 70px;
}

.ft_pay_logo_wrap {
    display: flex;
    justify-content: space-between;
    margin: 35px 0 0;
}

.ft_pay_logo_wrap dl {
    width: calc(100% / 2);
    position: relative;
    padding: 0 30px;
}

.ft_pay_logo_wrap dl:nth-child(2)::before {
    content: "";
    width: 1px;
    height: 100%;
    border-left: 2px dotted #aaa;
    position: absolute;
    top: 0;
}

.ft_pay_logo_wrap dl:nth-child(2)::before {
    left: 0;
}

.ft_pay_logo_wrap dd {
    margin: 30px 0 0;
}

.ft_pay_logo {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 15px 10px;
}

.ft_pay_cap {
    font-size: 1.4rem;
    text-align: center;
    margin: 15px 0 0;
}

.ft_pay_logo li {
    align-items: center;
    display: flex;
}

.ft_pay_logo li img {
    max-height: 35px;
    max-width: 55px;
}

/**************ft_areainfo**************/
.ft_areainfo_ttl {
    text-align: center;
    font-size: 2.3rem;
    font-weight: bold;
    letter-spacing: .03em;
}

.ft_areainfo_note {
    margin: 20px 0 40px;
    text-align: center;
    letter-spacing: .07em;
    position: relative;
    z-index: 2;
}

/**************f_company**************/
.f_company_address {
    font-size: 1.6rem;
    font-weight: 400;
    line-height: 1.75;
    letter-spacing: .03em;
    margin: 20px 0 0;
}

.f_company_address a {
    font-size: 1.5rem;
}

.f_address_txt {
    line-height: 1.6;
    font-size: 1.5rem;
}

.f_address_txt span {
    display: block;
    font-weight: bold;
    line-height: 2;
}

.f_address_pin {
    align-items: center;
    display: flex;
    margin: 10px 0 0;
    gap: 13px;
}

.f_address_pin a {
    align-items: center;
    border: 1px solid #bbb;
    color: #333;
    font-size: 1.5rem;
	border-radius: 50px;
    display: flex;
    justify-content: center;
    gap: 3px;
    padding: 5px 20px 7px;
    line-height: 1;
}

.f_address_pin a:hover {
    border-color: var(--link);
    background: var(--link);
    color: #fff;
}

.f_address_pin a:hover i {
    color: #fff;
    transition: .5s;
}

.f_address_pin i {
    color: var(--link);
    font: 900 1.5rem/1 var(--webicon);
    margin: 3px 3px 0 0;
}

/**************sitemap_wrap**************/
.sitemap_wrap [class^="sitemap_list_"] {
    display: flex;
    gap: 80px;
    width: fit-content;
}

.sitemap_list .sitemap_item, .sitemap_list .sitemap_txt {
    font-size: 1.4rem;
    margin: 0 0 20px;
    line-height: 1;
}

.sitemap_list .sitemap_txt {
    color: #888;
    border-bottom: 1px solid #bbb;
    margin: 0 0 20px;
    padding: 0 0 8px;
}

.sitemap_list a {
    font-weight: 400;
}

.sitemap_list a:hover {
    color: var(--main);
}

.sitemap_product {
    min-width: 325px;
}

@media screen and (min-width:769px) and (max-width:1240px) {
    .sitemap_list .sitemap_item {
        font-size: 1.3rem;
        margin: 0 0 15px;
    }
}

.sitemap_list .sitemap_item:last-of-type {
    margin: 0;
}

.sitemap_list a {
    color: #333;
    line-height: 1.3;
}

.sitemap_under {
    display: flex;
    flex-wrap: wrap;
    flex-direction: column;
    margin: 20px 0 10px;
    gap: 5px 40px;
}

.sitemap_product .sitemap_under {
    height: 385px;
}

.sitemap_under li {
    font-size: 1.4rem;
    margin: 0 0 20px;
    position: relative;
    padding: 0 0 0 16px;
}

.sitemap_under li::before {
    content: '';
    top: 50%;
    left: 0;
    position: absolute;
    width: 10px;
    border-bottom: 1px solid var(--link);
}

/**************f_top_wrap**************/
.f_top_wrap {
    display: flex;
    justify-content: space-between;
    gap: 50px;
}

.f_top {
    flex-shrink: 0;
    gap: 35px;
}

.f_top .f_company_logo {
    width: 210px;
}

.f_top .f_company_logo a{
    display: inline-block;
}

.f_top .f_company_logo img {
    width: 250px;
    aspect-ratio: 210/25;
}

.f_top .f_sns_logo {
	display: flex;
    gap: 20px;
    align-items: center;
	margin: 20px 0 0;
}

.f_top .f_company_logo a{
    display: inline-block;
}

.f_top .f_sns_logo img {
    width: 38px;
    height: 38px;
}

/**************f_btm_wrap**************/
.bg_f_btm_wrap{
	/*background: var(--main);*/
}
.f_btm_wrap {
    align-items: flex-end;
    display: flex;
    justify-content: space-between;
    margin: 60px auto 0;
	padding: 0px 0 60px;
}

.f_btm_list {
    display: flex;
}

.f_btm_list li {
    margin: 0 40px 0 0;
	position: relative;
}

.f_btm_list li:last-child {
    margin: 0;
}
.f_btm_list li::before {
    content: "";
    width: 1px;
    height: 10px;
    position: absolute;
    background: #888;
    right: -20px;
    top: 5px;
}
.f_btm_list li:last-child::before {
	display: none;
}

.f_btm_list a {
    color: #888;
    font-size: 1.3rem;
    font-weight: 400;
}

.f_btm_list i {
    margin-left: 5px;
}

.f_copy {
    color: #888;
    font-size: 1.2rem;
    font-weight: 400;
    letter-spacing: .03em;
}

.f_b_left {
    align-items: flex-end;
    display: flex;
}

.f-copy.simple {
    text-align: center;
    padding: 30px 0 20px;
    letter-spacing: .1em;
	color: #fff;
    background: var(--main);
}
.f-copy {
    font-size: 1.2rem;
    line-height: 1.3;
    font-weight: 400;
}
@media screen and (max-width: 768px) {
    .footer {
        padding: 0;
    }

    .drawer_open .footer {
        opacity: 0 !important;
    }

    /**************フッター共通**************/
    .ft_cmn_title {
        font-size: 1.9rem;
        letter-spacing: .02em;
        line-height: 1.5;
        padding: 25px 0 20px;
    }

    .ft_cmn_subtitle {
        font-size: 1.9rem;
    }

    /**************ft_pay_area**************/
    .ft_pay_area {
        padding: 0 0 30px;
    }

    .ft_pay_logo_wrap {
        display: block;
        margin: 25px 20px 0;
    }

    .ft_pay_logo_wrap dl {
        width: 100%;
        padding: 0;
    }

    .ft_pay_logo_wrap dl:nth-child(2) {
        padding: 25px 0 0;
        margin: 25px 0 0;
    }

    .ft_pay_logo_wrap dl:nth-child(2)::before, .ft_pay_logo_wrap dl:nth-child(2)::after {
        width: 100%;
        height: 1px;
        border-left: none;
        border-top: 2px dotted #bed8b9;
    }

    .ft_pay_logo_wrap dl:nth-child(2)::before {
        left: 0;
    }

    .ft_pay_logo_wrap dl:nth-child(2)::after {
        right: 0;
        top: auto;
        bottom: 0;
    }

    .ft_pay_logo_wrap dd {
        margin: 17px 0 0;
    }

    .ft_pay_ttl {
        letter-spacing: .03em;
        font-size: 1.8rem;
        margin: 0 0 15px;
        line-height: 1.44;
    }

    .ft_pay_logo li {
        gap: 13px 10px;
    }

    .ft_pay_logo li img {
        max-width: 60px;
    }

    /**************ft_areainfo**************/
    .ft_areainfo_note {
        margin: 20px 0 30px;
        text-align: left;
        letter-spacing: .05em;
        padding: 0 20px;
        font-size: 1.5rem;
        line-height: 2;
    }

    /**************f_company**************/
    .f_top .f_company_logo {
        /*width: 171px;*/
        width: 250px;
        margin: 0 auto;
    }
	
	.f_top .f_sns_logo {
        justify-content: center;
        margin: 30px 0;
        gap: 20px;
    }

    .f_address_txt {
        line-height: 1.56;
        font-size: 1.6rem;
    }

    .f_company_address {
        /*margin: 30px 0 60px;*/ /*新ロゴ*/
        margin: 20px 0 0px;
        text-align: center;
    }

    .f_company_address span {
        margin: 0;
    }

    .f_company_address a {
        font-size: 1.4rem;
        font-weight: bold;
    }

    .f_address_pin {
        justify-content: center;
        margin: 20px 0 0;
    }

    .f_address_pin i {
        font-size: 1.7rem;
    }

    /**************f_mid_area**************/
    .f_mid_area {
        padding: 55px 0 0;
    }

    /**************sitemap_wrap**************/
    .sitemap_wrap {
        display: none;
    }

    /**************f_top_wrap**************/
    .f_top_wrap {
        display: block;
        margin: 0 0 50px;
    }

    .f_top {
        display: block;
    }

    /**************f_btm_wrap**************/
    .f_btm {
        display: block;
    }

    .f_company_logo {
        text-align: center;
    }

    .f_btm_wrap {
        width: 100%;
        display: block;
        margin: 0 0 72px;
		padding: 10px 0;
    }

    .f_copy {
        text-align: center;
    }

    .f_company_tel {
        display: none;
    }

    .f_btm_list {
        display: none;
    }

    .f_b_left {
        justify-content: center;
        margin: 0;
    }
	.f-copy.simple {
        padding: 20px 0;
    }

}

@media screen and (max-width: 360px) {
    .ft_cv_catch {
        font-size: 2rem;
    }

    .ft_cv_catch::before {
        bottom: -25px;
        height: 140px;
        right: -95px;
        width: 103px;
    }
}

/* -----------------------------------------------------------
    ft_area   ※※注意※※  下層 対応エリアページでも使用
-------------------------------------------------------------- */
.ft_area .ft_area_inner {
    display: flex;
    justify-content: space-between;
}

.ft_area .ft_cmn_subtitle {
    align-items: center;
    display: flex;
    width: fit-content;
    position: relative;
    margin: 0 auto;
    gap: 10px;
}

.ft_area .ft_cmn_subtitle span {
    font-size: 2.4rem;
}

.ft_area .ft_cmn_subtitle i {
    font-size: 3.2rem;
}

.ft_area_personal {
    border-right: 2px dotted #aaa;
    flex-shrink: 0;
    width: 770px;
}

.ft_area .ft_area_column {
    padding: 0 15px;
}

.ft_area .ft_area_ttl {
    flex-shrink: 0;
    font-size: 1.9rem;
    font-weight: bold;
    text-align: center;
    padding: 2px 0 0;
}

.ft_area_wrap {
    align-items: center;
    display: flex;
    width: 100%;
    gap: 20px;
    margin-top: 40px;
}

.ft_area_column .ft_area_wrap:first-of-type {
    margin-top: 30px;
}

.ft_area_wrap .ft_area_list {
    display: flex;
    gap: 20px 30px;
    flex-wrap: wrap;
}

.ft_area_wrap .ft_area_list dl {
    align-items: center;
    display: flex;
    gap: 12px;
}

.ft_area_wrap .ft_area_list dt {
    background: #ddd;
    font-size: 1.5rem;
    font-weight: bold;
    padding: 5px 10px 7px;
    width: 100px !important;
    text-align: center;
}

.ft_area_wrap .ft_area_list dt {
    background: #eaeaea;
}

.ft_area_wrap .ft_area_list dd {
    font-size: 1.5rem;
    letter-spacing: .07em;
}

.ft_area .ft_area_multiple dd {
    line-height: 1.66;
}

@media screen and (max-width: 768px) {
    .ft_area .ft_area_wrap {
        align-items: flex-start;
        width: 100%;
    }

    .ft_area .ft_area_inner {
        display: block !important;
        gap: 25px;
    }

    .ft_area .ft_area_column {
        padding: 0;
        width: 100%;
    }

    .ft_area .ft_area_corp {
        margin: 50px 0 0;
    }

    .ft_area_personal {
        border-right: none;
    }

    .ft_area .ft_area_ttl {
        font-size: 1.7rem;
        margin: 0;
        padding: 5px 0 0;
    }

    .ft_area .ft_area_list {
        gap: 15px 30px;
    }

    .ft_area_wrap .ft_area_list dl {
        display: block;
    }

    .ft_area_wrap .ft_area_list dt {
        float: left;
        padding: 7px 7px 9px;
        min-width: 65px;
        margin: 0 8px 0 0;
        width: auto !important;
    }

    .ft_area_wrap .ft_area_list dd {
        display: inline;
        line-height: 2.1;
    }
}

/* -----------------------------------------------------------
    h1
-------------------------------------------------------------- */
.h1-area {
	position: absolute;
	top: 420px;
	/*right: calc( ( 100% - 1200px ) / 2 );*/
	right: 30px;
	z-index: 1;
	width: 60%;
}

@media screen and (max-width: 1500px){
	
	.h1-area {
		top: 400px;
	}
}
.h1-area.simple {
	top: 342px;
}

.h1-area h1{
	font-size: 1.2rem;
	color: #888;
	text-align: right;
	font-weight: 400;
    /*margin: 0 0 0 auto;*/
	font-feature-settings: "palt";
	
	width: 100%;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}


@media screen and (max-width: 768px){

	/* h1 */
	.h1-area,
	.h1-area.simple{
		left: 20px;
		top: 10px;
		right: auto;
		width: calc( 100% - 40px );
	}
	.h1-area h1{
		width: auto;
		font-size: 1rem;
		overflow: hidden;
		text-overflow: ellipsis;
		white-space: nowrap;
		text-align: left;
	}

}


/* -----------------------------------------------------------
    下層h1 ＆ パンくず
-------------------------------------------------------------- */
.bread-h1-wrap {
    align-items: center;
    display: flex;
    width: 100%;
    z-index: 5;
    margin: 0 auto;
    left: 0;
    right: 0;
    padding: 20px 30px 0;
    justify-content: space-between;
}

.under-h1 {
    text-align: right;
}

.under-h1 h1 {
	color: #bbb;
    font-size: 1.2rem;
    font-weight: 400;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    width: 450px;
    margin: 0 0 0 auto;
    padding: 0 0 3px;
}

.form_page .h1_area {
    top: 440px;
}

.breadcrumblist {    
	font-size: 1.2rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    width: 500px;
    padding: 0 0 4px;
	color: #888;
	font-weight: 400;
}

.breadcrumblist a {
    text-decoration: underline;
	color: #888;
}

.breadcrumblist a::after {
    display: inline-block;
    content: "\f105";
    font-weight: 900;
    font-family: var(--webicon);
    padding: 0 10px;
}

@media screen and (max-width: 768px) {
    .bread-h1-wrap {
        display: block;
        top: 12px;
        padding: 10px 15px 0;
		justify-content: flex-end;
    }

    .bread-h1-wrap .breadcrumblist {
        display: none;
    }

    .under-h1 h1 {
        font-size: 1rem;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        padding: 0 5px 0px 0;
        width: 100%;
    }
}

/* -----------------------------------------------------------
    404
-------------------------------------------------------------- */
#contents-404 {
    padding: 60px 0 0;
    text-align: center;
}

#contents-404 .bread-h1-wrap {
    top: 0;
}

#contents-404 .breadcrumblist {
    text-align: left;
}

#contents-404 .en-ttl {
    color: var(--main);
    font: bold 4.5rem/1 var(--en);
}

#contents-404 .ttl {
    color: var(--main);
    font-weight: bold;
    font-size: 2rem;
    letter-spacing: .05em;
    margin: 20px 0 0 0;
}

#contents-404 .txt-wrap {
    margin: 30px 0 0 0;
}

#contents-404 .txt-wrap p {
    line-height: 2;
}

#contents-404 .btn-wrap {
    display: flex;
    justify-content: center;
    margin: 40px auto 0;
}

#contents-404 .ft_link_area {
    margin-top: 80px;
}

@media screen and (max-width: 768px) {
    #contents-404 {
        padding: 40px 0 0;
    }

    #contents-404 .en-ttl {
        font-size: 3.8rem;
    }

    #contents-404 .ttl {
        font-size: 1.8rem;
        line-height: 1.3;
        margin: 10px 0 0 0;
    }

    #contents-404 .txt-wrap {
        margin: 15px 0 0 0;
    }

    #contents-404 .txt-wrap p {
        line-height: 1.7;
        margin-bottom: 10px;
    }

    #contents-404 .btn-wrap {
        display: block;
        margin: 30px 0 0 0;
        width: 100%;
    }

    #contents-404 .btn-wrap li:first-child {
        margin-bottom: 20px;
    }

    #contents-404 .ft_link_area {
        margin-top: 60px;
    }
}

/* -----------------------------------------------------------
    利用規約の注釈
-------------------------------------------------------------- */
.privacy_note {
    text-align: center;
    margin-bottom: 20px;
    font-size: 1.4rem;
}

.privacy_note a {
    color: var(--link);
    text-decoration: underline;
    margin: 0 5px 0 0;
}

.privacy_note i {
    margin: 0 0 0 3px;
    font-size: 1.2rem;
}

@media screen and (max-width: 768px) {
    .privacy_note a {
        font-size: 1.3rem;
    }
}

/* -----------------------------------------------------------
	サービス導線
-------------------------------------------------------------- */

.intro-area .service-list{    
	display: flex;
    justify-content: space-between;
    gap: 30px;
	margin: 50px 0 0;
}
.intro-area .service-list li{
    width: calc((100% - 120px) / 5);
    position: relative;
    transition: all .2s;
}
.intro-area .service-list li a{
}
.intro-area .service-list li .balloon{
    position: relative;
    display: inline-block;
	width: 100%;
    margin: -10px 0 24px 0;
    padding: 7px 30px;
    min-width: 120px;
    max-width: 100%;
	background: #fff;
    border: 1px solid var(--blue);
    box-sizing: border-box;
    border-radius: 70px;
	line-height: 1.2;
	text-align: center;
}

.intro-area .service-list li.service01 .balloon{
    border: 1px solid var(--green);
}
.intro-area .service-list li.service03 .balloon{
    border: 1px solid var(--orange);
}
.intro-area .service-list li.service04 .balloon{
    border: 1px solid var(--purple);
}
.intro-area .service-list li.service05 .balloon{
    border: 1px solid var(--pink);
}

.intro-area .service-list li .balloon span {
    margin: 0;
    padding: 0;
    font-size: 1.4rem;
    font-weight: 600;
	line-height: 1;
	color: #333;
}

.intro-area .service-list li .balloon:before,
.intro-area .service-list li .balloon:after {
    content: "";
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
}

.intro-area .service-list li .balloon:before {
    bottom: -23px;
    border: 11px solid transparent;
    border-top: 11px solid var(--blue);
    z-index: 0;
}

.intro-area .service-list li.service01 .balloon:before{
    border-top: 11px solid var(--green);
}
.intro-area .service-list li.service03 .balloon:before{
 	border-top: 11px solid var(--orange);
}
.intro-area .service-list li.service04 .balloon:before{
    border-top: 11px solid var(--purple);
}
.intro-area .service-list li.service05 .balloon:before{
    border-top: 11px solid var(--pink);
}

.intro-area .service-list li .balloon:after {
    bottom: -20px;
    border: 10px solid transparent;
    border-top: 10px solid #fff;
    z-index: 1;
}

.intro-area .service-list li .service-name {
	font-size: 2.2rem;
	line-height: 1.4;
    text-align: center;
	margin: 0 0 10px;
	min-height: 61px;
	display: flex;
	justify-content: center;
	align-items: center;
	font-weight: bold;
}
.intro-area .service-list li .basic-txt {
	font-size: 1.4rem;
	color: #777;
}
.intro-area .service-list li a .arrow {
    position: absolute;
    bottom: -10px;
    right: 10px;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 30px;
    height: 30px;
    aspect-ratio: 1 / 1;
	color: #fff;
    background: var(--blue);
    border: 2px solid var(--blue);
    border-radius: 30px;
    font-size: 1.0rem;
    transition: all .2s;
}

.intro-area .service-list li.service01 a .arrow{
    background: var(--green);
    border: 2px solid var(--green);
}
.intro-area .service-list li.service03 a .arrow{
    background: var(--orange);
    border: 2px solid var(--orange);
}
.intro-area .service-list li.service04 a .arrow{
    background: var(--purple);
    border: 2px solid var(--purple);
}
.intro-area .service-list li.service05 a .arrow{
    background: var(--pink);
    border: 2px solid var(--pink);
}

.intro-area .service-list li a:hover .arrow {
    background: #fff;
    color: var(--blue);
}

.intro-area .service-list li.service01 a:hover .arrow{
    color: var(--green);
}
.intro-area .service-list li.service03 a:hover .arrow{
    color: var(--orange);
}
.intro-area .service-list li.service04 a:hover .arrow{
    color: var(--purple);
}
.intro-area .service-list li.service05 a:hover .arrow{
    color: var(--pink);
}

@media screen and (max-width: 768px) {
	.intro-area .service-list{ 
		gap: 20px 10px;
		flex-wrap: wrap;
		margin: 20px 0 0;
		position: relative;
		padding: 0 20px;
	}
	.intro-area .service-list li{
		width: calc((100% - 10px) / 2);
		position: relative;
		transition: all .2s;
	}
	.intro-area .service-list::before{
		content: "";
        display: inline-block;
        position: absolute;
        background: url(../img/service-list-ill.png) center / cover, no-repeat;
        aspect-ratio: 317 / 343;
        bottom: 0;
        right: -11px;
        width: 150px;
	}
		
	.intro-area .service-list li .balloon{
		position: relative;
		display: inline-block;
		width: 100%;
		margin: -10px 0 24px 0;
		padding: 10px 10px;
		border-radius: 10px;
	}
	
	.intro-area .service-list li a img{
		width: 100%;
        height: 175px;
        object-fit: cover;
        border-radius: 5px;
	}
	.intro-area .service-list li .balloon:before {
		bottom: -22px;
	}
	.intro-area .service-list li .balloon:after{
		bottom: -19px;
	}

	.intro-area .service-list li .balloon span {
		font-size: 1.3rem;
	}

	.intro-area .service-list li .service-name {
		font-size: 1.6rem;
		font-weight: bold;
		margin: -10px 0 0px;
		padding: 0 0 30px;
	}
	.intro-area .service-list li a .arrow {
		width: 25px;
		height: 25px;    
		bottom: 0px;
		right: 0px;
	}

}
/* -----------------------------------------------------------
	業界導線
-------------------------------------------------------------- */

.intro-area .industry-block{    
	padding: 70px 50px;    
	background: url(../img/bg-top-industry.png) top / cover, no-repeat var(--blue01);
	border-radius: 25px;
    margin: 0px 0;
    position: relative;
}
.intro-area .industry-ttl .fukidashi{
	position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    line-height: 1.3;
    font-size: 1.6rem;
    font-weight: 600;
    width: 214px;
    top: -78px;
    z-index: 1;
}
.intro-area .industry-ttl .fukidashi::before {
    content: "";
    display: inline-block;
    position: absolute;
    top: -13px;
    left: 50%;
    transform: translateX(-50%);
    background: url(../img/fukidashi03.svg) center / cover, no-repeat;
    width: 214px;
    height: 60px;
    z-index: -1;
}

.intro-area .industry-list {
    display: flex;
    justify-content: space-between;
    gap: 25px;
}

.intro-area .industry-list li{
    width: calc((100% - 50px) / 3);
    position: relative;
    transition: all .2s;
}
.intro-area .industry-list li a{
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 20px;
	background: #fff;
	padding: 20px 20px;
	border-radius: 5px;
	position: relative;
	top: 0;
}
.intro-area .industry-list li a:hover{
	top: -10px;
}
.intro-area .industry-list li .sub-ttl{ 
	width: 285px;
	align-items: center;
    font-size: 1.6rem;
    font-weight: bold;
    display: block;
    padding: 0px 30px;
    position: absolute;
    right: 0;
    margin: 0 auto;
    left: 0;
    top: -40px;
    text-align: center;
	color: #fff;
}

.intro-area .industry-list li .sub-ttl::before,
.intro-area .industry-list li .sub-ttl::after {
    content: '';
    position: absolute;
    top: 50%;
    display: inline-block;
    width: 20px;
    height: 2px;
    background-color: #fff;
    -webkit-transform: rotate(60deg);
    transform: rotate(60deg);
}

.intro-area .industry-list li .sub-ttl::before {
    left: 0;
}

.intro-area .industry-list li .sub-ttl::after {
    right: 0;
    -webkit-transform: rotate(-60deg);
    transform: rotate(-60deg);
}
.intro-area .industry-list li .txt h4 {
	font-size: 2.0rem;
	font-weight: 600;
	margin: 0 0 10px;
}
.intro-area .industry-list li .txt .basic-txt {
	font-size: 1.3rem;
	line-height: 1.6;
}
.intro-area .industry-list li .txt .arrow {
	position: absolute;
	right: 20px;
	color: var(--blue);
	font-size: 1.4rem;
}

@media screen and (max-width: 768px) {

	.intro-area .industry-block{  
		margin: 50px 0 0;
		padding: 60px 20px 30px;
		border-radius: 25px 25px 0px 0px;
	}
	.intro-area .industry-ttl .fukidashi{
		font-size: 1.4rem;
		width: 180px;
		top: -70px;
	}
	.intro-area .industry-ttl .fukidashi::before {
		top: -10px;
		left: 50%;
		aspect-ratio: 214 / 60;
        bottom: 0;
        right: -11px;
        width: 180px;
		height: auto;
    }

	.intro-area .industry-list {
		display: block;
	}

	.intro-area .industry-list li{
		width: 100%;
		margin: 0 0 50px;
	}
	
	.intro-area .industry-list li:last-child{
		margin: 0;
	}
	.intro-area .industry-list li a{
		padding: 20px 10px;
		gap: 15px;
	}
	.intro-area .industry-list li a:hover{
		top: -10px;
	}
	.intro-area .industry-list li .img{ 
		width: 100px;
		height: 90px;
	}
	.intro-area .industry-list li .img img{ 
		width: 100%;
		height: 90px;
		object-fit: cover;
		object-position: top;
	}
	.intro-area .industry-list li .sub-ttl{ 
		top: -35px;
	}
	.intro-area .industry-list li .txt  {
		width: calc(100% - 115px);
	}
	.intro-area .industry-list li .txt h4 {
		font-size: 1.8rem;
	}
	.intro-area .industry-list li .txt .basic-txt {
		font-size: 1.3rem;
		line-height: 1.6;
	}
	.intro-area .industry-list li .txt .arrow {
		right: 10px;
        bottom: 5px;
	}
}
/* -----------------------------------------------------------
	about-area　作図
-------------------------------------------------------------- */
.leadbrain-wrap{
	position:relative;
	width:clamp(280px, 80vw, 420px);
	aspect-ratio:1/1;
	margin:auto;
}

.outer-circle{
	position:absolute;
	width:100%;
	height:100%;
	border-radius:50%;
	border:18px solid #F0F6FB;
	background:#DAEFF5;
}

.diamond-line{
	position:absolute;
	width:100%;
	height:100%;
}

.diamond-line polygon{
	fill:none;
	stroke:var(--blue);
	stroke-width:1.5;
}

/* 中央 */
.leadbrain{
	position:relative;
	width:100%;
	height:100%;
}

/* 共通円 */
.circle{
	position:absolute;
	width:50%;
height:50%;

	border-radius:50%;
	background:#2f7dbf;
	color:#fff;
	display:flex;
	align-items:center;
	justify-content:center;
	text-align:center;
	padding:10px;
	line-height:1.4;
	font-size:clamp(11px,1.4vw,14px);
	top:45%;
	left:45%;
	opacity:0;
	transform:translate(-50%, -50%) scale(.7);
	transition:transform .3s;
	transform-origin:center;
}

/* 配置 */

.circle1{
transform:rotate(0deg) translate(0,-180px) rotate(0deg);
	left: 204px;
	    top: 0px;
}

.circle2{
transform:rotate(90deg) translate(0,-180px) rotate(-90deg);
	left: 400px;
	
}

.circle3{
transform:rotate(180deg) translate(0,-180px) rotate(-180deg);
	left: 204px;
	top: 380px;
}

.circle4{
transform:rotate(270deg) translate(0,-180px) rotate(-270deg);    
	left: 20px;
}

/* 表示アニメーション */
.show .circle{
animation:circleFade .8s forwards;
}

.show .circle1{animation-delay:.2s;}
.show .circle2{animation-delay:.4s;}
.show .circle3{animation-delay:.6s;}
.show .circle4{animation-delay:.8s;}

@keyframes circleFade{
from{
opacity:0;
transform:scale(.6) translate(-50%,-50%);
}
to{
opacity:1;
transform:scale(1) translate(-50%,-50%);
}
}

/* hover */
.circle:hover{
transform:translate(-50%,-50%) scale(1.08);
}

/* 中央ロゴ */
.center-logo{
	position:absolute;
	width:55%;
	height:55%;
	background:#fff;
	border-radius:50%;
	top:50%;
	left:50%;
	transform:translate(-50%,-50%) scale(.7);
	display:block;
	align-items:center;
	justify-content:center;
	box-shadow:0 10px 30px rgba(0,0,0,0.1);
	opacity: 0;
	padding: 40px 0;
	text-align: center;
	font-weight: bold;
	color: var(--gray);
}

.center-logo img{
	width:60%;
	height:auto;
	margin: 0 auto 15px;
}

.show .center-logo{
animation:centerFade 1s forwards 1s;
}

@keyframes centerFade{
to{
opacity:1;
transform:translate(-50%,-50%) scale(1);
}
}
.circle-inner{

width:100%;
height:100%;
border-radius:50%;
background:#2f7dbf;
color:#fff;    
	display: block;
    padding: 50px 0;

/*display:flex;*/
align-items:center;
justify-content:center;
text-align:center;

opacity:0;
transform:scale(.6);
animation:fadeCircle .8s forwards;
	    font-size: 1.8rem;
    line-height: 1.4;
}

.circle-inner img{
	margin: 0 auto 8px;
}

.circle1 .circle-inner{
	animation-delay:.2s;
    padding: 25px 0;
}
.circle2 .circle-inner{
	animation-delay:.4s;
    padding: 30px 0 30px 15px;
}
.circle3 .circle-inner{
	animation-delay:.6s;
    padding: 50px 0;
}
.circle4 .circle-inner{
	animation-delay:.8s;
    padding: 50px 10px 50px 0;
}

@keyframes fadeCircle{
to{
opacity:1;
transform:scale(1);
}
}

/* スマホ微調整 */

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

.circle{
font-size:11px;
}

.outer-circle{
border:14px solid #F0F6FB;
}
}
@media screen and (max-width: 768px) {
.circle1{
	left: 50%;
    top: 25px;
}

.circle2{
	left: 86%;
	top: 155px;
}

.circle3{
	left: 50%;
        top: 90%;
}

.circle4{        top: 155px;
	left: 14%;
}
	.circle{
		width: 50%;
		height: 50%;
	}
	.center-logo{
		width: 50%;
		height: 50%;
		padding: 20px 0;
		font-size: 1.4rem;
        line-height: 1.2;
	}
	
	.center-logo img{
		margin: 0 auto 10px;
	}
	
	.circle-inner{
		font-size: 1.2rem;
	}
	
	.circle1 .circle-inner {
		padding: 5px 0;
	}
	
	.circle2 .circle-inner {
		padding: 15px 0 15px 16px;
	}

	
	.circle3 .circle-inner {
		padding: 25px 0;
	}

	
	.circle4 .circle-inner {
		padding: 30px 16px 15px 0px;
	}

}


