@import url('https://fonts.googleapis.com/css2?family=Bebas+Neue&display=swap');
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,
center,
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,
ruby,
section,
summary,
time,
mark,
audio,
video
{
    font: inherit;
    font-size: 100%;

    margin: 0;
    padding: 0;

    vertical-align: baseline; 

    border: 0;
}

/* HTML5 display-role reset for older browsers */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section,
main
{
    display: block;
}

body
{
    line-height: 1;
}

ol,
ul
{
    list-style: none;
}

blockquote,
q
{
    quotes: none;
}

blockquote:before,
blockquote:after,
q:before,
q:after
{
    content: '';
    content: none;
}

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

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

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

.clearfix:before,
.clearfix:after
{
    display: table; 

    content: '';
}

.clearfix:after
{
    clear: both;
}

.clear
{
    clear: both;
}

/* show only  SP/PC
-------------------------------*/
.hidden-lgview
{
    display: none;
}

.hidden-smview
{
    display: block;
}

@media screen and (max-width: 767px)
{
    .hidden-lgview
    {
        display: block;
    }
    .hidden-smview
    {
        display: none;
    }
}

/* font
-------------------------------*/
.bold
{
    font-weight: bold;
}

/* margin
-------------------------------*/
.mb0
{
    margin-bottom: 0 !important;
}

/* padding
-------------------------------*/
.pb0
{
    padding-bottom: 0 !important;
}

/*
  MAIN:general
--------------------------------------------- */
html
{
    font-size: 62.5%;

    min-width: 1140px;
}

body
{
		font-family: "Helvetica Neue" , Helvetica , Arial , Verdana , Roboto , "游ゴシック" , "Yu Gothic" , "游ゴシック体" , "YuGothic" , "ヒラギノ角ゴ Pro W3" , "Hiragino Kaku Gothic Pro" , "Meiryo UI" , "メイリオ" , Meiryo , "ＭＳ Ｐゴシック" , "MS PGothic" , sans-serif;
    font-size: 1.6rem;

    min-width: 1140px;
    margin: 0 auto;

    vertical-align: top;
    letter-spacing: 0; 
    word-wrap: break-word;

    color: #444;
    background: url('../img/bg.png');

    line-break: strict;
    -webkit-font-smoothing: antialiased;
    font-feature-settings: 'palt';
}

@media screen and (max-width: 767px)
{
    html
    {
        min-width: 100%;
    }
    body
    {
        font-size: 1.4rem;

        min-width: 100%;
    }
}

main
{
    overflow: hidden;
}

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

*
{
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
}

a
{
    -webkit-transition: opacity .7s;
            transition: opacity .7s; 

    color: #444;
}

a:hover
{
    text-decoration: underline;

    opacity: .7;
}

input[type=submit]
{
    cursor: pointer;
}

@-ms-viewport
{
    width: auto !important;
}

:root
{
    -ms-overflow-style: scrollbar;
}

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

    vertical-align: bottom;

    border: 0;
}

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

p
{
    line-height: 2;
    letter-spacing: 0px;
}

.note
{
    font-size: 1.0rem;

    color: #444;
}

@media screen and (min-width: 768px)
{
    a[href^='tel:']
    {
        pointer-events: none;
    }
}


/* show only  SP/PC
-------------------------------*/
.sp
{
  display: none;
}

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


/* header */

.headtop{
  width: 1110px;
  margin: 0 auto;
}
.header_flex{
	display: flex;
	border-bottom: 1px solid #bfbfbf;
	justify-content: space-between;
	align-items: center;
	padding: 30px 0;
}
.text_link{
	color: #cfcfcf;
	font-weight: bold;
}
.l_link a{
	font-size: 13px;
	color: #000;
	text-decoration: none;
}

/* header */

/* main */


@media screen and (min-width: 768px)
{
	.contents_main{
		width: 1110px;
		margin: 0 auto;
	}
}


.mv__lead {
	font-size: 6rem;
	line-height: 1.4;
	margin-bottom: 50px;
	padding-top: 50px;
	text-align: center;
	letter-spacing: 4px;
	font-family: 'Bebas Neue', cursive;
}
.mv__fluid {
    position: relative;
    left: 50%;

    width: 100vw;
    padding: 30px 30px 0 30px; 

    -webkit-transform: translateX(-50%);
        -ms-transform: translateX(-50%);
            transform: translateX(-50%);
}
.mv__fluid img{
	width: 100%;
}

@media screen and (max-width: 1140px)
{
    .mv__fluid
    {
        position: relative;
        left: 50%;

        width: 1140px;
        padding: 30px 30px 0 30px; 

        -webkit-transform: translateX(-50%);
            -ms-transform: translateX(-50%);
                transform: translateX(-50%);
    }
}


.mv__logo {
	position: absolute;
	left: 50%;
	display: inline;
	width: 195px;
	margin: 0 auto 55px;
	-webkit-transform: translateX(-50%);
	-ms-transform: translateX(-50%);
	transform: translateX(-50%);
}
.bottom_text{
	text-align: center;
	font-weight: bold;
	font-size: 30px;
	color: #444444;
	margin-top: 30px;
}
.bottom_subtext{
	text-align: center;
	font-size: 16px;
	letter-spacing: 1.6px;
	margin-top: 30px;
}
.heading-level2__en{
	font-family: 'Bebas Neue', cursive;
	font-size: 8rem;
	letter-spacing: 5px;
}
.contents_box{
	margin-top: 80px;
}
.contents_flex{
	margin-top: 30px;
}
.contents_flex li{
	display: flex;
	justify-content: space-between;
	margin-top: 50px;
  align-items: center;
}
.top_text{
	width: 727px;
}
.top_img{
	width: 344px;
}
.pro_box{
	padding-bottom: 180px;
}
.pro_bg{
	background: #f5f5f5;
	padding: 30px;
	margin: 80px 0 50px;
}
.subtitle_01{
	text-align: center;
	color: #444444;
	font-size: 22px;
	margin-top: 20px;
	font-weight: bold;
}
.pro_flex{
	margin-top: 40px;
	display: flex;
	justify-content: space-between;
}
.pro_flex li{
	width: 190px;
}
.pro_text{
	font-size: 13px;
	margin-top: 20px;
	line-height: 1.6;
	letter-spacing: 0.4px;
}
.bg_contents_pdd{
	padding-bottom: 150px;
	position: relative;
}
.bg_contents_pdd2{
	padding-bottom: 130px;
	position: relative;
	width: 90%;
	margin: 0 auto;
}
.full{
	position: absolute;
	z-index: -2;
	width: 108vw;
	height: 2550px;
	margin: -100px calc(70% - 100vw) 0;
	background: rgba(68, 68, 68, .05);
}
.sub_text{
	margin-top: 30px;
}
.service_img{
	margin: 30px 0 50px;
}
.subtitle_02 {
  font-size: 30px;
  color: #444444;
  font-weight: bold;
}
.producer_flex{
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	padding-bottom: 55px;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
}
.producer_flex li {
	width: calc((100% - 80px) / 3);
	margin-top: 50px;
	margin-right: 40px;
}
.producer_flex li:nth-child(3n) {
    margin-right: 0;
}
.producer_img{
	text-align: center;
	width: 150px;
	margin: 0 auto;
}
.producer_flex li h4{
	font-size: 22px;
	font-weight: bold;
	margin-top: 18px;
	text-align: center;
}
.producer_position{
	font-size: 12px;
	margin-top:10px;
	text-align: center;
	color: #b3b3b3;
}
.producer_text {
  margin-top: 20px;
  line-height: 1.4;
  font-size: 14px;
}
.workshop_img{
	margin: 30px 0 10px 0;
}
.sub_text02{
	font-size: 1.2rem;
	color: #b3b3b3;
}
.fixmag{
	margin-top: 50px;
}
.customer_img{
	margin: 30px 0 50px;
}
.full--right {
	position: absolute;
	z-index: -2;
	width: 70vw;
	height: 700px;
	margin: -100px calc((50% - 20vw) - 10px) 0;
	background: rgba(68, 68, 68, .05);
}
.sdgs_icon{
	margin: 50px 0 80px;
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.full2{
	position: absolute;
	z-index: -2;
	width: 110vw;
	height: 1060px;
	margin: -100px calc(70% - 100vw) 0;
	background: rgba(68, 68, 68, .05);
}
.about_flex{
	margin-top: 50px;
	display: flex;
	justify-content: space-between;
}
.about_text{
	margin-top: 30px;
	line-height: 1.8;
}
.ceo_img{
	width: 348px;
}
.about_box{
	width: 727px;
}
.subtitle_03{
	color: #444444;
	font-weight: bold;
	font-size: 2.8rem;
}
.subtitle_04{
	font-weight: bold;
	font-size: 2.3rem;
	margin-bottom: 20px;
}
.company_box{
	margin-top: 50px;
}
.company_info{
	letter-spacing: 0;
}
.company_info th{
	text-align: left;
	padding-top: 30px;
	font-weight: bold;
}
.company_info td{
	padding-left: 30px;
}
.top-inquiry {
	width: 850px;
	margin: 75px auto 0;
	margin-bottom: 55px;
	padding: 55px 60px 40px;
	background: #fff;
	-webkit-box-shadow: 0 8px 16px -2px rgb(10 10 10 / 10%), 10px 10px 16px 10px rgb(10 10 10 / 2%);
	box-shadow: 0 8px 16px -2px rgb(10 10 10 / 10%), 10px 10px 16px 10px rgb(10 10 10 / 2%);
}
.top-inquiry__heading {
	font-size: 30px;
	font-weight: bold;
	text-align: center;
}
.contact{
	text-align: center;
	width: 300px;
	margin: 30px auto;
	position: relative;
}
.contact a{
	font-size: 16px;
	font-weight: bold;
	display: block;
	padding: 25px 8px;
	text-decoration: none;
	color: #fff;
	background: #ff2367;
}
.contact a:after {
	position: absolute;
	top: 30px;
	right: 20px;
	display: inline-block;
	width: 8px;
	height: 13px;
	content: '';
	background: url(../img/arrow.png) 0 0 no-repeat;
	background-size: contain;
}
.privacy{
	text-align: center;
	font-size: 14px;
}
.privacy a{
	color: #444;
	text-decoration: none;
}
.privacy span{
	border-bottom: 1px solid #444;
}

/* main*/

/* footer */

footer{
	padding-bottom: 50px;
}
.footlogo{
	width: 200px;
	margin: 0 auto;
}
.copyright{
	text-align: center;
	font-size: 12px;
	margin-top: 10px;
	color: #bfbfbf;
}



.l-main
{
    width: 1110px;
    margin: 0 auto;
}
.heading-level2-lower-directory {
	  padding-bottom: 50px;
}
.heading-level2-lower-directory__en {
	  font-family: 'Bebas Neue', cursive;
	  font-size: 8rem;
	  letter-spacing: 5px;
}
.heading-level2-lower-directory__jp {
    font-size: 1.4rem;
    font-weight: bold;
    display: block;
    margin: 10px 0 50px;
}
.utility
{
    margin-bottom: 140px;
    padding-top: 50px; 
    border-top: 1px solid #bfbfbf;
}
.utility__lead
{
    margin-bottom: 60px;
}
.utility__heading
{
    font-size: 2.2rem; 
    font-weight: bold;

    margin: 60px 0 40px;
}
.utility__heading--sm
{
    font-size: 1.6rem; 
    font-weight: bold;

    margin: 60px 0 40px;
}
.utility p
{
    margin-bottom: 30px;
}
.utility ol
{
    margin-bottom: 30px;
}
.utility ol li
{
    line-height: 2; 

    margin-bottom: 25px;
    margin-left: 28px;

    list-style-type: decimal;
}
.utility ul.indent li
{
    line-height: 2; 

    margin-bottom: 25px;
    padding-left: 2em;

    text-indent: -2em;
}
.utility ol li ul.indent
{
    margin-top: 15px;
}
.utility ol li ul.indent li
{
    padding-left: 0; 

    list-style-type: none;
}
.utility ul.disc li
{
    line-height: 2;

    margin-bottom: 20px;
    margin-left: 20px; 

    list-style-type: disc;
}
.top-inquiry__text {
    margin-bottom: 50px;
}
.top-inquiry__heading {
    font-size: 2.6rem;
    font-weight: bold;
    margin-bottom: 55px;
    text-align: center;
}

@media screen and (max-width: 767px)
{
	
		.l-main{
			width: 90%;
			margin: 0 auto;
		}
		.heading-level2-lower-directory{
			padding-bottom: 30px;
		}
		.heading-level2-lower-directory__en {
    font-family: 'Bebas Neue', cursive;
    font-size: 4rem;
    letter-spacing: 5px;
		}
		.heading-level2-lower-directory__jp {
    font-size: 1.4rem;
    margin: calc(30 / 750 * 100vw) 0 calc(110 / 750 * 100vw);
		}
    .utility
    {
        margin-bottom: 120px;
        padding-top: 55px;
    }
    .utility__lead
    {
        margin-bottom: 50px;
    }
    .utility__heading
    {
        font-size: 1.6rem; 
        font-weight: bold;

        margin: 50px 0 25px;
    }
    .utility__heading--sm
    {
        font-size: 1.4rem; 
        font-weight: bold;
				line-height: 1.8;
        margin: 60px 0 40px;
    }
    .utility p
    {
        margin-bottom: 25px;
    }
    .utility ol
    {
        margin-bottom: 25px;
    }
    .utility ol li
    {
        line-height: 2; 

        margin-bottom: 20px;
        margin-left: 20px;

        list-style-type: decimal;
    }
    .utility ul.indent li
    {
        line-height: 2; 

        margin-bottom: 20px;
        padding-left: 2em;

        text-indent: -2em;
    }
    .utility ol li ul.indent
    {
        margin-top: 15px;
    }
    .utility ol li ul.indent li
    {
        padding-left: 0; 

        list-style-type: none;
    }
}



.breadcrumb
{
    font-size: 1rem;
    line-height: 1.6; 

    margin: 30px 0 28px;
}
.breadcrumb__item
{
    display: inline-block;
    display: inline; 

    margin-left: 13px;
}
.breadcrumb__item a
{
    text-decoration: none;
}
.breadcrumb__item:first-of-type
{
    margin-left: 0;
}
.breadcrumb__item:first-of-type:before
{
    content: none;
}
.breadcrumb__item:before
{
    display: inline-block;

    margin-right: 13px;

    content: '>';

    color: #b3b3b3;
}
.breadcrumb__current
{
    color: #b3b3b3;
}

@media screen and (max-width: 767px)
{
    .breadcrumb
    {
        margin: calc(35 / 750 * 100vw) 0 calc(60 / 750 * 100vw);
    }
    .breadcrumb__item
    {
        display: inline; 

        margin-left: 10px;
    }
    .breadcrumb__item a
    {
        text-decoration: none;
    }
    .breadcrumb__item:first-of-type
    {
        margin-left: 0;
    }
    .breadcrumb__item:first-of-type:before
    {
        content: none;
    }
    .breadcrumb__item:before
    {
        display: inline-block;

        margin-right: 10px; 

        content: '>';
    }
}



.article__heading
{
    font-size: 2.2rem;
    font-weight: bold;
    line-height: 1.5;

    margin-top: 60px; 
    margin-bottom: 40px;
}

@media screen and (max-width: 767px)
{
    .article__heading
    {
        font-size: 2.2rem;
        font-weight: bold;

        margin-top: calc(110 / 750 * 100vw); 
        margin-bottom: calc(60 / 750 * 100vw);
    }
}





/* SP用 */


@media screen and (max-width: 767px)
{
	.sp{
		display: block !important;
	}
	.headtop{
		width: 90%;
		margin: 0 auto;
	}
	.header__logo{
		width: 160px;
	}
	.mv__fluid {
    position: relative;
    left: 50%;
    width: 100vw;
    margin-top:20px;
    padding: 0;
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    transform: translateX(-50%);
	}
	.mv__lead {
		font-size: 2.0rem;
		font-weight: bold;
		margin-bottom: 30px;
		padding-top: 30px;
	}
	.mv__logo {
    position: relative;
    display: inline-block;
    width: calc(350 / 750 * 100vw);
    margin:0;
	}
	.contents_box{
		width: 90%;
		margin: 50px auto 0;
	}
	.bottom_text{
		font-size: 5vw;
	}
	.bottom_subtext{
		line-height: 1.8;
		font-size: 3.8vw;
	}
	.contents_flex li{
		display: flex;
		width: 100%;
		flex-wrap: wrap;
		margin: 0;
	}
	.top_img{
		margin:30px 0;
		width: 100%;
	}
	.top_text{
		width: 100%;
	}
	.sp_flex01{
		order: 2;
	}
	.sp_flex02{
		order: 1;
	}
	.pro_bg{
		padding: 0;
	}
	.heading-level2__en{
		font-family: 'Bebas Neue', cursive;
    font-size: 4.0rem;
    letter-spacing: 3.7px;
    line-height: 1.2;
	}
	.full {
    position: absolute;
    z-index: -2;

    width: 100vw;
    height: 770px; 
    margin: -100px calc(70% - 100vw) 0;

    background: rgba(68, 68, 68, .05);
	}
	.sp_inner{
		width: 90%;
		margin: 0 auto;
		padding: 40px 0;
	}
	.pro_flex{
		flex-wrap: wrap;
		justify-content: flex-start;
		margin-top: 20px;
	}
	.pro_flex li{
		width: 28%;
		margin-right: 8%;
		font-size: 12px;
		margin-top: 10px;
	}
	.pro_flex li:nth-child(3n) {
    margin-right: 0;
	}
	.pro_flex li:nth-child(n+4) {
    margin-top: 20px;
	}
	.subtitle_01{
		font-size: 18px;
	}
	.pro_box {
    padding-bottom: 130px;
    position: relative;
	}	
	.producer_flex{
		display: block;
		width: 100%;
	}
	.subtitle_02{
	font-size: 2.0rem;
	line-height: 1.4;
	}
	.sp_flex03{
		display: flex;
	}
	.bg_contents_pdd{
		width: 90%;
		margin: 0 auto;
		position: relative;
	}
	.producer_flex li{
		width: 100%;
		margin-right: 0;
	}
	.sp_flex03_inner {
    margin-left: 20px;
    width: 65%;
	}
	.producer_flex li h4{
		text-align: left;
		font-size: 1.8rem;
	}
	.producer_position{
		text-align: left;
		font-size: 1rem;
	}
	.producer_img{
		width: 25%;
		margin: 0;
	}
	.producer_img img{
		width: 100%;
	}
	.sub_text02{
		margin-top: 20px;
		font-size: 1rem;
	}
	.pro_text{
		font-size: 11px;
	}
	.full {
    position: absolute;
    z-index: -2;
    left: -20px;
    width: calc(563 / 750 * 100vw);
    height: calc(100% + calc(2 / 20 * 100vw));
    margin: calc((200 / 750 * 100vw) * -1) 0 0;
	}
	.about_flex{
		display: block;
	}
	.about_box{
		width: 100%;
	}
	.producer_text{
		font-size: 1.2rem;
		line-height: 1.8;
	}
	.subtitle_03{
		font-size: 2.0rem;
	}
	.full--right{
		position: absolute;
    z-index: -2;
    right: -20px;
    width: calc(563 / 750 * 100vw);
    height: calc(100% + calc(30 / 750 * 100vw));
    margin: calc((200 / 750 * 100vw) * -1) 0 0;
	}
	.sdgs_icon{
		margin: 50px 0;
	}
	.sdgs_icon li{
		width: 50px;
	}
	.sdgs_icon li img{
		width: 100%;
	}
	.full2{
		position: absolute;
    z-index: -2;
    left: -20px;
    width: calc(563 / 750 * 100vw);
    height: calc(100% + calc(100 / 750 * 100vw));
    margin: calc((200 / 750 * 100vw) * -1) 0 0;
	}
	.ceo_img{
		margin: 30px auto 50px;
	}
	.subtitle_04{
		font-size: 2.0rem;
	}
	.company_info th{
		display: block;
	}
	.company_info td{
		display: block;
		padding: 0;
		margin-top: 10px;
		line-height: 1.8;
	}
	
	.top-inquiry {
    width: calc(670 / 750 * 100vw);
    margin-top: calc(120 / 750 * 100vw);
    margin-bottom: calc(110 / 750 * 100vw);
    padding: calc(90 / 750 * 100vw) calc(40 / 750 * 100vw) calc(90 / 750 * 100vw);
    -webkit-box-shadow: 0 8px 16px -2px rgb(10 10 10 / 10%), 10px 10px 16px 10px rgb(10 10 10 / 2%);
    box-shadow: 0 8px 16px -2px rgb(10 10 10 / 10%), 10px 10px 16px 10px rgb(10 10 10 / 2%);
	}	
	.top-inquiry__heading {
    font-size: 2rem;
    margin-bottom: calc(55 / 750 * 100vw);
	}
	.top-inquiry__text {
    margin-bottom: calc(60 / 750 * 100vw);
	}
	.contact{
		width: 100%;
    margin-bottom: calc(40 / 750 * 100vw);
	}		
	.contact a{
		font-size: 1.6rem;
    padding: 20px 8px;
	}
}


/* youtube追加 */

.content-inner{
  position: relative;
  padding-bottom: 180px;
  margin-top: 80px;
  width: 100%
}
.movie-wrap {
	position: relative;
	overflow: hidden;
	height: 0;
	padding-bottom: 56.25%;
	width: 100%;
}
.movie-wrap iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.fb-logo{
	width: 25px;
	margin: 10px auto;
	text-align: center;
}
@media screen and (max-width: 767px){
	.content-inner{
	  width: 90%;
	  margin: 50px auto 0;
	  padding-bottom: 150px;
	}

}

