@charset "UTF-8";
article, aside, figcaption, figure, footer, header, img, nav, section {
display:block
}
body, dd, div, dl, dt, h1, h2, h3, h4, html, img, li, ol, p, span, table, td, th, tr, ul, figure {
margin: 0;
padding: 0;
border: 0;
font-weight: inherit;
font-style: inherit;
font-size: 100%;
font-family: inherit;
vertical-align: baseline;
}
body {
font-size: 14px;
line-height: 2.2em;
font-family: "Noto Sans JP", "Yu Gothic", "游ゴシック", YuGothic, "游ゴシック体", "ヒラギノ角ゴ Pro W3", "メイリオ", sans-serif;
font-weight: 400;
background-color: #FFFFFF;
color: #222222;
letter-spacing: 0.05em;
/*-webkit-text-size-adjust: 100%;*/
}
h1, h2 {
line-height: 1.8em;
}
h1, h2, h3, h4, h5 {
font-weight: 600;
}
@media screen and (max-width: 820px) {
body {
font-size: 13px;
line-height: 2.0em;
}
h1, h2 {
line-height: 1.5em;
color: #000000;
}
}
@media screen and (max-width: 767px) {
body {
font-size: 3.3vw;
line-height: 2.0em;
}
}
ol, ul {
list-style:none
}
table{
border-collapse: collapse;
border-spacing: 0;
}

button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
-webkit-appearance: button;
cursor: pointer;
}
a {  }
a:link {
color: #222222;
text-decoration: none;
}
a:visited {
color: #222222;
text-decoration: none;
}
a:hover, a:active {
color: #222222;
text-decoration: none;
}
@media screen and (max-width: 767px) {
a:hover, a:active {
text-decoration: none;
}
}

/* ---------------------------------------------------------------- *
ドキュメント全体に関する設定
* ---------------------------------------------------------------- */
.contents {
overflow: hidden;
margin-right: 0;
margin-left: 0;
padding: 0;
clear: both;
position: relative;
z-index: 1;
background-color: #FFFFFF;
}
@media screen and (max-width: 767px) {
.contents {
}
}


/* ------ Column ------ */
.row110,.row110in{
max-width: 1100px;
margin: 0 auto;
padding: 0 3%;
}
.row120,.row120in{
max-width: 1200px;
margin: 0 auto;
padding: 0 3%;
}
.row130,.row130in{
max-width: 1300px;
margin: 0 auto;
padding: 0 3%;
}
.row150,.row150in{
max-width: 1500px;
margin: 0 auto;
padding: 0 3%;
}

.row,.row00{
max-width: 1000px;
margin: 0 auto;
padding: 0 3%;
}
.row:after,.row00:after {
content: "";
display: block;
clear: both;
}
.row02,.row02in {
max-width: 900px;
margin: 0 auto;
padding: 0 3%;
}
.row800,.row800in {
max-width: 800px;
margin: 0 auto;
padding: 0 3%;
}
.row700,.row700in {
max-width: 700px;
margin: 0 auto;
padding: 0 3%;
}
.row02:after {
content: "";
display: block;
clear: both;
}

@media screen and (max-width: 767px) {
/* 左右に余白を設定 */
.row110,.row120,.row130,.row150,.row,.row02,.row800,.row700  {
padding: 0 6%;
}
.row00,.row02in,.row800in,.row700in,.row110in,.row120in,.row130in,.row150in {
padding-top: 0;
padding-right: 0px;
padding-left: 0px;
padding-bottom: 0;
}
}

.pc_only {
display: block;
}
.sp_only {
display: none;
}
@media screen and (max-width: 767px) {
.pc_only {
display: none !important;
}
.sp_only {
display: block!important;
}
}



/*ホワイト*/
.wt .fa,.wt{
color: #FFF !important;
}
.wt a:link {
text-decoration: none !important;
color: #FFF !important;
}
.wt a:visited {
text-decoration: none !important;
color: #FFF !important;
}
.wt a:hover, .wt a:active {
text-decoration: none !important;
color: #FFF !important;
}

/*ブラック*/
.bk .fa,.bk{
color: #000000 !important;
}
.bk a:link {
text-decoration: none !important;
color: #000000 !important;
}
.bk a:visited {
text-decoration: none !important;
color: #000000 !important;
}
.bk a:hover, .bk a:active {
text-decoration: none !important;
color: #000000 !important;
}

/*コーポレートカラー*/
.corp .fa{
color: #354E6F !important;
}
.corp a:link {
text-decoration: none !important;
color: #354E6F !important;
}
.corp a:visited {
text-decoration: none !important;
color: #354E6F !important;
}
.corp a:hover, .corp a:active {
text-decoration: none !important;
color: #354E6F !important;
}

/*BGカラー*/
.bg_corp{
background-color: #354E6F;
}
.bg_wt{
background-color: #FFFFFF;
}
.bg_bk{
background-color: #000000;
}


/* ---------------------------------------------------------------- *
ヘッダ部分の設定
* ---------------------------------------------------------------- */
.header_ct {
top: 0;
left: 0;
z-index: 3;
width: 100%;
transition: all 0.3s;
/*height: 80px;*/
background-color: #FFFFFF;
position: fixed;
}
.header_ct.in_nav {
background-color: transparent;
}
.header_ct .h_copy {
	background-color: #354E6F;
	color: #FFFFFF;
	font-size: 12px;
	text-align: center;
	padding-top: 5px;
	padding-bottom: 5px;
}
.header_ct .h_copy strong {
font-size: 15px;
margin-left: 10px;
}
@media screen and (max-width: 767px) {
.header_ct {

}
.header_ct .h_copy {
font-size: 2vw;
	padding-top: 0px;
	padding-bottom: 0px;
}
.header_ct .h_copy strong {
font-size: 2.5vw;
margin-left: 7px;
}
}

/* トップ様aboveのナビ */
.h_above {
display: none;
}
@media screen and (max-width: 767px) {
.h_above {
display: grid;
gap: 10px;
grid-template-columns: 1fr 1fr 1fr 1fr 1fr;
padding-right: 15px;
padding-left: 10px;
padding-top: 10px;
padding-bottom: 10px;
}
.h_above li.item img {
width: 100%;
height: auto;
display: block;
}
}


/* 下層コンテンツ */
header#header h1.m_logo {
  display: inline-block;
}
.header_ct.sub_C {
	border-bottom: 1px solid #CCCCCC;
}
.header_ct.sub_C.in_nav {
	border-bottom: 0px solid #CCCCCC;
}
h1.m_logo {
  padding-left: 6%;
  transition: all 0.3s;
}
h1.m_logo img {
	height: 80px;
	display: block;
	position: relative;
	z-index: 2;
	transition: all 0.3s;
	padding-top: 10px;
	padding-bottom: 0px;
	/*padding-left: 6%;*/
	width: auto;
}
@media screen and (max-width: 1200px) {
h1.m_logo {
  padding-left: 3%;
}
}
@media screen and (max-width: 767px) {
  h1.m_logo {
    display: inline-block;
  }
}




/*下層ヘッダーナビ*/
.H_navi {
	position: fixed;
	z-index: 4;
	padding-top: 8px;
	padding-right: 100px;
	padding-left: 300px;
	top: 0px;
	right: 0px;
	max-width: 850px;
	transition: all 0.3s;
	margin-right: 0px;
	margin-left: auto;
}
.H_navi .sub_n {
display: grid;
grid-template-columns: 4.5fr 3fr;
gap: 20px;
}

.H_navi ul.n_left {
display: grid;
gap: 15px;
grid-template-columns: 1fr 1fr 1fr 1fr 1fr;
border-right: 1px solid #CCCCCC;
padding-right: 20px;
}
.H_navi ul.n_right {
display: grid;
gap: 15px;
grid-template-columns: 1fr 1fr 1fr;
}
.H_navi ul.n_left li.item img,
.H_navi ul.n_right li.item img {
width: 100%;
height: auto;
display: block;
}
@media screen and (max-width: 1200px) {
.H_navi {
	padding-top: 15px;
}
}
@media screen and (max-width: 1100px) {
.H_navi {
	display: none;
}
}



/*メインビジュアル*/
.I_1th {
position: relative;
text-align: center;
background-color: #FAF2EB;
padding-bottom: 40px;
padding-top: 30px;
}

.I_1th figure.mv2{
padding-top: 290px;
position: absolute;
width: 327px;
left: 50%;
transform: translateX(10%);
z-index: 1;
}
.I_1th figure img{
width: 100%;
height: auto;
display: block;
}

.I_1th p.g_btn02{
margin-top: 50px;
}

@media screen and (max-width: 767px) {
.I_1th {
padding-bottom: 30px;
padding-top: 120px;
}
.I_1th figure{
width: 90%;
margin-left: auto;
margin-right: auto;
}
.I_1th figure img{
width: 100%;
height: auto;
display: block;
}
.I_1th figure.mv2{
padding-top: 300px;
position: absolute;
width: 35%;
left: 50%;
transform: translateX(-50%);
}
}

/* Copyアコーディオン */
.copy_accordion {
text-align: center;
position: relative;
}
.copy_accordion .full_text {
max-height: 0;
overflow: hidden;
transition: max-height 0.6s ease;
margin-top: 10px;
}
.copy_accordion.open .full_text {
max-height: 1000px;
}
.copy_accordion p{
font-size: 15px;
letter-spacing: 0.1em;
position: relative;
z-index: 1;
line-height: 2.5em;
}
.copy_accordion .readmore_btn {
display: inline-block;
cursor: pointer;
position: relative;
margin-top: 10px;
}
.copy_accordion .readmore_btn::after {
display: block;
content: "";
position: absolute;
width: 8px;
height: 8px;
border-top: solid 1px #222222;
border-right: solid 1px #222222;
-webkit-transform: rotate(135deg);
transform: rotate(135deg);
transition: all 0.3s;
bottom: -10px;
left: 45%;
}
.copy_accordion.open .readmore_btn::after {
-webkit-transform: rotate(-45deg);
transform: rotate(-45deg);
}
@media screen and (max-width: 767px) {
.copy_accordion p{
font-size: 3.3vw;
}
}






/* ロゴアニメーション */
.I_1th .logo_ani{
padding-top: 250px;
position: absolute;
width: 340px; 
left: 50%;
transform: translateX(-100%);
z-index: 1;
}
/* photoアニメ */
.I_1th .flw_p01{
padding-top: 0px;
position: absolute;
width: 450px; 
left: 50%;
transform: translateX(-180%);
z-index: 1;
}
.I_1th .flw_p02{
padding-top: 80px;
position: absolute;
width: 370px; 
left: 50%;
transform: translateX(120%);
z-index: 1;
}
.I_1th .flw_p03{
padding-top: 600px;
position: absolute;
width: 280px; 
left: 50%;
transform: translateX(-200%);
z-index: 1;
}
.I_1th .flw_p04{
padding-top: 530px;
position: absolute;
width: 450px; 
left: 48%;
transform: translateX(70%);
z-index: 1;
}

.mv-wrapper {
position: relative;
width: 100%;
aspect-ratio: 1 / 1;
margin-right: auto;
margin-left: auto;
margin-bottom: 0;
z-index: 1;
}

.city-rotate {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
animation: rotateCity 60s linear infinite;
transform-origin: center center;
}
.city-rotate.spd01 {
animation: rotateCity_R 120s linear infinite;
}
.city-rotate.spd02 {
animation: rotateCity 40s linear infinite;
}
.city-rotate.spd03 {
animation: rotateCity_R 30s linear infinite;
}
.city-rotate.spd04 {
animation: rotateCity 100s linear infinite;
}
.city-rotate img {
width: 100%;
height: 100%;
}
.logo {
position: absolute;
top: 50%;
left: 50%;
width: 74.8%;   /* 416 ÷ 556 ≒ 0.748 */
height: 74.8%;
transform: translate(-50%, -50%);
}
.logo img {
width: 100%;
height: 100%;
}

/* 小雨 */
.delay-slider4 .logo {
position: absolute;
top: 50%;
left: 50%;
width: 68%;
height: 68%;
transform: translate(-50%, -50%);
}


/* 回転アニメーション　左回り */
@keyframes rotateCity {
from {
transform: rotate(0deg);
}
to {
transform: rotate(-360deg);
}
}
/* 回転アニメーション　右回り */
@keyframes rotateCity_R {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}

@media screen and (max-width: 767px) {
.I_1th .logo_ani{
padding-top: 100px;
width: 40%; 
left: 50%;
transform: translateX(-50%);
}
/* photoアニメ */
.I_1th .flw_p01{
padding-top: 15px;
width: 35%; 
left: 50%;
transform: translateX(-150%);
z-index: 1;
}
.I_1th .flw_p02{
padding-top: 40px;
position: absolute;
width: 25%; 
left: 50%;
transform: translateX(80%);
z-index: 1;
}
.I_1th .flw_p03{
padding-top: 250px;
position: absolute;
width: 20%;  
left: 50%;
transform: translateX(-215%);
z-index: 1;
}
.I_1th .flw_p04{
padding-top: 210px;
position: absolute;
width: 35%; 
left: 45%;
transform: translateX(70%);
z-index: 1;
}

}



/*MV　スライド*/
.slider-fade {
position: absolute;
top: 50%;
left: 50%;
width: 74.8%;
height: 74.8%;
transform: translate(-50%, -50%);
}

.slider-fade img {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
opacity: 0;
transition: opacity 1s ease-in-out;
border-radius: 50%;
z-index: 0;
}

.slider-fade img.active {
opacity: 1;
z-index: 1;
}







/*背景ロゴタイプ*/
.bg-deco {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
pointer-events: none;
z-index: 0;
}

.bg-float {
position: absolute;
transition: transform 8s ease-in-out;
will-change: transform;
}


/* 初期位置 */
.bg-float.type1 { top: 5%; left: 20%; }
.bg-float.type2 { top: 5%; left: 60%; }
.bg-float.type3 { top: 5%; left: 75%; }

.bg-float.type4 { top: 45%; left: 10%; }
.bg-float.type5 { top: 45%; left: 85%; }

.bg-float.type6 { top: 65%; left: -5%; }
.bg-float.type7 { top: 80%; left: 20%; }
.bg-float.type8 { top: 60%; left: 55%; }
.bg-float.type9 { top: 85%; left: 90%; }

/* ふわっと揺れるアニメーション */
@keyframes gentleWiggle {
0% {
transform: translate(0, 0) rotate(0deg) scale(1);
}
50% {
transform: translate(6px, -4px) rotate(1.2deg) scale(1.03);
}
100% {
transform: translate(-4px, 5px) rotate(-1.2deg) scale(1);
}
}

@media screen and (max-width: 767px) {
.bg-float {
width: 23%;
height: auto;
}
/* 初期位置 */
.bg-float.type1 { top: 15%; left: 20%; }
.bg-float.type2 { top: 15%; left: 50%; }
.bg-float.type3 { top: 15%; left: 75%; }

.bg-float.type4 { top: 28%; left: 5%; }
.bg-float.type5 { top: 28%; left: 82%; }

.bg-float.type6 { top: 50%; left: -5%; }
.bg-float.type7 { top: 60%; left: 8%; }
.bg-float.type8 { top: 55%; left: 70%; }
.bg-float.type9 { top: 75%; left: 80%; }
}




.delay-font, .delay-slider1, .delay-slider2, .delay-slider3, .delay-slider4,
.rotate-delay1, .rotate-delay2, .rotate-delay3, .rotate-delay4 {
opacity: 0;
transform: translateY(20px);
transition: all 1s ease;
}
.show {
opacity: 1;
transform: translateY(0);
}



/*サムネイル画像ループ*/
.circle-slider {
overflow: hidden;
position: relative;
width: 100%;
height: 700px;
}
.circle-track {
display: flex;
width: 240vw; /* 120vw × 2セット分 */
animation: slide-left 40s linear infinite;
position: relative;
}
.circle-group {
position: relative;
width: 120vw; /* ブラウザ幅より広いエリアに配置 */
height: 100%;
}
.circle {
position: absolute;
border-radius: 50%;
object-fit: cover;
}

/* サイズ指定 */
.size1 {
width: 260px;
height: auto;
}
.size2 {
width: 280px;
height: auto;
}
.size3 {
width: 200px;
height: auto;
}
.size4 {
width: 230px;
height: auto;
}
.size5 {
width: 210px;
height: auto;
}

/* 個別配置 */
.pos1 { top: 120px; left: 10%; }
.pos2 { top: 50px; left: 80%; }
.pos3 { top: 450px; left: 25%; }
.pos4 { top: 480px; left: 70%; }
.pos5 { top: 300px; left: 105%; } /* 120vw に収まるよう100%以上でもOK */

/* アニメーション */
@keyframes slide-left {
0% { transform: translateX(0); }
100% { transform: translateX(-50%); } /* 1セット分スライド */
}

@media screen and (max-width: 767px) {
.circle-slider {
height: 450px;
}
.circle-track {
width: 240%;
animation: slide-left 25s linear infinite;
}
.circle-group {
width: 120%;
}
/* サイズ指定 */
.size1 {
width: 26%;
}
.size2 {
width: 28%;
}
.size3 {
width: 20%;
}
.size4 {
width: 23%;
}
.size5 {
width: 21%;
}
/* 個別配置 */
.pos1 { top: 60px; left: 10%; }
.pos2 { top: 25px; left: 70%; }
.pos3 { top: 320px; left: 18%; }
.pos4 { top: 300px; left: 70%; }
.pos5 { top: 150px; left: 105%; }

}


/*松山市街並みイラスト*/
.cityscape {
	width: 100vw;
	position: relative;
	background-image: url('../parts/bg_city3.webp');
	background-repeat: no-repeat;
	background-position: center bottom;
	background-size: cover;
	z-index: -2;
}
@media screen and (max-width: 1500px) {
.cityscape {
background-image: url('../parts/bg_city.svg');
}
}
.cityscape figure {
max-width: 1500px;
margin-left: auto;
margin-right: auto;
position: relative;
z-index: 1;
}
.cityscape figure img {
width: 100%;
height: auto;
display: block;
}
.cityscape .bg-curve {
width: 100%;
height: auto;
display: block;
position: absolute;
bottom: 0;
left: 0;
z-index: 0;
}




/*トップ　NEWS*/
.I_2th {
padding-top: 60px;
padding-bottom: 60px;
position: relative;
}
.I_2th.ev_archive {
padding-top: 0px;
padding-bottom: 60px;
}
.I_2th.ev_detail {
padding-top: 150px;
padding-bottom: 60px;
}
@media screen and (max-width: 767px) {
.I_2th {
padding-top: 30px;
padding-bottom: 50px;
}
}

/*オプション*/
.Event_opt1 {
padding-top: 0px;
padding-bottom: 0px;
}
.Event_opt1 ul.in_desc {
display: grid;
gap: 40px;
grid-template-columns: 1fr 1fr;
margin-bottom: 60px;
}
.Event_opt1 figure {
margin-left: auto;
margin-right: auto;
margin-bottom: 10px;
position: relative;
border: 1px solid #505050;
border-bottom-right-radius: 40px;
border-top-right-radius: 40px;
border-top-left-radius: 40px;
}
.Event_opt1 figure img {
display: block;
border-bottom-right-radius: 40px;
border-top-right-radius: 40px;
border-top-left-radius: 40px;
}

.Event_opt1 figure {
width: 100%;
aspect-ratio: 500 / 320; /* 横：縦の比率 */
overflow: hidden; /* はみ出た部分を非表示 */
display: flex;
justify-content: center;
align-items: center;
}
.Event_opt1 figure img {
width: 100%;
height: 100%;
object-fit: cover; /* 画像をトリミング */
}


.Event_opt1 ul.in_desc li.item {
position: relative;
transition: all 0.3s;
}

.Event_opt1 ul.in_desc li.item p.update{
	padding-top: 0px;
	padding-right: 0px;
	padding-left: 0px;
	padding-bottom: 0px;
	color: #FFFFFF;
	font-size: 15px;
	margin-bottom: 0px;
	background-color: #F48D98;
	width: 60px;
	height: 60px;
	line-height: 60px;
	text-align: center;
	border-bottom-right-radius: 40px;
	border-top-right-radius: 40px;
	border-top-left-radius: 40px;
	position: absolute;
	top: -25px;
	display: inline-block;
	z-index: 3;
	right: -15px;
	font-weight: bold;
}

.Event_opt1 ul.in_desc li.item h3 {
font-size: 15px;
font-weight: 400;
margin-bottom: 10px;
line-height: 1.8em;
border-bottom: 1px solid rgba(80,80,80,0.50);
padding-bottom: 10px;
}
.Event_opt1 ul.in_desc li.item p {
line-height: 1.8em;
}
.Event_opt1 ul.in_desc li.item .link {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 2;
}
.Event_opt1 ul.in_desc li.item:hover{
opacity: 0.65;
z-index: 0;
}
@media screen and (max-width: 820px) {
.Event_opt1 ul.in_desc {
gap: 20px;
}
}

@media screen and (max-width: 767px) {
.Event_opt1 {
margin-top: 30px;
}
.Event_opt1 ul.in_desc {
gap: 20px;
margin-bottom: 30px;
}
.Event_opt1 figure {
border-bottom-right-radius: 20px;
border-top-right-radius: 20px;
border-top-left-radius: 20px;
}
.Event_opt1 figure img {
border-bottom-right-radius: 20px;
border-top-right-radius: 20px;
border-top-left-radius: 20px;
}
.Event_opt1 ul.in_desc li.item p.update{
font-size: 12px;
width: 45px;
height: 45px;
line-height: 45px;
text-align: center;
border-bottom-right-radius: 40px;
border-top-right-radius: 40px;
border-top-left-radius: 40px;
position: absolute;
top: -25px;
display: inline-block;
z-index: 3;
right: -15px;
}
.Event_opt1 ul.in_desc li.item h3 {
font-size: 3.3vw;
}
.Event_opt1 ul.in_desc li.item p {
font-size: 3vw;
}
}


/*カテゴリー　NEWS*/
.cat_T {
display: flex;
flex-wrap: wrap;
gap: 5px;
align-content: flex-start; /* これが重要 */
align-items: flex-start;    /* 念のため追加 */
margin-bottom: 10px;
}

.cat_T span,.cat_T span a {
color: #FFFFFF;
background-color: #354E6F;
padding-left: 15px;
padding-right: 15px;
font-size: 12px;
text-decoration: none;
display: inline-block;
line-height: 2em;
}

@media screen and (max-width: 767px) {
.cat_T span a {
font-size: 2.5vw;
}
}


/*ピックアップ*/
.I_3th {
padding-top: 80px;
padding-bottom: 80px;
position: relative;
background-color: #FFFFE4;
}
.I_3th p.guide {
text-align: center;
line-height: 2em;
margin-bottom: 30px;
}
@media screen and (max-width: 767px) {
.I_3th {
padding-top: 40px;
padding-bottom: 40px;
}
.I_3th p.guide {
font-size: 3.3vw;
display: none;
}
}

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

  .pickup-list .item:nth-child(-n+3) {
    display: block;
  }
}



/*コンテンツ*/
.I_4th {
padding-top: 80px;
padding-bottom: 80px;
position: relative;
z-index: 0;
}
@media screen and (max-width: 767px) {
.I_4th {
padding-top: 40px;
padding-bottom: 40px;
}
}

/*オプション*/
.I_4th_opt1 {
padding: 15px;
border: 1px solid #505050;
box-sizing: border-box;
}
.I_4th_opt1 .in_line {
padding: 30px;
border: 1px solid #CCCCCC;
box-sizing: border-box;
}
.I_4th_opt1 ul.in_desc {
display: grid;
gap: 30px;
grid-template-columns: 1fr 1fr 1fr 1fr;
margin-bottom: 0px;
}
.I_4th_opt1 figure {
width: 100%;
margin-left: auto;
margin-right: auto;
}
.I_4th_opt1 figure img {
width: 100%;
height: auto;
display: block;
box-shadow: 0 3px 10px rgba(0,0,0,0.15);
border-bottom-right-radius: 40px;
border-top-right-radius: 40px;
border-top-left-radius: 40px;
}
.I_4th_opt1 ul.in_desc li.item {
position: relative;
}
.I_4th_opt1 ul.in_desc li.item h3 {
font-size: 14px;
font-weight: 600;
margin-bottom: 10px;
margin-top: 20px;
line-height: 1.6em;
display: flex;
align-items: center;
}
.I_4th_opt1 ul.in_desc li.item h3 span {
font-family: "noto-sans-cjk-jp", sans-serif;
font-weight: 700;
font-optical-sizing: auto;
font-size: 25px;
text-shadow: 1px 1px 0 #333333,
-1px 1px 0 #333333,
-1px -1px 0 #333333,
1px -1px 0 #333333;
z-index: -1;
color: #FFFFFF;
margin-right: 10px;
padding-right: 10px;
border-right: 1px solid #444444;
line-height: 1.0em;
letter-spacing: 0.1em;
}
.I_4th_opt1 ul.in_desc li.item .link {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 2;
}
/*.I_4th_opt1 ul.in_desc li.item:hover{
background-color: rgba(204,204,204,0.10);
z-index: 0;
}*/
.I_4th_opt1 ul.in_desc li.item p.update{
	padding-top: 0px;
	padding-right: 0px;
	padding-left: 0px;
	padding-bottom: 0px;
	color: #FFFFFF;
	font-size: 15px;
	margin-bottom: 0px;
	background-color: #F48D98;
	width: 60px;
	height: 60px;
	line-height: 60px;
	text-align: center;
	border-bottom-right-radius: 40px;
	border-top-right-radius: 40px;
	border-top-left-radius: 40px;
	position: absolute;
	top: -25px;
	display: inline-block;
	z-index: 3;
	right: -15px;
	font-weight: bold;
}

@media screen and (max-width: 820px) {
.I_4th_opt1 ul.in_desc {
gap: 20px;
}
}
@media screen and (max-width: 767px) {
.I_4th_opt1 {
padding: 5px;
}
.I_4th_opt1 .in_line {
padding: 10px;
}
.I_4th_opt1 ul.in_desc {
gap: 20px;
grid-template-columns: 1fr 1fr;
margin-bottom: 0px;
}
.I_4th_opt1 ul.in_desc li.item h3 {
font-size: 3.0vw;
}
.I_4th_opt1 ul.in_desc li.item p {
font-size: 3vw;
}
}


/*インタビュー*/
.I_5th {
padding-top: 80px;
padding-bottom: 60px;
position: relative;
background-color: #FAF2EB;
}
@media screen and (max-width: 767px) {
.I_5th {
padding-top: 40px;
padding-bottom: 30px;
}

}



/*プロモーション*/
.I_6th {
padding-top: 80px;
padding-bottom: 80px;
position: relative;
z-index: 0;
}
@media screen and (max-width: 767px) {
.I_6th {
padding-top: 40px;
padding-bottom: 40px;
}
}

/*オプション*/
.I_6th_opt1 {
padding-top: 0px;
padding-bottom: 0px;
}

.I_6th_opt1 ul.in_desc {
display: grid;
gap: 40px;
grid-template-columns: 1fr 1fr;
margin-bottom: 100px;
}
.I_6th_opt1 ul.in_desc li.item {
position: relative;
}
.I_6th_opt1 ul.in_desc li.item h3 {
font-size: 18px;
font-weight: 600;
margin-bottom: 10px;
margin-top: 20px;
line-height: 1.6em;
display: flex;
align-items: center;
}
.I_6th_opt1 ul.in_desc li.item h3 span {
font-family: "noto-sans-cjk-jp", sans-serif;
font-weight: 700;
font-optical-sizing: auto;
font-size: 25px;
text-shadow: 1px 1px 0 #333333,
-1px 1px 0 #333333,
-1px -1px 0 #333333,
1px -1px 0 #333333;
z-index: -1;
color: #FFFFFF;
margin-right: 10px;
padding-right: 10px;
border-right: 1px solid #444444;
line-height: 1.0em;
letter-spacing: 0.1em;
}
.I_6th_opt1 ul.in_desc li.item p.update{
	padding-top: 0px;
	padding-right: 0px;
	padding-left: 0px;
	padding-bottom: 0px;
	color: #FFFFFF;
	font-size: 15px;
	margin-bottom: 0px;
	background-color: #F48D98;
	width: 60px;
	height: 60px;
	line-height: 60px;
	text-align: center;
	border-bottom-right-radius: 40px;
	border-top-right-radius: 40px;
	border-top-left-radius: 40px;
	position: absolute;
	top: -25px;
	display: inline-block;
	z-index: 3;
	right: -15px;
	font-weight: bold;
}

@media screen and (max-width: 767px) {
.I_6th_opt1 {
padding-top: 0px;
padding-bottom: 0px;
}
.I_6th_opt1 ul.in_desc {
gap: 40px;
grid-template-columns: 1fr;
margin-bottom: 50px;
}
.I_6th_opt1 ul.in_desc li.item h3 {
font-size: 3.6vw;
}
.I_6th_opt1 ul.in_desc li.item p {
font-size: 3vw;
}
.I_6th_opt1 ul.in_desc li.item p.update{
font-size: 12px;
width: 45px;
height: 45px;
line-height: 45px;
text-align: center;
border-bottom-right-radius: 40px;
border-top-right-radius: 40px;
border-top-left-radius: 40px;
position: absolute;
top: -25px;
display: inline-block;
z-index: 3;
right: -15px;
}
}

/*ユーチューブ*/
.youtube {
width: 100%;
padding-top: 56.25%;
position: relative;
top: 0;
left: 0;
}
.youtube iframe {
position: absolute;
top: 0;
left: 0;
width: 100% !important;
height: 100% !important;
border-radius: 40px 40px 40px 0px;
overflow: hidden;
}




/*コンタクト*/
.I_7th {
padding-top: 80px;
padding-bottom: 80px;
position: relative;
background-color: #e9f5b2;
z-index: 0;
}
@media screen and (max-width: 767px) {
.I_7th {
padding-top: 40px;
padding-bottom: 40px;
}
}

/*オプション*/
.I_7th_opt1 {
padding-top: 0px;
padding-bottom: 0px;
}

.I_7th_opt1 ul.in_desc {
display: grid;
gap: 50px;
grid-template-columns: 1fr 1fr;
margin-bottom: 0px;
}
.I_7th_opt1 figure {
width: 100%;
margin-left: auto;
margin-right: auto;
margin-bottom: 15px;
}
.I_7th_opt1 figure img {
width: 100%;
height: auto;
display: block;
}
.I_7th_opt1 .item.area1 figure img {
	border-top-left-radius: 40px;
	border-top-right-radius: 40px;
	border-bottom-right-radius: 40px;
}
.I_7th_opt1 .item.area2 figure {
margin-bottom: 25px;
}
.I_7th_opt1 ul.in_desc li.item.area1 {
position: relative;
display: grid;
gap: 40px;
grid-template-columns: 1fr;
}
.I_7th_opt1 ul.in_desc li.item .suisin {
border-top: 1px solid #505050;
border-bottom: 1px solid #505050;
padding-top: 20px;
padding-bottom: 20px;
text-align: center;
}
.I_7th_opt1 ul.in_desc li.item .suisin p.department {
font-size: 16px;
line-height: 1.6em;
margin-bottom: 10px;
font-weight: bold;
}
.I_7th_opt1 ul.in_desc li.item .suisin p.add {
font-size: 12px;
}
.I_7th_opt1 ul.in_desc li.item h3 {
font-size: 30px;
font-weight: bold;
margin-bottom: 5px;
color: #324E71;
}
.I_7th_opt1 ul.in_desc li.item .suisin2 {
position: relative;
}
.I_7th_opt1 ul.in_desc li.item .suisin2 .support{
	position: absolute;
	top: -30px;
	right: -30px;
	width: 85px;
	height: 85px;
	-moz-border-radius: 50%;
	-webkit-border-radius: 50%;
	border-radius: 40px 40px 40px 0px;
	font-size: 13px;
	color: #324E71;
	background-color: #FFE73E;
	text-align: center;
	line-height: 1.2em;
	font-weight: 600;
}
.I_7th_opt1 ul.in_desc li.item .suisin2 .support p {
position: relative;
top: 50%;
transform: translateY(-50%);
}

.I_7th_opt1 ul.in_desc li.item .suisin2 .support2 {
	position: absolute;
	top: -30px;
	right: -30px;
	width: 90px;
}
@media screen and (max-width: 767px) {
.I_7th_opt1 {

}
.I_7th_opt1 ul.in_desc {
gap: 20px;
grid-template-columns: 1fr;
margin-bottom: 0px;
}
.I_7th_opt1 ul.in_desc li.item.area1 .suisin {
grid-row: 2 / 3;
grid-column: 1 / 2;
}
.I_7th_opt1 ul.in_desc li.item h3 {
font-size: 6.8vw;
}
.I_7th_opt1 ul.in_desc li.item p {
font-size: 3vw;
}
.I_7th_opt1 .item.area2 figure {
margin-bottom: 15px;
}
.I_7th_opt1 ul.in_desc li.item .suisin2 .support{
top: -50px;
right: -20px;
width: 90px;
height: 90px;
font-size: 12px;
}
.I_7th_opt1 ul.in_desc li.item .suisin2 .support2 {
	top: -40px;
	right: -20px;
	width: 23%;
}
}




/* フッター */
footer{
padding-top: 30px;
padding-bottom: 0px;
margin: 0;
background-color: #FFFFFF;
}
footer .copyright {
text-align: center;
padding-top: 10px;
background-color: #354E6F;
color: #FFFFFF;
padding-bottom: 130px;
}
@media screen and (max-width: 767px) {
footer{
padding-top: 30px;
padding-bottom: 0px;
}
footer .copyright {
font-size: 3vw;
padding-bottom: 100px;
}
}

.f_nav {
display: grid;
gap: 50px;
grid-template-columns: 1fr 4fr 0.8fr 1.1fr;
padding-bottom: 30px;
}
.f_nav .item {
display: flex;
align-items: center;
}
.f_nav .item figure {
width: 100%;
}
.f_nav .item figure img {
width: 100%;
height: auto;
display: block;
}
@media(max-width: 767px){
.f_nav {
grid-template-columns: 1fr 1fr;
gap: 10px;
padding-bottom: 20px;
}
.f_nav .item {
justify-content: center;
}
.f_nav .item.area1 figure {
width: 50%;
margin-left: auto;
margin-right: auto;
}
.f_nav .item.area1 {
	grid-row: 1 / 2;
	grid-column: 1 / 3;
	margin-bottom: 10px;
}
.f_nav .item.area2 {
	grid-row: 2 / 3;
	grid-column: 1 / 3;
	margin-bottom: 20px;
}
.f_nav .item.area3 {
grid-row: 3 / 4;
grid-column: 1 / 2;
}
.f_nav .item.area4 {
grid-row: 3 / 4;
grid-column: 2 / 3;
}
.f_nav .item.area3 figure {
width: 50%;
margin-left: auto;
margin-right: auto;
}
.f_nav .item.area4 figure {
width: 80%;
margin-left: auto;
margin-right: auto;
}
}


/*その他*/
ul.others {
display: flex;
gap: 0px;
flex-wrap: wrap;
}
ul.others li.item p {
padding-left: 20px;
padding-right: 20px;
border-right: 1px solid #505050;
}
ul.others li.item:last-child p {
border-right: 0px solid #505050;
}
ul.others li.item a {
color: #F48D98;
}
@media screen and (max-width: 767px) {
ul.others li.item p {
font-size: 3vw;
}
}




/*固定フッター*/
.G_navi {
width: 100%;
position: fixed;
bottom: 0;
left: 0;
z-index: 4;
background-color: #fff;
border-top: 1px solid #CCCCCC;
padding: 15px 0;
}
.fixnav {
display: grid;
grid-template-columns: 4.5fr 3fr;
gap: 20px;
}

/* 上段ナビゲーション */
ul.n_above {
display: grid;
gap: 15px;
grid-template-columns: 1fr 1fr 1fr 1fr 1fr;
border-right: 1px solid #CCCCCC;
padding-right: 20px;
}
ul.n_below {
display: grid;
gap: 15px;
grid-template-columns: 1fr 1fr 1fr;
}
ul.n_above li.item img,
ul.n_below li.item img {
width: 100%;
height: auto;
display: block;
}

/* スマホ用レスポンシブ */
@media screen and (max-width: 767px) {
.G_navi {
	border-top: 0px solid #666666;
	padding: 10px;
	box-sizing: border-box;
}
.fixnav {
grid-template-columns: 1fr;
}
ul.n_below {
gap: 5px;
}
}


.G_navi2 {
	width: 94%;
	padding: 15px 0;
	margin-left: auto;
	margin-right: auto;
}
@media screen and (max-width: 767px) {
.G_navi2 {
	display: none;
}
}




/*PAGE TOP（上へ）*/
#page-top {
  position: fixed;
  right: 30px;
  bottom: 40px;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s, transform 0.3s;
  transform: translateY(50px);
  z-index: 100;
}

#page-top.show {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

#page-top a {
  display: flex;
  justify-content: center;
  align-items: center;
  background: #354E6F;
  border-radius: 50%;
  width: 50px;
  height: 50px;
  color: #fff;
  text-decoration: none;
}

#page-top span {
  width: 12px;
  height: 12px;
  border-top: 1px solid #fff;
  border-left: 1px solid #fff;
  transform: rotate(45deg);
  display: inline-block;
  margin-top: 8px;
}

@media screen and (max-width: 767px) {
  #page-top {
	right: 5%;
	bottom: 15%;
	display: none;
  }
}



/*reCAPTCHA　ロゴの場所を変更*/
.grecaptcha-badge {
bottom: 0px !important;
}

