@charset "UTF-8";

/* ===============================================
root
=============================================== */
:root {
/* font */
--mincho: "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "MS P明朝", serif;
--gothic: 游ゴシック体, YuGothic, 'Yu Gothic', "游ゴシック Medium", "Yu Gothic Medium", 'ヒラギノ角ゴシック Pro', 'Hiragino Kaku Gothic Pro', メイリオ, Meiryo, Osaka, 'ＭＳ Ｐゴシック', 'MS PGothic', sans-serif;
/* color */
--txt-color: #000;
--main-color: #110000;
--btn-color: #eaff5b;
--gradient:90deg, #4d4d85, #67a2cb, #c376c8;
--white: #fff;
--black: #000;
}


/* ===============================================
default sp
=============================================== */
* { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; }
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, section, summary, time, mark, audio, video { padding: 0; margin: 0; font: inherit; word-wrap: break-word; border: 0; vertical-align: baseline; outline: none; }
body { padding: 0; margin: 0; color: var(--txt-color); font-size: 3.5vw; font-family: var(--gothic); -webkit-text-size-adjust: 100%; font-style: normal; line-height: 1.8; }
article, aside, canvas, details, figcaption, figure, header, footer, hgroup, main, menu, nav, section, summary { display: block; }
blockquote, q { quotes: none; }
strong, b { font-weight: bold; }
ul, ol, li { list-style: none; }
table { border-spacing: 0; border-collapse: collapse; }
img, video, object { height: auto; border: none; display: block; }
ins { background: none; color: #000; text-decoration: none; }
mark { background-color: #768e9d; color: #fff; font-style: normal; font-weight: normal; padding: 2px 10px; }
del { text-decoration: line-through; }
abbr[title], dfn[title] { border-bottom: 1px dotted; cursor: help; }
hr { height: 1px; padding: 0; margin: 1em 0; border: 0; border-top: 1px solid #ccc; display: block; }
::selection { background-color: #e1ebf1; }
*:before, *:after { -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; }
a { color: var(--txt-color); text-decoration: none; display: block; -moz-transition: all 0.3s cubic-bezier(0.76, 0, 0.24, 1); -o-transition: all 0.3s cubic-bezier(0.76, 0, 0.24, 1); -webkit-transition: all 0.3s cubic-bezier(0.76, 0, 0.24, 1); transition: all 0.3s cubic-bezier(0.76, 0, 0.24, 1); }
a:hover { opacity: 0.6; }
.clearfix:after { content: ''; display: block; clear: both; }
.pc { display: none; }
.sp { display: block; }
img { max-width: 100%; margin: 0 auto; }

/* ===============================================
common sp
=============================================== */

/* 見出し共通
----------------------------------------------- */
.midashi01 { font-size: 5vw; font-weight: bold; line-height: 1.6; }
.midashi02 { font-size: 4.5vw; font-weight: bold; line-height: 1.6; }
.midashi03 { font-size: 4vw; font-weight: bold; line-height: 1.6; }
.midashi04 { font-size: 3.8vw; font-weight: bold; line-height: 1.6; }
.midashi05 { font-size: 3.5vw; font-weight: bold; line-height: 1.6; }

/* フェードアニメーション
----------------------------------------------- */
.fade-up { opacity: 0; transform: translateY(30px); transition: opacity 0.8s ease, transform 0.8s ease; }
.fade-up.is-visible { opacity: 1; transform: translateY(0); }

/* header
----------------------------------------------- */
.header {position: fixed;top: 0;left: 0;width: 100%;z-index: 100;/* background: rgba(255,255,255,0.95); */}
.header-inner {display: flex;align-items: center;justify-content: space-around;padding: 2vw 4vw;}
.header-logo { display: block; }
.header-logo a { display: block; }
.header-logo img {width: 18vw;height: auto;}
.header-btn { display: block; }
.header-btn-link { display: block; }
.header-btn img { width: 45vw; height: auto; }

/* hero
----------------------------------------------- */

.hero-bg {background-image: url(../images/hero-bg-sp.jpg);background-size: cover;background-position: center top;min-height: 120vw;position: relative;}
.hero-inner {position: relative;padding: 65vw 0 0;}
.hero-txt { display: block; }
.hero-txt img {width: 100%;height: auto;}

/* cv
----------------------------------------------- */
.cv {background-color: var(--main-color);padding: 20vw 5vw 25vw;position: relative;}
.cv-inner { text-align: center; }
.cv-logo {margin: 0 auto 3vw;}
.cv-logo img { width: 26vw; height: auto; margin: 0 auto; }
.cv-achievement {margin-bottom: 5vw;}
.cv-achievement-txt { color: var(--white); font-size: 4.5vw; font-weight: bold; line-height: 1.4; display: flex; align-items: center; justify-content: center; gap: 1vw; }
.cv-achievement-label { font-size: 3vw; border: 1px solid var(--white); padding: 0.5vw 1.5vw; }
.cv-achievement-num { font-size: 9vw; line-height: 1; }
.cv-achievement-unit { font-size: 3.5vw; }
.cv-catch { margin-bottom: 5vw; }
.cv-catch-txt {-webkit-font-feature-settings: 'palt' 1; font-feature-settings: 'palt' 1;letter-spacing: 0.1px; }
.cv-catch-txt span{ color: var(--white); font-size: 7.5vw; font-weight: bold; line-height: 1.5; 	background: -moz-linear-gradient( var(--gradient) );	background: -webkit-linear-gradient( var(--gradient) );	background: -ms-linear-gradient( var(--gradient) );	background: linear-gradient( var(--gradient) );display: table; padding: 1vw 2vw; margin: 0 auto 2vw; -webkit-font-feature-settings: 'palt' 1; font-feature-settings: 'palt' 1;}
.cv02::before{  content: '';  position: absolute; width: 99vw;top: -14.6vw;  left: 0;  border-bottom: 15vw solid #110000;   border-right: 100vw solid transparent;overflow: hidden;}
.cv03::before{  content: '';  position: absolute; width: 99vw; top: -14.6vw;  left: 0;  border-bottom: 15vw solid #110000;   border-left: 100vw solid transparent;overflow: hidden;}
.cv04::before{  content: '';  position: absolute; width: 99vw; top: -14.6vw;  left: 0;  border-bottom: 15vw solid #110000;   border-right: 100vw solid transparent;overflow: hidden;}

.cv-lead { color: var(--white); font-size: 3.2vw; line-height: 1.8; margin-bottom: 6vw; }
.cv-btn { display: block; }
.cv-btn-link { display: block; }
.cv-btn img { width: 90%; height: auto; margin: 0 auto; }

/* main
----------------------------------------------- */
.about { position: relative; overflow: hidden; }
.about-bg {background-image: url(../images/about-bg-sp.jpg);background-size: cover;background-position: center;padding: 12vw 0 30vw;}
.about-marquee-wrap {overflow: hidden;width: 100%;padding: 4vw 0;}
.marquee { display: flex; white-space: nowrap; animation: marquee 20s linear infinite; }
.marquee-txt {max-width: initial;height: 24vw;}

@keyframes marquee { 0% { transform: translateX(0); } 100% { transform: translateX(-33.333%); } }

.about-inner {padding: 0 0 0 5vw;}
.about-img-wrap {position: relative;margin: -10vw 0 18vw;}
.about-img-wrap img {width: 90%;height: auto;margin: 0 0 0 auto;}
.about-deco {position: absolute;left: 5vw;bottom: -5vw;}
.about-deco img {width: 12vw;height: auto;}
.about-catch { margin-bottom: 5vw; }
.about-lead {font-size: 3.3vw;line-height: 2;font-weight: 700;}
.about-lead .sp{width: 85%;margin-left: 5vw;}
.about-lead p { margin-bottom: 4vw; }
.about-lead p:last-child { margin-bottom: 0; }

.feel{background-image: url(../images/feel-bg-sp.jpg);background-size: cover;background-position: center;padding: 20vw 6vw 35vw;}
.concept{position: relative;padding: 30vw 0 10vw;}
.concept-logo{position: absolute;top: -15vw;width: 48vw;left: 0;right: 0;margin: 0 auto;}
.concept-txt-wrap{padding: 3vw 5vw 5vw;}
.concept-marquee-wrap {overflow: hidden;width: 100%;position: absolute;bottom: 65vw;}

.achive{
background: -moz-linear-gradient( -20deg, rgb(77,77,133) 0%, rgb(103,162,203) 100%);
  background: -webkit-linear-gradient( -20deg, rgb(77,77,133) 0%, rgb(103,162,203) 100%);
  background: -ms-linear-gradient( -20deg, rgb(77,77,133) 0%, rgb(103,162,203) 100%);
  background: linear-gradient( -20deg, rgb(77,77,133) 0%, rgb(103,162,203) 100%);
}
.achive-txt-wrap{padding: 18vw 5vw 26vw;position: relative;}
.achive-tit{ margin-bottom: 5vw;}
.achive-txt{ margin-bottom: 5vw;}
.achive-txt-wrap::after{content: "";background: url("../images/achive01-deco@2x.png") no-repeat center;background-size: contain;width: 12px;height: 20vw;position: absolute;bottom: 4vw;right: 0;left: 0;margin: 0 auto;}

.logic{background: #ddefff;}
.logic-txt-wrap{padding: 0 5vw 6vw;position: relative;}
.logic-tit{margin: -8vw 5vw 10vw;}
.logic-h{margin-bottom: 10vw;position: relative;}
.logic-txt{margin-bottom: 10vw;position: relative;}
.logic-txt::after{content: "";position: absolute;bottom: 0;left: 50%;border-style: solid;border-width: 30px 24vw 0 24vw;border-color: #fff transparent transparent;translate: -50% 100%;}
.logic .nom01,.logic .nom02{position: absolute;top: -4vw;width: 14vw;}
.logic .nom01{left: -2vw;}
.logic .nom02{right: -2vw;}

.intro::before{content: "";background: url("../images/logic-deco.png") no-repeat center;background-size: contain;width: 35vw;height: 10vw;position: absolute;top: -5vw;right: 0;left: 0;margin: 0 auto;}
.intro{background: #ffffff;position: relative;}
.intro-txt-wrap{padding: 8vw 5vw 20vw;position: relative;}
.intro-tit{margin: 8vw 5vw 10vw;}
.intro-txt{margin-bottom: 10vw;position: relative;}
.intro::after{content: "";background: url("../images/intro-deco.png") no-repeat center;background-size: contain;width: 12px;height: 20vw;position: absolute;bottom: 5vw;right: 0;left: 0;margin: 0 auto;}


.offer{background: url("../images/offer-bg-sp.jpg") no-repeat center;background-size: cover;}
.offer-txt-wrap{padding: 10vw 2vw 6vw;position: relative;background: url("../images/offer-deco.png") no-repeat top;background-size: 75vw;}
.offer-tit{margin: 18vw 6vw 10vw;}
.offer-txt{margin-bottom: 10vw;position: relative;}


.promise{background: url("../images/promise-bg-sp.jpg") no-repeat center;background-size: cover;}
.promise-txt-wrap{padding: 10vw 4vw 16vw;position: relative;}
.promise-tit{margin: 10vw auto 10vw;width: 52vw;}
.promise-txt{margin-bottom: 4vw;position: relative;}

.faq{height: auto;position: relative;padding: 16vw 4vw 30vw;background: #f2f2f2;}
.faq-tit{width: 25vw;margin: 0 auto 10vw;}
.faq_q {padding: 4% 10% 4% 14%;color: #fff;background: #110000;position: relative;cursor: pointer;line-height: 1.6;font-size: 3.8vw;font-weight: bold;}
.faq_q .ic{position: absolute;left: 3vw;width: 8vw; top: 50%;	-moz-transform: translateY(-50%);	-ms-transform: translateY(-50%);	-webkit-transform: translateY(-50%);	transform: translateY(-50%);}
.faq_q:after {content: '\f107';color: #fff;font-family: 'icon';position: absolute;top: 50%;right: 2vw;-moz-transform: translateY(-50%);-ms-transform: translateY(-50%);-webkit-transform: translateY(-50%);transform: translateY(-50%);}
.faq_q.open:after {content: '\f106';}
.faq_a {display: none;padding: 4%;font-size: 4.2vw;font-weight: 500;color: #000;line-height: 1.6;text-align: justify;}
.faq_list li{ margin-top: 5vw;}


.message { position: relative;  }
.message-bg {background-image: url(../images/message-bg-sp.jpg);background-size: cover;background-position: center;padding: 12vw 0 20vw;}
.message-inner { padding: 0 0 0 5vw;}
.message-img {position: relative;width: 100%;height: auto;margin: 0 0 0 auto;}
.message-txt {padding: 5vw 5vw 5vw 0;}

/* footer
----------------------------------------------- */
.footer {background-color: var(--main-color);padding: 15vw 0 23vw;}
.footer-inner {text-align: center;color: #fff;padding: 5vw 5vw 8vw;}
.footer-inner a{color: #fff;display: inline-block; font-weight: bold;}
.footer-logo{	width: 27vw;	margin: 0 auto 8vw;}
.footer-menu{	margin: 5vw auto;display: -webkit-box;display: flex;-webkit-box-pack: justify;justify-content: space-between;flex-wrap: wrap;
-webkit-box-pack: center;justify-content: center;-webkit-box-align: center;align-items: center;align-content: center;}
.footer-menu li:first-child{ border-right: 1px #fff solid; }
.footer-menu li{padding:0 5vw;}
.footer-copy {background: -moz-linear-gradient( var(--gradient) );background: -webkit-linear-gradient( var(--gradient) );background: -ms-linear-gradient( var(--gradient) );background: linear-gradient( var(--gradient) );color: #fff;font-size: 3.8vw;text-align: center;padding: 2vw 5vw;}


/* page top
----------------------------------------------- */
.page-top {width: 95%;position: fixed;bottom: 2vw;right: 0;left: 0;margin: 0 auto;z-index: 99;opacity: 0;pointer-events: none;transition: opacity 0.3s ease;}
.page-top.is-show { opacity: 1; pointer-events: auto; }
.page-top-link {width: 100%;height: 16vw;}
.page-top-icon { display: block; width: 0; height: 0; border-left: 2.5vw solid transparent; border-right: 2.5vw solid transparent; border-bottom: 3vw solid var(--white); }


/* =============================================
pc-size
================================================ */
@media screen and (min-width: 769px) {

/* common pc
----------------------------------------------- */
body { font-size: 15px; }
.sp { display: none; }
.pc { display: block; }

/* 見出し共通
----------------------------------------------- */
.midashi01 { font-size: 28px; }
.midashi02 { font-size: 24px; }
.midashi03 { font-size: 20px; }
.midashi04 { font-size: 18px; }
.midashi05 { font-size: 16px; }

/* フェードアニメーション
----------------------------------------------- */
.fade-up { opacity: 0; transform: translateY(40px); transition: opacity 0.9s ease, transform 0.9s ease; }
.fade-up.is-visible { opacity: 1; transform: translateY(0); }

/* header
----------------------------------------------- */
.header-inner {padding: 12px 0px;max-width: 980px;margin: 0 auto;gap: 20px;justify-content: flex-start;}
.header-logo img {width: 73px;}
.header-btn img { width: 220px; }

/* hero
----------------------------------------------- */
.hero-bg { background-image: url(../images/hero-bg-pc.jpg); background-size: cover; background-position: center top; min-height: 880px;  }
.hero-inner {max-width: 980px;width: 100%;margin: 0 auto;padding: 160px 0px 60px;}
.hero-txt img {width: 529px;margin: 0;}

/* cv
----------------------------------------------- */
.cv {padding: 10px 40px 150px;}
.cv-inner {max-width: 800px;margin: 0 auto;}
.cv-logo img {width: 110px;margin: 0 auto 30px;}
.cv-achievement-txt { font-size: 22px; gap: 8px; }
.cv-achievement-label { font-size: 14px; padding: 3px 10px; }
.cv-achievement-num { font-size: 60px; }
.cv-achievement-unit { font-size: 18px; }
.cv-catch { margin-bottom: 30px; }
.cv-catch-txt { font-size: 30px; padding: 10px 24px; }
.cv-lead { font-size: 15px; margin-bottom: 40px; }
.cv-btn img { width: 480px; }
.cv-achievement img{ width: auto; margin:0 auto;}
.cv02::before{top: -250px;border-bottom: 250px solid #110000;border-right: 99vw solid transparent; width: 100%;}	
.cv03::before{top: -150px;border-bottom: 150px solid #110000;border-left: 99vw solid transparent; width: 100%;}
.cv04::before{top: -150px;border-bottom: 150px solid #110000;border-right: 99vw solid transparent; width: 100%;}

/* main
----------------------------------------------- */
.about-bg {background-image: url(../images/about-bg-pc.jpg);padding: 80px 0 50px;}
.about-marquee-wrap { padding: 20px 0; }
.marquee-txt {height: 130px;}
	
.about-inner {display: flex;align-items: flex-start;gap: 60px;max-width: 1100px;margin: 0 auto;padding: 60px 40px 0;}
.about-img-wrap {flex-shrink: 0;width: 555px;position: relative;}
.about-img-wrap img { width: 100%; }
.about-deco {position: absolute;top: 180px;right: -40px;left: auto;}
.about-deco img {width: 84px;}
.about-txt-wrap { flex: 1; padding-top: 20px; }
.about-catch { margin-bottom: 30px; }
.about-lead {font-size: 14px;line-height: 2;width: 555px;}
.about-lead p { margin-bottom: 24px; }

	.feel{background-image: url(../images/feel-bg-pc.jpg);background-size: cover;background-position: center;padding: 150px 0 300px;}

.concept{padding: 130px 0 130px;}
.concept-logo{top: -125px;width: 355px;left: 0;right: 0;margin: 0 auto;}
.concept-txt-wrap{padding: 0px 50px 50px;}
.concept-marquee-wrap {bottom: 350px;}


.achive{background: -moz-linear-gradient( 165deg, rgb(77,77,133) 0%, rgb(103,162,203) 100%);background: -webkit-linear-gradient( 165deg, rgb(77,77,133) 0%, rgb(103,162,203) 100%);background: -ms-linear-gradient( 165deg, rgb(77,77,133) 0%, rgb(103,162,203) 100%);background: linear-gradient(
273deg, rgb(77, 77, 133) 0%, rgb(103, 162, 203) 100%);}
.achive-txt-wrap{padding: 180px 0px 250px;position: relative;}
.achive-tit{margin-bottom: -20px;}
.achive-txt{ margin-bottom: 50px;}
.achive-txt-wrap::after{content: "";width: 10px;height: 102px;bottom: 150px;}

.logic-txt-wrap{padding: 0 50px 50px;}
.logic-tit{margin: -50px 50px 50px;}
.logic-h{margin: 0 auto 80px;width: 960px;}
.logic-txt{margin:0 auto 80px;width: 960px;}
.logic-txt::after{bottom: 0;left: 50%;border-style: solid;border-width: 50px 50px 0 50px;}
.logic .nom01,.logic .nom02{position: absolute;top: 20px;width: 160px;}
.logic .nom01{left: -50px;}
.logic .nom02{right: -50px;}
.intro::before{width: 160px;height: 30px;top: -13px;}

.intro-txt-wrap{padding: 50px 50px 250px;}
.intro-tit{margin: 50px 50px 50px;}
.intro-txt{margin-bottom: 50px;}
.intro::after{content: "";background: url("../images/intro-deco@2x.png") no-repeat center;background-size: contain;width: 12px;height: 100px;position: absolute;bottom: 140px;right: 0;left: 0;margin: 0 auto;}


.offer{background: url("../images/offer-bg-pc.jpg") no-repeat center;background-size: cover;}
.offer-txt-wrap{padding: 150px 0px 50px;background-size: 550px;}
.offer-tit{margin: 50px 50px 50px;}
.offer-txt{margin-bottom: 50px; }

.promise{background: url("../images/promise-bg-pc.jpg") no-repeat center;background-size: cover;}
.promise-txt-wrap{padding: 150px 0px 50px;width: 960px;margin: 0 auto;display: -webkit-box;	display: flex;-webkit-box-pack: justify;justify-content: space-between;	}
.promise-tit{margin: 0px auto 50px 0;width: 230px;}
.promise-txt{margin-bottom: 50px;}
.promise-in{width: 677px;}
	
.faq{padding: 130px 0px 350px;}
.faq_list{width: 960px; margin: 0 auto;}
.faq-tit{width: 118px;margin: 0 auto 50px;}
.faq_q {padding: 20px 70px 20px 64px;font-size: 23px;font-weight: bold;}
.faq_q:after {right: 20px;}
.faq_q.open:after {content: '\f106';}
.faq_a {padding: 20px 10px;display: none;font-size: 20px;}
.faq_list li{ margin-top: 20px;}
.faq_q .ic{position: absolute;left: 13px;width: 40px;}
	
.message-bg {background-image: url(../images/message-bg-pc.jpg);padding: 80px 0 80px;overflow: hidden;}
.message-inner {display: flex;align-items: flex-start;gap: 60px;max-width: 980px;margin: 0 auto;padding: 0px 0px 120px;flex-direction: row-reverse;}
.message-img {width: auto;position: relative;flex: 1;}
.message-img img{position: absolute;left: 0;max-width: 700px;}
.message-txt {flex: 1;padding: 60px 0 0;width: 700px;}


	
/* footer
----------------------------------------------- */
.footer {background-color: var(--main-color);padding: 50px 0 80px;}
.footer-inner {text-align: center;color: #fff;padding: 50px 0 50px;}
.footer-inner a{color: #fff;display: inline-block; font-weight: bold;}
.footer-logo{width: 104px;margin: 0 auto 50px;}
.footer-menu{margin: 20px auto;display: -webkit-box;display: flex;-webkit-box-pack: justify;justify-content: space-between;flex-wrap: wrap;-webkit-box-pack: center;justify-content: center;-webkit-box-align: center;align-items: center;align-content: center;}
.footer-menu li:first-child{ border-right: 1px #fff solid; }
.footer-menu li{padding: 0 20px;}
.footer-copy {font-size: 16px;text-align: center;padding: 14px 14px;}


/* page top
----------------------------------------------- */
.page-top {width: 100%;position: fixed;bottom: 0;right: 0;left: 0;margin: 0 auto;z-index: 99;opacity: 0;pointer-events: none;transition: opacity 0.3s ease;background: #eaff5b;}
.page-top.is-show {opacity: 1;}
.page-top-link {width: 100%;height: auto;padding: 20px 0 16px;}
.page-top-icon { display: block; width: 0; height: 0; border-left: 2.5vw solid transparent; border-right: 2.5vw solid transparent; border-bottom: 3vw solid var(--white); }

	
	
	
}/* retina
----------------------------------------------- */
@media screen and (min-width: 769px) and (-webkit-min-device-pixel-ratio: 2), screen and (min-width: 769px) and (min-resolution: 2dppx) {
.hero-bg { background-image: url(../images/hero-bg-pc@2x.jpg); }
.about-bg { background-image: url(../images/about-bg-pc@2x.jpg); }
.feel{background-image: url(../images/feel-bg-pc@2x.jpg);}
.offer{background-image: url("../images/offer-bg-pc@2x.jpg") ;}
.promise{background-image: url("../images/promise-bg-pc@2x.jpg") ;}
.message-bg {background-image: url(../images/message-bg-pc@2x.jpg);}
	.offer-txt-wrap{background-image: url("../images/offer-deco@2x.png") ;}
	
}
