﻿@charset "utf-8";

/* ------------------------------------------------------------------------
    Setting
------------------------------------------------------------------------  */
:root{
    /* color */
    --base-color: #666;
    --main-color : rgba(113, 29, 141, 1);
    --sub-color:#999;
    --sub2-color:#ccc;
    --sub3-color:#dcdcdc;
    --sub4-color:#f5f5f5;
    
    --color-green:#46bebe;
    --color-blue:#3b7fdb;
    --color-beige:#c39743;
    
    --color-mask:rgba(0,0,0,.3);
    
    /* padding margin */
    --container-side:5%;
    --space-15:15px;
    --space-20:20px;
    --space-30:30px;
    --space-40:40px;
    --space-50:50px;
    --space-70:70px;
    
    /* border-rudius */
    --border-r:10px;
    
    /* Wide */
    --site-width:1400px;
    --site-width-s:1000px;
}
@media screen and (min-width:769px){
    :root{
        /* padding margin */
        --container-side:25px;
        --space-15:20px;
        --space-20:40px;
        --space-30:60px;
        --space-40:80px;
        --space-50:100px;
        --space-70:140px;
    }
}



/* ------------------------------------------------------------------------
    BASE
------------------------------------------------------------------------  */
html{
    text-size-adjust: 100%;
}
body{
	margin:0;
	padding:0;
	color:var(--base-color);
	font-weight:300;
	line-height:1.875em;
	font-family: 'Noto Sans JP', sans-serif;
    letter-spacing: .0em;
	
}
body {
	min-height: 100%;
	overflow-x: hidden;
}
/*
@media all and (-ms-high-contrast:none) {
	body {
	}
}
*/

html {
  font-size: 62.5%;
}
body {
    font-size: 1.4em;
}
@media screen and (min-width:769px){
	body {font-size: 1.6em;}
}
html,body{
}
a{
	display:inline-block;
	text-decoration:	none;
	cursor: pointer;
	color:#333;
	transition: all .6s;
    vertical-align:top;
}
a.link {
    color: #2539B4;
}
@media screen and (min-width:769px){
	a:focus, *:focus { outline:none; }
	a:active{
		text-decoration:	none;
	}
	a.hov:hover{
		opacity:.7;
	}
    a.link:hover {
		opacity:.5;
	}
}


li {
	list-style:none;
}
li a {
	text-decoration:none;
}
address, div, form, fieldset, legend, h1, h2, h3, h4, h5, h6, img, ol, ul, li, dl, dt, dd, p, img, strong, em, span, blockquote, q {
	margin: 			0;
	padding:			0;
	border:				none;
	font-size: 			1em;
	font-style: 		normal;
	font-weight: 		normal;
	vertical-align:		top;
}

table, tr, th, td{
	font-size: 			1em;
	margin:				0;
	padding:			0;
	border:				0 none;
	border-spacing:		0;
	border-collapse:	collapse;
}
object, embed{
	vertical-align: top;
}
p{
	word-break:break-all;
}
sup,
sub {
    height: 0;
    line-height: 1;
    vertical-align: baseline;
    _vertical-align: bottom;
    position: relative;
	font-size:.8em;
	padding-left:.5em;
     
}
span {vertical-align: baseline;}
sup {
    bottom: 1ex;
	padding-left:.3em;
}
 
sub {
    top: .1ex;
	padding-left:0;
}
img {
	width:100%;
	max-width:100%;
	display: block;
	height:auto;
    vertical-align:top;
	
	pointer-events: none;
}
img[src$=".svg"] {
	width: 100%;
	height:100%;
	max-width:100%;
	max-height:100%;
}
img.auto {
	width: auto;
}
video{
	vertical-align: bottom;
	width: 100%;
}



/* ------------------------------------------------------------------------
    text
------------------------------------------------------------------------  */
/* h1 - 2 */
h1 ,h2 {
    line-height: 1.5em;
}
h1 {
}
h2 {
}
h3 {
}

/* font weight */
.fw5 {font-weight: 500;}
.fwb {font-weight: 700;}

/* indent */
.ti1{
	display: inline-block;
	text-indent: -1em;
	padding-left: 1em;
}
.ti2{
	display: inline-block;
	text-indent: -2em;
	padding-left: 2em;
}

/* text-align */
.tac {text-align: center;}
.tar {text-align: right;}

/* Message */
.Message.A {
}

/* ------------------------------------------------------------------------
    Title
------------------------------------------------------------------------  */
/* Title */
.Title_Area{
    margin-bottom: var(--space-30);
    text-align: center;
}

.Title {
    position: relative;
    font-size: 20px;
    font-weight: 300;
    line-height: 1.5em;
    text-align: center;
    color: var(--main-color);
    padding-bottom: .5em;
    margin-bottom: .3em;
}
.Title:after {
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
    content: '';
    width: 100px;
    height: 1px;
    background: var(--main-color);
}
.Title_Area p{
    font-size: 12px;
    font-weight: 500;
    color: var(--sub-color);
}
@media screen and (min-width:769px){
    .Title {
        font-size: 30px;
    }
    .Title div.Btn { 
    }
}

/* Title */
.Title1 {
	text-align:center;
	margin-bottom:3.75em;
}
.Title1.NoMb {
	margin-bottom:0;
}
.Title1 h3 {
	font-weight:500;
	line-height:1.3em;
	font-size:1.857em;
	margin-bottom:1.5em;
	opacity:0;
	transition: .8s;
}
.Title1 h3.active {
	opacity:1;
}
.Title1 p {
	padding-top:.5em;
	padding-bottom:.5em;

	background-image: linear-gradient(to right, rgba(0,0,0,0) 50%, rgba(235,235,235,1) 50%);
	background-size: 200% auto;
	background-position:0 0;
	transition: 1s;
}
.Title1 p.active {
	background-position: -100% 0;
}
.Title1 p span {
	font-family:Helvetica, sans-serif;
	font-weight:bold;
	transition: .8s;
	opacity:0;
}
.Title1 p.active span {
	opacity:1;
}

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

/* SubTitle */
.Sub_Title {
    padding-top: .5em;
    padding-bottom: .5em;
    padding-left: 1.5em;
    border-left: 2px solid var(--main-color);
    
    margin-bottom: var(--space-30);
}
.Sub_Title p{
    font-size: 1em;
    color: var(--main-color);
    padding-bottom: .5em;
}
.Sub_Title h3{
    font-size: 1.35em;
    line-height: 1.5em;
}
.Sub_Title h3 span{
    font-size: .75em;
}
@media screen and (min-width:1024px){
    .Sub_Title h3{
        font-size: 1.5em;
    }
}

.Sub_Title2 {
    padding-left: .5em;
    border-left: 3px solid var(--sub2-color);
    font-size: 1.25em;
    margin-bottom: 1em;
}

/* heading */
.Heading {
    position: relative;
    font-size: 1.2em;
    font-weight: 500;
    margin-bottom: 1.5em;
}
.Heading span {
    font-weight: bold;
    padding: .125em .3em;
    border-radius: 10px;
    margin-bottom: 10px;
    position: relative;
    font-size: 1.5em;
    line-height: 1.3em;
}
.Heading span::before {
    content: '';
    background-color: #fff;
    width: 20px;
    height: 3px;
    position: absolute;
    left: 20px;
    bottom: -3px;
}
.Heading span::after {
    content: '';
    width: 20px;
    height: 3px;
    transform: rotate(50deg);
    position: absolute;
    left: 15px;
    bottom: -10px;
}

.Heading02 {
    display: flex;
    justify-content: center;
    column-gap: 1em;
    align-items: center;
    white-space: nowrap;
    font-weight: 500;
    font-size: 1.35em;
    margin-bottom: 2em;
}
.Heading02:before ,
.Heading02:after {
    content: '';
    width: 100%;
    max-width: 6em;
    height: 1px;
    background: var(--base-color);
}
.Heading02.Wh:before ,
.Heading02.Wh:after {
    background: #fff;
}

/* sub_message */
.Sub_Message{
    padding-left: 1em;
}
.Sub_Message.Hd1 span{
    font-weight: 500;
    font-size: 1.35em;
}

/* color */
.Hd1 .Heading span {color: var(--main-color); border: 3px solid var(--main-color);}
.Hd1 .Heading span::before {background-color: #fff;}
.Hd1 .Heading span::after {background-color: var(--main-color);}
.Hd1 .Sub_Message span{color: var(--main-color); font-size: 1.125em;}

.Hd2 .Heading span {color: #fff; border: 3px solid #fff;}
.Hd2 .Heading span::before {background-color: var(--main-color);}
.Hd2 .Heading span::after {background-color: #fff;}
.Hd2 .Sub_Message span{color: #fff; font-size: 1.125em;}

@media screen and (min-width:769px){
    .Hd1 .Sub_Message span{font-size: 1.5em;}
    .Hd2 .Sub_Message span{font-size: 1.5em;}
}

/* ------------------------------------------------------------------------
    layout
------------------------------------------------------------------------  */
/* fit */
.fit{
	width: 100%;
}
.fit--fixed{
	max-width: 100%;
}
.is--hidden{
/*	display:none;*/
	visibility:hidden;
	position:fixed;
}
.is-fixed {
	position: fixed !important;
	top: 0;
	left:0;
	width: 100%;
	z-index:999;
	
	display: none;
}

.body_fixed {
	position: fixed;
	width: 100%;
	height: 100%;
}

/* ------------------------------------------------------------------------
    article / section / block
------------------------------------------------------------------------  */
section {
    margin-top: var(--space-40);
    margin-bottom: var(--space-40);
}


/* ------------------------------------------------------------------------
    container
------------------------------------------------------------------------  */
.container{
	width:100%;
	margin-left: 	auto;
	margin-right: 	auto;
	padding-left:var(--container-side);
    padding-right:var(--container-side);

	box-sizing:border-box;
}
.Site-Wide {
	max-width: var(--site-width);
}
.Site-Wide-S {
	max-width: var(--site-width-s);
}

/* Block */
.Block {
    margin-top: var(--space-40);
    margin-bottom: var(--space-40);
}
.Block2 {
    margin-top: var(--space-20);
    margin-bottom: var(--space-20);
}

/* ------------------------------------------------------------------------
    Loading
------------------------------------------------------------------------  */      
.loadingWrap {
	position: fixed;
	width: 100%;
	height: 100%;
	top: 0px;
	left: 0px;
	background: #fff;
	z-index: 9999;
}

/* ------------------------------------------------------------------------
    Button / Arrow / Icon
------------------------------------------------------------------------  */


/* ------------------------------------------------------------------------
    OL UL
------------------------------------------------------------------------  */
/********** ul / ol **********/
ol li:not(:last-child){
	margin-bottom: .35em;
}
/* Text */
@media screen and (min-width:769px){
	ol.Text li,
	ol.Text li:before{
		font-weight: 300;
	}
}

/* Num */
ol.Num {
	counter-reset: count 0;
}
ol.Num > li {
	display: block;
	padding-left: 1em;
	text-indent: -1em;
}
ol.Num > li:before {
	content: counter(count) ". ";
	counter-increment: count 1;
}
/* Bracket */
ol.Bracket {
	counter-reset: count 0;
}
ol.Bracket > li {

	display: block;
	padding-left: 1.5em;
	text-indent: -1.5em;
}
ol.Bracket > li:before {
	content: "(" counter(count) ") ";
	counter-increment: count 1;
}
/* Bracket Half */
ol.Bracket_Half {
	counter-reset: count 0;
}
ol.Bracket_Half > li {
	display: block;
	padding-left: 1em;
	text-indent: -1em;
}
ol.Bracket_Half > li:before {
	content: counter(count) ") ";
	counter-increment: count 1;
}
/* point */
ol.Point {
	counter-reset: count 0;
}
ol.Point > li {
	display: block;
	padding-left: 1em;
	text-indent: -1em;
}
ol.Point > li:before {
	content: "・";
}
/* circle Num */
ol.Normal {
	counter-reset: count 0;
}
ol.Normal > li{
	list-style: none;
	padding-left: 1.3em;
	text-indent: -1.3em;
}

/* ------------------------------------------------------------------------
    MODAL
------------------------------------------------------------------------  */
/*モーダル本体の指定 + モーダル外側の背景の指定*/
.modal-container{
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	text-align: center;
	background: rgba(0,0,0,50%);
	padding: 80px 20px;
	overflow: auto;
	opacity: 0;
	visibility: hidden;
	transition: .3s;
    box-sizing: border-box;
}
/*モーダル本体の擬似要素の指定*/
.modal-container:before{
	content: "";
	display: inline-block;
	vertical-align: middle;
	height: 100%;
}
/*モーダル本体に「active」クラス付与した時のスタイル*/
.modal-container.active{
	opacity: 1;
	visibility: visible;
}
/*モーダル枠の指定*/
.modal-body{
	position: relative;
	display: inline-block;
	vertical-align: middle;
	max-width: 500px;
	width: 90%;
}
/*モーダル内のコンテンツの指定*/
.modal-content{
	background: #fff;
	text-align: left;
	padding: 15px;
}
/* モーダル用ボタンレイアウト */    
.Form-Btn.modal_btn{
    flex-wrap: nowrap;
}
/* モーダル　表示テキスト */
.modal-disp {
    padding-top: 1em;
    margin-top: 1.5em;
    margin-bottom: 1em;
    border-top: 1px dotted #999;
}
.modal-disp p{
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    line-height: 1.3em;
    margin-bottom: .5em;
}
.modal-message {
    text-align: center;
}


/* ------------------------------------------------------------------------
    switch
------------------------------------------------------------------------  */
.for--pc{}
.for--sp{}
@media screen and (max-width: 768px){
.for--pc{ display: none !important; }
}
@media screen and (min-width:769px){
.for--sp{ display: none !important; }
}