@charset "utf-8";

/*
-----------------------------------------------
▼基本デザイン 2025.10
----------------------------------------------- */
html {
font-size: clamp(0.875rem, 0.625rem + 0.5vw, 1.125rem); 
line-height: 1.8;
letter-spacing: 0.2;
color:#1a1a1a;
overflow-x: hidden;
text-align: justify;
}
body {
-webkit-text-size-adjust:100%;
-webkit-font-smoothing:subpixel-antialiased;
}
a .hv-img {
transition:opacity 0.5s ease-in-out;
}

a:hover .hv-img {
opacity:0.7;
}

rt {
	translate: 0 0.5em;
}
@-moz-document url-prefix() {
	rt {
		position: relative;
		top: 0.5em;
	}
}
/*
-----------------------------------------------
寄せ
----------------------------------------------- */
.tac-all{
text-align:center;
margin-left:auto;
margin-right:auto;
}
.tal{
  text-align:left;
  margin-left:0;
  margin-right:auto;
}

.tar{
  text-align:right;
  margin-left:auto;
  margin-right:0;
}
/*
-----------------------------------------------
font-size
----------------------------------------------- */
.f08 {
  font-size: 0.8rem;
  line-height: 1.7;
}
.f09 {
  font-size: 0.9rem;
  line-height: 1.8;
}
/*
-----------------------------------------------
margin
----------------------------------------------- */
.mt5{margin-top:5px;}
.mt10{margin-top:10px;}
.mt15{margin-top:15px;}
.mt20{margin-top:20px;}
.mt30{margin-top:30px;}
.mt40{margin-top:40px;}
.mt50{margin-top:50px;}
.mt60{margin-top:60px;}
.mt70{margin-top:70px;}
.mt80{margin-top:80px;}
.mt90{margin-top:90px;}
.mt100{margin-top:100px;}
.mt120{margin-top:120px;}
.mt140{margin-top:140px;}
.mt160{margin-top:160px;}
.mt200{margin-top:200px;}

.mb5{margin-bottom:5px;}
.mb10{margin-bottom:10px;}
.mb15{margin-bottom:15px;}
.mb20{margin-bottom:20px;}
.mb30{margin-bottom:30px;}
.mb40{margin-bottom:40px;}
.mb50{margin-bottom:50px;}
.mb60{margin-bottom:60px;}
.mb70{margin-bottom:70px;}
.mb80{margin-bottom:80px;}
.mb90{margin-bottom:90px;}
.mb100{margin-bottom:100px;}
.mb120{margin-bottom:120px;}
.mb140{margin-bottom:140px;}
.mb160{margin-bottom:160px;}
.mb200{margin-bottom:200px;}

.ml10{margin-left:10px;}
.ml20{margin-left:20px;}
.ml30{margin-left:30px;}
.ml40{margin-left:40px;}
.ml50{margin-left:50px;}
.ml60{margin-left:60px;}
.ml70{margin-left:70px;}
.ml80{margin-left:80px;}
.ml90{margin-left:90px;}
.ml100{margin-left:100px;}

.mr10{margin-right:10px;}
.mr20{margin-right:20px;}
.mr30{margin-right:30px;}
.mr40{margin-right:40px;}
.mr50{margin-right:50px;}
.mr60{margin-right:60px;}
.mr70{margin-right:70px;}
.mr80{margin-right:80px;}
.mr90{margin-right:90px;}
.mr100{margin-right:100px;}

/*------------スマホ ------------*/
@media screen and (max-width: 820px) {
.mt100{margin-top:60px;}
.mt160{margin-top:100px;}
}
/*
-----------------------------------------------
padding
----------------------------------------------- */
.pt5{padding-top:5px;}
.pt10{padding-top:10px;}
.pt15{padding-top:15px;}
.pt20{padding-top:20px;}
.pt30{padding-top:30px;}
.pt40{padding-top:40px;}
.pt50{padding-top:50px;}
.pt60{padding-top:60px;}
.pt70{padding-top:70px;}
.pt80{padding-top:80px;}
.pt90{padding-top:90px;}
.pt100{padding-top:100px;}
.pt110{padding-top:110px;}
.pt120{padding-top:120px;}
.pt130{padding-top:130px;}
.pt140{padding-top:140px;}
.pt150{padding-top:150px;}
.pt160{padding-top:160px;}
.pt180{padding-top:180px;}
.pt200{padding-top:200px;}

.pb5{padding-bottom:5px;}
.pb10{padding-bottom:10px;}
.pb15{padding-bottom:15px;}
.pb20{padding-bottom:20px;}
.pb30{padding-bottom:30px;}
.pb40{padding-bottom:40px;}
.pb50{padding-bottom:50px;}
.pb60{padding-bottom:60px;}
.pb70{padding-bottom:70px;}
.pb80{padding-bottom:80px;}
.pb90{padding-bottom:90px;}
.pb100{padding-bottom:100px;}
.pb160{padding-bottom:160px;}
.pt180{padding-bottom:180px;}
.pt200{padding-bottom:200px;}

.pl10{padding-left:10px;}
.pl20{padding-left:20px;}
.pl30{padding-left:30px;}
.pl40{padding-left:40px;}
.pl50{padding-left:50px;}
.pl60{padding-left:60px;}
.pl70{padding-left:70px;}
.pl80{padding-left:80px;}
.pl90{padding-left:90px;}
.pl100{padding-left:100px;}

.pr10{padding-right:10px;}
.pr20{padding-right:20px;}
.pr30{padding-right:30px;}
.pr40{padding-right:40px;}
.pr50{padding-right:50px;}
.pr60{padding-right:60px;}
.pr70{padding-right:70px;}
.pr80{padding-right:80px;}
.pr90{padding-right:90px;}
.pr100{padding-right:100px;}



/* chrome画像ボケ対応 */
img{
-webkit-backface-visibility: hidden;
}

h1,h2,h3,h4,h5{
font-weight:bold;
padding-top: 8px;
padding-bottom: 8px;
}
p {
	padding-bottom: 8px;
}
strong{
font-weight:900 !important;
}

/*
-----------------------------------------------
flex
----------------------------------------------- */
.container01{
display:flex;
flex-wrap:wrap;
}

.container02{
display:flex;
flex-wrap:nowrap;
}

.container_pc { /*pcだけflexしたい*/
display:flex;
}

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

.al-item01{
align-items:flex-end;
}
.al-item02{
align-items:center;
}

.c-type01{
justify-content:space-between;
}

.c-type02{
justify-content:space-around;
}

.c-type03{
justify-content:flex-start;
}

.c-type04{
justify-content:center;
}
.c-type05{
justify-content:end;
}

/*
-----------------------------------------------
ハンバーガーボタン
----------------------------------------------- */
/*=============================
.btn-trigger
=============================*/
.btn-trigger {
  position: fixed;
  display: block;
  width: 64px;
  height: 64px;
  top: 20px;
  right: 40px;
  cursor: pointer;
  z-index: 999;
  background-color: #124469;
}
@media screen and (max-width: 1280px) { /*tb・スマホの場合*/
.btn-trigger {
  right: 20px;
}
}
.btn-trigger span {
  position: absolute;
  left: 20%;
  width: 60%;
  height: 3px;
  background-color: #fff;
  border-radius: 4px;
}
.btn-trigger, .btn-trigger span {
  display: inline-block;
  transition: all .5s;
  box-sizing: border-box;
}
.btn-trigger span:nth-of-type(1) {
  top: 10px;
}
.btn-trigger span:nth-of-type(2) {
  top: 24px;
}
.btn-trigger span:nth-of-type(3) {
  top: 38px;
}
.btn-trigger p {
  position: absolute;
    bottom: 2px;
    font-size: 0.8rem;
    line-height: 1.2;
    letter-spacing: 0.2rem;
    padding-bottom: 0;
    width: 100%;
    text-align: center;
  color: #fff;
}
/*------------スマホ ------------*/
@media screen and (max-width: 820px) {
  .btn-trigger {
  top: 10px;
}
}
/*=============================
#spbtn
=============================*/
#spbtn span:nth-of-type(1) {
  -webkit-animation: spbtn-bar01 .75s forwards;
  animation: spbtn-bar01 .75s forwards;
}
@keyframes spbtn-bar01 {
  0% {
    transform: translateY(12px) rotate(45deg);
  }
  50% {
    transform: translateY(12px) rotate(0);
  }
  100% {
    transform: translateY(0) rotate(0);
  }
}
#spbtn span:nth-of-type(2) {
  transition: all .25s .25s;
  opacity: 1;
}
#spbtn span:nth-of-type(3) {
  -webkit-animation: spbtn-bar03 .75s forwards;
  animation: spbtn-bar03 .75s forwards;
}
@keyframes spbtn-bar03 {
  0% {
    transform: translateY(-15px) rotate(-45deg);
  }
  50% {
    transform: translateY(-15px) rotate(0);
  }
  100% {
    transform: translateY(0) rotate(0);
  }
}
#spbtn.active span:nth-of-type(1) {
  -webkit-animation: active-spbtn-bar01 .75s forwards;
  animation: active-spbtn-bar01 .75s forwards;
}
@keyframes active-spbtn-bar01 {
  0% {
    transform: translateY(0) rotate(0);
  }
  50% {
    transform: translateY(12px) rotate(0);
  }
  100% {
    transform: translateY(12px) rotate(45deg);
  }
}
#spbtn.active span:nth-of-type(2) {
  opacity: 0;
}
#spbtn.active span:nth-of-type(3) {
  -webkit-animation: active-spbtn-bar03 .75s forwards;
  animation: active-spbtn-bar03 .75s forwards;
}
@keyframes active-spbtn-bar03 {
  0% {
    transform: translateY(0) rotate(0);
  }
  50% {
    transform: translateY(-15px) rotate(0);
  }
  100% {
    transform: translateY(-15px) rotate(-45deg);
  }
}
/*=============================
#spmenu
=============================*/
.spmenu {
	width: 100%;
	z-index: 100;
	position: fixed;
	top: 0;
	right: 0;
  opacity: 0;
  pointer-events: none;
  transition: all .4s ease;
}
.spmenu.active {
  opacity: 1;
  pointer-events: all;
}
.spmenu_mask {
	background-color: rgba(0,0,0,0.2);
	width: calc(100% - 340px);
}
.spmenu-inner {	
	background-color: #2a6598;
	width: 100%;
	height: 100dvh;
	padding: 60px 40px 20px;
	top: 0;
	right: 0;
  position: relative;
  color: #fff;
  overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}
.spmenu-inner::after {
  content: "";
  position: absolute;
  background-image: url("../img/gr_wave_tate.png");
  background-repeat: repeat-y;
  top: 0;
  left: -9px;
  width: 10px;
  height: 100%;
}
.spmenu-inner nav ul li {
  font-size: 1.7rem;
  margin-top: 30px;
}
.spmenu-inner .top_mv_illust_people {
  position: absolute;
  top: 80%;
  right: 5%;
  width: 130px;
}
/*------------タブレット------------*/
@media (min-width: 768px) and (max-width: 1279px) {

  .spmenu-inner nav ul li {
    margin-top: 40px;
  }
  .spmenu-inner .top_mv_illust_people {
    top: 70%;
    width: 180px;
  }
}

@media screen and (max-width: 767px) {

  .spmenu-inner nav {
  margin-top:40px;
  }

  .spmenu-inner nav>ul {
  margin-top:15px;
  }

  .spmenu-inner nav ul>li {
    margin-top: 22px;
    font-size:1.4rem;
    padding:0;
    line-height:1.2;
  }
  .menu-item-has-children{
  margin-bottom:0;
  }

.sub-menu{
margin:0 !important;
padding:0 !important;
}




}

/*
-----------------------------------------------
page-top
----------------------------------------------- */
/*リンクの形状*/
#page-top a{
	display: flex;
	justify-content:center;
	align-items:center;
	background:#325790;
	border: 2px solid #325790;
  border-radius: 3px;
	width: 40px;
	height: 40px;
  border-radius: 50%;
	text-transform: uppercase; 
	text-decoration: none;
	transition:all 0.3s;
}

/*リンクを右下に固定*/
#page-top {
	position: fixed;
	right: 3%;
	z-index: 2;
	opacity: 0;
	transform: translateY(100px);
}
.dli-arrow-up {
  position: relative;
  display: inline-block;
  width: 17.1px;
  height: 11.4px;
}
.dli-arrow-up::before,
.dli-arrow-up::after {
  content: "";
  position: absolute;
  top: -2px;
  left: calc(50% - 1.5px);
  width: 3px;
  height: 14px;
  border-radius: 9999px;
  background-color: #fff;
  transform-origin: 50% 1.5px;
}
.dli-arrow-up::before {
  transform: rotate(40deg);
}
.dli-arrow-up::after {
  transform: rotate(-40deg);
}
#page-top a:hover{
	background: #fff;
}
#page-top a:hover 
.dli-arrow-up::before,
#page-top a:hover 
.dli-arrow-up::after {
  background-color: #325790;
}
/*　上に上がる動き　*/

#page-top.UpMove{
	animation: UpAnime 0.5s forwards;
}
@keyframes UpAnime{
  from {
    opacity: 0;
	transform: translateY(100px);
  }
  to {
    opacity: 1;
	transform: translateY(0);
  }
}

/*　下に下がる動き　*/

#page-top.DownMove{
	animation: DownAnime 0.5s forwards;
}
@keyframes DownAnime{
  from {
  	opacity: 1;
	transform: translateY(0);
  }
  to {
  	opacity: 1;
	transform: translateY(100px);
  }
}

@media (min-width: 1279px) {
  a[href*="tel:"] {
  pointer-events: none;
  cursor: default;
  text-decoration: none;
  }
  }
/*
-----------------------------------------------
pc sp only
----------------------------------------------- */

@media screen and (min-width: 1279px) { /*pcの場合*/
  .sponly{
   display:none !important;
  }
}



/* @media screen and (max-width: 1324px) {
header .pconly{
   display:none !important;
  }

header .sponly{
   display:block !important;
  }

} */

@media screen and (max-width: 1280px) { /*tb・スマホの場合*/
  .pconly{
   display:none !important;
  }
}
@media screen and (max-width: 820px) { /*スマホの場合*/
  .pctbonly{
    display:none !important;
  }
}
/* css_end */