@charset "UTF-8";

/* CSS Document */
/*
	Reset CSS
-----------------------------------------------------------------------------------------------*/
html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 100%;
	font: inherit;
	vertical-align: baseline;
}

/* HTML5 display-role reset for older browsers */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
	display: block;
}

html {
	font-size: 62.5%;
}

body {
	color: #000;
	font-size: 1.4rem;
	font-family: "M PLUS 1p", "Noto Sans JP", "Sawarabi Gothic", Meiryo, sans-serif;
	font-weight: 400;
	letter-spacing: 0.1rem;
	font-feature-settings: "palt";
	overflow-wrap: break-word;
	background: var(--clrBeige);
}

p {
	line-height: 170%;
}

ol,
ul {
	list-style: none;
}

blockquote,
q {
	quotes: none;
}

blockquote:before,
blockquote:after,
q:before,
q:after {
	content: '';
	content: none;
}

a {
	text-decoration: none;
	transition: all 0.3s;
}

a,
a:hover,
a:visited {
	color: inherit;
}

a:hover {
	text-decoration: none;
}

img {
	vertical-align: top;
}

table {
	table-layout: fixed;
	border-collapse: collapse;
	border-spacing: 0;
}

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

/* iPad背景切れ対策 */
@media print,
screen and (min-width:813px) {
	body {
		min-width: 1400px;
	}
}

/* 表示切替 */
.switch {
	visibility: hidden;
}

.sp {
	display: none;
}

/*
	common
-----------------------------------------------------------------------------------------------*/
:root {
	/* color */
	--clrWhite: #ffffff;
	--clrBeige: #fffbe0;
	/* font-family */
	--lato: "Lato", "Noto Sans", sans-serif;
}

[id$="Wrapper"] {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	width: 100%;
}

.ctsArea {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	width: 1100px;
}

.pickupReadTxt {
	margin-bottom: 150px;
}

/* タイトル
============================== */
.sectionTit {
	display: block;
	width: fit-content;
	text-align: center;
	border-bottom: 1px solid #000;
	padding-bottom: 10px;
	margin-bottom: 90px;
	z-index: 100;
}

.sectionTit img {
	width: auto;
	height: 38px;
}

/*
	header
-----------------------------------------------------------------------------------------------*/
header {
	display: flex;
	align-items: center;
	height: 70px;
	background: var(--clrWhite);
	border-bottom: 1px solid #000;
	padding-left: 25px;
}

/*
	kv
-----------------------------------------------------------------------------------------------*/
#kvWrapper {
	justify-content: center;
	align-items: center;
	background: var(--clrBeige);
	z-index: -2;
	padding-bottom: 230px;
}

.kvLogo {
	margin-top: 140px;
	z-index: 10;
}

.kvImgPeople {
	position: absolute;
	top: -24px;
	z-index: -1;
}

/* illustArea
============================== */
.illustArea {
	position: relative;
	width: 100%;
	margin: 0 auto;
}

[class^="gradient"] {
	position: absolute;
	z-index: -2;
}

/* 各グラデーション個別の指定 */
.gradient01 {
	top: -710px;
	right: 0;
}

.gradient02 {
	top: -710px;
	left: 0;
}

.gradient03 {
	bottom: -275px;
	left: -13px;
}

.gradient04 {
	bottom: 370px;
	right: 0;
}

.gradient05 {
	bottom: -100px;
	left: 0;
}

.gradient06 {
	bottom: -180px;
	right: 0;
}

.gradient07 {
	bottom: 283px;
	right: 0;
}

.gradient08 {
	bottom: -140px;
	left: -100px;
}

.gradient09 {
	bottom: -140px;
	right: 0;
}

/* #outlineWrapperのみ前後感調整 */
#outlineWrapper .illustArea {
	z-index: 0;
}

[class^="people"] {
	position: absolute;
	z-index: 10;
}

.people01 {
	bottom: 727px;
	right: 140px;
}

.people02 {
	bottom: 450px;
	left: 175px;
}

.people03 {
	bottom: 2030px;
	left: 140px;
}

.people04 {
	bottom: 1880px;
	right: 115px;
}

.people05 {
	bottom: 982px;
	left: 105px;
}

.people06 {
	bottom: 221px;
	right: 55px;
}

.people07 {
	bottom: 1334px;
	left: 90px;
}

.people08 {
	bottom: 48px;
	right: 45px;
}

.people09 {
	bottom: 270px;
	left: 85px;
}

.people10 {
	bottom: -120px;
	right: 25px;
}

/*
	pickupWrapper
-----------------------------------------------------------------------------------------------*/
#pickupWrapper {
	justify-content: center;
	align-items: center;
	padding-bottom: 180px;
}

#pickupWrapper .ctsArea {
	position: relative;
}

.pickupReadTxt {
	font-size: 1.5rem;
	font-weight: 500;
	text-align: center;
	line-height: 190%;
}

/* slide
============================== */
/* ↓ スライドの外枠 */
.slide-wrapper {
	width: 950px;
	height: 400px;
	overflow: hidden;
	/* はみ出したスライドを隠す */
	border: 1px solid #000;
	box-shadow: 6px 6px 6px 0px rgba(178, 141, 68, 0.35);
	background: var(--clrWhite);
}

/*  ↓ スライド（コンテンツ） */
.slide {
	/*スライド全体 */
	width: 300%;
	height: 100%;
	display: flex;
	transition: all 0.3s;
}

.slide .slideItemArea {
	/* スライド */
	width: 33.33%;
	height: 100%;
	font-size: 16px;
	display: flex;
	text-align: center;
	justify-content: center;
	align-items: center;
}

.slide1 {
	/* スライドさせるために必要なクラス */
	transform: translateX(0);
}

.slide2 {
	/* スライドさせるために必要なクラス */
	transform: translateX(-33.33%);
}

.slide3 {
	/* スライドさせるために必要なクラス */
	transform: translateX(-66.66%);
}

.slide .slideItemArea {
	/* 背景色 */
	background-color: var(--clrWhite);
}

/* ↓ 左右のボタン */
.next {
	position: absolute;
	width: 35px;
	height: 35px;
	right: 17px;
	bottom: 18%;
	z-index: 1000;
	cursor: pointer;
	border-top: solid 1px #000;
	border-right: solid 1px #000;
	-webkit-transform: rotate(45deg) translateY(50%);
	transform: rotate(45deg) translateY(50%);
}

.prev {
	position: absolute;
	width: 35px;
	height: 35px;
	left: 35px;
	bottom: 18%;
	z-index: 1000;
	cursor: pointer;
	border-top: solid 1px #000;
	border-right: solid 1px #000;
	-webkit-transform: rotate(-135deg) translateY(-50%);
	transform: rotate(-135deg) translateY(-50%);
}

/* ↓ インジケーター */
.indicator {
	width: 100%;
	position: absolute;
	bottom: -53px;
	right: 0;
	display: flex;
	column-gap: 29px;
	z-index: 10;
	justify-content: center;
	align-items: center;
}

.indicator li {
	width: 16px;
	height: 16px;
	border-radius: 50%;
	list-style: none;
	background-color: #fff;
	border: 1px #000 solid;
	cursor: pointer;
}

/* 	インジケーターをグラデーションの色に変える記述 */
.indicator li.active {
	background: linear-gradient(180deg,
			rgba(255, 191, 220, 1) 0%,
			rgba(255, 220, 71, 1) 100%);
}

/* slideの内容
============================== */
.slideItemArea {
	display: flex;
	gap: 80px;
	width: 100%;
}

.pickupPersonArea {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	font-weight: 600;
}

.pickupPersonArea>img:first-child,
.pickupPersonImgArea>img:first-child {
	border-radius: 50%;
	border: 1px solid #000;
	margin-bottom: -17px;
	height: 150px;
	width: 150px;
}

.pickupPersonArea .programPersonInfo {
	font-size: 1.2rem;
	text-align: left;
	margin-top: 40px;
}

/* 企業ロゴの位置と大きさ調整 */
.pickupLogo {
	padding-top: 30px;
	width: fit-content;
	height: fit-content;
}

/* 企業ロゴが入る場合、
.programPersonInfoに
クラス名.logoUnderInfoをつけてmargin-topを調整 */
.pickupPersonArea .logoUnderInfo {
	margin-top: 12px;
}

/* 書籍の位置と大きさ */
.pickupPersonArea .book {
	right: auto;
	left: -8px;
	top: auto;
	bottom: 87px;
	width: 55px;
	height: 81px;
}

.pickupPersonArea .programPersonName {
	text-align: left;
	font-size: 1.7rem;
}

.pickupinfoArea {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 10px;
	max-width: 540px;
}

/* 肩書の上にロゴがない場合 */
.slideItemArea:nth-child(2) .pickupPersonArea .pickupLogoInfoArea {
	margin-top: 30px;
}

.pickupinfoArea .sessionTit {
	position: static;
	width: fit-content;
	padding: 8px 40px 0;
	margin-bottom: 6px;
}

.pickupTime {
	width: 100%;
	background: #FFDCFF;
	background: linear-gradient(90deg, rgba(255, 220, 255, 1) 12%, rgba(255, 255, 71, 1) 100%);
	padding: 12px 0 4px;
}

.pickupTime img {
	width: 140px;
}

.pickupinfoArea .programTxt {
	font-size: 1.4rem;
}

.programTxt span {
	font-size: 1.3rem;
}


/*
	programWrapper
-----------------------------------------------------------------------------------------------*/
#programWrapper .ctsArea {
	width: 100%;
	padding: 0 100px;
}

.program1015Area {
	display: flex;
	flex-direction: column;
	align-items: center;
	width: 100%;
	background: #DCFFFF;
	background: linear-gradient(180deg, rgba(220, 255, 255, 1) 0%, rgba(255, 255, 150, 1) 100%);
	padding: 100px 0;
}

.program1016Area {
	width: 100%;
	background: #FFE1FF;
	background: linear-gradient(180deg, rgba(255, 225, 255, 1) 0%, rgba(255, 255, 150, 1) 100%);
	padding: 100px 0;
}

.programItemArea {
	position: relative;
	display: flex;
	gap: 70px;
	z-index: 11;
}

.programDate {
	position: absolute;
	top: 0;
	left: -180px;
	width: 109px;
	height: auto;
}

[class^="programList"] {
	display: flex;
	flex-direction: column;
	gap: 70px;
}

[class^="programList"] li {
	position: relative;
	display: flex;
	gap: 40px;
	width: 1000px;
	border: 1px solid #000;
	padding: 44px 48px 36px 48px;
	background: var(--clrWhite);
}

/* 情報未定のためグレーアウト（クラス名grayoutをliに追加） */
.grayout {
	position: relative;
}

.grayout::before {
	content: "COMING SOON";
	position: absolute;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	height: 100%;
	color: var(--clrWhite);
	font-size: 4.5rem;
	top: 50%;
	left: 50%;
	transform: translateX(-50%) translateY(-50%);
	z-index: 40;
}

.grayout::after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	background: #dcdcdc;
	width: 100%;
	height: 100%;
}

/* 登壇者が1人の場合 */
.programList1 li:first-child,
.programList1 li:nth-child(3),
.programList1 li:nth-child(4),
.programList2 li:first-child,
.programList2 li:nth-child(2) {
	gap: 77px;
}

/* 登壇者が2人の場合 */
/* .programList1 li:nth-child(){
	gap: 80px;
} */
.programInfoArea {
	display: flex;
	flex-direction: column;
	gap: 13px;
	max-width: 640px;
}

.sessionTit {
	position: absolute;
	top: -16px;
	left: 30px;
	display: block;
	color: var(--clrWhite);
	border: 1px solid #000;
	border-radius: 25px;
	padding: 10px 45px 5px;
	background: #dffcfc;
	z-index: 30;
}

.sessionTit2{
	background: #fce6fc;
}

.sessionTit img {
	width: 84px;
	height: auto;
}

.programTime {
	display: block;
	width: 154px;
	height: auto;
	border-bottom: 1px solid #000;
	padding-bottom: 2px;
}

.programRead {
	font-size: 2.2rem;
	font-weight: 600;
	line-height: 145%;
}

.programTxt {
	text-align: justify;
	line-height: 190%;
}

[class^="programPersonArea"] {
	display: flex;
	gap: 45px;
}

/* 登壇者が2人の場合 */
.programPersonAreaThree {
	gap: 0;
}

.programPersonInnerArea {
	position: relative;
	width: 148px;
	font-weight: 600;
	letter-spacing: .07em;
}

/* 登壇者の顔写真のみに反映 */
.programPersonInnerArea img:first-child {
	border-radius: 50%;
	border: 1px solid #000;
	margin-bottom: -17px;
	height: 110px;
	width: 110px;
}

.book {
	position: absolute;
	top: 62px;
	left: -5px;
	width: auto;
	height: 53px;
	border: 1px solid #000;
}

.programPersonInfo {
	font-size: 1rem;
	line-height: 140%;
	text-align: justify;
	margin-top: 17px;
	margin-bottom: 7px;
	letter-spacing: 0.035rem;
	white-space: nowrap;
}

/* ロゴのない方のprogramPersonInfoのmargin-topを調整 */
.programList1>li:last-child>.programPersonAreaThree>.programPersonInnerArea>.programPersonInfo {
	margin-top: 5px;
}

.programPersonName {
	font-size: 1.5rem;
}

/*
	iframeTitWrapper
-----------------------------------------------------------------------------------------------*/
#iframeTitWrapper {
	width: 100%;
	background: var(--clrWhite);
	padding-top: 70px;
}

#iframeTitWrapper>.ctsArea>.sectionTit {
	margin-bottom: 0;
}

#iframe {
	height: 1300px;
}

/*
	outlineWrapper
-----------------------------------------------------------------------------------------------*/
#outlineWrapper {
	padding: 100px 0 140px;
	background: var(--clrBeige);
}

.outlineTable {
	width: 100%;
	z-index: 4;
}

.outlineTable tr {
	display: flex;
	align-items: center;
	padding: 22px 27px;
	border-top: 1px solid #000;
}

.outlineTable tr:last-child {
	border-bottom: 1px solid #000;
}

.outlineTable tr th {
	font-size: 1.8rem;
	font-weight: 500;
	color: #000;
	background: #dffcfc;
	border: 1px solid #000;
	width: 105px;
	padding: 8px 0;
}

.outlineTable tr td {
	display: block;
	font-size: 1.8rem;
	margin-left: 90px;
}

/*
	archiveWrapper
-----------------------------------------------------------------------------------------------*/
#archiveWrapper {
	padding: 0 0 100px;
	background: var(--clrWhite);
}

#archiveWrapper .sectionTit {
	margin-top: -20px;
}

.archiveList {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 45px;
}

.archiveList li {
	border: 1px solid #e5e7eb;
}

.archiveList li a:hover {
	opacity: 0.7;
}

/*
	serviceWrapper
-----------------------------------------------------------------------------------------------*/
#serviceWrapper {
	padding: 60px 0 70px;
	background: #e4e7ed;
}

.serviceList {
	display: flex;
	gap: 40px;
}

.serviceList li {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	transition: all 0.3s;
}

.serviceList li:hover {
	opacity: 0.8;
}

.serviceList li p {
	font-size: 1.7rem;
	text-align: center;
	font-weight: 600;
	margin-top: 17px;
}

.serviceList li a p span {
	position: relative;
}

.serviceList li a p span::before,
.serviceList li a p span::after {
	content: "";
	position: absolute;
	right: -15px;
	top: 6px;
	display: block;
	width: 8px;
	height: 8px;
}

.serviceList li a p span::before {
	transform: rotate(-45deg);
}

.serviceList li a p span::after {
	margin: auto;
	transform: rotate(45deg);
	border-top: 2px solid currentColor;
	border-right: 2px solid currentColor;
	vertical-align: middle;
}

/*
	footer
-----------------------------------------------------------------------------------------------*/
footer {
	width: 100%;
	padding: 0;
	background: #091E38;
	font-weight: 300;
	font-family: "Roboto", "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
	letter-spacing: .01em;
	height: 80px;
}

#footerArea {
	display: flex;
	height: 100%;
}

.address {
	display: flex;
	align-items: center;
	width: 50%;
	padding: 0 0 0 30px;
	color: #FFF;
	font-style: normal;
	font-size: 1.1rem;
	text-align: left;
}

.footerList {
	display: flex;
	align-items: center;
	justify-content: end;
	width: 100%;
}

.footerList li {
	display: inline-block;
	color: var(--clrWhite);
	padding: 0 30px 0 0;
}

.footerList li a:hover {
	text-decoration: underline;
}

/*
	modal
-----------------------------------------------------------------------------------------------*/
.modalBox {
	display: none;
	height: fit-content;
	max-width: 700px;
	margin: 0;
	position: fixed;
	width: fit-content;
	z-index: 7777;
	display: flex;
	justify-content: center;
	align-items: center;
	box-sizing: border-box;
	border: 2px solid #000;
}

.modalItem {
	display: flex;
	flex-direction: column;
	max-width: 1000px;
	max-height: 90vh;
	overflow-y: auto;
	padding: 50px 50px 40px;
	background: #fff;

	.modalItemInner {
		width: 100%;
		margin: 0 auto;

		/* 画像 */
		>.photo {
			border-radius: 20px;
			overflow: hidden;

			img {
				width: 100%;
			}
		}

		/* テキストエリア */
		>.txtArea {
			display: flex;
			flex-direction: column;
			gap: 10px;
			padding: 20px 20px 0;

			/* タイトル */
			>.tit {
				font-size: 2.0rem;
				font-weight: var(--fw-bold);
				text-align: center;
				color: var(--c-orange);
			}
		}
	}
}

.modalSessionItemInner {
	display: flex;
	flex-direction: column;
	gap: 13px;
}

.modalSessionItemInner .programTxt {
	font-size: 1.6rem;
}

.modalTit {
	position: absolute;
	top: -19px;
	left: 50%;
	transform: translateX(-50%);
	color: #000;
	font-size: 1.8rem;
	font-weight: 500;
	background: #dffcfc;;
	padding: 4px 50px;
	border: 2px solid #000;
	border-radius: 30px;
	z-index: 100;
}

.modalProfileArea {
	display: flex;
	flex-direction: column;
	gap: 25px;
}

.modalProfile {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 34px;
}

/* Voice無しの場合クラス名.modalProfileNoVoiceをつけて下のマージンを削除 */
.modalProfileNoVoice {
	margin-bottom: 0;
}

.modalImgArea {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 40px;
	width: fit-content;
}

.modalImgArea>img {
	width: 160px;
	height: 160px;
	border: 1px solid #000;
	border-radius: 50%;
}

/* モーダルに書籍がある場合 */
.modalBookArea img {
	position: absolute;
	width: auto;
	height: 80px;
	border: 1px solid #000;
}

/* モーダルの書籍1冊目の位置調整 */
.modalBookArea img:first-child {
	left: 25px;
	bottom: -5px;
}

/* モーダルの書籍2冊目の位置調整 */
.modalBookArea img:last-child {
	left: 164px;
	bottom: -5px;
}

.modalNameArea {
	font-weight: 600;
}

.modalInfo {
	margin-top: 15px;
	line-height: 150%;
	margin-bottom: 10px;
}

.modalName {
	font-size: 2.5rem;
	font-weight: 500;
	line-height: 160%;
}

.modalName span {
	font-size: 1.6rem;
	color: #A0A0A0;
	margin-left: 7px;
}

.modalProfileArea p {
	text-align: justify;
}

/* modal_openボタン */
a[class^="modalOpen"] {
	position: relative;
	bottom: 12px;
	right: -82px;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	font-size: 2.5rem;
	font-weight: 100;
	transition: opacity 0.3s ease;
	color: #000;
	border: 1px solid #000;
	background: #DCFFFF;
	background: linear-gradient(180deg, rgba(220, 255, 255, 1) 0%, rgba(255, 255, 150, 1) 100%);
	cursor: pointer;
}

/* ＋マーク */
a[class^="modalOpen"]::before,
a[class^="modalOpen"]::after {
	content: "";
	position: absolute;
	display: block;
	background: #000;
}

/* ＋マークの横線 */
a[class^="modalOpen"]::before {
	width: 15px;
	height: 1px;
}

/* ＋マークの縦線 */
a[class^="modalOpen"]::after {
	width: 1px;
	height: 15px;
}

a[class^="modalOpen"]:hover {
	opacity: 0.4;
}

.modalTimeArea {
	display: flex;
}

/* ウェビナー部分のmodalOpenボタン */
a.modalOpenWebinar {
	top: -3px;
	right: -15px;
}

/* modal_closeボタン */
.modalClose {
	width: 55px;
	height: 55px;
	background-color: #000;
	border-radius: 50%;
	position: absolute;
	top: -27px;
	right: -27px;
	cursor: pointer;
	transition: transform 0.2s;

	&::before,
	&::after {
		content: '';
		width: 1px;
		height: 30px;
		background-color: #fff;
		position: absolute;
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%) rotate(45deg);
		transition: transform 0.2s;
	}

	&::after {
		transform: translate(-50%, -50%) rotate(-45deg);
	}

	@media (hover: hover) {
		&:hover {
			opacity: 1.0;
			transform: rotate(180deg);
		}
	}
}

/* modal_背景 */
.modalBg {
	display: none;
	width: 100%;
	height: 120%;
	background-color: rgb(0 0 0 / .5);
	position: fixed;
	top: 0;
	left: 0;
	z-index: 6666;
	opacity: 0.98;
	backdrop-filter: blur(3px);
}

/*
	fixBtn（お申し込みはこちらボタン）
-----------------------------------------------------------------------------------------------*/
.fixBtn {
	position: fixed;
	bottom: 90px;
	right: 0;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	width: 185px;
	height: 100px;
	font-size: 1.8rem;
	font-weight: 600;
	line-height: 140%;
	text-align: center;
	border-top: 2px solid #000;
	border-bottom: 2px solid #000;
	border-left: 2px solid #000;
	border-radius: 50px 0 0 50px;
	background: #AAFFFF;
	background: linear-gradient(300deg, rgba(170, 255, 255, 1) 0%, rgba(255, 255, 130, 1) 52%, rgba(255, 210, 240, 1) 100%);
	padding: 5px 0 0 20px;
	z-index: 100;
	opacity: 1;
	/* アニメーション初期状態（非表示） */
	opacity: 0;
	transform: translateY(16px) scale(.98);
	pointer-events: none;
	transition: opacity .28s ease, transform .28s ease;
}

/* ボタンの装飾（＋マーク） */
.fixBtn::before {
	content: url(../images/fixbtn_l_pc.png);
	position: absolute;
	top: -28px;
	right: 12px;
}

.fixBtn::after {
	content: url(../images/fixbtn_s_pc.png);
	position: absolute;
	bottom: -6px;
	left: -2px;
}

/* 表示状態 */
.fixBtn.follow-btn--visible {
	opacity: 1;
	transform: translateY(0) scale(1);
	pointer-events: auto;
}

@media (hover: hover) {
	.fixBtn:hover {
		opacity: .7;
	}
}

/*
	レスポンシブ
-----------------------------------------------------------------------------------------------*/
@media screen and (max-width:812px) {
	body {
		-webkit-text-size-adjust: 100%;
		font-size: 1.4rem;
	}

	img {
		width: 100%;
	}

	p {
		line-height: 150%;
	}

	.pc {
		display: none;
	}

	.sp {
		display: block;
	}

	br.sp {
		display: inline-block;
	}

	/*
		common
	-----------------------------------------------------------------------------------------------*/
	/* box */
	#wrapper {
		width: 100%;
	}

	.ctsArea {
		width: 100%;
		/* max-width: 500px; */
		padding: 0 20px;
	}

	/*
	header
	-----------------------------------------------------------------------------------------------*/
	.headerLogo img {
		min-height: 28px;
		max-width: 110px;
	}

	/*
		kv
	-----------------------------------------------------------------------------------------------*/
	#kvWrapper {
		padding-bottom: 45px;
		background: url(../images/kv_bg_sp.png) no-repeat center center / cover;
	}

	#kvWrapper .ctsArea {
		padding: 0;
	}

	.kvLogo {
		max-width: 550px;
		margin-top: -30px;
	}

	.kvImgPeople {
		display: none;
	}

	/* illustArea
	============================== */
	.illustArea {
		position: relative;
		width: 100%;
		margin: 0 auto;
	}

	[class^="gradient"] {
		position: absolute;
		z-index: -10;
	}

	/* 各グラデーション個別の指定 */
	.gradient01 {
		display: none;
	}

	.gradient02 {
		display: none;
	}

	.gradient03 {
		bottom: -32px;
		left: 0px;
		width: 257px;
	}

	.gradient04 {
		bottom: 780px;
		right: 0;
		width: 201px;
	}

	.gradient05 {
		bottom: 470px;
		left: 0;
		width: 205px;
	}

	.gradient06 {
		bottom: -180px;
		right: 0;
		width: 133px;
	}

	.gradient07 {
		display: none;
	}

	.gradient08 {
		display: none;
	}

	.gradient09 {
		display: none;
	}

	/* #outlineWrapperのみ前後感調整 */
	#outlineWrapper .illustArea {
		z-index: 0;
	}

	[class^="people"] {
		position: absolute;
		z-index: 1;
	}

	.people01 {
		bottom: 634px;
		right: 40px;
		height: 81px;
		width: auto;
	}

	.people02 {
		bottom: 590px;
		left: 46px;
		height: 80px;
		width: auto;
	}

	.people03 {
		bottom: 2030px;
		left: 140px;
		height: 80px;
		width: auto;
		display: none;
	}

	.people04 {
		bottom: 1871px;
		right: 115px;
		width: auto;
		display: none;
	}

	.people05 {
		bottom: 982px;
		left: 155px;
		width: auto;
		height: 80px;
		display: none;
	}

	.people06 {
		bottom: -39px;
		right: 65px;
		width: auto;
		height: 80px;
	}

	.people07 {
		bottom: 1154px;
		left: 90px;
		width: auto;
		display: none;
	}

	.people08 {
		bottom: 558px;
		left: 175px;
		width: auto;
		display: none;
	}

	.people09 {
		bottom: -30px;
		left: 25px;
		width: auto;
		height: 90px;
	}

	.people10 {
		bottom: -50px;
		right: 10px;
		width: auto;
		height: 80px;
	}

	/*
		pickupWrapper
	-----------------------------------------------------------------------------------------------*/
	#pickupWrapper {
		padding-bottom: 140px;
	}

	#pickupWrapper .ctsArea {
		max-width: 500px;
	}

	.slide-wrapper {
		width: 100%;
		height: fit-content;
		z-index: 10;
	}

	.pickupReadTxt {
		font-size: 1.3rem;
		text-align: justify;
		margin-bottom: 80px;
		z-index: 100;
	}

	.sessionTitArea {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 100%;
	}

	.sectionTit {
		padding-bottom: 8px;
		margin-bottom: 40px;
	}

	.sectionTit img {
		height: 33px;
	}

	.programRead {
		text-align: left;
		font-size: 1.7rem;
	}

	.slide-wrapper {
		min-width: 300px;
		max-width: 500px;
	}

	.slide .slideItemArea {
		flex-direction: column;
		align-items: flex-start;
		gap: 0;
		padding: 27px;
	}

	.slideItemArea:last-child .pickupinfoArea {
		margin-bottom: 37px;
	}

	.pickupPersonArea {
		position: relative;
		flex-direction: row;
		align-items: center;
		justify-content: center;
		gap: 15px;
		width: 100%;
		max-width: 100%;
		order: 2;
	}

	.pickupPersonImgArea {
		position: relative;
		height: 120px;
	}

	.pickupPersonArea>img:first-child,
	.pickupPersonImgArea>img:first-child {
		width: 100px;
		height: 100px;
	}

	.pickupPersonImgArea>img:first-child {
		position: relative;
	}

	.pickupBookArea {
		display: block;
		position: absolute;
		left: -10px;
		bottom: -7px;
		width: 40px;
		height: 59px;
	}

	.pickupPersonImgArea::before {
		content: "";
		position: absolute;
		left: -9px;
		bottom: 14px;
		background: url(../images/pickup_book_kosodateshiennokeizaigaku.png) no-repeat center center / cover;
		display: block;
		width: 40px;
		height: 59px;
		border: 1px solid #000;
		z-index: 10;
	}

	.pickupLogoInfoArea {
		display: flex;
		flex-direction: column;
		gap: 7px;
	}

	.pickupLogo {
		max-width: 180px;
		padding-top: 0;
		height: auto;
	}

	.pickupBookArea>.book {
		display: none;
	}

	.pickupinfoArea {
		align-items: flex-start;
		margin-bottom: 15px;
	}

	.pickupTime img {
		width: 130px;
		height: auto;
	}

	.pickupPersonArea .programPersonInfo {
		margin: 0;
	}

	.programPersonInnerArea img:first-child {
		width: 100px;
		height: 100px;
	}

	.slideItemArea:nth-child(2) .pickupPersonArea .pickupLogoInfoArea {
		background: none;
		display: flex;
		flex-direction: column;
		margin-top: 0;
	}

	.pickupLogoInfoArea .programPersonInfo {
		font-size: 1.1rem;
	}

	/* slider左右のボタン */
	.prev {
		left: 70px;
		bottom: -5%;
		width: 25px;
		height: 25px;
	}

	.next {
		right: 45px;
		bottom: -5%;
		width: 25px;
		height: 25px;
	}

	/* インジケーター */
	.indicator {
		bottom: -66px;
	}

	/*
		programWrapper
	-----------------------------------------------------------------------------------------------*/
	#programWrapper .ctsArea {
		padding: 0 20px;
	}

	.program1015Area {
		padding: 70px 0;
	}

	.program1016Area {
		padding: 70px 0;
	}

	.programItemArea {
		flex-direction: column;
		align-items: center;
		gap: 60px;
	}

	.programDate {
		position: static;
	}

	.programSessionTit {
		top: -18px;
		left: 50%;
		transform: translateX(-50%);
	}

	.programItemArea {
		z-index: 10;
	}

	[class^="programList"] li {
		flex-direction: column;
		gap: 17px;
		width: 100%;
		padding: 40px 20px 20px;
	}

	/* 情報未定のためグレーアウト（クラス名grayoutをliに追加） */
	.grayout::before {
		font-size: 3rem;
	}

	.programList1 li:first-child,
	.programList1 li:nth-child(3),
	.programList1 li:nth-child(4),
	.programList2 li:first-child,
	.programList2 li:nth-child(2) {
		gap: 17px;
	}

	[class^="programPersonArea"] {
		flex-wrap: wrap;
	}

	.programTime {
		padding-bottom: 6px;
	}

	[class^="programPersonArea"] {
		justify-content: center;
	}

	.programPersonAreaThree {
		gap: 45px;
	}

	.programPersonInnerArea {
		display: flex;
		flex-direction: column;
		align-items: center;
	}

	.programInfoNameArea {
		display: flex;
		flex-direction: column;
		align-items: flex-start;
	}

	.programPersonInfo {
		margin-top: 12px;
	}

	.programPersonName {
		white-space: nowrap;
	}

	/*
		outlineWrapper
	-----------------------------------------------------------------------------------------------*/
	#outlineWrapper {
		padding: 80px 0 90px;
		background: url(../images/outline_bg_sp.png) no-repeat center center / cover;
	}

	#outlineWrapper .ctsArea {
		max-width: 500px;
	}

	.outlineTable tr {
		padding: 20px 0;
	}

	.outlineTable tr th {
		max-width: 90px;
		font-size: 1.5rem;
	}

	.outlineTable tr td {
		font-size: 1.5rem;
		margin-left: 20px;
	}

	/*
		archiveWrapper
	-----------------------------------------------------------------------------------------------*/
	#archiveWrapper {
		padding: 0 0 50px 0;
	}

	#archiveWrapper .ctsArea {
		max-width: 500px;
	}

	.archiveList {
		gap: 20px;
	}

	/*
		serviceWrapper
	-----------------------------------------------------------------------------------------------*/
	#serviceWrapper {
		padding: 40px 0;
	}

	.serviceList {
		flex-wrap: wrap;
		gap: 15px;
		max-width: 400px;
	}

	.serviceList li {
		width: calc((100% - 15px) / 2);
	}

	.serviceList li p {
		font-size: 1.3rem;
		margin-top: 10px;
	}

	.serviceList li a p span::before,
	.serviceList li a p span::after {
		top: 5px;
	}

	/*
		footer
	-----------------------------------------------------------------------------------------------*/
	#footerArea {
		flex-direction: column-reverse;
		justify-content: center;
		align-items: center;
		height: fit-content;
		background: #091E38;
	}

	.address {
		display: flex;
		justify-content: center;
		width: 100%;
		height: 80px;
		text-align: center;
		padding: 0;
	}

	.footerList {
		display: flex;
		justify-content: center;
		align-items: center;
		gap: 30px;
		height: 80px;
		background: #142C4D;
	}

	.footerList li {
		display: flex;
		justify-content: center;
		align-items: center;
		padding: 0;
	}

	/*
	modal
	-----------------------------------------------------------------------------------------------*/
	.programPersonInnerArea>a[class^="modalOpen"] {
		right: -35px;
	}

	.book {
		top: 51px;
		left: 12px;
	}

	.modalBox {
		max-width: 340px;
	}

	.modalItem {
		max-width: 400px;
		max-height: 360px;
		padding: 38px 28px 28px;
	}

	.modalProfileArea {
		gap: 19px;
	}

	.modalProfile {
		flex-direction: column;
		gap: 10px;
		width: 100%;
		line-height: 170%;
	}

	.modalImgArea {
		flex-direction: column;
		justify-content: flex-start;
		align-items: center;
		gap: 15px;
		width: 100%;
	}

	.modalImgArea img {
		max-width: 160px;
	}

	.modalBookArea img:first-child {
		left: 38px;
		bottom: 84px;
	}

	.modalBookArea img:last-child {
		left: 190px;
		bottom: 84px;
	}

	.modalNameArea {
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		width: 100%;
	}

	.modalInfo {
		margin-bottom: 15px;
	}

	.modalName {
		font-size: 2rem;
		text-align: left;
		line-height: 120%;
	}

	.modalClose {
		top: -14px;
		right: -14px;
		width: 50px;
		height: 50px;
	}

	.modalClose::before,
	.modalClose::after {
		height: 25px;
	}

	.programTxt span {
		display: block;
		line-height: 160%;
	}

	/*
	fixBtn
-----------------------------------------------------------------------------------------------*/
	.fixBtn {
		display: flex;
		flex-direction: column;
		bottom: 63px;
		width: 120px;
		height: 70px;
		white-space: nowrap;
		line-height: 120%;
		font-size: 1.4rem;
		padding: 5px 0 0 15px;
	}

	.fixBtn span {
		font-size: 1.1rem;
	}

	/* ＋マーク（大） */
	.fixBtn::before {
		content: "";
		top: -24px;
		right: 7px;
		background: url(../images/fixbtn_l_sp.png) no-repeat center center / cover;
		width: 29px;
		height: 29px;
	}

	/* ＋マーク（小） */
	.fixBtn::after {
		content: "";
		background: url(../images/fixbtn_s_sp.png) no-repeat center center / cover;
		bottom: -5px;
		left: -2px;
		width: 25px;
		height: 25px;
	}
}