/*
 Theme Name:   SC簿記LPテーマ2025
 Template:     blankslate
*/

/* 
========================================
  CSS編集ガイド
----------------------------------------
- クラス命名：基本はBEM方式（.block__element--modifier）
- セレクタの入れ子は原則避ける
- IDやタグ指定（例: #nav h2）は原則使わない
- マージン：原則、margin-right／margin-bottomのみ使用（レイアウト崩れ防止）
- 色・フォント：原則、個別に指定しない。変数を利用（例: var(--color-primary)）
========================================
*/

@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&family=Noto+Serif+JP:wght@200..900&family=Poiret+One&display=swap');

:root {
	/* カラー */
	--main-color: #01A4D6;
	--sub-color: #55c2e4;
	--accent-color: #EDFF47;
	--red: #E95377;
	--dark-green: #136077;
	--white: #fff;
	--light-gray: #efefef;
	--lightest-gray: #f2f2f2;
	--dark-gray: #9FA0A0;
	--text-color: #333;
	--input-bg-color: #efefef;

	/* フォント */
	--main-font: "Noto Sans JP", sans-serif;
	--english-font: "Poiret One", sans-serif;
	--serif-font: "Noto Serif JP", serif;
	--font-awesome: "Font Awesome 5 Free";

	/* レイアウト */
	--header-height: 114px;
	--mb-header-height: 80px;
	--max-w: 1120px;

	/* 効果 */
	--basic-transition: .3s;

	--basic-shadow: 0 4px 8px 0 rgb(0 0 0 / 10%);
	--text-shadow: 0 4px 8px rgb(0 0 0 / 10%);
	--header-shadow: 0px 7px 18px 0px #00000026;
}

* {
	box-sizing: border-box;
	font-family: var(--main-font);
	font-size: 16px;
	font-weight: 400;
	letter-spacing: .05em;
	margin: 0;
	padding: 0;
}

html {
	scroll-behavior: smooth;
}

body {
	color: var(--text-color);
	font-family: var(--main-font);

	/* line-height: 1.76; */

}

a, button {
	cursor: pointer;
	text-decoration: none;
	transition: var(--basic-transition);
}

a:hover {
	opacity: .7;
}

b {
	font-size: inherit;
	font-weight: 700;
}


button, input[type="submit"] {
	cursor: pointer;
}


button:hover {
	opacity: .5;
}


img {
	height: auto;
}

/* Cookie Notice */

#cookie-notice {
	border-radius: 10px;
	bottom: 10px;
	box-shadow: 5px 5px 20px 0 rgb(0 0 0 / 15%);
	left: 50% !important;
	min-width: unset !important;
	transform: translateX(-50%);
	width: 60% !important;
	z-index: 9999999 !important;
}

.cookie-notice-container {
	margin: 0 auto;
	padding: 15px 40px !important;
	width: 100%;
}

.cn-text-container {
	font-size: 13px;
	margin: 0 0 1em !important;
	text-align: left;
}

.cn-privacy-policy-link {
	color: var(--main-color);
	font-size: inherit;
	text-decoration: underline;
}

.cn-buttons-container {
	display: flex;
	justify-content: center;
}

.cn-button.cookie-btn {
	background: var(--main-color);
	border: 0;
	border-radius: 3px;
	color: var(--white);
	font-size: 14px;
	padding: .2em 1em;
}

@media (width <=1024px) {
	#cookie-notice {
		width: 92% !important;
	}

	.cookie-notice-container #cn-notice-buttons {
		display: flex;
		flex-direction: column;
	}
}

/* decoration */

.marker {
	font-size: inherit;
	font-weight: inherit;
	letter-spacing: inherit;
	text-decoration: underline;
	text-decoration-color: var(--accent-color);
	text-decoration-skip-ink: none;
	text-decoration-thickness: .33em;
	text-underline-offset: -0.2em;
}

.text-highlight {
	color: var(--main-color);
	font-size: inherit;
	font-weight: inherit;
	letter-spacing: inherit;
}

.red {
	color: var(--red);
}

.breadcrumb {
	color: var(--main-color);
	margin-bottom: 120px;
}


.btn {
	background-color: var(--main-color);
	border-radius: 100vh;
	color: var(--white);
	display: inline-block;
	padding: 1em 4em;
	text-align: center;
}

.btn:hover {
	opacity: unset;
	transform: scale(1.05);
}

.btn--invert {
	background: var(--white);
	color: var(--main-color);
}

.btn span {
	display: block;
	font-weight: 400;
	letter-spacing: .1em;
}


.section {
	padding: 120px 0;
}

.section-header {
	margin-bottom: 80px;
	text-align: center;
}

.section-title {
	/* line-height: 1.76; */
	color: var(--text-color);
	font-size: 32px;
	font-weight: 400;
	letter-spacing: .05em;

	/* position: relative; */
	margin-bottom: 54px;
	overflow-wrap: break-word;
	text-align: center;
	word-break: auto-phrase;
}

.section-title::before {
	/* position: absolute; */

	/* top: -110px; */

	/* left: 50%; */

	/* transform: translateX(-50%); */
	color: var(--main-color);
	content: attr(data-en);
	display: block;
	font-family: var(--english-font);
	font-size: 18px;
	font-weight: 400;
	letter-spacing: 0.05em;
	margin-bottom: .8em;
}

.section-text {
	font-size: 16px;
	font-weight: 400;
	letter-spacing: .04em;
	line-height: 2.06;
	margin: 0 auto;
	text-align: center;

}

.section-link-wrap {
	text-align: right;
}

.section-link {
	display: inline-block;
}

.section-link__inner {
	align-items: center;
	display: flex;
	gap: 21px;
	justify-content: flex-end;
}

.section-link__arrow {
	border-bottom: 1px solid var(--main-color);
	border-right: 2px solid var(--main-color);
	content: "";
	display: block;
	height: 11px;
	margin-right: 15px;
	top: calc(50% - 5px);
	transform: skew(45deg);
	transition: var(--basic-transition);
	width: 109px;
}

.section-link__title {
	color: var(--main-color);
	display: block;
	font-size: 18px;
	font-weight: 500;
	letter-spacing: 0.22em;
	transition: var(--basic-transition);

}

.section-link__title-en {
	color: var(--main-color);
	display: block;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: .22em;
	transition: var(--basic-transition);
}

.section-link:hover .section-link__title,
.section-link:hover .section-link__title-en,
.section-link:hover .section-link__arrow {
	border-color: var(--text-color);
	color: var(--text-color);
}

.sub-label {
	color: var(--main-color);
	display: block;
	font-size: 16px;
	font-weight: 700;
	letter-spacing: .22em;
	margin-bottom: 10px;
}

.sub-title {
	font-size: 24px;
	font-weight: 700;
	letter-spacing: .22em;
	line-height: 1.76;
	margin-bottom: 20px;
	text-align: center;
}

.sub-title::after {
	color: inherit;
	content: attr(data-en);
	display: block;
	font-family: var(--english-font);
	font-size: 28px;
	font-weight: 400;
	letter-spacing: 0.05em;
	margin-bottom: .8em;
}


@media (width <=1024px) {
	.section {
		padding: 80px 0;
	}

	.sub-label {
		font-size: 12px;
	}

	.sub-title {
		font-size: 18px;
	}

	.section-text {
		text-align: justify;
	}

	.btn span {
		font-size: clamp(18px, 5vw, 20px);
	}



}



.container {
	margin: 0 auto;
	max-width: var(--max-w);
	width: 100%;
}

@media (width <=1029px) {
	.container {
		width: 90%;
	}
}


/* header
==================================================== */

.site-header {
	height: var(--header-height);
	left: 0;
	position: absolute;
	top: 0;
	width: 100%;
	z-index: 99;
}

.site-header__container {
	height: 100%;
}

.site-header__inner {
	align-items: center;
	display: flex;
	height: 100%;
	justify-content: space-between;
	padding: 0 30px;

}

.site-branding__image {
	position: relative;
	width: clamp(100px, 12vw, 145px);
	z-index: -1;
}

.site-branding__label {
	color: var(--text-color);
	font-size: 11px;
	font-weight: 400;
	letter-spacing: 0.05em;
}



@media (width <=1024px) {
	.site-branding__label {
		display: none;
	}
}

.site-header__inner.fadeDown.is-animated {
	animation: fadeDown 1s forwards;
}

@keyframes fadeDown {
	0% {
		opacity: 0;
		transform: translateY(-30px);
	}

	80% {
		opacity: 1;
	}

	100% {
		opacity: 1;
		transform: translateY(0);
	}
}

.site-header__right {
	align-items: center;
	display: flex;
	gap: 32px;
}

.main-menu {
	color: var(--main-color);
	display: flex;
	gap: clamp(25px, 3vw, 35px);
	list-style: none;
}

.main-menu__item {
	color: inherit;
	font-size: clamp(14px, 1vw, 16px);
	font-weight: 400;
	letter-spacing: .05em;
}

.main-menu__item span {
	display: block;
	font-family: var(--english-font);
	font-size: 11px;
	letter-spacing: .05em;
	text-align: center;
}

.info {
	align-items: center;
	color: var(--main-color);
	display: flex;
	gap: 12px;
}

.info__title {
	border: 1px solid currentcolor;
	display: grid;
	font-size: 12px;
	font-weight: 400;
	height: 57px;
	letter-spacing: .05em;
	place-items: center;
	text-align: center;
	width: 57px;
}

.info__time {
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0;
}

.info__tel {
	color: inherit;
	font-size: 27px;
	font-weight: 700;
	letter-spacing: 0.05em;
}

@media (width <=1024px) {
	.info {
		display: none;
	}
}

@media (any-hover: hover) {
	.main-nav__item a:hover {
		color: var(--text-color);
	}
}


.main-nav__item--contact a::before {
	content: "\f0e0";
	font-family: var(--font-awesome);
	font-size: inherit;
	font-weight: 400;
	margin-right: .4em;
}

@media (width <=1024px) {
	.site-header {
		height: var(--mb-header-height);
		position: fixed;
	}

	.site-header__inner {
		align-items: center;
		padding: 0;
	}

	.site-header__inner.fadeDown.is-animated {
		animation: none;
	}
}

/* === pcで非表示 === */
.hamburger__text {
	visibility: hidden;
}


/* モバイル：ハンバーガーメニュー
==================================================== */
@media only screen and (width <=1024px) {
	.main-nav {
		background-color: #fff;
		height: 100vh;
		overflow-y: auto;
		padding: var(--mb-header-height) 40px 0;
		position: fixed;
		right: -100%;
		top: 0;
		transition: all .6s;
		width: min(350px, 80%);
		z-index: 200;
	}

	.main-nav .main-menu {
		align-items: center;
		flex-direction: column;
		gap: 24px;
		margin-bottom: 0;
	}

	.hamburger {
		cursor: pointer;
		height: 40px;
		position: absolute;
		right: 15px;
		top: 17px;
		width: 40px;
		z-index: 300;
	}

	.hamburger__text {
		color: var(--main-color);
		font-family: var(--english-font);
		font-size: 12px;
		font-weight: 600;
		left: 50%;
		position: absolute;
		top: 32px;
		transform: translateX(-50%);
		visibility: visible;
	}

	.hamburger__border {
		background-color: var(--main-color);
		height: 2px;
		left: 11px;
		position: absolute;
		transition: all .6s;
		width: 18px;
	}

	.hamburger__border_top {
		top: 14px;
	}

	.hamburger__border_center {
		top: 20px;
	}

	.hamburger__border_bottom {
		top: 26px;
	}

	.black_bg {
		background-color: #333;
		cursor: pointer;
		height: 100vh;
		left: 0;
		opacity: 0;
		position: fixed;
		top: 0;
		transition: all .6s;
		visibility: hidden;
		width: 100vw;
		z-index: -2;
	}

	/* === 表示された時用のCSS === */

	.main-nav-open .main-nav {
		right: 0;
	}

	.main-nav-open .black_bg {
		opacity: .5;
		visibility: visible;
	}

	.main-nav-open .hamburger__border_top {
		top: 20px;
		transform: rotate(45deg);
	}

	.main-nav-open .hamburger__border_center {
		left: 50%;
		width: 0;
	}

	.main-nav-open .hamburger__border_bottom {
		top: 20px;
		transform: rotate(-45deg);
	}
}

/* === スクロールした後のヘッダーB === */

.sub-header {
	align-items: center;
	background-color: #fff;
	display: flex;
	height: 60px;
	justify-content: flex-end;
	left: 0;
	padding: 0 3em;
	position: fixed;
	top: 0;
	transform: translateY(-60px);
	transition: all 0.3s;
	width: 100%;
	z-index: 99;
}

/* スクロール後に表示 */
.sub-header.scrolled {
	box-shadow: var(--header-shadow);
	transform: translateY(0);
}

.sub-header__inner {
	align-items: center;
	display: flex;
	justify-content: space-between;
	max-width: 1720px;
	width: 100%;
}

.sub-header__image {
	width: 80px;
}

.sub-header .main-menu {
	gap: 30px;
	margin-bottom: 0;
}

.sub-header .menu-item a {
	font-size: 14px;
}

@media (width <=1024px) {
	.sub-header {
		display: none;
	}
}


/* mv
==================================================== */

.hero {
	background-image: url("images/left-top-circles.svg"), url("images/hero.jpg");
	background-position: left top, right var(--header-height);
	background-repeat: no-repeat;
	background-size: 50% auto;
	overflow: hidden;
	padding-bottom: 140px;
	padding-top: var(--header-height);
}


.hero__inner {
	max-width: 680px;
	padding: 65px 0 0 30px;
}

.hero__copy {
	color: var(--main-color);
	font-family: var(--main-font);
	font-size: clamp(16px, 1.5vw, 18px);
	font-weight: 500;
	letter-spacing: .04em;
	margin-bottom: 10px;
	mix-blend-mode: multiply;
	word-break: keep-all;
}

.hero__main-copy {
	color: var(--text-color);
	font-size: 36px;
	font-weight: 400;
	letter-spacing: 0.05em;
	line-height: 1.5;
	margin-bottom: 26px;
}

.hero__text {
	font-size: 18px;
	font-weight: 400;
	letter-spacing: .04em;
	line-height: 1.8;
	margin-bottom: 50px;
}

.hero__btn {
	font-weight: 500;
	letter-spacing: .1em;
	line-height: 1.35;
	padding: 1.2em 2em;
	width: 390px;
}

.hero__btn:hover {
	transform: scale(1.05);
}

.hero__btn span {
	display: block;
	font-size: 21px;
	font-weight: 400;
	letter-spacing: .1em;
}


@media (width <=1024px) {
	/* 背景画像をPCと別に */
	.hero {
		background-image: url("images/left-top-circles-mb.svg"), url("images/hero-mb.jpg");
		background-position: left top, right 0;
		background-size: 90% auto, 95% auto;
	}

	.hero__main-copy {
		font-size: 25px;
	}

	.hero__inner {
		padding: 140px 0 0;
	}

	.hero__title {
		font-size: min(19vw, 90px);
	}


	.hero__btn {
		width: 100%;
	}

	.hero__btn span {
		font-size: clamp(18px, 5vw, 20px);
	}


}

/* why
==================================================== */
.why {
	padding-bottom: 0;
	padding-top: 0;
}

.why__sub-title {
	color: var(--main-color);
	font-size: 25px;
	font-weight: 400;
	letter-spacing: 0.05em;
	margin-bottom: 48px;
}

.cases {
	color: var(--main-color);
	display: flex;
	gap: 50px;
	justify-content: center;
}

.cases__item {
	border: 1px solid currentcolor;
	border-radius: 22px;
	max-width: 265px;
	padding: 32px 10px;
	text-align: center;
	width: calc(100% / 3);
}

.cases__en {
	color: currentcolor;
	display: inline-block;
	font-family: var(--english-font);
	font-size: 25px;
	font-weight: 400;
	letter-spacing: .05em;
	margin-bottom: .4em;
}

.cases__title {
	color: currentcolor;
	font-size: 22px;
	font-weight: 400;
	letter-spacing: .05em;
	margin-bottom: .9em;
}

.cases__image {
	margin: auto;
	margin-bottom: 1.43em;
}

.cases__text {
	font-size: 14px;
	font-weight: 400;
	letter-spacing: .05em;
}

@media (width <=1024px) {
	.cases {
		align-items: center;
		flex-direction: column;
	}

	.cases__item {
		width: 100%;
	}
}


/* reason
==================================================== */

.reason {
	padding-bottom: 0;
}



.reason__header {
	margin-bottom: 100px;
}


.reason__content {
	align-items: flex-start;
	display: flex;
	justify-content: center;
}

.reason__pic {
	aspect-ratio: 866 / 400;
	background-position: right bottom;
	background-repeat: no-repeat;
	background-size: cover;
	min-height: 400px;
	position: relative;
	width: 50%;
}

.reason__pic--instructor {
	background-image: url("images/reason-instructor.jpg");
}

.reason__pic--one-on-one {
	background-image: url("images/reason-one-on-one.jpg");
	background-position: left bottom;
}

.reason__pic--anytime {
	background-image: url("images/reason-anytime.jpg");
}

.reason__traininggrant {
	background-image: url("images/traininggrant.jpg");
	background-position: left bottom;
}

.reason__pic span {
	bottom: 0;
	color: var(--white);
	font-family: var(--english-font);
	font-size: clamp(90px, 6vw, 120px);
	letter-spacing: 0.05em;
	position: absolute;
	right: 30px;
}

.reason__pic--one-on-one span, .reason__traininggrant span {
	left: 30px;
}

.reason__block {
	aspect-ratio: 866 / 400;
	padding-left: 80px;
	padding-top: 50px;
	width: 50%;
}

.reason__block--left {
	display: flex;
	justify-content: flex-end;
	padding-left: 0;
	padding-right: 80px;
}

.reason__block-inner {
	max-width: 446px;
	width: 70%;
}

.reason__point {
	color: var(--main-color);
	display: block;
	font-family: var(--english-font);
	font-size: clamp(20px, 2vw, 35px);
	font-weight: 400;
	letter-spacing: .05em;
	margin-bottom: .48em;
}

.reason__sub-title {
	color: var(--main-color);
	font-size: clamp(20px, 2vw, 35px);
	font-weight: 400;
	letter-spacing: .05em;
	line-height: 1.37;
	margin-bottom: 1em;
}

.reason__item-text {
	font-size: 16px;
	font-weight: 400;
	letter-spacing: .04em;
	line-height: 2.06;
}

@media (width <=1024px) {
	.reason__content {
		flex-direction: column;

	}

	.reason__content--even {
		flex-direction: column-reverse;
	}

	.reason__pic, .reason__block {
		width: 100%;
	}

	.reason__pic {
		min-height: 200px;
	}

	.reason__pic span {
		font-size: 60px;
	}

	.reason__block {
		aspect-ratio: auto;
		padding: 40px;
	}

	.reason__block--left {
		justify-content: flex-start;
	}

	.reason__block-inner {
		max-width: unset;
		width: 100%;
	}
}



/* solution
==================================================== */

.solution {
	background: var(--light-gray);
}

.solution__header {
	padding-top: 84px;
	position: relative;
	z-index: 1;
}

.solution__header::before {
	color: var(--white);
	content: "Solution";
	font-family: var(--english-font);
	font-size: 200px;
	font-weight: 400;
	left: 50%;
	letter-spacing: 0.05em;
	pointer-events: none;
	position: absolute;
	top: 60px;
	transform: translate(-50%, 0);
	white-space: nowrap;
	z-index: -1;
}

.solution__title {
	font-family: var(--serif-font);
	font-size: 31px;
	font-weight: 400;
	letter-spacing: 0.04em;
	margin-bottom: .4em;
	text-align: center;
}

.solution__text {
	font-family: var(--serif-font);
	font-weight: 400;
	letter-spacing: 0.04em;
	line-height: 2;
	text-align: center;
}



.scroll-wrap {
	display: flex;
	overflow: hidden;
	width: 100%;
}

.scroll {
	display: flex;
}

.solution__image {
	min-width: 1668px;
}

.solution__image--first {
	animation: loop1 30s linear infinite;
}

.solution__image--second {
	animation: loop2 30s linear infinite;
}

/* 1枚目が右端から左端へ */
@keyframes loop1 {
	0% {
		transform: translateX(0%);
	}

	100% {
		transform: translateX(-100%);
	}
}

/* 2枚目がそれを追いかけて流れる */
@keyframes loop2 {
	0% {
		transform: translateX(0%);
	}

	100% {
		transform: translateX(-100%);
	}
}

@media (width <=1024px) {
	.solution__header::before {
		font-size: 80px;
	}
}

.cta {
	background-image: url("images/cta-bg.jpg");
	background-repeat: no-repeat;
	background-size: cover;
	color: var(--white);
	padding: 60px 0 55px;
}

.cta__container {
	min-width: 626px;
	text-align: center;
	width: 36%;
}

.cta__large-text {
	color: inherit;
	font-family: var(--serif-font);
	font-size: 26px;
	font-weight: 500;
	letter-spacing: 0.05em;
	line-height: 1.58;
	margin-bottom: 1.15em;
	text-align: center;
}

.cta__text {
	color: inherit;
	font-size: 18px;
	font-weight: 700;
	letter-spacing: 0.05em;
	margin-bottom: 20px;
	text-align: center;
}

.cta__content {
	color: inherit;
	display: flex;
	gap: 26px;
	justify-content: center;
	margin-bottom: 30px;
}

.cta__label {
	border: 1px solid currentcolor;
	color: currentcolor;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.05em;
	line-height: 1.35;
	max-height: 80px;
	padding: 20px 16px;

}

.cta__business-hours {
	font-size: 14px;
	font-weight: 500;
	letter-spacing: 0;
	line-height: 1.35;
}

.cta__tel {
	color: currentcolor;
	font-size: 65px;
	font-weight: 700;
	letter-spacing: 0.05em;
	line-height: 1;
}

.cta__btn {
	max-width: 480px;
	padding: 1em 100px;
}

.cta__btn span {
	font-size: 21px;
}

@media (width <=1024px) {
	.cta__container {
		min-width: unset;
		width: 90%;
	}

	.cta__content {
		flex-direction: column;
	}

	.cta__label {
		margin: auto;
		width: fit-content;
	}

	.cta__business-hours {
		margin-bottom: 6px;
	}

	.cta__tel {
		font-size: 40px;
	}

	.cta__btn {
		padding: 1em 2em;
		width: 100%;
	}

	.cta__btn span {
		font-size: clamp(18px, 5vw, 20px);
	}
}

/* 講師紹介
==================================================== */

.instructor {
	padding-top: 105px;
}

.instructor__container {
	max-width: 1300px;
}

.instructor__header {
	margin-bottom: 35px;
}

.slick-track {
	display: flex;
}


/*  影はこっちにつけないとカットされる */
.inst-slider .slick-list {
	border-radius: 20px;
	box-shadow: 0 0 42px rgb(0 196 255 / 15%);
	margin-bottom: 80px;
}

.inst-slider__box {
	border: 1px solid #C9F2FF;
	border-radius: 20px;
	color: var(--main-color);
	height: auto !important;
	padding: 48px 75px 55px;
}

.inst-slider__box-inner {
	display: flex;
	gap: 90px;
}


.inst-slider__text {
	color: currentcolor;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.04em;
	line-height: 2.35;
}

.inst-slider__text span {
	display: inline-block;
	margin-right: 1em;
}

.inst-slider__text--movie {
	margin-bottom: 6px;
}

.inst-slider__text--movie::before {
	content: '\f03d';
	font-family: var(--font-awesome);
	font-size: 14px;
	font-weight: 900;
	line-height: 2.35;
	margin-right: 11px;
}

.inst-slider__movie {
	margin-bottom: 45px;
}

.inst-slider__movie iframe {
	border-radius: 20px;
}


.inst-slider__profile {
	display: flex;
	gap: 30px;
	margin-bottom: 18px;
}

.inst-slider__face {
	border: 1px solid #C9F2FF;
	border-radius: 50%;
	height: 122px;
	width: 122px;
}

.inst-slider__label {
	color: #d9d9d9;
	font-family: var(--english-font);
	font-size: 27px;
	font-weight: 400;
	letter-spacing: 0.05em;
}

.inst-slider__name {
	color: currentcolor;
	font-family: var(--serif-font);
	font-size: 41px;
	font-weight: 400;
	letter-spacing: 0.4em;
	line-height: 1;
	margin-bottom: 20px;
}

.inst-slider__name span {
	font-family: inherit;
	font-size: 20px;
	font-weight: inherit;
	letter-spacing: 0.4em;
}

.inst-slider__round-tag {
	display: flex;
	font-size: 12px;
	gap: 1em;
}

.round-tag {
	background: var(--main-color);
	border-radius: 100vh;
	color: var(--white);
	font-size: inherit;
	font-weight: 400;
	letter-spacing: 0.11em;
	padding: 0.4em 1.6em;
	white-space: nowrap;
	width: fit-content;
}

.inst-slider__copy {
	border-bottom: 1px solid #efefef;
	border-top: 1px solid #efefef;
	color: currentcolor;
	font-family: var(--serif-font);
	font-size: 21px;
	font-weight: 400;
	letter-spacing: 0.1em;
	margin-bottom: 12px;
	padding: .2em 0;

}

.inst-slider__profile-text {
	color: var(--text-color);
	letter-spacing: 0.04em;
	line-height: 1.75;
	margin-bottom: 15px;
}

.inst-slider__icon-tag {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 20px;

}

.icon-tag {
	font-size: 15px;
	font-weight: 500;
	letter-spacing: 0.04em;
}

.icon-tag::before {
	content: '\f02b';
	font-family: var(--font-awesome);
	font-size: 16px;
	font-weight: 900;
	margin-right: 8px;
}



.inst-slider-thumb .slick-track {
	align-items: flex-end;
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 40px;
	justify-content: center !important;
	transform: none !important;
	width: auto !important;
}

.inst-slider-thum__wrap {
	height: auto;
	width: 200px !important;
}

/* これがないとflex-wrapでボタンが勝手に増える */
.inst-slider-thum__wrap.slick-slide.slick-cloned {
	display: none;
}

.inst-slider-thum__wrap.slick-slide {
	cursor: pointer;
}

.inst-slider-thumb__item {
	border: 1px solid #C9F2FF;
	border-radius: 15px;
	height: 190px;
	min-width: 200px !important;
	padding: 60px 10px 27px;
	position: relative;
	text-align: center;
	width: 200px !important;
	z-index: 1;
}

.inst-slider-thumb__photo {
	border: 1px solid #C9F2FF;
	border-radius: 50%;
	height: 96px;
	left: 50%;
	position: relative;
	top: 50px;
	transform: translateX(-50%);
	width: 96px;
	z-index: 5;
}

.inst-slider-thumb__name {
	color: var(--main-color);
	font-size: 22px;
	font-weight: 400;
	letter-spacing: .18em;
	margin-bottom: 13px;
}

.inst-slider-thumb__name span {
	font-size: 16px;
	letter-spacing: .18em;
}

.inst-slider-thumb__tags {
	align-items: center;
	display: flex;
	flex-direction: column;
	font-size: 10px;
	gap: 13px;
}

/*  折り返し */

.inst-slider-thumb .slick-list {
	overflow: visible !important;
}

/* floatのなごり 不要 */
.slick-track::before,
.slick-track::after {
	content: none !important;
	display: none !important;
}

/*  矢印 */
.prev-arrow, .next-arrow {
	cursor: pointer;
	position: absolute;
	top: 45%;
	transform: translateY(-50%);
	z-index: 100;
}

.prev-arrow {
	left: -100px;
}

.next-arrow {
	right: -100px;
}

@media (width <=1024px) {
	.instructor {
		padding-bottom: 80px;
		padding-top: 80px;
	}
}


@media (width <=1300px) {
	.inst-slider .slick-list {
		margin-bottom: 0;
	}

	.inst-slider__profile {
		align-items: flex-start;
		flex-direction: column;
	}

	.inst-slider__face {
		margin: auto;
	}

	.inst-slider__movie iframe {
		max-width: 100%;
	}

	.inst-slider-thumb {
		display: none;
	}


	.inst-slider__box {
		padding: 25px;
	}

	.inst-slider__box-inner {
		flex-direction: column-reverse;
		gap: 30px;
	}

	.inst-slider__round-tag {
		flex-wrap: wrap;
	}

	.prev-arrow, .next-arrow {
		display: none !important;
	}
}



/* コース料金
==================================================== */
.price {
	background: var(--main-color);
	color: var(--white);
	padding-bottom: 60px;
	padding-top: 70px;
}

.price__title {
	color: inherit;
}

.price__title::before {
	color: inherit;
}

/* ピンポイント
==================================================== */
.pinpoint {
	background: var(--sub-color);
	padding: 45px 30px;
}

.pinpoint__container {
	max-width: 1480px;
}

.pinpoint__content {
	align-items: center;
	display: flex;
	gap: 92px;
	justify-content: center;

}

.pinpoint__sub-title {
	color: inherit;
	font-size: 32px;
	font-weight: 400;
	letter-spacing: .05em;
	margin-bottom: 17px;
	overflow-wrap: break-word;
	text-align: right;
	word-break: auto-phrase;
}

.pinpoint__sub-title::after {
	content: attr(data-en);
	display: block;
	font-family: var(--english-font);
	font-size: 28px;
	font-weight: 400;
	letter-spacing: 0.05em;
}

.pinpoint__cards {
	display: flex;
	flex-wrap: wrap;
	gap: 54px;
}

@media (width <=960px) {
	.pinpoint {
		padding: 45px 0;
	}

	.pinpoint__sub-title::after {
		text-align: center;
	}

	.pinpoint__content {
		flex-direction: column;
		gap: 45px;
	}

	.pinpoint__cards {
		flex-direction: column;
		gap: 20px;
	}
}

/* 別パターンのカードを作るときは.card--xxxにcolorを指定すると色が揃う */
.card {
	background: var(--light-gray);
	border-radius: 22px;
	color: var(--main-color);
	max-width: 325px;
	padding: 52px 25px;
	position: relative;
	text-align: center;
}

.card__num {
	color: var(--white);
	font-size: 90px;
	font-weight: 700;
	left: 22px;
	letter-spacing: 0.05em;
	line-height: 1;
	position: absolute;
	top: 15px;
	z-index: 0;
}

.card__content {
	display: grid;
	grid-template-rows: auto auto 10em auto;
	position: relative;
	z-index: 1;
}

.card__en {
	color: inherit;
	display: block;
	font-family: var(--english-font);
	font-size: 18px;
	letter-spacing: 0.05em;
}

.card__title {
	color: inherit;
	font-size: 24px;
	font-weight: 700;
	letter-spacing: 0.05em;
	margin-bottom: 9px;
}

.card__title span {
	display: block;
	font-size: 14px;
	font-weight: inherit;
	letter-spacing: inherit;
	line-height: 1.65;
}

/* 段落を変えない前提 */

/* デザイン通り少し内側に */
.card__text {
	color: var(--text-color);
	font-size: 16px;
	letter-spacing: 0.05em;
	line-height: 1.5;
	margin-bottom: 20px;
	padding: 0 .8em;
	text-align: justify;
}

.card__price {
	align-items: center;
	color: var(--text-color);
	display: flex;
	font-weight: 700;
	justify-content: space-around;
	letter-spacing: 0.05em;
}


.card__price-koma {
	background: var(--accent-color);
	border-radius: 100vh;
	font-size: 13px;
	font-weight: inherit;
	padding: 0.2em;
	width: 70px;
}


.card__price-inner {
	color: var(--text-color);
	font-weight: 700;
	letter-spacing: 0.05em;
}

.card__price-num {
	font-size: 33px;
	font-weight: inherit;
}

.card__price-yen {
	font-size: 16px;
	font-weight: inherit;
}

.card__price-tax {
	font-size: 12px;
	font-weight: inherit;
}

@media (width <=1024px) {
	.card {
		max-width: 325px;
		width: 100%;
	}

	.card__text {
		font-size: 14px;
	}
}

/* フルパック
==================================================== */

.fullpack {
	padding-top: 60px;
	text-align: center;
}

.fullpack__header {
	margin-bottom: 30px;
}

.fullpack__title {
	color: #C9F2FF;
	font-size: 24px;
	font-weight: 700;
	letter-spacing: 0.05em;
	margin-bottom: 16px;
}

.fullpack__text {
	color: var(--white);
	font-size: 16px;
	font-weight: 400;
	line-height: 2;
}

.fullpack__highlight {
	color: var(--accent-color);
	font-size: 21px;
	font-weight: 700;
	letter-spacing: inherit;
}

.fullpack__copy {
	color: #30bfea;
	font-family: var(--english-font);
	font-size: 57px;
	font-weight: 400;
}

/* === accordion === */

.accordion_area {
	height: 624px;
	margin-bottom: 60px;
	overflow: hidden;
}


.accordion_one .accordion_header {
	align-items: center;
	background-color: #d9d9d9;
	border-right: 1px solid var(--white);
	color: var(--text-color);
	cursor: pointer;
	display: flex;
	float: left;
	font-size: 24px;
	font-weight: bold;
	height: 624px;
	justify-content: center;
	padding: 0;
	position: relative;
	text-align: left;
	transition-duration: 0.2s;
	width: 4%;
	z-index: +1;
}

.accordion_one .accordion_header.open {
	background-color: var(--dark-green);
	color: var(--white);
}

.accordion_one .accordion_header:hover {
	opacity: .9;
}

.accordion_one .accordion_header .header_inner {
	font-size: 24px;
	font-weight: 400;
	letter-spacing: .4em;
	text-orientation: upright;
	writing-mode: vertical-rl;
}

.accordion_one .accordion_header .i_box {
	align-items: center;
	display: flex;
	height: 40px;
	justify-content: center;
	left: 50%;
	position: absolute;
	top: 20px;
	transform: translateX(-50%);
	transition-duration: 0.2s;
	width: 40px;
}

.accordion_one .accordion_header.stay .i_box {
	transform: rotate(0deg);

}

.accordion_one .accordion_header .i_box .one_i {
	display: block;
	height: 22px;
	position: relative;
	transform-origin: center center;
	transition-duration: 0.2s;
	width: 22px;
}

.accordion_one .accordion_header.stay .i_box .one_i {
	transform: rotate(0deg);
}

.accordion_one .accordion_header.open .i_box {
	transform: translateX(-50%) rotate(-135deg);
}

.accordion_one .accordion_header.stay.open .i_box {
	transform: translateX(-50%);
}

.accordion_one .accordion_header .i_box .one_i::before, .accordion_one .accordion_header .i_box .one_i::after {
	background-color: #fff;
	content: '';
	display: flex;
	height: 2px;
	left: 0;
	position: absolute;
	top: 9px;
	transform: rotate(0deg);
	transform-origin: center center;
	width: 22px;
}

.accordion_one .accordion_header .i_box .one_i::before {
	height: 22px;
	left: 9px;
	top: 0;
	width: 2px;
}

.accordion_one .accordion_header.stay .i_box .one_i::before {
	content: none;
}

.accordion_one .accordion_header.open .i_box .one_i::before {
	content: none;
}

.accordion_one .accordion_header.stay.open .i_box .one_i::before {
	content: none;
}

.accordion_one .accordion_header.stay .i_box .one_i::after,
.accordion_one .accordion_header.open .i_box .one_i::after {
	transform: rotate(-45deg);
}

.accordion_one .accordion_header.stay.open .i_box .one_i::after {
	transform: rotate(0deg);
}

/* accordion - content */
.accordion_one .accordion_inner {
	background: var(--white);
	box-sizing: border-box;
	display: none;
	float: left;
	height: 624px;
	overflow: scroll hidden;
	padding: 0;
	width: 80%;
}

/* これがないと内側のフレックスアイテムがのびてpadding-rightが効いてないように見える */
.accordion_wrap {
	display: flex;
	flex-wrap: nowrap;
	height: 100%;
	transition: transform 0.3s ease;
}

/* accordion - scrollbar */

.accordion_inner::-webkit-scrollbar {
	height: 8px;
	width: 8px;

}

.accordion_inner::-webkit-scrollbar-thumb {
	background: var(--dark-green);
	border-radius: 5px;

}

.accordion_inner::-webkit-scrollbar-track {
	background: #bbdbf3;
}


.accordion_one .accordion_inner.stay {
	display: block;
}

.accordion_one .accordion_inner .box_one {
	display: flex;
	gap: 34px;
	padding: 50px 40px;
}

.accordion_one .accordion_inner p.txt_a_ac {
	margin: 0;
}




@media screen and (width <=960px) {
	.accordion_area {
		height: auto;
	}

	.accordion_one .accordion_header {
		font-size: 16px;
		height: auto;
		justify-content: flex-start;
		padding: 1em 1em 1em 60px;
		width: 100%;
	}


	.accordion_one .accordion_header .i_box {
		height: 30px;
		left: 15px;
		top: 50%;
		transform: translate(0%, -50%);
		width: 30px;
	}

	.accordion_one .accordion_header.open .i_box {
		transform: translateX(0) translateY(-50%) rotate(-135deg);
	}

	.accordion_one .accordion_header.stay.open .i_box {
		transform: translateX(0) translateY(-50%) rotate(-180deg);
	}


	.accordion_one .accordion_header .header_inner {
		font-size: 18px;
		writing-mode: unset;
	}

	.accordion_one .accordion_inner {
		width: 100%;
	}

}

.card--ribbon {
	color: var(--dark-green);
	min-width: 400px;
	padding: 55px 24px 30px;
}

.card--ribbon .ribbon {
    background: var(--dark-green);
    color: #C9F2FF;
    display: inline-block;
    font-size: 12px;
    font-weight: 500;
    height: 70px;
    letter-spacing: 0.05em;
    margin: 0;
    padding: 15px 0 0;
    position: absolute;
    right: 20px;
    text-align: center;
    top: 0;
    width: 74px;
    z-index: 2;
}

.ribbon::after {
	border-bottom: 15px solid transparent;
	border-left: 37px solid var(--dark-green);
	border-right: 37px solid var(--dark-green);
	content: '';
	height: 0;
	left: 0;
	position: absolute;
	top: 100%;
	width: 0;
}

.ribbon span {
	font-size: 21px;
	line-height: 1;
}

.card--ribbon .card__content {
	grid-template-rows: auto auto 8.5em auto auto;
}

.card--ribbon .card__price {
	gap: 18px;
	justify-content: center;
}

.card__details {
	border: 1px solid var(--white);
	border-radius: 10px;
	color: inherit;
	font-size: 12px;
	font-weight: 400;
	letter-spacing: 0.15em;
	line-height: 1.58;
	margin-bottom: 12px;
	padding: 16px 22px;
	position: relative;
}

.card__details-label {
	background: var(--white);
	border-radius: 100vh;
	color: inherit;
	display: block;
	font-size: 12px;
	font-weight: 400;
	left: 50%;
	letter-spacing: inherit;
	padding: 2px 15px;
	position: absolute;
	top: -12px;
	transform: translateX(-50%);
	width: fit-content;
}

.frequency {
	align-items: center;
	display: flex;
	gap: 18px;
	justify-content: center;
	margin-bottom: 25px;
}

.frequency__label {
	background: var(--dark-green);
	border-radius: 3px;
	color: var(--white);
	font-size: 12px;
	font-weight: 400;
	letter-spacing: 0.015em;
	padding: 2px 12px;
}

.frequency__text {
	font-size: 18px;
	font-weight: 500;
	letter-spacing: 0.05em;
}

.frequency__text span {
	font-size: 25px;
}

@media (width <=1024px) {
	.accordion_one .accordion_inner .box_one {
		padding: 40px 30px;
	}

	.card.card--ribbon {
		/* min-width: 100%; */
		max-width: 400px;
	}

	.card--ribbon .card__price {
		gap: 7px;
	}

	.card__details {
		padding: 15px 10px;
	}

	.fullpack__copy {
		font-size: 40px;
	}

}

/* 合格者の声
==================================================== */
.report {
	padding-bottom: 200px;
	padding-top: 100px;
}

/* for photos */

.photo-stack {
	--gap: -48px;

	--item-width: 23%;

	align-items: center;
	box-sizing: border-box;
	display: flex;
	gap: 0;
	justify-content: center;
	overflow: visible;
	padding: 0 15px;
}

/* 各アイテム（figure）を整える */
.photo-stack__item {
	margin: 0;
	position: relative;
}

/* 先頭以外を左に重ねる */
.photo-stack__item+.photo-stack__item {
	margin-left: var(--gap);
}

/* 画像そのもの */
.photo-stack__img {
	background: transparent;
	display: block;
	height: auto;
	object-fit: contain;
	width: 100%;
}

/* それぞれの前後関係（例：交互に手前/奥） */
.photo-stack__item:nth-child(1) {
	transform: translateY(90px);
	z-index: 10;
}

.photo-stack__item:nth-child(2) {
	transform: translateX(-60px);
	z-index: 5;
}

.photo-stack__item:nth-child(3) {
	transform: translate(-60px, 95px);
	z-index: 4;
}

.photo-stack__item:nth-child(4) {
	transform: translate(-30px, 45px);
	z-index: 6;
}

.photo-stack__item:nth-child(1) .photo-stack__img {
	max-width: 550px;
}

.photo-stack__item:nth-child(2) .photo-stack__img {
	max-width: 425px;
}

.photo-stack__item:nth-child(3) .photo-stack__img {
	max-width: 385px;
}

.photo-stack__item:nth-child(4) .photo-stack__img {
	max-width: 380px;
}

@media (width <=900px) {
	.report {
		padding-bottom: 80px;
		padding-top: 80px;
	}

	.photo-stack {
		align-items: stretch;
		flex-direction: column;
	}

	/* z-index と translateY は無視して自然な積み上げに */

	.photo-stack__item {
		flex-basis: auto;
		margin-bottom: 12px;
		margin-left: 0 !important;
		transform: none !important;
		width: 100%;
		z-index: auto !important;
	}

	.photo-stack__img {
		margin: 0 auto;
		max-width: unset !important;
		width: 100%;
	}


}



/* 簿記講師インタビュー動画
==================================================== */

.interview__content {
	display: flex;
}

.interview__header {
	background: var(--main-color);
	min-width: 757px;
	padding: 92px 80px 65px;
	width: 44%;
}

.interview__title::before {
	color: rgb(71 212 255 / 70%);
	content: attr(data-en);
	font-family: var(--english-font);
	font-size: clamp(40px, 4vw, 84px);
	font-weight: 400;
	letter-spacing: 0.05em;
	line-height: 1.15;
	margin-bottom: 20px;
	text-align: right;
}

.interview__title {
	color: var(--white);
	font-size: 30px;
	font-weight: 400;
	letter-spacing: 0.05em;
	margin-bottom: 80px;
	text-align: right;
}

.interview__title i {
	font-size: 28px;
	margin-right: 14px;
}

.interview__sub-title {
	color: #FFF;
	font-family: var(--serif-font);
	font-size: 21px;
	font-weight: 400;
	letter-spacing: 0.2em;
	line-height: 1.1;
	margin-bottom: 30px;
	text-align: right;
}

.interview__name {
	font-family: inherit;
	font-size: 48px;
}

.interview__after-name {
	font-family: inherit;
	font-size: 32px;

}

.interview__text {
	color: #FFF;
	letter-spacing: 0.04em;
	line-height: 2.06;
}

.interview__video {
	position: relative;
	width: 100%;
}

.interview__video iframe {
	height: 100%;
	left: 0;
	position: absolute;
	top: 0;
	width: 100%;
}

@media (width <=1024px) {
	.interview__content {
		flex-direction: column;
	}


	.interview__header {
		min-width: unset;
		padding: 60px 30px;
		width: 100%;
	}

	.interview__title {
		font-size: 18px;
		margin-bottom: 30px;
	}

	.interview__sub-title {
		font-size: 14px;
	}

	.interview__title i {
		font-size: 21px;
	}

	.interview__name {
		font-size: 33px;
	}

	.interview__after-name {
		font-size: 22px;
	}

	.interview__video {
		padding-top: 60%;
	}
}

/* contact
==================================================== */
.contact {
	padding-bottom: 60px;
	padding-top: 90px;
	text-align: center;
}

.contact__container {
	max-width: 1140px;
}

.contact__copy {
	color: var(--main-color);
	font-family: var(--serif-font);
	font-size: 31px;
	font-weight: 400;
	letter-spacing: 0.04em;
	line-height: 2;
	margin-bottom: 90px;
}

.contact__text {
	margin-bottom: 80px;
}

.cta--mini {
	background-image: none;
	color: var(--main-color);
	padding: 0;
}

.cta--mini .cta__label {
	background: var(--main-color);
	color: var(--white);
}

.cta-wrapper--contact {
	margin-bottom: 80px;
}

@media (width <=1024px) {
	.contact__copy {
		font-size: 22px;
	}
}

/* footer
==================================================== */

.site-footer {
	background: var(--dark-green);
	color: var(--white);
	padding: 42px 0 100px;
	text-align: center;
}

.site-footer__inner {
	align-items: flex-end;
	display: flex;
	justify-content: space-between;
	margin-bottom: 60px;
	padding-left: 16px;
	padding-right: 42px;
}

.cta--white {
	color: var(--white);
	padding: 0;
}

.cta--white .cta__label {
	background: none;
}

.site-footer .cta__content {
	margin-bottom: 0;
}


.site-footer__image {
	width: clamp(100px, 12vw, 145px);
}

.site-footer__logo-text {
	font-size: 11px;
	font-weight: 400;
	letter-spacing: 0.05em;
	line-height: 1.45;
}

.site-footer__copyright {
	font-size: 11px;
	font-weight: 400;
	letter-spacing: 0.05em;
	line-height: 1.45;
}

.footer-nav {
	margin-bottom: 20px;
}


.footer-menu {
	display: flex;
	justify-content: center;
	list-style: none;
}

.footer-menu li {
	border-right: 1px solid var(--white);
	display: grid;
	max-height: 16px;
	padding: 0 1em;
	place-items: center;
}

.footer-menu li:last-of-type {
	border-right: none;
}

.footer-menu__item {
	color: inherit;
	font-size: 11px;
	font-weight: 400;
	letter-spacing: 0.05em;
	line-height: 1;
	text-align: center;
}


@media (width <=960px) {
	.site-footer {
		padding: 30px 10px;
	}

	.site-footer .cta__content {
		flex-direction: column;
	}

	.footer-nav {
		margin-bottom: 30px;
	}

	.footer-menu li {
		border-right: 0;
	}

	.footer-menu__item {
		font-size: 12px;
	}

	.site-footer__inner {
		align-items: center;
		flex-direction: column;
		gap: 30px;
		padding: 0;
	}

	.site-footer__image {
		width: 130px;
	}

	.site-footer__copyright {
		font-weight: 300;
		padding: 0;
	}

}

@media (width <=1024px) {
	.footer-menu {
		display: grid;
		gap: 20px;
		grid-template-columns: 1fr 1fr;
		margin-top: 0;
		place-items: flex-start;
	}
}




/* 固定ページ
==================================================== */


body.page, body.error404 {
	background-image: url("images/left-top-circles.svg");
	background-position: left top;
	background-repeat: no-repeat;
	background-size: 50% auto;
	padding-top: calc(var(--header-height) + 25px);
}

.page-article {
	padding-bottom: 80px;
}

.page-header {
	text-align: center;
}


.page__title {
	color: var(--main-color);
	font-size: 32px;
	font-weight: 400;
	letter-spacing: 0.05em;
	text-align: center;
}

.page__title::before {
	color: var(--main-color);
	content: attr(data-en);
	font-family: var(--english-font);
	font-size: 18px;
	font-weight: 400;
	letter-spacing: 0.05em;
	line-height: 21px;
	text-align: center;
}

.page__header.section-header {
	margin-bottom: 125px;
}

.page__section {
	padding-top: 30px;
	position: relative;
}


@media (width <=1024px) {
	.page-header img {
		height: 300px;
	}
}

.page-record__container {
	margin-bottom: 120px;
	max-width: var(--max-w);
	width: 90%;
}



/* === 問合せステップ === */

.step {
	margin: 0 auto 28px;
	position: relative;
	width: fit-content;
}

.step__line {
	border-top: 1px solid var(--dark-gray);
	left: 50%;
	position: absolute;
	top: 50%;
	transform: translate(-50%, -50%);
	width: 100%;
	z-index: 0;
}

.step__list {
	display: flex;
	gap: 50px;
	justify-content: center;
	list-style: none;
	margin-bottom: 90px;
	position: relative;
}

.step__list-item {
	align-items: center;
	background-color: #E6E6E6;
	border-radius: 50%;
	display: flex;
	font-size: 16px;
	font-weight: 700;
	height: 106px;
	justify-content: center;
	letter-spacing: 1em;
	text-align: center;
	width: 106px;
}

.step__list-item.current {
	background: var(--main-color);
	color: var(--white);
}

.step__list-item span:last-of-type {
	font-weight: inherit;
	letter-spacing: 0;
}



/* === フォーム === */

.form {
	background-color: #fff;
	border-radius: 30px;
	box-shadow: 0 0 40px 0 #0000001A;
	color: var(--main-color);
	margin: 0 auto;
	padding: 50px 90px 70px 50px;
	position: relative;
}

.form__text {
	color: currentcolor;
	font-size: 16px;
	font-weight: 700;
	letter-spacing: .22em;
	margin-bottom: 30px;
	text-align: center;
}


.mwform-checkbox-field.horizontal-item {
	flex: 1;
	padding-left: 14px;
	text-align: left;
	white-space: nowrap;
}

/* 通常エラー */
.mw_wp_form .error {
	display: inline;
	font-size: 12px !important;
	letter-spacing: 0.1em;
	text-align: left;
	width: 100%;
}

.select-wrapper .error {
	left: 0;
}

.form__group .error {
	display: block;
	padding-top: 1em;
}


/* checked */

.form__inner--type .mwform-checkbox-field.horizontal-item {
	align-items: center;
	border: 1px solid var(--light-gray);
	border-radius: 15px;
	display: flex;
	height: 60px;
	justify-content: flex-start;
	padding: 20px;
	width: fit-content;
}

.form__inner--type .mwform-checkbox-field.horizontal-item:has(input:checked) {
	background-color: var(--main-color);
	color: var(--white);
	transition: background-color 0.3s;
}

.form__inner--type .mwform-checkbox-field.horizontal-item:has(input:checked) .mwform-checkbox-field-text::before {
	background-color: var(--white);
}


.mw_wp_form .horizontal-item+.horizontal-item {
	margin-left: 35px !important;
}


.form__confirm-btns {
	display: flex;
	gap: 30px;
	justify-content: center;
}

.form__btn {
	background-color: var(--main-color);
	border: none;
	border-radius: 100vh;
	color: #fff;
	display: block;
	font-size: 18px;
	font-weight: 700;
	letter-spacing: .22em;
	line-height: 1;
	margin: 0 auto;
	padding: 32px 2em;
	text-align: center;
	width: 405px;
}

.form__btn--back, .form__btn--confirm {
	margin: 0;
}

.form__btn--back {
	background: #fff;
	border: 2px solid currentcolor;
	color: var(--sub-color);
}

.mwform-checkbox-field-text {
	color: var(--main-color);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .22em;
}

/* チェックボックス本体は非表示に */
.mwform-checkbox-field input[type="checkbox"] {
	display: none;
}

/* ラベル内のspanをチェックボックスの見た目にする */
.mwform-checkbox-field span.mwform-checkbox-field-text {
	align-items: center;
	color: inherit;
	cursor: pointer;
	display: inline-flex;
	height: 22px;
	padding-left: calc(22px + 19px);
	position: relative;
	user-select: none;
}

/* 疑似チェックボックスの枠 */
.mwform-checkbox-field span.mwform-checkbox-field-text::before {
	background-color: #FFB6B6;
	border-radius: 3px;
	content: "";
	height: 22px;
	left: 0;
	position: absolute;
	top: 0;
	width: 22px;
}

.form__inner--type .mwform-checkbox-field span.mwform-checkbox-field-text {
	font-size: 16px;
	font-weight: 350;
	letter-spacing: 0.22em;
}

.form__inner--type .mwform-checkbox-field span.mwform-checkbox-field-text::before {
	background-color: #e6e6e6;
}

/* === プライバシーポリシー === */
.privacy-box {
	border: 1px solid var(--dark-gray);
	border-radius: 15px;
	color: var(--text-color);
	height: 235px;
	margin-top: 20px;
	padding: 24px 8px 24px 40px;
	width: auto;
}

.privacy-box__inner {
	height: 100%;
	overflow-y: scroll;
	padding-right: 30px;
}

/* Webkit系ブラウザのカスタムスクロールバー */
@supports selector(::-webkit-scrollbar) {
	.privacy-box__inner::-webkit-scrollbar {
		height: 8px;
		width: 8px;
	}

	.privacy-box__inner::-webkit-scrollbar-thumb {
		background: var(--text-color);
	}
}

/* Firefox専用のスクロールバー */
@supports not selector(::-webkit-scrollbar) {
	.privacy-box__inner {
		scrollbar-color: var(--text-color) #fff;
		scrollbar-width: thin;
	}
}


.privacy-box h3 {
	font-size: 16px;
	font-weight: 700;
	letter-spacing: .22em;
	line-height: 1.5;
	margin-bottom: 10px;
	text-align: center;
}

.privacy-box p {
	font-size: 12px;
	font-weight: 400;
	letter-spacing: .22em;
	line-height: 1.5;
	margin-bottom: 1em;
}

.privacy-box .address {
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .22em;
	line-height: 1.5;
	margin-bottom: 12px;
	text-align: right;
}

/* チェック時のマーク */
.mwform-checkbox-field input[type="checkbox"]:checked+span.mwform-checkbox-field-text::after {
	border: solid var(--main-color);
	border-width: 0 3px 3px 0;
	content: "";
	height: 10px;
	left: 8px;
	position: absolute;
	top: 4px;
	transform: rotate(45deg);
	width: 6px;
}

/* form - privacy-policy */

.form__privacy-policy input[type="checkbox"]:checked+span.mwform-checkbox-field-text::after {
	border: solid var(--white);
	border-width: 0 3px 3px 0;
}



.form__inner {
	display: flex;
	flex-wrap: wrap;
	gap: 40px;
	margin-bottom: 40px;
	width: 100%;
}

.full-width {
	column-gap: 20px;
	width: 100% !important;
}


.form__label {
	align-items: flex-start;
	display: inline-flex;
	gap: 20px;
	width: calc((100% - 40px) / 2);
}

.form__label--check {
	align-items: center;
	width: 100%;
}


.form__label--long {
	align-items: flex-start;
	margin-bottom: 40px;
	width: 100%;
}

/* チェックボックス部の特別対応 */
.form__check-wrapper {
	display: flex;
	gap: 20px;
	margin-bottom: 65px;
}

.form__label input, .form__label select {
	background: var(--input-bg-color);
	border: none;
	border-radius: 15px;
	color: var(--text-color);
	flex: 1;
	font-weight: 400;
	padding: 1em;
	width: 100%;
}

.form__label select {
	appearance: none;
	cursor: pointer;

}

.form__label textarea {
	background: var(--input-bg-color);
	border: none;
	border-radius: 15px;
	color: var(--text-color);
	flex: 1;
	font-weight: 400;
	padding: 1em;
	width: 100%;
}

.form__label input::placeholder, .form__label textarea::placeholder, .form__label select {
	color: var(--dark-gray);
	font-size: 16px;
	font-weight: 350;
	letter-spacing: .22em;
}

.select-wrapper {
	flex: 1;
	max-height: 80px;
	position: relative;
	width: 100%;
}

.select-wrapper::after {
	border-left: 10px solid transparent;
	border-right: 10px solid transparent;
	border-top: 8px solid var(--dark-gray);
	content: "";
	height: 0;
	pointer-events: none;
	position: absolute;
	right: 1.25em;
	top: 26px;
	width: 0;
}

.mw_wp_form_confirm .select-wrapper {
	color: #9FA0A0;
	font-size: 16px;
	font-weight: 350;
	letter-spacing: 0.22em;
}


.form__label-title, .form__check-wrapper .form__label {
	display: inline-block;
	flex: 0;
	font-size: 18px;
	font-weight: 700;
	letter-spacing: .22em;
	min-width: 125px;
	text-align: right;
}

/* 問合せ種別 */

.form__contact-type .form__type-check-wrapper {
	display: flex;
	flex-wrap: wrap;
	margin-bottom: 0;
}

/* エラーメッセージを一段下に表示 */
.form__contact-type .form__type-check-wrapper .error {
	display: block;
	padding-top: 5px;
	width: 100%;
}

.mw_wp_form_confirm .form__contact-type {
	align-items: center;
}




.form__small-title {
	font-size: 12px;
	font-weight: 700;
	line-height: 1.5;
}

/*  「必須」など */
.form__label-note {
	display: block;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .22em;
	padding-top: 6px;
}

.form__group {
	flex: 1;
	text-align: left;
}




.form__small-text {
	font-size: 10px;
	font-weight: 700;
}

/* これで囲まないとレイアウト崩れる */
.form__label-content {
	flex: 1;
	max-height: 90px;
	width: 100%;
}


/*  日付選択 */

.form__label-content.form__label-content--date {
	flex: none;
	margin-bottom: 30px;
}

.form__label-content--date span {
	color: var(--main-color);
	display: block;
	font-size: 15px;
	font-weight: 400;
	letter-spacing: 0.22em;
	line-height: 116%;
	margin-bottom: 12px;
	text-align: left;
}


/* align-items for error text */
.form__date {
	align-items: center;
	display: flex;
	gap: 35px;
}

/* 入れないとエラー画面で狭くなる */
.form__date input, .form__date select {
	letter-spacing: 0.22em;
	min-width: 295px;
	width: 295px;
}

.form__date .select-wrapper {
	flex: 0;
}

/* calendar mark */

.form__date-box {
	letter-spacing: inherit;
	position: relative;
	width: 295px;
}

.form__date-box::after {
	color: var(--main-color);
	content: '\f073';
	font-family: var(--font-awesome);
	font-size: 21px;
	font-weight: 900;
	pointer-events: none;
	position: absolute;
	right: 20px;
	top: 50%;
	transform: translateY(-50%);
}

.mw_wp_form_confirm .form__date .select-wrapper {
	flex: auto;
}


/* アンケート */


.form__survey-item {
	border-top: 1px solid var(--light-gray);
	padding: 25px 0;
}

.form__survey-item:last-of-type {
	border-bottom: 1px solid var(--light-gray);

}

/* 1．学習ペースについて etc */
.form__survey-label {
	color: var(--main-color);
	display: block;
	font-size: 15px;
	font-weight: 400;
	letter-spacing: .22em;
	margin-bottom: 16px;
	text-align: left;
}

/* options */
.form__survey .mwform-checkbox-field-text {
	font-size: 15px;
	font-weight: 400;
	letter-spacing: .22em;
}

.form__survey-check {
	display: flex;
	gap: 45px;
}

.form__survey-check .mwform-checkbox-field.horizontal-item {
	flex: 0;
	margin-bottom: 0;
	margin-left: 0 !important;
	padding-left: 0;
}

.form__survey-check .mwform-checkbox-field-text {
	margin-bottom: 0;
}

/* checkbox */
.form__survey .mwform-checkbox-field span.mwform-checkbox-field-text::before {
	background-color: var(--light-gray);
}

/* checkmark */
.form__survey .mwform-checkbox-field input[type="checkbox"]:checked+span.mwform-checkbox-field-text::after {
	border-color: currentcolor;
}

@media (width <=1000px) {
	.mw_wp_form .horizontal-item+.horizontal-item {
		margin-left: 0 !important;
	}

	.form__date {
		flex-direction: column;
	}

	.form__date-box {
		width: 100%;
	}

	.form__survey {
		width: 100%;
	}

	.form__survey-check {
		flex-direction: column;
		gap: 10px;
	}
}


.form__label--long .form__label-content {
	max-height: none;
}




.mw_wp_form .error:nth-of-type(3) {
	bottom: -3.5em !important;
	color: blue !important;
}



@media (width <=1024px) {
	.form__type-check-wrapper {
		flex-direction: column;
		gap: 20px;
	}

	.form__type-check-wrapper .error {
		padding-top: 0;
	}
}

/* === 確認画面 === */

.mw_wp_form_confirm .form__label {
	align-items: center;
	color: var(--text-color);
}

.mw_wp_form_confirm .form__label-content {
	color: #9FA0A0;
	font-size: 16px;
	font-weight: 350;
	letter-spacing: 0.22em;
}

.mw_wp_form_confirm .form__label-title {
	color: var(--main-color);
	margin-top: 0;
}

.mw_wp_form_confirm .select-wrapper::after,
.mw_wp_form_confirm .privacy-box {
	display: none;
}

.mw_wp_form_confirm .form__label--long {
	align-items: center;
}

/* confirm - privacy */

.mw_wp_form_confirm .form__group {
	color: #9FA0A0;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.22em;
}

.mw_wp_form_confirm .form__check-wrapper {
	align-items: flex-start;
}

.mw_wp_form_confirm .full-width .form__label {
	align-items: flex-start;
	width: 100%;
}

/* type */

.mw_wp_form_confirm .form__type-check-wrapper {
	color: #9FA0A0;
	font-size: 16px;
	font-weight: 350;
	gap: 0;
	letter-spacing: 0.22em;
}


/* date */

.mw_wp_form_confirm .form__label-content--date span {
	margin-bottom: 25px;
}

.mw_wp_form_confirm .form__date {
	color: #9FA0A0;
	font-size: 16px;
	font-weight: 350;
	letter-spacing: 0.22em;
}

/* survey */

.mw_wp_form_confirm .form__survey {
	width: 100%;
}

.mw_wp_form_confirm .form__survey-check {
	color: #9FA0A0;
	font-size: 16px;
	font-weight: 350;
	gap: 0;
	letter-spacing: 0.22em;
}

/* confirm - checkmark */
.mw_wp_form_confirm .form__group::before,
.mw_wp_form_confirm .form__type-check-wrapper::before,
.mw_wp_form_confirm .form__survey-check::before {
	color: var(--main-color);
	content: '\f00c';
	font-family: var(--font-awesome);
	font-weight: 900;
	margin-right: 16px;
}

@media (width <=1024px) {
	.form {
		padding: 50px 20px;
	}

	.step__list {
		gap: 20px;
		margin-bottom: 30px;
	}

	.step__list-item {
		height: 80px;
		width: 80px;
	}

	.form__inner {
		gap: 1.5em;
	}

	.form__label, .form__check-wrapper {
		align-items: flex-start;
		flex-direction: column;
		gap: .5em;
		width: 100%;
	}

	.form__label--long {
		margin-bottom: 1.5em;
	}

	.form__label-title, .form__check-wrapper .form__label {
		font-size: 16px;
		margin-bottom: 0;
		text-align: left;
		width: auto;
	}

	.lower {
		padding-top: 0;
	}

	.form__label input, .form__label select {
		border-radius: 10px;
		width: 100%;
	}

	.form__btn {
		width: 100%;
	}

	.mwform-checkbox-field.horizontal-item {
		padding-left: 0;
	}

	.form__label-content--date {
		flex: none;
		margin-bottom: 30px;
		max-height: unset;
	}

	.privacy-box {
		border-radius: 20px;
	}

	.mw_wp_form .error {
		left: 0;
	}

	.mw_wp_form_confirm .form__date {
		align-items: flex-start;
	}

	/* === 確認画面 === */
	.mw_wp_form_confirm .form__label--long {
		align-items: flex-start;
	}

	.mw_wp_form_confirm .form__label {
		align-items: flex-start;
	}

	.form__confirm-btns {
		flex-direction: column;
	}

	.mw_wp_form_confirm .form__survey-check,
	.mw_wp_form_confirm .form__type-check-wrapper {
		flex-direction: row;
		flex-wrap: unset;
	}
}

/* 送信完了 */

.mw_wp_form_complete {
	color: var(--text-color);
	text-align: center;
}

/* 404
==================================================== */

.error-page__section {
	padding-top: 0;
}

.error-page__container {
	text-align: center;
}


/* 校舎のご案内
==================================================== */
.school-list {
	padding-bottom: 165px;
	padding-top: 60px;
}

.school-list__container {
	max-width: 1390px;
}

.schools {
	color: var(--main-color);
	display: flex;
	flex-wrap: wrap;
	gap: 40px;
	justify-content: center;
}

.schools__item {
	border: 1px solid currentcolor;
	border-radius: 15px;
	max-width: 390px;
	padding: 30px 5px 20px 20px;
	width: calc(100% / 3 - 40px);
}

.schools__name-en {
	display: block;
	font-family: var(--english-font);
	font-size: 18px;
	font-weight: 400;
	letter-spacing: 0.05em;
	text-align: center;
}

.schools__name {
	display: block;
	font-size: 24px;
	font-weight: 400;
	letter-spacing: 0.2em;
	margin-bottom: 10px;
	text-align: center;

}

.schools__content {
	display: flex;
	gap: 20px;
	justify-content: flex-start;
}

.schools__cord a {
	color: inherit;
	display: block;
	font-size: 12px;
	font-weight: 400;
	letter-spacing: 0.1em;
	margin-bottom: 2px;
	text-align: center;
	text-decoration-line: underline;
}

.schools__cord a i {
	font-size: 13px;
	margin-right: 3px;
}

.schools__cord img {
	max-width: 108px;
}

.schools__address {
	font-size: 14px;
	font-weight: 400;
	letter-spacing: 0.1em;
	line-height: 1.8;
	margin-bottom: 8px;


}

.schools__text {
	color: inherit;
	display: block;
	font-size: 13px;
	font-weight: 400;
	letter-spacing: 0.1em;
	text-decoration-line: underline;
}

.schools__icon {
	font-size: 13px;
	margin-right: 5px;
}

@media (width <=1024px) {
	.school-list {
		padding-bottom: 80px;
	}

	.schools {
		align-items: center;
		flex-direction: column;
		gap: 20px;
	}

	.schools__item {
		padding: 20px 15px;
		width: 100%;
	}

	.schools__cord img {
		max-width: 90px;
	}
}

.js-scrollable {
	overflow-x: auto;
}

.scroll-hint-icon-wrap {
	z-index: 80;

}

.swipe-hint {
	display: none;
}

@media (width <=1300px) {
	.slider-wrapper {
		position: relative;
	}

	.swipe-hint {
		background: rgb(0 0 0 / 50%);
		border-radius: 6px;
		color: #fff;
		display: block;
		font-size: 13px;
		padding: 4px 8px;
		pointer-events: none;
		position: absolute;
		right: 10px;
		top: 10px;
		z-index: 999999999;
	}

}