@charset "UTF-8";
/*
 * cmn_layout.css
 *
 */

 /* !変数定義
---------------------------------------------------------- */
:root {
	--color-blue: #0A98C8;
	--color-green: #51AA28;
	--color-yellow: #EBBF36;
	--color-orange: #F27140;
	--color-purple: #9999CC;
	--base-font-color: #2F4858;
	--base-font-size: 16px;
	--font-weight-normal: 500;
	--font-weight-bold: 700;
	--font-family-en: "Patua One", serif;
}

/* !HTML5 elements
---------------------------------------------------------- */
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section
{ display: block;}

/* !Reseting
---------------------------------------------------------- */
body {
	font-family: 'Noto Sans JP', "游ゴシック", YuGothic, "ヒラギノ角ゴ ProN W3" , "Hiragino Kaku Gothic ProN" , 'メイリオ' ,Meiryo , Osaka, "ＭＳ Ｐゴシック", "MS PGothic" , Verdana, Arial, Helvetica, sans-serif;
	font-size: var(--base-font-size);
	font-weight: var(--font-weight-normal);
	-webkit-text-size-adjust: none;
	line-height: 2;
	color: var(--base-font-color);
}

@media screen and (max-width:1039px){
body {
	font-size: 15px;
}
}

@media screen and (max-width:767px){
body {
	font-size: 14px;
}
}

body, div, pre, p, blockquote, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, form, fieldset, th, td, figure, figcaption
{ margin: 0; padding: 0;}

input, textarea
{ margin: 0; font-size: 100%;}

label
{ cursor: pointer;}

table
{ border-collapse: collapse; border-spacing: 0; font-size: 100%;}

fieldset, img
{ border: 0;}

img
{ max-width: 100%; height: auto; vertical-align: top;}

address, caption, cite, code, dfn, em, th, var
{ font-style: normal; font-weight: normal;}

ol, ul
{ list-style: none;}

caption, th
{ text-align: left;}

h1, h2, h3, h4, h5, h6
{ font-size: 100%; font-weight: normal;}

q:after, q:before
{ content:'';}

a
{ cursor: pointer; }

a, input
{ outline: none; }

input, textarea
{ border-radius: 0; font-family: 'Noto Sans JP', "游ゴシック", YuGothic, "ヒラギノ角ゴ ProN W3" , "Hiragino Kaku Gothic ProN" , 'メイリオ' ,Meiryo , Osaka, "ＭＳ Ｐゴシック", "MS PGothic" , Verdana, Arial, Helvetica, sans-serif;}

input[type="button"],input[type="submit"],input[type="reset"]
{ -webkit-appearance: none; appearance: none; background: none; border: none; padding: 0; cursor: pointer;}

abbr, acronym
{ border: 0;}
*
{ -webkit-box-sizing: border-box; -moz-box-sizing: border-box; -ms-box-sizing: border-box; box-sizing: border-box;}

/* !Layout
---------------------------------------------------------- */
html {
	overflow-y: scroll;
	scroll-behavior: smooth;
}
body { 
	text-align: left;
	position:relative;
}
:target {
    scroll-margin-top: 90px;
}

@media screen and (max-width: 767px) {
:target {
    scroll-margin-top: 80px;
}
}

/* !Loading
---------------------------------------------------------- */
#loading {
  width: 100vw;
  height: 100vh;
  transition: all 1.2s 0.4s;
  background-color: #FFF;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 10000;
}

.loaded {
  opacity: 0;
  visibility: hidden;
}

/* !header
---------------------------------------------------------- */
.header {
    width: 100%;
    height: 90px;
    background: rgba(255, 255, 255, 0);
    margin: 0 auto;
    z-index: 100;
    position: fixed;
    top: 0;
    left: 0;
    transition: .25s;
}
.header.transform {
	height: 70px;
    background: rgba(255, 255, 255, 1);
}

.header__logo a {
    display: block;
    position: absolute;
    width: 314px;
    height: 39px;
    top: 26px;
    left: 30px;
	transition: .25s;
    z-index: 302;
}
.header.transform .header__logo a {
    top: 16px;
}

@media screen and (max-width: 1039px) {
.header.transform {
	height: 90px;
    background: rgba(255, 255, 255, 1);
}

.header .header__logo a {
	top: 26px;
	left: 20px;
	z-index: 301;
}

.header.transform .header__logo a {
    top: 26px;
}

/* 重なり順の整理 */
.header-nav {
	z-index: 302;
}
.header__panel-btn {
	z-index: 400;
}
}

@media screen and (max-width: 767px) {
.header {
	height: 80px;
}
.header.transform {
	height: 80px;
}

.header .header__logo a {
	width: 240px;
	height: 30px;
	top: 25px;
	left: 20px;
}

.header.transform .header__logo a {
	top: 25px;
}
}

@media screen and (max-width:359px){
.header .header__logo a {
	width: 220px;
	height: 27px;
	top: 27px;
	left: 15px;
}
}

/* !ヘッダーナビ
---------------------------------------------------------- */
.header-nav {
    position: absolute;
    width: 100%;
    height: 90px;
    font-size: 0;
    list-style: none;
    padding: 0;
    display: flex;
    justify-content: flex-end;
    top: 0;
    right: 0;
	padding-right:30px;
    z-index: 301;
}
	header.transform .header-nav {
		height: 70px;
	}

.header-nav__item {
    display: inline-block;
    text-align: center;
}

.header-nav__item:first-child {
	display: none;
}

.header-nav__link {
    display: block;
    font-size: var(--base-font-size);
    font-weight: var(--font-weight-normal);
    padding: 0 24px;
    line-height: 90px;
    color: var(--base-font-color);
    position: relative;
    text-decoration: none;
	transition: .25s;
}

	.header.transform .header-nav__link {
		line-height: 70px;
	}

.header-nav__link:before {
	display: block;
	position:absolute;
	content: "";
	width:6px;
	height: 6px;
	background-color: var(--color-blue);
	border-radius: 50%;
	top:25px;
	left:50%;
	transform: translateX(-50%);
	opacity: 0;
	transition: .3s;
}

/* Hover & Current State */
.header-nav__link:hover:before,
.header-nav__link.current:before {
    opacity: 1;
	top:16px;
}

.header-nav__item:hover > .header-nav__link,
.header-nav__item > .header-nav__link.current {
    color: var(--color-green);
}

/* Modifier: Entry Button */
.header-nav__link--entry {
	font-family: var(--font-family-en);
	font-weight: var(--font-weight-normal);
    color: #fff !important;
	letter-spacing: 0.08em;
    height: 60px;
    line-height: 60px;
    background: var(--color-green);
    border-radius: 30px;
	padding: 0 30px;
    margin-top: 15px;
	margin-left: 24px;
	transition: background-color .6s ease, margin-top 0.3s ease, height .25s ease, line-height .25s ease;
}
.header-nav__link--entry:before {
	display: none;
}
.header-nav__link--entry:hover {
    background-color: var(--color-blue);
}
.header-nav__link--entry i {
	margin-right: 0.4em;
	font-size:118%;
	vertical-align: middle;
}
	.header.transform .header-nav__link--entry {
		margin-top: 10px;
		height: 50px;
		line-height: 50px;
	}

#panel-btn {
    display: none;
}

@media screen and (max-width: 1139px) {
.header-nav__link {
    padding: 0 18px;
}
}

@media screen and (max-width: 1039px) {
.header-nav {
	justify-content: center;
	width:100%;
	height: 100%;
	position: fixed;
	top:-100%;
	padding: 150px 50px 50px 50px;
	color: var(--base-font-color);
	background: #F5F5F5;
	overflow-y: auto;
	text-align: center;
	transition: .6s;
	display: block;
}
	header.transform .header-nav {
		height: 100%;
	}

.header-nav__item {
	display: block;
	width: 100%;
	max-width:400px;
	font-size: 20px;
	letter-spacing: 0.08em;
	margin: 0 auto;
}

.header-nav__item:first-child {
	display: block;
}

.header-nav__link {
	padding: 0;
	color: var(--base-font-color);
	line-height: 60px;
}
	.header.transform .header-nav__link {
		line-height: 60px;
	}

.header-nav__link:before {
	top:10px;
	opacity: 0;
}

/* Hover & Current State */
.header-nav__link:hover:before {
    opacity: 0;
}

.header-nav__link.current:before {
    opacity: 1;
	top:10px;
}

.header-nav__item:hover > .header-nav__link {
    color: var(--base-font-color);
}

.header-nav__item > .header-nav__link.current {
    color: var(--color-green);
}

/* Modifier: Entry Button */
.header-nav__link--entry {
	font-size:20px;
	color: #FFF;
	height: 60px;
	line-height: 60px;
	background: var(--color-green);
	padding: 0;
	margin-top: 20px;
	margin-left: 0;
	transition: none;
}
.header-nav__link--entry:hover {
	background: var(--color-green);
}

.header.transform .header-nav__link--entry {
	margin-top: 20px;
	height: 60px;
	line-height: 60px;
}

/* Nav Open State */
.open .header-nav {
	transform: translate3d(0, 100%, 0);
}

/* Panel Button */
/* ボタン外枠 */
#panel-btn {
	display: block;
	position: fixed;
	top: 10px;
	right: 10px;
	width: 70px;
	height: 70px;
	padding:2px;
	background-image: linear-gradient(90deg, var(--color-yellow), var(--color-orange) 25%, var(--color-green) 50%, var(--color-blue) 75%, var(--color-purple));
	border: none;
	border-radius: 50%;
	z-index: 400;
	cursor: pointer;
}

.header__panel-btn-inner {
	display: block;
	width: 100%;
	height: 100%;
	background-color: #fff;
	border-radius: 50%;
}

/* 三本線の真ん中 */
#panel-btn-icon {
	display: block;
	position: absolute;
	top: 50%;
	left: 50%;
	width: 24px;
	height: 2px;
	background: #fff;
	transform: translate(-50%, -50%);
	transition: background 0.3s ease; /* 閉じる時に透明にする */
}

/* 三本線の上下 */
#panel-btn-icon:before,
#panel-btn-icon:after {
	content: "";
	display: block;
	position: absolute;
	width: 24px;
	height: 2px;
	background: var(--base-font-color);
	left: 0;
	transition: transform 0.3s ease, top 0.3s ease;
}

#panel-btn-icon:before { top: -4px; }
#panel-btn-icon:after { top: 4px; }

/* --- ボタンが押された時 (.open) のアイコン変形 --- */
.open #panel-btn-icon {
	background: transparent !important; /* 真ん中の線を消す */
}
.open #panel-btn-icon:before {
	top: 0 !important;
	transform: rotate(45deg); /* 上の線を傾ける */
}
.open #panel-btn-icon:after {
	top: 0 !important;
	transform: rotate(-45deg); /* 下の線を傾ける */
}
}

@media screen and (max-width: 767px) {
.header-nav {
	padding: 100px 40px 30px 40px;
}

.header-nav__link { 
	font-size: 16px;
	line-height: 54px;
}
	.header.transform .header-nav__link {
		line-height: 54px;
	}

.header-nav__link--entry {
	font-size:18px;
	margin-top: 16px;
}
	.header.transform .header-nav__link--entry {
		margin-top: 16px;
	}

#panel-btn { width: 60px; height: 60px; }

a#panel-btn {
	width: 60px;
	height: 60px;
}
#panel-btn{
	width: 60px;
	height: 60px;
}
}

@media screen and (max-width: 360px) {
    .header-nav {
        padding: 100px 30px 30px 30px;
    }
}

@media screen and (max-width: 359px) {
    .header-nav {
        padding: 80px 25px 30px 25px;
    }
	.header-nav__link { 
		line-height: 50px;
	}
	.header.transform .header-nav__link {
		line-height: 50px;
	}
}

/* !component
---------------------------------------------------------- */
.c-inner {
	width:100%;
	max-width: 1200px;
	margin: 0 auto;
}

p.c-lead:not(:first-child) {
	margin-top: 30px;
}

.c-title {
	font-size:18px;
	font-weight: var(--font-weight-bold);
	line-height: 1.4;
	padding-left:22px;
	position: relative;
}
	.c-title:before {
		position: absolute;
		content:"";
		width:8px;
		height: 8px;
		border:4px solid #FFF;
		border-radius: 50%;
		top:50%;
		left:0;
		transform: translateY(-50%);
	}

.c-title-en {
	position: relative;
	font-family: var(--font-family-en);
	font-size: 60px;
	letter-spacing: 0.04em;
	line-height: 1.3;
}

.c-sub-title {
	text-align: center;
	margin-bottom: 70px; 
}
.c-sub-title__text {
	font-size: 34px;
	font-weight: var(--font-weight-bold);
	margin-bottom: 0.8em;
	letter-spacing: 0.04em;
	line-height: 1.4;
}
.c-sub-title__dots {
	display: flex;
	justify-content: center;
	gap: 10px;
}
.c-sub-title__dots span {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background-color: var(--color-green);
	display: block;
}
.c-sub-title__dots--purple span {
	background-color: var(--color-purple);
}
.c-sub-title__dots--yellow span {
	background-color: var(--color-yellow);
}
.c-sub-title__dots--blue span {
	background-color: var(--color-blue);
}
.c-sub-title__dots--orange span {
	background-color: var(--color-orange);
}

.c-icon-list {
	width:100%;
}

.c-icon-list__item {
	margin-top:20px;
	position: relative;
	padding-left:1em;
}
	.c-icon-list__item::before {
		position: absolute;
		content:"";
		width:6px;
		height: 6px;
		background: var(--main-color);
		border-radius: 50%;
		top:16px;
		left: 0;
	}

.c-icon-line-list {
	width:100%;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}

.c-icon-line-list__item {
	width:47%;
	position: relative;
	padding:1.2em 0 1.2em 1em;
	border-bottom: 1px solid #ddd;
}
	.c-icon-line-list__item::before {
		position: absolute;
		content:"";
		width:6px;
		height: 6px;
		background: var(--main-color);
		border-radius: 50%;
		top:34px;
		left: 0;
	}

.c-circle-list {
	width:100%;
}

.c-circle-list__item {
	list-style:circle;
	margin-left:1.2em;
}
.c-circle-list__item:not(:last-child) {
	margin-bottom: 10px;
}

.c-decimal-list {
	width:100%;
}

.c-decimal-list__item {
	list-style:decimal;
	margin-top:20px;
	margin-left:1em;
	padding-left:1em;
}

.c-alpha-list {
	width:100%;
}

.c-alpha-list__item {
	list-style:lower-alpha;
	margin-top:20px;
	margin-left:1em;
	padding-left:1em;
}

.c-numbering-list {
    counter-reset: sales-counter;
}

.c-numbering-list__item {
    position: relative;
    padding-left: 45px;
    margin-bottom: 25px;
    line-height: 1.8;
    display: flex;
    align-items: flex-start;
}

.c-numbering-list__item::before {
    counter-increment: sales-counter;
    content: counter(sales-counter);
    position: absolute;
    left: 0;
    top: 0.2em;
    width: 28px;
    height: 28px;
    background-color: var(--main-color);
    color: #fff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
	font-family: var(--font-family-en);
    font-size: 14px;
}

.c-numbering-list__item:last-child {
    margin-bottom: 0;
}

.c-table {
	width: 100%;
	border-collapse:collapse;
}
	.c-table th,
	.c-table td {
		padding: 1.6em 0;
		border-bottom: 1px solid #ddd;
	}
	.c-table th {
		vertical-align:top;
		font-weight: var(--font-weight-bold);
	}
	.c-table td {
		vertical-align:top;
	}
		.c-table td dl {
			width:100%;
			display: flex;
			flex-wrap: wrap;
		}
			.c-table td dl dt {
				width: 7em;
			}
			.c-table td dl dd {
				width: calc(100% - 7em);
			}

.c-txt-link {
	color: var(--main-color);
	text-decoration: underline;
	transition: all 0.6s ease;
}
.c-txt-link:hover,
.c-txt-link:active,
.c-txt-link:focus { text-decoration: underline;}
.c-txt-link:hover { opacity:0.7;}

.c-link-btn {
	position: relative;
	display: inline-block;
	padding:0.8em 1.6em;
	background-color: var(--color-green);
	color: #FFF;
	border-radius: 30px;
	transition:.5s;
}
	.c-link-btn i {
		margin-right: 0.6em;
	}
	.c-link-btn:hover {
		opacity:.7;
	}
.c-link-btn__arrow {
	position: absolute;
	width:30px;
	height: 30px;
	background: var(--accent-color);
	border:1px solid var(--accent-color);
	border-radius: 50%;
	right:10px;
	top:50%;
	margin-top: -15px;
	transform: scale(.3);
	transition: .3s;
	overflow: hidden;
	z-index: 4;
}
	a:hover .c-link-btn__arrow {
		border:1px solid var(--accent-color);
		background: #FFF;
		transform: scale(1);
	}
	.c-link-btn__arrow span {
		position: absolute;
		display: block; 
		width: 13px;
		height: 6px;
		background-color: var(--accent-color);
		-webkit-mask-image: url("../img/icon_arrow.svg");
		mask-image: url("../img/icon_arrow.svg");
		-webkit-mask-repeat: no-repeat;
		mask-repeat: no-repeat;
		-webkit-mask-size: contain;
		mask-size: contain;
		-webkit-mask-position: center;
		mask-position: center;
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%);
	}

.c-clear-both {clear: both;}

.c-align-center {text-align: center;}
.c-align-left {text-align: left;}
.c-align-right {text-align: right;}

.c-color-blue {color:#0A98C8;}
.c-color-green {color: #51AA28;}
.c-color-yellow {color: #EBBF36;}
.c-color-orange {color: #F27140;}
.c-color-purple {color: #9999CC;}

.c-font-size-s {font-size:90%;}
.c-font-size-xs {font-size:80%;}
.c-font-size-l {font-size:110%;}
.c-font-size-xl {font-size:120%;}

.c-mt10 { margin-top: 10px   !important;}
.c-mt15 { margin-top: 15px   !important;}
.c-mt20 { margin-top: 20px   !important;}
.c-mt30 { margin-top: 30px   !important;}
.c-mt40 { margin-top: 40px   !important;}
.c-mt50 { margin-top: 50px   !important;}
.c-mt60 { margin-top: 60px   !important;}
.c-mt70 { margin-top: 70px   !important;}
.c-mt80 { margin-top: 80px   !important;}
.c-mt90 { margin-top: 90px   !important;}
.c-mt100 { margin-top: 100px   !important;}

/* 矢印をまとめるユニット */
.arrow-unit {
	position: relative;
	width: 14px;
	height: 10px;
	display: flex;
	align-items: center;
	justify-content: center;
}

/* 矢印の棒 */
.arrow-unit::before {
	content: "";
	position: absolute;
	left: 0;
	width: 100%;
	height: 2px;
	background-color: var(--base-font-color);
}

/* 矢印の先端 */
.arrow-unit::after {
	content: "";
	position: absolute;
	right: 0;
	width: 8px;
	height: 8px;
	border-top: 2px solid var(--base-font-color);
	border-right: 2px solid var(--base-font-color);
	transform: rotate(45deg);
}

/* --- ループアニメーション --- */
a:hover .arrow-unit {
	animation: arrowLoop 0.3s ease forwards;
}

@keyframes arrowLoop {
  0% {
    transform: translateX(0);
    opacity: 1;
  }
  49% {
    transform: translateX(35px);
    opacity: 0;
  }
  50% {
    transform: translateX(-35px);
    opacity: 0;
  }
  100% {
    transform: translateX(0);
    opacity: 1;
  }
}

@media screen and (max-width: 1039px) {
.c-title {
	font-size:16px;
}

.c-title-en {
	font-size: 50px;
}

.c-sub-title {
  margin-bottom: 60px; 
}
.c-sub-title__text {
    font-size: 28px;
}
.c-sub-title__dots span {
  width: 8px;
  height: 8px;
}
	.c-icon-list__item::before {
		top:14px;
	}
	.c-icon-line-list__item::before {
		top:31px;
	}

.c-numbering-list__item {
    padding-left: 40px;
}

.c-txt-link:hover { opacity:1;}

	.c-link-btn:hover {
		opacity:1;
	}

.c-mt40 { margin-top: 35px   !important;}
.c-mt50 { margin-top: 40px   !important;}
.c-mt60 { margin-top: 50px   !important;}
.c-mt70 { margin-top: 55px   !important;}
.c-mt80 { margin-top: 60px   !important;}
.c-mt90 { margin-top: 70px   !important;}
.c-mt100 { margin-top: 80px   !important;}

/* --- ループアニメーション --- */
a:hover .arrow-unit {
	animation: none;
}
}

@media screen and (max-width: 767px) {
.c-title {
	font-size:14px;
	padding-left:20px;
}
	.c-title:before {
		width:6px;
		height: 6px;
	}

.c-title-en {
	font-size: 36px;
}

.c-sub-title {
    margin-bottom: 50px;
}
.c-sub-title__text {
    font-size: 20px;
	letter-spacing: 0.02em;
}

.c-sub-title__dots span {
    width: 7px;
    height: 7px;
}

	.c-icon-list__item::before {
		top:13px;
	}

.c-icon-line-list__item {
	width:100%;
	padding:1.1em 0 1.1em 1em;
}
	.c-icon-line-list__item::before {
		top:28px;
	}

.c-numbering-list__item {
    padding-left: 35px;
}

.c-numbering-list__item::before {
    top: 0.16em;
    width: 24px;
    height: 24px;
    font-size: 13px;
}

.c-table {
	width: 100%;
}
	.c-table,
	.c-table thead,
	.c-table tbody,
	.c-table tr,
	.c-table th,
	.c-table td {
		width: 100%;
		display: block;
	}
	.c-table th {
		padding: 1.2em 0 0 0;
		border-bottom:0;
	}
	.c-table td {
		padding: 0.6em 0 1.2em 0;
		border-bottom:1px solid #ddd;
	}

.c-mt40 { margin-top: 30px   !important;}
.c-mt50 { margin-top: 40px   !important;}
.c-mt60 { margin-top: 45px   !important;}
.c-mt70 { margin-top: 50px   !important;}
.c-mt80 { margin-top: 55px   !important;}
.c-mt90 { margin-top: 60px   !important;}
.c-mt100 { margin-top: 60px   !important;}

/* 矢印をまとめるユニット */
.arrow-unit {
	width: 12px;
}

/* 矢印の先端 */
.arrow-unit::after {
	width: 6px;
	height: 6px;
}
}

/* !CTA
---------------------------------------------------------- */
.btm-cta {
    width: 100%;
    padding: 40px 50px 100px 50px;
    position: relative;
}

.btm-cta__object {
    position: absolute;
    display: block;
    width: 100%;
    bottom: -40px;
    left: 0;
    z-index: -1;
}

.btm-cta__list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap:40px;
}

.btm-cta__item {
    width: 100%;
    aspect-ratio: 580 / 300;
    overflow: hidden;
    isolation: isolate;  /* Safariなどで角丸のマスクが一瞬バグるのを防ぐ */
}

.btm-cta__item-link {
    display: block;
    width: 100%;
    height: 100%;
    padding: 50px 40px;
    transition: .6s;
    text-decoration: none;
    position: relative;
    overflow: hidden; 
    z-index: 1;
    border-radius: 20px;
}

.btm-cta__item--guideline {
    background-color: var(--color-blue);
    border-radius: 20px;
}

.btm-cta__item--entry {
    background-color: var(--color-green);
    border-radius: 20px;
	margin-top: 40px;
}
.btm-cta__item-link::before {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 100%;
    z-index: -1; 
    transform: translateY(100%); 
    transition: transform 0.5s cubic-bezier(0.25, 1, 0.5, 1);
}

.btm-cta__item--guideline .btm-cta__item-link::before {
    background-color: #2FA7D0;
}

.btm-cta__item--entry .btm-cta__item-link::before {
    background-color: #6BB748;
}

/* --- ホバーアニメーションのトリガー --- */
@media (hover: hover) {
    .btm-cta__item-link:hover::before {
        transform: translateY(0);
    }
}

.btm-cta__guideline-title {
    color: #fff;
}
.btm-cta__guideline-title:before {
    border: 4px solid var(--color-yellow);
}

.btm-cta__guideline-title-en {
    color: #fff;
    font-size: 50px;
}

.btm-cta__entry-title {
    color: #fff;
}
.btm-cta__entry-title:before {
    border: 4px solid var(--color-orange);
}

.btm-cta__entry-title-en {
    color: #fff;
    font-size: 50px;
}

/* --- ボタンエリア --- */
.btm-cta__btn {
    position: absolute;
    right: 30px;
    bottom: 30px;
    z-index: 2;
}

.btm-cta__btn-icon {
    position: relative;
    width: 50px;
    height: 50px;
    border-radius: 50%;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    padding: 2px;
    background-image: linear-gradient(#fff, #fff), 
                      linear-gradient(to right, #F27140 0%, #E8C558 25%, #2EA178 50%, #0A98C8 75%, #9999CC 100%);
    background-origin: border-box;
    background-clip: content-box, border-box;
}

@media screen and (max-width:1039px) {
.btm-cta {
    padding: 40px 30px 80px 30px;
}

.btm-cta__object {
    bottom: -30px;
}

.btm-cta__item {
    aspect-ratio: 480 / 300;
}

.btm-cta__item-link {
    padding: 40px 30px;
    border-radius: 16px;
}

.btm-cta__item--guideline {
    border-radius: 16px;
}

.btm-cta__item--entry {
    border-radius: 16px;
}
.btm-cta__item-link::before {
    display: none;
}

.btm-cta__guideline-title-en {
    font-size: 44px;
}

.btm-cta__entry-title-en {
    font-size: 44px;
}

/* --- ボタンエリア --- */
.btm-cta__btn {
    right: 25px;
    bottom: 25px;
}
}

@media screen and (max-width:767px){
.btm-cta {
    padding: 40px 25px 70px 25px;
}

.btm-cta__object {
    bottom: -10px;
}

.btm-cta__list {
	max-width:320px;
	grid-template-columns: 1fr;
    gap:30px;
	margin: 0 auto;
}

.btm-cta__item {
    width: 100%;
    aspect-ratio: 500 / 300;
}

.btm-cta__item-link {
    padding: 30px 25px;
    border-radius: 12px;
}

.btm-cta__item--guideline {
    border-radius: 12px;
}

.btm-cta__item--entry {
    border-radius: 12px;
	margin-top: 0;
}

.btm-cta__guideline-title-en {
    font-size: 34px;
}

.btm-cta__entry-title-en {
    font-size: 34px;
}

/* --- ボタンエリア --- */
.btm-cta__btn {
    right: 20px;
    bottom: 20px;
}

.btm-cta__btn-icon {
    width: 40px;
    height: 40px;
}
}

/* !footer
---------------------------------------------------------- */
.footer {
	background: #EBE8DD;
	padding: 80px 20px 50px 30px;
	line-height: 1.6;
}

.footer__inner {
	width:100%;
	display: flex;
	align-items: flex-start;
	flex-wrap: wrap;
}

.footer__info {
	flex: 1;
	display: flex;
	align-items: flex-start;
	flex-direction: column;
}

.footer__logo-link {
	margin: 15px 0 25px;
}

.footer__logo {
	width: 314px;
	height: auto;
}

.footer__corporate-link {
	display: inline-block;
	font-family: var(--font-family-en);
	font-size:14px;
	letter-spacing: 0.04em;
	height: 50px;
	color: var(--color-blue);
	padding:0 1.6em;
	background-color: #FFF;
	line-height: 50px;
	border-radius: 25px;
	transition: .6s;
}
	.footer__corporate-link i {
		margin-right: 0.4em;
	}
	.footer__corporate-link:hover  {
		background-color: var(--color-blue);
		color:#FFF;
	}

.footer__nav {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
}

.footer__menu {
	display: flex;
	padding: 0;
	margin: 0 0 20px 0;
}

.footer__menu-item a {
	display: block;
	font-size:15px;
	color: var(--base-font-color);
	padding: 0 24px;
	line-height: 70px;
	position: relative;
	transition: .25s;
}
	.footer__menu-item a:before {
		display: block;
		position:absolute;
		content: "";
		width:6px;
		height: 6px;
		background-color: var(--color-blue);
		border-radius: 50%;
		top:25px;
		left:50%;
		transform: translateX(-50%);
		opacity: 0;
		transition: .3s;
	}
	.footer__menu-item a:hover:before,
	.footer__menu-item a.current:before {
		opacity: 1;
		top:16px;
	}
	.footer__menu-item a:hover,
	.footer__menu-item a.current {
		color: var(--color-green);
	}

.footer__copyright {
	width:100%;
	font-family: var(--font-family-en);
	font-size:12px;
	color: var(--base-font-color);
	letter-spacing: 0.06em;
	text-align: center;
	margin-top: 60px;
	opacity:.5;
}

@media screen and (max-width:1139px){
.footer__menu-item a {
	padding: 0 18px;
}
}

@media screen and (max-width:1039px){
.footer {
	padding: 60px 20px 50px 20px;
}

.footer__inner {
	width:100%;
	gap:20px;
}

.footer__info {
	flex: 1;
}

.footer__logo-link {
	display: inline-block;
	width: 314px;
	margin: 15px auto 25px auto;
}

.footer__logo {
	display: block;
	width: 314px;
	height: auto;
	margin: 0 auto;
}

.footer__corporate-link {
	margin: 0 auto;
}
	.footer__corporate-link:hover  {
		background-color: #FFF;
		color: var(--color-blue);
	}

.footer__nav {
	width:100%;
	align-items: center;
}

.footer__menu {
	flex-wrap: wrap;
	margin: 0 0 15px 0;
}

	.footer__menu-item a:hover:before {
		opacity: 0;
	}
	.footer__menu-item a.current:before {
		opacity: 1;
		top:16px;
	}
	.footer__menu-item a:hover {
		color: var(--base-font-color);
	}
	.footer__menu-item a.current {
		color: var(--color-green);
	}

.footer__copyright {
	margin-top: 0;
}
}

@media screen and (max-width:767px) {
.footer {
	padding: 50px 25px 30px 25px;
}

.footer__inner {
	gap:40px;
}

.footer__info {
	flex: 1;
}

.footer__logo-link {
	width:100%;
	max-width: 250px;
	margin: 15px auto 25px auto;
}

.footer__logo {
	width:100%;
	max-width: 250px;
	margin: 0 auto ;
}

.footer__corporate-link {
	font-size:13px;
}

.footer__nav {
	width:100%;
	align-items: center;
}

.footer__menu {
	flex-wrap: wrap;
	margin: 0 0 20px 0;
}

.footer__menu-item {
	width:100%;
	margin-left: 0;
}

.footer__menu-item a {
	display: block;
	font-size:14px;
	width:100%;
	height: 48px;
	line-height: 48px;
	text-align: center;
}

	.footer__menu-item a.current:before {
		top:0;
	}

.footer__copyright {
	font-size:10px;
}
}

/* !Base Fonts -------------------------------------------------------------- */
a {
	color: var(--color-blue);
	text-decoration: none;
}
a:hover,
a:active,
a:focus { text-decoration: none;}

p { word-wrap: break-word;}

sup   { font-size: 78%; vertical-align: top;}
sub   { font-size: 78%; vertical-align: baseline;}

/* !Format ------------------------------------------------------------------ */
.sp-only{ display:none;}

@media screen and (max-width:1039px){
}
@media screen and (max-width:767px){
.sp-only{ display:block;}
}

.sp-none{ display: none;}