body {
	font-family: "Noto Sans JP", sans-serif;
}

.wrapper {
	overflow: hidden;
}

.u-desktop {
	display: block;
}

.u-mobile {
	display: none;
}

/* リキッドレイアウト対応 */

*,
*::before,
*::after {
	box-sizing: border-box;
}

/* Remove default padding */

ul,
ol {
	padding: 0;
}

/* Remove default margin */

body,
h1,
h2,
h3,
h4,
p,
ul,
ol,
figure,
blockquote,
dl,
dd {
	margin: 0;
}

/* Set core root defaults */

html {
	scroll-behavior: smooth;
}

/* Set core body defaults */

body {
	line-height: 1.5;
	min-height: 100vh;
	text-rendering: optimizeLegibility;
}

/* Remove list styles on ul, ol elements with a class attribute */

ul,
ol {
	list-style: none;
}

/* A elements that don't have a class get default styles */

a:not([class]) {
	-webkit-text-decoration-skip: ink;
	text-decoration-skip-ink: auto;
}

/* Make images easier to work with */

img {
	display: block;
	max-width: 100%;
	width: 100%;
}

/* Natural flow and rhythm in articles by default */

article > * + * {
	margin-top: 1em;
}

/* Inherit fonts for inputs and buttons */

input,
button,
textarea,
select {
	font: inherit;
}

/* Blur images when they have no alt attribute */

img:not([alt]) {
	filter: blur(10px);
}

/* フォームリセット */

input,
button,
select,
textarea {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	background: transparent;
	border: none;
	border-radius: 0;
	font: inherit;
	outline: none;
}

textarea {
	resize: vertical;
}

input[type=checkbox],
input[type=radio] {
	display: none;
}

input[type=submit],
input[type=button],
label,
button,
select {
	cursor: pointer;
}

select::-ms-expand {
	display: none;
}

/* ホバー */

a {
	-webkit-text-decoration: none;
	color: inherit;
	text-decoration: none;
	transition: opacity 0.3s;
}

.access {
	background: #C9E9F5;
	padding: 20vw 0 17vw;
	position: relative;
}

.access-bg {
	height: auto;
	left: 50%;
	position: absolute;
	top: -2.6vw;
	transform: translateX(-50%);
	width: 100%;
}

.access__top {
	left: 0;
	position: absolute;
	top: -14vw;
	width: 100%;
}

.access__top-wrapper {
	position: relative;
}

.access__top1 {
	left: 0;
	position: absolute;
	top: 0;
	width: 50%;
}

.anime-r_01 {
	position: absolute;
	right: -21%;
	top: -13%;
	width: 41%;
}

.access__top2 {
	position: absolute;
	right: 15.5%;
	top: 0;
	width: 44%;
}

.access02 {
	margin-top: 3.8vw;
}

.anime-q_01 {
	position: absolute;
	right: 4%;
	top: -3%;
	width: 28%;
}

.access__top3 {
	position: absolute;
	right: -10%;
	top: 0;
	width: 32%;
}

.access03 {
	margin-top: 19.5vw;
}

.access__items {
	grid-gap: 2vw 2vw;
	display: grid;
	gap: 2vw 2vw;
	grid-template-columns: repeat(2, 1fr);
	margin: 0 auto;
	width: 69%;
}

.access__item {
	background: #fff;
	border-radius: 2vw;
	position: relative;
}

.access__item1 {
	grid-area: 1/1/2/2;
	padding: 2.5vw 3vw 1.5vw;
}

.access01-2 {
	height: auto;
	left: -1%;
	position: absolute;
	top: -15%;
	width: 32%;
}

.access__item2 {
	grid-area: 1/2/2/3;
	padding: 2vw 4vw 2vw 3.5vw;
}

.access02-1 {
	margin-left: 2%;
}

.access__item2 > div {
	grid-gap: 0 4%;
	align-items: center;
	display: grid;
	gap: 0 4%;
	grid-template-columns: 47% 49%;
	margin-top: 1vw;
}

.access__item3 {
	grid-gap: 0 3%;
	display: grid;
	gap: 0 3%;
	grid-area: 2/1/3/3;
	grid-template-columns: 36% 61%;
	padding: 2vw 2vw 2.5vw 4vw;
}

.access__item3 > div {
	position: relative;
}

.access03-1 {
	margin-left: 6%;
	margin-top: 1vw;
	width: 94%;
}

.access03-2 {
	margin-top: 1.3vw;
}

.access03-3 {
	height: auto;
	position: absolute;
	right: -17%;
	top: -19%;
	width: 55%;
}

.access-deco-cgu3 {
	bottom: 4vw;
	position: absolute;
	right: 4vw;
	width: 15%;
}

.access-deco06 {
	bottom: 33vw;
	position: absolute;
	right: 0vw;
	width: 11.5%;
	z-index: 1;
}

.access-anime-u_01 {
	bottom: 22vw;
	left: 4vw;
	position: absolute;
	width: 13%;
	z-index: 1;
}

.campuslife {
	background: transparent url(../images/common/campuslife-bg.png) no-repeat top center/cover;
	padding: 5.5vw 0 20vw;
	position: relative;
}

.campuslife .inner {
	margin: 0 auto;
	width: 70%;
}

.campuslife h2 {
	margin: 0 auto;
	position: relative;
	width: 64%;
	z-index: 1;
}

.campuslife-anime-j_01 {
	height: auto;
	left: -15vw;
	position: absolute;
	top: -3vw;
	width: 42%;
	z-index: 1;
}

.campuslife-anime-k_01 {
	height: auto;
	position: absolute;
	right: -15vw;
	top: 3vw;
	width: 42%;
	z-index: 1;
}

.campuslife__lead {
	color: #fff;
	font-size: 1.4vw;
	margin-top: 1vw;
	text-align: center;
}

.campuslife__contents {
	grid-gap: 2.5vw 2vw;
	display: grid;
	gap: 2.5vw 2vw;
	grid-template-columns: repeat(2, 1fr);
	position: relative;
}

.campuslife01 {
	background: #E9D8FA;
	border: 3px solid #684587;
	border-radius: 2.1vw;
	grid-area: 1/1/2/3;
	margin-top: 6vw;
}

.campuslife01__head {
	margin: 0 auto;
	margin-top: -4vw;
	width: 72%;
}

.campuslife01_main {
	grid-gap: 1.5vw 3vw;
	display: grid;
	gap: 1.5vw 3vw;
	grid-template-columns: repeat(2, 1fr);
	padding: 1vw 4vw 2.5vw;
}

.campuslife01-1 {
	grid-area: 1/1/2/2;
	position: relative;
}

.campuslife01-2deco {
	height: auto;
	left: -2%;
	position: absolute;
	top: -5%;
	width: 17%;
}

.campuslife01-2anime {
	height: auto;
	position: absolute;
	right: 1%;
	top: -4%;
	width: 16%;
}

.campuslife01-2 {
	grid-area: 1/2/2/3;
	position: relative;
}

.campuslife01-3deco {
	height: auto;
	left: 1%;
	position: absolute;
	top: -3%;
	width: 24%;
}

.campuslife01-3anime {
	bottom: 8%;
	height: auto;
	position: absolute;
	right: -6%;
	width: 27%;
}

.campuslife01-3 {
	grid-area: 2/1/3/3;
	position: relative;
}

.campuslife01-4deco {
	height: auto;
	left: 11%;
	position: absolute;
	top: -17%;
	width: 20%;
}

.campuslife01-4anime {
	height: auto;
	position: absolute;
	right: 18%;
	top: -37%;
	width: 10%;
}

.campuslife02 {
	align-items: center;
	background: #EBFF98;
	border: 3px solid #684587;
	border-radius: 2.1vw;
	display: flex;
	grid-area: 2/1/3/2;
	justify-content: center;
	position: relative;
}

.campuslife02-1 {
	margin: 0 auto;
	width: 70%;
}

.campuslife02-2 {
	height: auto;
	left: 0;
	position: absolute;
	top: -9%;
	width: 32%;
}

.campuslife03 {
	background: #C9E9F5;
	border: 3px solid #684587;
	border-radius: 2.1vw;
	grid-area: 2/2/3/3;
	padding: 1.6vw 4.5vw 1vw 3.5vw;
	position: relative;
}

.campuslife03-1 {
	margin: 0 auto;
	width: 59%;
}

.campuslife03 > div {
	grid-gap: 0 0.5vw;
	align-items: baseline;
	display: grid;
	gap: 0 0.5vw;
	grid-template-columns: 29% 69%;
	margin-top: 0.5vw;
}

.campuslife03 p {
	font-size: 0.8vw;
	font-weight: 500;
	margin-top: 0.8vw;
	text-align: right;
}

.campuslife03-3 {
	height: auto;
	position: absolute;
	right: -9%;
	top: 17%;
	width: 35%;
}

.campuslife04 {
	grid-gap: 0 7%;
	background: #fff;
	border: 3px solid #684587;
	border-radius: 2.1vw;
	display: grid;
	gap: 0 7%;
	grid-area: 3/1/4/3;
	grid-template-columns: 34% 59%;
	padding: 0.6vw 4vw 2vw 6vw;
}

.campuslife04-1 {
	margin-top: 1vw;
}

.campuslife04-2 {
	margin-top: 2.5vw;
	width: 62%;
}

.campuslife04 p {
	font-size: 1.11vw;
	font-weight: 500;
	line-height: 1.75;
	margin-top: 0.5vw;
}

.campuslife-deco05 {
	bottom: 13vw;
	height: auto;
	position: absolute;
	right: -11vw;
	width: 21%;
}

.campuslife-anime-ag_01 {
	height: auto;
	left: -1vw;
	position: absolute;
	top: 14vw;
	width: 16%;
}

.campuslife-anime-b_01 {
	height: auto;
	position: absolute;
	right: 3.5vw;
	top: 0;
	width: 7%;
}

.campuslife-anime-d_01 {
	height: auto;
	left: -5vw;
	position: absolute;
	top: 24vw;
	width: 20.5%;
}

.campuslife-anime-d_01a {
	display: none;
}

.campuslife-anime-d_01b {
	display: none;
}

.campuslife-deco-cgu2 {
	bottom: 12vw;
	height: auto;
	position: absolute;
	right: -2vw;
	width: 40%;
}

.carrier {
	background: transparent url(../images/common/carrier-bg.png) no-repeat top center/cover;
	margin-top: -11vw;
	padding: 15.5vw 0 5.7vw;
	position: relative;
}

.carrier .inner {
	grid-gap: 3vw 2vw;
	display: grid;
	gap: 3vw 2vw;
	grid-template-columns: repeat(2, 1fr);
	margin: 0 auto;
	width: 69%;
}

.carrier1 {
	grid-gap: 0 4%;
	display: grid;
	gap: 0 4%;
	grid-area: 1/1/2/3;
	grid-template-columns: 46% 50%;
}

.carrier1-r {
	position: relative;
}

.carrier01-2 {
	height: auto;
	position: absolute;
	right: -9%;
	top: -16.7%;
	width: 58%;
}

.anime-v_02 {
	height: auto;
	left: 6%;
	position: absolute;
	top: -10%;
	width: 28%;
}

.carrier1-l h2 {
	width: 87%;
}

.carrier01-3 {
	margin-top: 1.3vw;
	width: 94%;
}

.carrier01-4 {
	margin-top: 1.8vw;
	width: 99%;
}

.carrier2 {
	background: #E9D8FA;
	border-radius: 2vw;
	grid-area: 2/1/3/2;
	padding: 2.7vw 3.2vw 1.6vw 3.2vw;
}

.carrier02-1 {
	margin-left: 0.2vw;
	width: 96%;
}

.carrier02-2 {
	margin-top: 1.3vw;
	width: 96%;
}

.carrier2 a {
	display: block;
	margin: 1vw auto 0;
	width: 77%;
}

.carrier3 {
	grid-gap: 0 6%;
	align-items: center;
	background: #EDFFA5;
	border-radius: 2vw;
	display: grid;
	gap: 0 6%;
	grid-area: 2/2/3/3;
	grid-template-columns: 44% 50%;
	padding: 0 2.6vw;
	position: relative;
}

.carrier03-2 {
	margin-top: 1vw;
}

.carrier03-4 {
	position: absolute;
	right: 3%;
	top: -1.5vw;
	width: 37%;
}

.carrier-deco-cgu4 {
	height: auto;
	left: -1.2vw;
	position: absolute;
	top: 10vw;
	width: 11.7%;
}

.carrier-deco-cgu2 {
	height: auto;
	position: absolute;
	right: -8.2vw;
	top: 6vw;
	width: 49%;
	z-index: -1;
}

.carrier-anime-w_01 {
	bottom: 11.5vw;
	height: auto;
	left: -8vw;
	position: absolute;
	width: 27%;
	z-index: -1;
}

.carrier-anime-w-sp_01a {
	display: none;
}

.carrier-anime-w-sp_01b {
	display: none;
}

.carrier-anime-ag_01 {
	height: auto;
	position: absolute;
	right: -2vw;
	top: 21vw;
	width: 17%;
}

.carrier-anime-b_01 {
	bottom: 6vw;
	height: auto;
	position: absolute;
	right: 0vw;
	width: 7%;
}

.cgu-loop {
	background: #0029B4;
	display: flex;
	overflow: hidden;
	padding: 1vw 0;
	position: relative;
	z-index: 1;
}

.cgu-loop ul {
	animation: loop-list4 15s linear infinite;
	display: flex;
	width: -moz-max-content;
	width: max-content;
}

.cgu-loop li {
	margin-right: 1vw;
	width: 100vw;
}

.cgu-loop ul li img {
	display: block;
	width: 100%;
}

.cta {
	background: transparent url(../images/common/cta-bg.jpg) no-repeat top center/cover;
	padding: 2.8vw 0 3vw;
	position: relative;
	z-index: 1;
}

.cta .inner {
	grid-gap: 0 0;
	align-items: center;
	display: grid;
	gap: 0 0;
	grid-template-columns: 48% 51%;
	margin: 0 auto;
	padding-left: 1%;
	width: 74%;
}

.dammy {
	padding: 150vw 0;
}

.date {
	background: transparent url(../images/common/date-bg.png) no-repeat top center/cover;
	margin-top: -7vw;
	padding: 9.7vw 0 5.5vw;
	position: relative;
}

.date .inner {
	margin: 0 auto;
	width: 69vw;
}

.date h2 {
	margin: 0 auto;
	position: relative;
	width: 93%;
}

.date-head02 {
	bottom: 3.9vw;
	height: auto;
	position: absolute;
	right: -10.5%;
	width: 25%;
}

.date ul {
	grid-gap: 1vw 2vw;
	display: grid;
	gap: 1vw 2vw;
	grid-template-columns: repeat(2, 1fr);
	grid-template-rows: auto;
	margin-top: 2.2vw;
	position: relative;
}

.date ul li {
	align-items: center;
	background: #fff;
	border-radius: 2vw;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 2.3vw 2.6vw 2.3vw;
	position: relative;
}

.date ul li p {
	font-size: 1.12vw;
	font-weight: 800;
	margin-top: 0.5vw;
	text-align: center;
}

.date ul li > div {
	width: 100%;
}

.date ul li img {
	margin: 0 auto;
}

.date ul li:nth-of-type(1) div:nth-of-type(1) img {
	margin-top: -1vw;
	width: 50%;
}

.date ul li:nth-of-type(1) div:nth-of-type(2) img {
	margin-top: 1vw;
	width: 58%;
}

.date ul li:nth-of-type(2) div:nth-of-type(1) img {
	width: 54%;
}

.date ul li:nth-of-type(2) div:nth-of-type(2) img {
	margin-top: 0.5vw;
	width: 65%;
}

.date ul li:nth-of-type(2) div:nth-of-type(3) img {
	position: absolute;
	right: -4%;
	top: 24%;
	width: 30%;
}

.date ul li:nth-of-type(3) div:nth-of-type(1) img {
	width: 54%;
}

.date ul li:nth-of-type(3) div:nth-of-type(2) img {
	width: 65%;
}

.date ul li:nth-of-type(3) div:nth-of-type(3) img {
	left: -8%;
	position: absolute;
	top: 18%;
	width: 31%;
}

.date ul li:nth-of-type(4) div:nth-of-type(1) img {
	margin-top: -1vw;
	width: 40%;
}

.date ul li:nth-of-type(4) div:nth-of-type(2) img {
	width: 63%;
}

.date ul li:nth-of-type(5) div:nth-of-type(1) img {
	width: 100%;
}

.date ul li:nth-of-type(5) div:nth-of-type(2) img {
	margin-top: 1vw;
	width: 80%;
}

.date ul li:nth-of-type(6) div:nth-of-type(1) img {
	width: 50%;
}

.date ul li:nth-of-type(6) div:nth-of-type(2) img {
	position: absolute;
	right: -4%;
	top: 15%;
	width: 36%;
}

.date-deco01 {
	height: auto;
	left: 0vw;
	position: absolute;
	top: 11vw;
	width: 18%;
}

.date-deco02 {
	height: auto;
	left: -12vw;
	position: absolute;
	top: 4.3vw;
	width: 21%;
}

.date-deco03 {
	bottom: 14.5vw;
	height: auto;
	position: absolute;
	right: -12.5vw;
	width: 21%;
	z-index: 1;
}

.date-anime-a_01 {
	height: auto;
	position: absolute;
	right: -7vw;
	top: 8vw;
	width: 22%;
}

.date-anime-b_01 {
	bottom: 5vw;
	height: auto;
	left: 7vw;
	position: absolute;
	width: 5.2%;
}

/* ===== SP固定ボタン（画像版） ===== */

.sp-fixed-cta {
	display: none;
}

/* メニューを開いたら隠す（任意。不要なら削除OK） */

.footer__wrapper {
	background: #F8F2FF;
	padding: 4vw 0 4vw;
}

.footer .inner {
	grid-gap: 0 7%;
	align-items: flex-end;
	display: grid;
	gap: 0 7%;
	grid-template-columns: 31% 63%;
	margin: 0 auto;
	width: 69%;
}

.footer-logo {
	width: 89%;
}

.footer p {
	font-size: 1.1vw;
	font-weight: 500;
	line-height: 1.5625;
	margin-top: 2vw;
}

.footer__sns {
	grid-gap: 0 2%;
	align-items: center;
	display: grid;
	gap: 0 2%;
	grid-template-columns: 60% 17% 17%;
	margin-top: 2vw;
}

.footer__copyright {
	background: #fff;
	font-size: 0.83vw;
	font-weight: 500;
	padding: 1.5vw 0;
	text-align: center;
}

.fv {
	position: relative;
	z-index: 1;
}

header {
	grid-gap: 0 0.5vw;
	align-items: center;
	display: grid;
	gap: 0 0.5vw;
	grid-template-columns: 94% 5%;
	left: 0;
	padding: 0 1.5vw;
	position: fixed;
	top: 1vw;
	width: 100%;
	z-index: 11;
}

.header__contents {
	align-items: center;
	background: #684587;
	border-radius: 10vw;
	display: flex;
	justify-content: space-between;
	padding: 0.9vw 2.7vw;
	position: relative;
	width: 100%;
}

.header__contents h1 img {
	width: 15vw;
}

.header__menu {
	align-items: center;
	display: flex;
	margin-right: 1vw;
	margin-top: 0.5vw;
}

.header__menu1 img {
	width: 13.7vw;
}

.header__menu2 img {
	margin-left: 1vw;
	width: 18vw;
}

/*---------- #menu ----------*/

/* ---------- #menu ---------- */

#menu {
	background-color: #fff;
	box-shadow: -5px 3px 6px rgba(0, 0, 0, 0.25);
	height: 100%;
	max-width: 35vw;
	overflow-x: hidden;
	position: fixed;
	right: 0;
	top: 0;
	transform: translate(101vw);
	transition: all 0.5s;
	width: 100vw;
	z-index: 10; /* SP時はパネル自体をスクロール可能に */
}

#menu.open {
	transform: translate(0);
}

/* --- 背面スクロール固定（SPのみ） --- */

.menu__main {
	list-style-type: none;
	margin: 0;
	padding: 0;
	padding: 10.1vw 6vw 0;
}

.menu__main li {
	padding: 0.9vw 0.8vw;
	position: relative;
}

.menu__main li::before {
	background: transparent url(../images/common/menu-line.png) no-repeat center bottom/contain;
	bottom: 0;
	content: "";
	height: 1vw;
	left: 50%;
	position: absolute;
	transform: translateX(-50%);
	width: 100%;
	z-index: 1;
}

.menu__main li img {
	margin: 0 auto;
}

.menu__main li:nth-of-type(2) img {
	width: 54%;
}

.menu__main li:nth-of-type(3) img {
	width: 54%;
}

.menu__main li:nth-of-type(4) img {
	width: 61%;
}

.menu__main li:nth-of-type(5) img {
	width: 57%;
}

.menu__main li:nth-of-type(6) img {
	width: 76%;
}

.menu__bottom {
	padding: 3vw 6vw 0;
}

.menu__sns {
	grid-gap: 0 5%;
	align-items: center;
	display: grid;
	gap: 0 5%;
	grid-template-columns: 55% 18% 17%;
	margin: 0 auto;
	width: 84%;
}

.menu__line {
	margin-top: 1vw;
}

/* --- .menu-background --- */

.menu-background {
	background-color: rgba(0, 0, 0, 0.5);
	content: "";
	display: block;
	height: 0;
	left: 0;
	opacity: 0;
	position: fixed;
	top: 0;
	transition: opacity 0.5s;
	width: 0;
	z-index: 2;
}

.menu-background.open {
	height: 100%;
	opacity: 1;
	width: 100%;
}

/* --- ハンバーガー／X切り替え --- */

#menu_btn { /* バーの共通トークン（線の太さ・幅・間隔） */
	--bar-h: max(2px, 0.22vw); /* 線の太さ（デバイスに応じて最小2px） */
	--bar-w: 56%; /* ボタン直径に対するバーの幅 */
	--bar-gap: max(5px, min(0.9vw, 12px)); /* 上下の間隔 */
	--bar-color: #684587;
	align-items: center;
	background: #fff;
	border: 2px solid #684587;
	border-radius: 50%;
	cursor: pointer;
	display: grid;
	height: max(40px, min(6vw, 80px));
	justify-items: center;
	place-items: center;
	position: relative; /* サイズは可変：最小40px、最大64px、通常はビューポートに追従 */
	width: max(40px, min(6vw, 80px));
	z-index: 20;
}

#menu_btn .bar {
	background: var(--bar-color);
	height: var(--bar-h);
	left: 50%;
	position: absolute;
	transform: translateX(-50%); /* 常に水平中央 */
	transition: transform 0.25s ease, opacity 0.2s ease;
	width: var(--bar-w);
}

/* 上中下の位置は「中央±ギャップ」で算出（固定pxを使わない） */

#menu_btn .bar:nth-child(1) {
	top: calc(50% - var(--bar-gap));
}

#menu_btn .bar:nth-child(2) {
	top: 50%;
}

#menu_btn .bar:nth-child(3) {
	top: calc(50% + var(--bar-gap));
}

/* アクティブ＝×印に変形：1本目と3本目を交差、中央は消す */

#menu_btn.active .bar:nth-child(1) {
	top: 50%;
	transform: translateX(-50%) rotate(45deg);
}

#menu_btn.active .bar:nth-child(2) {
	opacity: 0;
}

#menu_btn.active .bar:nth-child(3) {
	top: 50%;
	transform: translateX(-50%) rotate(-45deg);
}

/* ===== Global hover actions for all links (pop & fun) ===== */

/* Base link reset */

a {
	-webkit-text-decoration: none;
	position: relative;
	text-decoration: none;
	transition-duration: 0.25s;
	transition-property: opacity;
	transition-timing-function: ease;
}

a:hover {
	opacity: 0.95;
}

/* Image links: playful pop + slight tilt + lift + soft shadow */

a img {
	display: block;
	transform-origin: center;
	transition-duration: 0.28s;
	transition-property: transform, filter;
	transition-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
	will-change: transform, filter;
}

a:hover img {
	filter: drop-shadow(0 10px 18px rgba(0, 0, 0, 0.12));
	transform: translateY(-6px) scale(1.06);
}

/* Text-only links: slight rise + scale for pop feeling */

a:not(:has(img)) {
	transition-duration: 0.3s;
	transition-property: color, transform, opacity;
	transition-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
}

a:not(:has(img)):hover {
	transform: translateY(-1px) scale(1.02);
}

/* Wiggle keyframes (subtle, single bounce) */

/* Respect reduced motion */

/* ===== Opt-out: SP固定CTAはホバー演出なし ===== */

.sp-fixed-cta a {
	transition-duration: 0s;
	transition-property: none;
	transition-timing-function: ease;
}

.sp-fixed-cta a:hover {
	opacity: 1;
}

.sp-fixed-cta a img {
	transition-duration: 0s;
	transition-property: none;
	transition-timing-function: ease;
}

.sp-fixed-cta a:hover img {
	filter: none;
	transform: none;
}

/* ===== Force-pop on link wrapper to bypass AOS inline transform ===== */

.header__menu a,
.cta .inner a {
	display: inline-block;
	position: relative;
	transition-duration: 0.28s;
	transition-property: transform, opacity;
	transition-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
	will-change: transform;
}

.header__menu a:hover,
.cta .inner a:hover {
	opacity: 0.95;
	transform: translateY(-6px) scale(1.06);
}

/* Keep image shadow nice even when link wrapper moves */

.header__menu a:hover img,
.cta .inner a:hover img {
	filter: drop-shadow(0 10px 18px rgba(0, 0, 0, 0.12));
}

/* 既存の --interview-peek などに加えて矢印サイズを可変に */

:root {
	--interview-peek: 60px;
	--interview-gap: max(16px, min(1.667vw, 28px)); /* 24px@1440 を中心に可変 */
	--interview-nav-size: 44px; /* PCの矢印サイズ */
}

.interview {
	background: linear-gradient(180deg, #fff 0%, #fff 46%, #B471EF 46%, #B471EF 100%);
	padding: 5vw 0 0;
	position: relative;
}

.interview .inner {
	grid-gap: 0 0;
	display: grid;
	gap: 0 0;
	grid-template-columns: 53% 47%;
}

.interview__title {
	padding-left: 15.3vw;
	padding-top: 3.5vw;
	position: relative;
	z-index: 0;
}

.interview__title::before {
	background: transparent url(../images/common/interview-bg.png) no-repeat center center/cover;
	content: "";
	height: 112%;
	left: 61%;
	position: absolute;
	top: 50%;
	transform: translate(-50%, -50%);
	width: 97%;
	z-index: -1;
}

.interview__head {
	margin-left: 7.3vw;
	width: 55%;
}

.interview__main {
	margin-top: 0.5vw;
	width: 97%;
}

.interview__bottom {
	margin-top: 2vw;
	position: relative;
	width: 60%;
}

.interview-anime-i_01 {
	bottom: -7vw;
	height: auto;
	position: absolute;
	right: -13vw;
	width: 78%;
}

.interview .swiper-area {
	position: relative;
	z-index: 10;
}

.interview-cards .swiper {
	height: auto; /* ← 中身の高さに合わせる（下が切れない） */
	overflow: hidden; /* PC：左側は覗かせない */
	width: 100%;
}

.interview-cards .swiper {
	padding-left: 0;
	padding-left: var(--interview-shift, 0);
}

/* スライドは右覗き分だけ狭くする */

.interview-cards .swiper .swiper-slide {
	aspect-ratio: 450/595;
	margin-right: max(16px, min(1.667vw, 28px));
	margin-right: var(--interview-gap); /* レスポンシブ間隔 */
	width: 67%;
}

.interview .swiper-slide {
	will-change: transform;
}

.interview .swiper-button-prev,
.interview .swiper-button-next {
	align-items: center;
	cursor: pointer;
	display: flex;
	height: max(32px, min(3.8vw, 44px));
	justify-content: center;
	left: auto;
	pointer-events: auto;
	position: absolute;
	right: auto; /* 個別で指定 */
	top: 50%;
	top: var(--interview-nav-top, 50%);
	transform: translateY(-50%);
	width: max(32px, min(3.8vw, 44px));
	z-index: 8;
}

/* 左右の位置を変えたいときは --interview-nav-left / --interview-nav-right を上書き */

.interview .swiper-button-prev {
	left: 12px;
	left: var(--interview-nav-left, 12px);
}

.interview .swiper-button-next {
	right: 12px;
	right: var(--interview-nav-right, 12px);
}

.interview .swiper-button-prev img,
.interview .swiper-button-next img {
	display: block;
	height: 100%;
	width: 100%;
}

.interview .swiper-button-next img {
	transform: scaleX(-1);
}

/* デフォルト座標（必要に応じて上書き可能） */

.interview .swiper-area {
	--interview-nav-top: 28%;
	--interview-nav-left: 3vw;
	--interview-nav-right: 18vw; /* 右だけ少し外側にしたい場合は数値で調整 */
}

/* pagination を .swiper-area 内で中央寄せ＆カード下に */

.interview .interview-pagination {
	margin-top: 2.5vw;
	position: static; /* 下に自然配置 */
	text-align: left;
}

.interview .interview-pagination .swiper-pagination-bullet {
	background: #D1D1D1;
	opacity: 1;
}

.interview .interview-pagination .swiper-pagination-bullet-active {
	background: #FADF00;
	opacity: 1;
}

.swiper-pagination-bullet {
	height: 12px;
	width: 12px;
}

.interview__cgu {
	display: flex;
	margin-top: -2.5vw;
	overflow: hidden;
	position: relative;
	z-index: 1;
}

.interview__cgu ul {
	animation: loop-list3 40s linear infinite;
	display: flex;
}

.interview__cgu ul li {
	margin-right: 3vw;
	width: 125vw;
}

.interview-deco04 {
	height: auto;
	left: 2.5vw;
	position: absolute;
	top: -4.5vw;
	width: 13%;
}

.interview-deco-cgu1 {
	height: auto;
	position: absolute;
	right: 2vw;
	top: -2.5vw;
	width: 37%;
}

.more {
	background: #B471EF;
	padding: 7vw 0 5.5vw;
	position: relative;
}

.more-bg {
	height: auto;
	left: 50%;
	position: absolute;
	top: -2.6vw;
	transform: translateX(-50%);
	width: 100%;
}

.more .inner {
	margin: 0 auto;
	width: 70%;
}

.more h2 {
	margin: 0 auto;
	position: relative;
	width: 68%;
}

.more10 {
	bottom: 0;
	position: absolute;
	right: -33%;
	width: 42%;
}

.more ul {
	grid-gap: 0vw 1vw;
	display: grid;
	gap: 0vw 1vw;
	grid-template-columns: repeat(4, 1fr);
	grid-template-rows: repeat(2, 1fr);
	margin-top: 2vw;
}

.more__anime1 {
	margin-left: -0.3vw;
	margin-top: -0.8vw;
	width: 106%;
}

.more__anime2 {
	margin-left: -0.7vw;
	margin-top: -0.5vw;
	width: 109%;
}

.more__banner {
	display: block;
	margin: 1.2vw auto 0;
	position: relative;
	width: 49%;
}

.more ul li a {
	border-radius: 0; /* 角丸は画像に描かれている想定 */
	display: block;
	position: relative;
}

.more ul li a img {
	display: block;
	filter: drop-shadow(0 3px 6px rgba(0, 0, 0, 0.25)); /* ドロップシャドウ 0 3 6 */
	height: auto;
	width: 100%;
}

.more-deco05 {
	height: auto;
	left: 7vw;
	position: absolute;
	top: 9vw;
	transform: rotate(90deg);
	width: 14%;
}

.more-anime-ag_01 {
	height: auto;
	position: absolute;
	right: -5vw;
	top: 10vw;
	width: 17%;
}

.more-anime-b_01 {
	bottom: -2vw;
	height: auto;
	left: 5vw;
	position: absolute;
	transform: rotate(270deg);
	width: 7%;
}

.more-deco04 {
	bottom: 0vw;
	height: auto;
	position: absolute;
	right: 7vw;
	width: 13%;
}

.oc {
	background: #C9E9F5;
	padding: 2.5vw 0 2vw;
	position: relative;
}

.oc__top {
	margin: 0 auto;
	position: relative;
	width: 69%;
}

.oc h2 {
	position: relative;
	width: 75%;
	z-index: 1;
}

.oc-oc03 {
	height: auto;
	left: -9.1vw;
	position: absolute;
	top: 7.5vw;
	width: 34.5%;
	z-index: 2;
}

.oc__title-lead {
	font-size: 1.4vw;
	font-weight: 800;
	margin-top: 0.5vw;
	padding-left: 10vw;
}

.anime-y_01 {
	height: auto;
	position: absolute;
	right: -10%;
	top: -1%;
	width: 36%;
}

.oc__top-contents {
	margin-top: 2vw;
	position: relative;
}

.oc__top-l {
	width: 40.5%;
}

/* ===== Swiper外枠（矢印の基準） ===== */

.oc .swiper-area {
	position: relative; /* ← これで矢印のabsolute基準になる */
	width: 100%;
}

.oc-swiper {
	border-radius: 2vw;
	overflow: hidden;
	position: relative;
	width: 100%;
}

.oc-swiper .swiper-slide {
	align-items: center;
	display: flex;
	justify-content: space-between;
}

.swiper-button-next:after,
.swiper-rtl .swiper-button-prev:after,
.swiper-button-prev:after,
.swiper-rtl .swiper-button-next:after {
	display: none;
}

.oc-swiper-prev,
.oc-swiper-next {
	align-items: center;
	display: grid;
	height: 3.5vw;
	justify-items: center;
	place-items: center;
	top: 50%;
	width: 3.5vw;
	z-index: 5;
}

/* 左右のオフセットはCSSカスタムプロパティで調整可能 */

:root {
	--oc-arrow-offset: 1.5vw;
}

.oc-swiper-prev {
	left: 0vw;
}

.oc-swiper-next {
	right: calc(-1 * 1.5vw);
	right: calc(-1 * var(--oc-arrow-offset));
}

/* ===== OC：次へ矢印を「oc__top-r」の右端（中央付近）に配置：PCのみ ===== */

.oc__top-contents .oc-swiper-next {
	left: 52%; /* oc__top-r が 55% 幅 → その右端に配置 */
	right: auto; /* 右固定は無効化 */
}

.oc-swiper-prev img,
.oc-swiper-next img {
	display: block;
	height: auto;
	width: 100%;
}

/* nextは画像を回転して使う */

.oc-swiper-next img {
	transform: rotate(180deg);
}

.oc01-6 {
	width: 94%;
}

.oc01-7 {
	width: 89%;
}

.oc01-8 {
	width: 84%;
}

.oc01-9 {
	width: 94%;
}

.oc01-10 {
	width: 79%;
}

.oc__top-l p {
	font-size: 1.1vw;
	line-height: 1.5625;
	margin-top: 1.2vw;
}

.oc__top-items {
	margin-top: -1.5vw;
	position: relative;
	z-index: 1;
}

.oc__top-item1 {
	height: auto;
	left: -1%;
	position: absolute;
	top: 0;
	width: 28%;
	z-index: 4;
}

.oc__top-item2 {
	height: auto;
	left: 26%;
	position: absolute;
	top: 0%;
	width: 22%;
	z-index: 3;
}

.oc__top-item3 {
	height: auto;
	left: 46%;
	margin-top: 3vw;
	position: absolute;
	top: 13%;
	width: 28%;
	z-index: 1;
}

.oc__top-item4 {
	height: auto;
	left: 72.6%;
	margin-top: 1vw;
	position: absolute;
	width: 28%;
	z-index: 2;
}

.oc__top-btn {
	display: block;
	margin: 13.8vw auto 0;
	width: 77%;
}

/* 親の高さを aspect-ratio で確保（16:9は例） */

.oc__bottom {
	aspect-ratio: 1240/779; /* ← これで高さが出る */
	margin: 3.5vw auto 0;
	position: relative;
	width: 92%;
}

/* 共通：子は絶対配置＋%でレイアウト */

.oc__item {
	margin: 0;
	position: absolute;
}

.oc__item img {
	border-radius: 2vw;
	display: block;
	height: auto;
	width: 100%;
}

/* 位置・サイズは%で（SPでも崩れにくい） */

.oc__item1 {
	left: 7%;
	top: 0%;
	width: 48%;
	z-index: 1;
}

.oc__item2 {
	right: 3%;
	top: 6%;
	width: 29%;
	z-index: 1;
}

.oc__item3 {
	right: 24%;
	top: 28%;
	width: 35%;
	z-index: 3;
}

.oc__item4 {
	bottom: 6%;
	right: 7%;
	width: 41%;
	z-index: 2;
}

.oc__item5 {
	bottom: 6%;
	left: 3%;
	width: 35%;
	z-index: 1;
}

.oc__item6 {
	left: 3%;
	top: 29%;
	width: 19%;
	z-index: 4;
}

.oc__item7 {
	right: 35%;
	top: 13%;
	width: 15%;
	z-index: 4;
}

.oc__item8 {
	left: 15%;
	top: 35%;
	width: 21%;
	z-index: 4;
}

.oc__item9 {
	bottom: 16%;
	left: 30%;
	width: 20%;
	z-index: 4;
}

.oc__item10 {
	bottom: 33%;
	right: 0%;
	width: 16%;
	z-index: 4;
}

.oc__item11 {
	right: -1%;
	top: -30%;
	width: 28%;
	z-index: 4;
}

.oc-deco-cgu5 {
	height: auto;
	position: absolute;
	right: 3vw;
	top: -7vw;
	width: 45%;
}

.oc-deco07 {
	height: auto;
	position: absolute;
	right: -9vw;
	top: 27vw;
	width: 27%;
}

.oc-deco08 {
	height: auto;
	left: -1vw;
	position: absolute;
	top: 40vw;
	width: 10.5%;
}

.oc-deco09 {
	height: auto;
	left: 0;
	position: absolute;
	top: 61vw;
	width: 15%;
}

.oc-deco06 {
	bottom: 21vw;
	height: auto;
	left: 2.5vw;
	position: absolute;
	width: 9.5%;
	z-index: 4;
}

/* ===== OC：画像は横にスライド、テキストはパッと切替 ===== */

.oc .swiper-area {
	padding-left: 3%;
	width: 55%;
}

.oc-text-panel {
	left: 59%;
	position: absolute;
	top: 14%;
	width: 100%;
}

.oc-text-item {
	bottom: 0;
	left: 0;
	opacity: 0;
	pointer-events: none;
	position: absolute;
	right: 0;
	top: 0;
	transition: opacity 0.15s linear;
}

.oc-text-item.is-active {
	opacity: 1;
	pointer-events: auto;
}

.slyder {
	display: flex;
	overflow: hidden;
	padding-top: 4vw;
	position: relative;
	z-index: 1;
}

.slyder ul {
	animation: loop-list2 40s linear infinite;
	display: flex;
}

.slyder ul li {
	margin-right: 1.4vw;
	width: 25vw;
}

.slyder ul li img {
	display: block;
	width: 100%;
}

.slyder-deco01 {
	height: auto;
	left: 25.5vw;
	position: absolute;
	top: -1vw;
	width: 20%;
}

.slyder-anime-eye_01 {
	height: auto;
	position: absolute;
	right: 15.5vw;
	top: 2vw;
	width: 7%;
	z-index: 2;
}

.slyder2 {
	display: flex;
	margin-top: -13vw;
	overflow: hidden;
	position: relative;
	z-index: 1;
}

.slyder2 ul {
	animation: loop-list2 40s linear infinite;
	display: flex;
}

.slyder2 ul li {
	margin-right: 0.4vw;
	width: 25vw;
}

.slider2-1 {
	width: 12%;
}

.slider2-2 {
	width: 13%;
}

.slider2-3 {
	width: 13%;
}

.slider2-4 {
	width: 12%;
}

.slider2-5 {
	width: 13%;
}

.slider2-6 {
	width: 12%;
}

.slider2-7 {
	width: 13%;
}

.slider2-8 {
	width: 13%;
}

.slyder2 ul li img {
	display: block;
	width: 100%;
}

@media (prefers-reduced-motion: reduce) {

a {
	transition-duration: 0.01ms;
}

a img {
	transition-duration: 0.01ms;
}

a:hover img {
	filter: none;
	transform: none;
}

a:not(:has(img)):hover {
	transform: none;
}

}

@media (min-width: 768px) {

a[href^="tel:"] {
	cursor: default;
	pointer-events: none;
}

}

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

.u-desktop {
	display: none;
}

.u-mobile {
	display: block;
}

.access {
	padding: 115vw 0 38vw;
}

.access__top {
	top: -17vw;
}

.access__top1 {
	width: 87%;
}

.anime-r_01 {
	right: -20%;
	top: -13%;
	width: 46%;
}

.access__top2 {
	right: 0.5%;
	top: 0;
	width: 102%;
}

.access02 {
	margin-top: 42vw;
}

.anime-q_01 {
	right: 4%;
	top: 24%;
	width: 34%;
}

.access__top3 {
	right: -17%;
	top: 0;
	width: 59%;
}

.access03 {
	margin-top: 99vw;
}

.access__items {
	gap: 4vw 0;
	grid-template-columns: 1fr;
	width: 81%;
}

.access__item {
	border-radius: 8vw;
}

.access__item1 {
	padding: 10.5vw 5.5vw 5.5vw 3vw;
}

.access01-2 {
	top: -11%;
	width: 44%;
}

.access__item2 {
	grid-area: 2/1/3/2;
	padding: 5vw 6vw 7vw 3.5vw;
}

.access02-1 {
	margin: 0 auto;
	width: 64%;
}

.access__item2 > div {
	gap: 0 1%;
	grid-template-columns: 45% 54%;
	margin-top: 4vw;
}

.access__item3 {
	grid-area: 3/1/4/2;
	grid-template-columns: 1fr;
	margin-top: 2vw;
	padding: 6vw 5vw 8.5vw 2vw;
}

.access03-1 {
	margin-top: 3vw;
}

.access03-2 {
	margin-left: 4vw;
	margin-top: 2.5vw;
	width: 94%;
}

.access-deco-cgu3 {
	bottom: 96vw;
	right: -12vw;
	width: 29%;
}

.access-deco06 {
	bottom: 228vw;
	right: 1vw;
	width: 30%;
	z-index: inherit;
}

.access-anime-u_01 {
	bottom: 31vw;
	left: 0vw;
	width: 25%;
}

.campuslife {
	padding: 15vw 0 38vw;
}

.campuslife .inner {
	width: 82%;
}

.campuslife h2 {
	width: 92%;
}

.campuslife-anime-j_01 {
	left: -19vw;
	top: 28vw;
}

.campuslife-anime-k_01 {
	height: auto;
	position: absolute;
	right: -23vw;
	top: 38vw;
	width: 46%;
	z-index: 1;
}

.campuslife__lead {
	font-size: 4.3vw;
	line-height: 1.375;
	margin-top: 3vw;
}

.campuslife__contents {
	gap: 9vw 0;
	grid-template-columns: 1fr;
}

.campuslife01 {
	border-radius: 8vw;
	grid-area: 1/1/2/2;
	margin-top: 16vw;
}

.campuslife01__head {
	margin-top: -12vw;
	width: 89%;
}

.campuslife01_main {
	gap: 5.5vw 0;
	grid-template-columns: 1fr;
	padding: 8vw 5vw 7.5vw;
}

.campuslife01-2deco {
	left: 0%;
}

.campuslife01-2anime {
	right: -1%;
}

.campuslife01-2 {
	grid-area: 2/1/3/2;
}

.campuslife01-3deco {
	left: 3%;
	top: -6%;
}

.campuslife01-3anime {
	bottom: 7%;
	right: -6%;
	width: 21%;
}

.campuslife01-3 {
	grid-area: 3/1/4/2;
}

.campuslife01-4deco {
	left: -16%;
	top: -12%;
	width: 37%;
}

.campuslife01-4anime {
	right: 6%;
	top: -3%;
	width: 18%;
}

.campuslife02 {
	border-radius: 8vw;
	grid-area: 2/1/3/2;
	padding: 10vw 0 7vw;
}

.campuslife02-1 {
	width: 81%;
}

.campuslife02-2 {
	left: -6%;
	top: -11%;
	width: 41%;
}

.campuslife03 {
	border-radius: 8vw;
	grid-area: 3/1/4/2;
	margin-top: -5vw;
	padding: 4vw 6.5vw 1vw 15.5vw;
}

.campuslife03-1 {
	margin: 0;
	width: 80%;
}

.campuslife03 > div {
	grid-template-columns: 1fr;
	margin-top: 2.5vw;
}

.anime-o_01 {
	margin-left: 14%;
	width: 51%;
}

.campuslife03-2 {
	margin: 3% 0 0 3%;
	width: 73%;
}

.campuslife03 p {
	font-size: 3.3vw;
	margin-top: 2.5vw;
}

.campuslife03-3 {
	right: -7%;
	top: 37%;
	width: 38%;
}

.campuslife04 {
	border-radius: 8vw;
	grid-area: 4/1/5/2;
	grid-template-columns: 1fr;
	padding: 0.6vw 4vw 8vw;
}

.anime-p_01 {
	margin: 0 auto;
	width: 82%;
}

.campuslife04-1 {
	margin: 3vw auto 0;
	width: 84%;
}

.campuslife04-2 {
	margin-top: 5.5vw;
	width: 95%;
}

.campuslife04 p {
	font-size: 3.7vw;
	line-height: 1.63;
	margin-top: 1vw;
}

.campuslife-deco05 {
	bottom: 81vw;
	right: -16vw;
	width: 43%;
}

.campuslife-anime-ag_01 {
	left: -7vw;
	top: 28vw;
	width: 22%;
}

.campuslife-anime-b_01 {
	right: -4.5vw;
	top: -3vw;
	width: 15%;
}

.campuslife-anime-d_01 {
	display: none;
}

.campuslife-anime-d_01a {
	display: block;
	left: -11vw;
	position: absolute;
	top: 82vw;
	width: 31.5%;
}

.campuslife-anime-d_01b {
	display: block;
	left: -7vw;
	position: absolute;
	top: 202vw;
	width: 25.5%;
}

.campuslife-deco-cgu2 {
	bottom: 23vw;
	right: -6vw;
	width: 72%;
}

.carrier {
	margin-top: -27vw;
	padding: 44vw 0 10vw;
}

.carrier .inner {
	gap: 6vw 0;
	grid-template-columns: 1fr;
	width: 89%;
}

.carrier1 {
	gap: 7vw 0;
	grid-area: 1/1/2/2;
	grid-template-columns: 1fr;
}

.carrier01-1 {
	padding-left: 9%;
}

.carrier01-2 {
	right: -8%;
	top: -12.7%;
	width: 36%;
}

.anime-v_02 {
	height: auto;
	left: 0%;
	position: absolute;
	top: -18%;
	width: 21%;
}

.carrier1-l h2 {
	width: 100%;
}

.carrier01-3 {
	margin: 5.5vw auto 0;
	width: 80%;
}

.carrier01-4 {
	margin: 2.5vw auto 0;
	width: 91%;
}

.carrier2 {
	border-radius: 8vw;
	grid-area: 2/1/3/2;
	padding: 4.7vw 6.2vw 5.6vw 6.2vw;
}

.carrier02-1 {
	margin: 0 auto;
	width: 87%;
}

.carrier02-2 {
	margin: 3vw auto 0;
	width: 96%;
}

.carrier2 a {
	margin: 3vw auto 0;
}

.carrier3 {
	grid-area: 3/1/4/2;
	padding: 4vw 2.6vw 3vw 8vw;
}

.carrier03-1 {
	width: 93%;
}

.carrier03-4 {
	top: -2.5vw;
}

.carrier-deco-cgu4 {
	left: -4.2vw;
	top: 133vw;
	width: 15.5%;
}

.carrier-deco-cgu2 {
	right: 7vw;
	top: 25vw;
	width: 62%;
}

.carrier-anime-w_01 {
	display: none;
}

.carrier-anime-w-sp_01a {
	display: block;
	left: -13vw;
	position: absolute;
	top: 178.5vw;
	width: 20%;
}

.carrier-anime-w-sp_01b {
	bottom: 3.5vw;
	display: block;
	left: -9vw;
	position: absolute;
	width: 44%;
}

.carrier-anime-ag_01 {
	top: 23vw;
	width: 26%;
}

.carrier-anime-b_01 {
	bottom: 96vw;
	right: -3vw;
	width: 13%;
	z-index: -1;
}

.cgu-loop {
	padding: 2.7vw 0;
}

.cgu-loop li {
	margin-right: 1.4vw;
	width: 250vw;
}

.cta {
	background: transparent url(../images/common/cta-bg_sp.jpg) no-repeat top center/cover;
	padding: 13.8vw 0 10vw;
}

.cta .inner {
	grid-template-columns: 1fr;
	width: 100%;
}

.anime-x_sp_01a {
	margin-left: 1%;
	margin-top: 0;
	width: 88%;
}

.anime-x_sp_01b {
	margin-left: 11%;
	margin-top: -2%;
	width: 89%;
}

.date {
	padding: 17.7vw 0 15vw;
}

.date .inner {
	width: 81vw;
}

.date-head02 {
	bottom: 23.5vw;
	right: -20.5%;
	width: 44%;
}

.date ul {
	gap: 4vw 0;
	grid-template-columns: 1fr;
	margin-top: 6vw;
}

.date ul li {
	border-radius: 7vw;
	padding: 5.7vw 4vw 5.6vw;
}

.date ul li p {
	font-size: 3.75vw;
	line-height: 1.42857;
	margin-top: 2vw;
}

.date ul li:nth-of-type(1) p {
	font-size: 3.2vw;
}

.date ul li:nth-of-type(1) div:nth-of-type(1) img {
	width: 75%;
}

.date ul li:nth-of-type(1) div:nth-of-type(2) img {
	margin-top: 2vw;
	width: 55%;
}

.date ul li:nth-of-type(2) div:nth-of-type(1) img {
	width: 85%;
}

.date ul li:nth-of-type(2) div:nth-of-type(2) img {
	margin-top: 2.5vw;
}

.date ul li:nth-of-type(2) div:nth-of-type(3) img {
	right: -7%;
	width: 27%;
}

.date ul li:nth-of-type(3) div:nth-of-type(1) img {
	width: 66%;
}

.date ul li:nth-of-type(3) div:nth-of-type(2) img {
	width: 63%;
}

.date ul li:nth-of-type(3) div:nth-of-type(3) img {
	top: 36%;
	width: 33%;
}

.date ul li:nth-of-type(4) div:nth-of-type(1) img {
	width: 39%;
}

.date ul li:nth-of-type(4) div:nth-of-type(2) img {
	width: 65%;
}

.date ul li:nth-of-type(5) div:nth-of-type(1) img {
	width: 92%;
}

.date ul li:nth-of-type(5) div:nth-of-type(2) img {
	width: 74%;
}

.date ul li:nth-of-type(6) div:nth-of-type(1) img {
	width: 67%;
}

.date ul li:nth-of-type(6) div:nth-of-type(2) img {
	right: -7%;
	top: -8%;
}

.date-deco01 {
	left: -12vw;
	top: 24vw;
	width: 38%;
}

.date-deco02 {
	left: -18vw;
	top: 26.3vw;
	width: 39%;
}

.date-deco03 {
	bottom: 129.5vw;
	right: -10.5vw;
	width: 31%;
}

.date-anime-a_01 {
	right: -15vw;
	top: 65vw;
	width: 41%;
}

.date-anime-b_01 {
	bottom: 66vw;
	left: -9vw;
	width: 17.2%;
}

.sp-fixed-cta {
	align-items: baseline;
	bottom: 0;
	display: grid;
	grid-template-columns: 42% 58%;
	left: 0;
	position: fixed;
	right: 0;
	z-index: 9; /* #menu(10) より下 → メニューが上に来る */
}

.sp-fixed-cta__btn {
	display: block;
}

.sp-fixed-cta__btn img {
	display: block;
	height: auto;
	width: 100%;
}

#menu.open ~ .sp-fixed-cta {
	opacity: 0;
	pointer-events: none;
	transform: translateY(12px);
}

.sp-fixed-cta {
	transition: opacity 0.2s ease, transform 0.2s ease;
}

.footer__wrapper {
	padding: 11vw 0 6.5vw;
}

.footer .inner {
	align-items: normal;
	gap: 8vw 0;
	grid-template-columns: 1fr;
	width: 92%;
}

.footer-logo {
	margin: 0 auto;
	width: 55%;
}

.footer p {
	font-size: 4.3vw;
	margin-top: 5vw;
	text-align: center;
}

.footer__sns {
	gap: 0 5%;
	grid-template-columns: 54% 17% 17%;
	margin: 5vw auto 0;
	width: 84%;
}

.footer__copyright {
	font-size: 3.2vw;
	padding: 5.5vw 0 20vw;
}

header {
	gap: 0 2.5vw;
	grid-template-columns: 81% 16%;
	padding: 0 5.5vw;
	top: 2vw;
}

.header__contents {
	display: block;
	padding: 3vw 5vw;
}

.header__contents h1 img {
	width: 39vw;
}

.header__menu {
	display: none;
}

#menu {
	-webkit-overflow-scrolling: touch;
	box-shadow: none;
	height: auto;
	max-height: none;
	max-width: 100%;
	overflow-y: auto;
	overscroll-behavior: contain;
}

html.no-scroll,
html.no-scroll body {
	overflow: hidden;
	position: fixed;
	width: 100%;
}

.menu__main {
	padding: 19vw 5vw 4vw;
}

.menu__main li {
	padding: 3.4vw 3vw;
}

.menu__bottom {
	background: #FADF00;
	padding: 9vw 5vw 5vw;
	position: relative;
}

.menu__bottom::before {
	background: transparent url(../images/common/menu-bg_sp.png) no-repeat top center/cover;
	content: "";
	height: 11vw;
	left: 50%;
	position: absolute;
	top: -6vw;
	transform: translateX(-50%);
	width: 200%;
}

.menu__sns {
	width: 75%;
}

.menu__line {
	margin-top: 5vw;
}

#menu_btn {
	--bar-gap: max(8px, min(1.5vw, 12px)); /* 上下の間隔 */
	--bar-w: 47%; /* ボタン直径に対するバーの幅 */
	height: max(55px, min(14vw, 80px));
	width: max(55px, min(14vw, 80px));
}

:root {
	--interview-peek: 44px;
	--interview-gap: max(12px, min(3.2vw, 20px)); /* SPではやや狭め */
	--interview-nav-size: 36px; /* SPの矢印サイズ */
}

.interview {
	background: linear-gradient(180deg, #fff 0%, #fff 24%, #B471EF 24%, #B471EF 100%);
	padding: 16vw 0 0;
}

.interview .inner {
	grid-template-columns: 1fr;
}

.interview__title {
	padding-left: 0;
	padding-top: 0;
}

.interview__title::before {
	height: 127%;
	left: 44%;
	top: 54%;
	width: 113%;
}

.interview__head {
	margin: 0 auto;
	width: 51%;
}

.interview__main {
	margin: 1.5vw 0 0 10vw;
	width: 85%;
}

.interview__bottom {
	margin: 5vw 0 0 5vw;
	width: 63%;
}

.interview-anime-i_01 {
	bottom: -15vw;
	right: -33vw;
	width: 72%;
}

.interview-cards {
	margin-top: 3vw;
}

.interview .swiper-area {
	--interview-shift: 2vw; /* SP：必要なら別値 */
}

.interview-cards .swiper {
	overflow: visible; /* SP：前後を少し覗かせるため可視 */
}

.interview-cards .swiper .swiper-slide {
	width: 78%;
}

.interview .swiper-button-prev,
.interview .swiper-button-next {
	height: max(32px, min(8vw, 60px));
	width: max(32px, min(8vw, 60px));
}

.interview .swiper-area {
	--interview-nav-top: 52%;
	--interview-nav-left: 3vw;
	--interview-nav-right: 3vw; /* 右だけ少し外側にしたい場合は数値で調整 */
}

.interview .interview-pagination {
	margin-top: 17.5vw;
	position: static;
	text-align: center;
}

.swiper-pagination-bullet {
	height: max(10px, min(1.2vw, 15px));
	width: max(10px, min(1.2vw, 15px)); /* SP（768px未満） */
}

.interview__cgu {
	margin-top: 6vw;
}

.interview__cgu ul li {
	margin-right: 6.4vw;
	width: 270.2702702703vw;
}

.interview-deco04 {
	left: -11.5vw;
	top: 9.5vw;
	width: 24%;
	z-index: 1;
}

.interview-deco-cgu1 {
	right: -23vw;
	top: 6.5vw;
	width: 57%;
}

.more {
	padding: 17vw 0 16vw;
}

.more-bg {
	left: 60%;
	top: -11.6vw;
	width: 350%;
}

.more .inner {
	width: 89%;
}

.more h2 {
	width: 65%;
}

.more10 {
	bottom: 27vw;
	position: absolute;
	right: -36%;
	width: 80%;
}

.more ul {
	gap: 0vw 3vw;
	grid-template-columns: repeat(2, 1fr);
	grid-template-rows: repeat(4, 1fr);
	margin-top: 7vw;
}

.more__anime1 {
	margin-left: -1.5vw;
	margin-top: -2vw;
	width: 109%;
}

.more__anime2 {
	margin-left: -2vw;
	margin-top: -1.5vw;
	width: 111%;
}

.more__banner {
	display: block;
	margin: 4.2vw auto 0;
	width: 98%;
}

.more-deco05 {
	left: -2vw;
	top: 26vw;
	width: 28%;
}

.more-anime-ag_01 {
	right: -10vw;
	top: 11vw;
	width: 31%;
}

.more-anime-b_01 {
	bottom: -16vw;
	left: 11vw;
	width: 15%;
}

.more-deco04 {
	bottom: 5vw;
	right: 0vw;
	width: 27%;
}

.oc {
	padding: 5vw 0 9vw;
}

.oc__top {
	width: 100%;
}

.oc h2 {
	padding-left: 5%;
	width: 98%;
}

.oc-oc03 {
	left: -7.4vw;
	top: 8.5vw;
	width: 24.5%;
}

.oc__title-lead {
	font-size: 4.3vw;
	line-height: 1.375;
	margin-top: 1vw;
	padding-left: 9vw;
}

.anime-y_01 {
	height: auto;
	position: absolute;
	right: -4%;
	top: 32vw;
	width: 47%;
}

.oc__top-contents {
	aspect-ratio: 333/356;
	display: block;
	margin: 32vw auto 0;
	width: 89%;
}

.oc__top-r {
	padding-left: 0;
	width: 100%;
}

.oc__top-l {
	margin-top: 3vw;
	width: 100%;
}

.oc-swiper .swiper-slide {
	display: block;
}

.oc-swiper-prev,
.oc-swiper-next {
	height: 8vw;
	top: 26%;
	width: 8vw;
}

:root {
	--oc-arrow-offset: 4vw;
}

.oc-swiper-prev {
	left: -3.5vw;
}

/* SPでは従来どおり外側に少しはみ出す配置に戻す */

.oc__top-contents .oc-swiper-next {
	left: auto;
	right: calc(-1 * 1.5vw);
	right: calc(-1 * var(--oc-arrow-offset));
}

.oc01-6 {
	width: 85%;
}

.oc01-7 {
	width: 85%;
}

.oc01-8 {
	width: 72%;
}

.oc01-9 {
	width: 85%;
}

.oc01-10 {
	width: 65%;
}

.oc__top-l p {
	font-size: 4.3vw;
	margin-top: 3vw;
}

.oc__top-items {
	margin-top: 3.5vw;
}

.oc__top-item1 {
	left: 16%;
	width: 70%;
}

.oc__top-item2 {
	left: 5%;
	top: 30vw;
	width: 33%;
}

.oc__top-item3 {
	left: 35%;
	margin-top: 0;
	top: 20vw;
	width: 46%;
}

.oc__top-item4 {
	left: 47%;
	margin-top: 0;
	top: 38vw;
	width: 47%;
}

.oc__top-btn {
	margin: 67vw auto 0;
	width: 88%;
}

.oc__bottom {
	aspect-ratio: 335/574;
	margin: 10.5vw auto 0;
}

.oc__item img {
	border-radius: 4vw;
}

.oc__item1 {
	left: 8%;
	width: 81%;
}

.oc__item2 {
	right: 1%;
	top: 33%;
	width: 50%;
}

.oc__item3 {
	left: 2%;
	right: auto;
	top: 41%;
	width: 58%;
}

.oc__item4 {
	bottom: 19%;
	right: 1%;
	width: 70%;
}

.oc__item5 {
	bottom: 3%;
	left: 2%;
	width: 59%;
}

.oc__item6 {
	left: 1%;
	top: 20%;
	width: 41%;
}

.oc__item7 {
	right: 5%;
	top: 24%;
	width: 31%;
}

.oc__item8 {
	left: -9%;
	top: 31%;
	width: 38%;
}

.oc__item9 {
	bottom: 10%;
	left: 37%;
	width: 44%;
}

.oc__item10 {
	bottom: 35%;
	right: -14%;
	width: 32%;
}

.oc__item11 {
	right: -9%;
	top: -9%;
	width: 33%;
}

.oc-deco-cgu5 {
	left: -8vw;
	right: auto;
	top: 60vw;
	width: 63%;
}

.oc-deco07 {
	right: -8vw;
	top: 141vw;
	width: 24%;
}

.oc-deco08 {
	display: none;
}

.oc-deco09 {
	top: 203vw;
	width: 20%;
}

.oc-deco06 {
	bottom: 50vw;
	left: 0.5vw;
	width: 23%;
}

.oc .swiper-area {
	padding-left: 0;
	width: 100%;
}

.oc-text-panel {
	margin-top: 3vw;
	position: static;
	width: 100%;
}

.oc-text-item {
	display: none;
	opacity: 1;
	pointer-events: auto;
	position: static;
	transition: none;
}

.oc-text-item.is-active {
	display: block;
}

.slyder {
	padding-top: 16vw;
}

.slyder ul li {
	margin-right: 1.4vw;
	width: 68.9655172414vw;
}

.slyder-deco01 {
	left: -7vw;
	top: -2vw;
	width: 53%;
}

.slyder-anime-eye_01 {
	right: 5.5vw;
	top: 11vw;
	width: 19%;
}

.slyder2 {
	margin-top: -29vw;
}

.slyder2 ul li {
	margin-right: 1.4vw;
	width: 58.8235294118vw;
}

}

@keyframes loop-list4 {

from {
	transform: translateX(-50%);
}

to {
	transform: translateX(0);
}

}

@keyframes loop-list3 {

from {
	transform: translateX(-50%);
}

to {
	transform: translateX(0);
}

}

@keyframes loop-list2 {

from {
	transform: translateX(0);
}

to {
	transform: translateX(-100%);
}

}

@keyframes loop-list2 {

from {
	transform: translateX(0);
}

to {
	transform: translateX(-100%);
}

}


/*# sourceMappingURL=style.css.map */
