﻿@charset "utf-8";

/* ------------------------------------------------------------------------
    Setting
------------------------------------------------------------------------  */
:root{
    /* color */
    --base-color: #000;
    --main-color : #1D9D84;
    --rex-color : rgba(18, 155, 122, 1);
    --sub-color:#999;
    --sub2-color:#edf3f0;
    --sub3-color:#c9caca;
    --sub4-color:#f5f5f5;
    --sub5-color:#e6e6e6;
    --sub6-color:#cccccc;
    
    --color-green:#1D9D84;
    --color-blue:#0096ff;
    --color-beige:#ffbf7f;
    --color-white:#ffffff;
    
    --color-mask:rgba(0,0,0,.3);
    --main-mask:rgba(76, 26, 0, 0.4);
    --white-mask:rgba(255, 255, 255, 0.2);
    --blue-mask:rgba(0, 150, 255, 0.2);
    --beige-mask:rgba(255, 191, 127, 0.2);
    
    --main-transparent:rgba(18, 155, 122, 0.5);
    --blue-transparent:rgba(0, 150, 255, 0.5);
    --beige-transparent:rgba(255, 191, 127, 0.5);
    
    /* 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:1420px;
    --site-width-s:1000px;
}
@media screen and (min-width:1024px){
    :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:1024px){
	body {font-size: 1.5em;}
}
html,body{
}
a{
	display:inline-block;
	text-decoration:	none;
	cursor: pointer;
	color:var(--base-color);
	transition: all .6s;
    vertical-align:top;
}
a.under_line{
    text-decoration: underline;
}
a.link {
    color: #2539B4;
}
@media screen and (min-width:1024px){
	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%;
}

hr {
    border: none;
    height: 1px;
    background-color: var(--sub2-color);
}
.None {
    display: none !important;
}
.Caution {
    color: red;
}

/* ------------------------------------------------------------------------
    text
------------------------------------------------------------------------  */
/* font family */
.min {
	font-family: 'Noto Serif JP', serif;
}

/* 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 {
}

/* ------------------------------------------------------------------------
    Loading
------------------------------------------------------------------------  */      
.loadingWrap {
	position: fixed;
	width: 100%;
	height: 100%;
	top: 0px;
	left: 0px;
	background: #fff;
	z-index: 9999;
}

/* ------------------------------------------------------------------------
    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
------------------------------------------------------------------------  */
article {}
section{
    margin-top: var(--space-50);
    margin-bottom: var(--space-50);
}

/* ------------------------------------------------------------------------
    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);
}

/* ------------------------------------------------------------------------
    Title
------------------------------------------------------------------------  */
/* Title */
.Title {
    position: relative;
    font-size: 20px;
    font-weight: 500;
    line-height: 1.5em;
    margin-bottom: 1em;
}
.Title span {
    position: absolute;
    left: 0;
    top: 0;
    margin-top: -.75em;
    font-size: 1.75em;
    font-weight: 700;
    font-family: 'Noto Serif JP', serif;
    line-height: 1em;
    opacity: .3;
    z-index: -1;
}
@media screen and (min-width:1024px){
    .Title {
        font-size: 34px;
    }
    .Title span {
        font-size: 2.5em;
    }
}

/* Sub */
.Subtitle {
    font-size: 17px;
    font-weight: 500;
    line-height: 1.8em;
    margin-bottom: .5em;
}
@media screen and (min-width:1024px){
    .Subtitle {
        font-size: 30px;
        margin-bottom: 1em;
    }
}

/* Catch */
.Catch_Text {
    font-weight: 500;
}

/* ------------------------------------------------------------------------
    Accordion
------------------------------------------------------------------------  */
.Accordion_Triger{
}
.Accordion_Triger a{
}

.Accordion_Contents{
    display: none;
}

/* ------------------------------------------------------------------------
    Button / Arrow / Icon
------------------------------------------------------------------------  */
/***** Arrow icon-arrow *****/
.icon-arrow {
    width: 100%;
    aspect-ratio: 1;
    color: #333333; /* デフォルトの色 */
    vertical-align: middle;
    transform-origin: center center;
}
/* color */
.icon-arrow--Wh { color: rgb(255, 255, 255); }
.icon-arrow--Bk { color: rgb(0, 0, 0); }
.icon-arrow--Gr { color: rgb(0, 116, 2); }
/* circle */
.Arrow {
    width: 35px;
    aspect-ratio: 1;
    border-radius: 99px;
    border-style: solid;
    border-width: 1px;
    border-color: var(--base-color);
    cursor: pointer;
    display: block grid;
    place-items: center;
    
    transition: all .6s;
}
.Arrow .icon-arrow {
    width: 12px;
}

@media screen and (min-width:1024px){
    .Arrow {
        width: 40px;
    }
    .Arrow.Scale {
        position: relative;
        transform-origin: center center;
        transform: scale(.8);
    }
    a:hover .Arrow.Scale{
        transform: scale(1);
        background: var(--main-color) !important;
    }
    a:hover .Arrow.Scale .icon-arrow{
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%,-50%);
        width: 11px;
        color: var(--color-white);
    }
}

/* color */
.Arrow.Wh {
    border-color: var(--color-white);
}
.Arrow.Wh span ,
.Arrow.Wh span::before,
.Arrow.Wh span::after {
    background-color: var(--color-white);
}
@media screen and (min-width:1024px){
}

/***** circle *****/
.circle {
    width: 35px;
    aspect-ratio: 1;
    border-radius: 99px;
    border-style: solid;
    border-width: 1px;
    border-color: var(--base-color);
    
    display: block grid;
    place-items: center;
}
/* color */
.circle.Wh {
    border-color: var(--color-white);
    background-color: var(--color-white);
}
@media screen and (min-width:1024px){
}

/***** icon color *****/
.icon {
    stroke-width : 0px;
}
.icon_Red {
    fill : #920e14;
}
.icon_Red2 {
    fill : #E50012;
}
.icon_Bk {
    fill:var(--base-color);
}
.icon_Wh {
    fill:var(--color-white);
}
.icon_Gr { 
    fill:var(--main-color);
}

/***** Button *****/
.Button {
    max-width: 250px;
    position: relative;
    display: flex;
    align-items: center;
    width: 100%;
    border-radius: 99px;
    height: 45px;
    box-sizing: border-box;
    padding-left: 16px;
    
    font-size: 13px;
}
.Button_B {
    max-width: 235px;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    border-radius: 99px;
    height: 45px;
    box-sizing: border-box;
    background: var(--color-blue);
    font-size: 13px;
    color: #fff;
}
.Button .circle{
    position: absolute;
    right: 5px;
    top: 50%;
    transform: translateY(-50%);
    width: 35px;
    border: none;
}
.Button .circle .icon-arrow{
    width: 9px;
}
/* Accordion */
.Button.Accordion_Triger .circle .icon-arrow {
    transform: translateY(-50%) rotate(90deg);
    transform-origin: 30% 70%;
}
@media screen and (min-width:1024px){
    .Button.Accordion_Triger .circle .icon-arrow {
        transform-origin: 24% 30%;
    }
}

/* color */
.Button.Gr{
    background-color: var(--rex-color);
    color: var(--color-white);
}
.Button.Gr .circle{
    background: var(--color-white);
}
.Button.Wh{
    background-color: var(--color-white);
}
.Button.Wh .circle{
    border :1px solid #e6e6e6;
    background: var(--sub2-color);
}
@media screen and (min-width:1024px){
    .Button {
        height: 55px;
        max-width: 235px;
        padding-left: 22px;
    }
    .Button_B {
        height: 55px;
    }
    .Button .circle{
        right: 7px;
        width: 42px;
        transform-origin: center center;
        transform: translateY(-50%) scale(.76);
        transition: all .6s;
    }
    .Button:hover .circle{
        transform: translateY(-50%) scale(1);
    }
    .Button .circle .icon-arrow{
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%,-50%);
        width: 11px;
    }
}

/* ------------------------------------------------------------------------
    DISPLAY
------------------------------------------------------------------------  */
#DISPLAY {
    display: flex;
    flex-wrap: wrap;
    column-gap: 10px;
    row-gap: 10px;
    margin-top: var(--space-20);
    margin-bottom: var(--space-20);
}
#DISPLAY .Item {
    width: 100%;
    box-sizing: border-box;
}
#DISPLAY .Item:not(.other) {
    border: 1px solid var(--sub3-color);
}
#DISPLAY .Item > *{
    width: 100%;
    padding: 5px 1em;
    box-sizing: border-box;
    line-height: 1.5em;
}
#DISPLAY .Item > *:not(.block){
    display: flex;
    align-items: center;
    flex-wrap: wrap;
}
#DISPLAY .Item > * span{
    display: inline-block;
    margin-right: 1em;
}
#DISPLAY .Item:not(.other) > *:first-child {
    background: var(--sub3-color) !important;
    color: var(--base-color) !important;
    font-weight: 500;
}
#DISPLAY .Item > *:nth-child(2) {
}
/* size */
#DISPLAY .Item.full {
    max-width: inherit;
}
#DISPLAY .Item.full {
    width: 100%;
}
#DISPLAY .Item.large {
    max-width: calc(70% - 10px);
}
#DISPLAY .Item.short {
    max-width: 30%;
}

/* anchor */
#DISPLAY .Item a {
    text-decoration: underline;
}
@media screen and (min-width:1021px){
    #DISPLAY .Item:not(.full_size) {
        display: flex;
        
    }
    
    #DISPLAY .Item:not(.other):not(.full_size) > *:first-child {
        max-width: 200px;
        border-right: 1px solid var(--sub2-color);
    }
    #DISPLAY .Item:not(.other) > *:nth-child(2) {
        max-width: calc(100% - 200px - 10px);
    }
    #DISPLAY .Item.full_size > * {
        max-width: 100% !important;
    }
    /* size */
    #DISPLAY .Item {
        max-width: calc(50% - 5px);
    }
    #DISPLAY .Item.small {
        max-width: calc( (100% - 20px) /3 );
    }
    /* effect */
    #DISPLAY a{
        transition: opacity .6s;
    }
    #DISPLAY a:hover {
        opacity: .7;
    }
    /* other */
    #DISPLAY .Item.other {
        max-width: calc(50% - 10px);
    }
}

/* ------------------------------------------------------------------------
    OL UL
------------------------------------------------------------------------  */
/********** ul / ol **********/
ol li:not(:last-child){
	margin-bottom: .35em;
}
/* Text */
@media screen and (min-width:1024px){
	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: 100px 20px 20px 20px;
	overflow: auto;
	opacity: 0;
	visibility: hidden;
	transition: .3s;
    box-sizing: border-box;
    z-index: 10;
}
@media screen and (min-width:1024px){
    .modal-container{
        padding: 130px 20px 30px 20px;
    }
}
.modal-container:before{
	content: "";
	display: inline-block;
	vertical-align: middle;
	height: 100%;
}
.modal-container.active{
	opacity: 1;
	visibility: visible;
}
.modal-body{
	position: relative;
	display: inline-block;
	vertical-align: middle;
	max-width: 1024px;
	width: 90%;
    max-height: 100%;
    overflow-y: auto;
    background: #fff;
}
.modal-content{
	
	text-align: left;
    padding: 1.5em;
    box-sizing: border-box;
   
}

.modal-content #DISPLAY .Item p{
    font-size: .875em;
}

/* ------------------------------------------------------------------------
    switch
------------------------------------------------------------------------  */
.for--pc{}
.for--sp{}
@media screen and (max-width: 1023px){
.for--pc{ display: none !important; }
}
@media screen and (min-width:1024px){
.for--sp{ display: none !important; }
}