/*
Theme Name: demo - Web Design 30 days
Version: 1.0.1
Template: blankslate
*/

@charset "UTF-8";

@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&family=WDXL+Lubrifont+JP+N&display=swap');

:root {
	/* color */
	--color-main: #ff8a00;
	--bg-color: #fff;
	--color-text: #333;
	--color-text-dark: #222;
	--gradation: linear-gradient(135deg, #ff8a00, #e52e71);


	/* font */
	--font-main: "Noto Sans JP", sans-serif;
	--font-en: "WDXL Lubrifont JP N", sans-serif;
	--font-awesome: "Font Awesome 6 Free";
	--s14: calc(14rem / 16);
	--s16: calc(16rem / 16);
	--s20: calc(20rem / 16);
	--s24: calc(24rem / 16);
	--s32: calc(32rem / 16);
	--s40: calc(40rem / 16);
	--s48: calc(48rem / 16);
	--s56: calc(56rem / 16);
	--s64: calc(64rem / 16);
	--s80: calc(80rem / 16);
	--s96: calc(96rem / 16);
	--s120: calc(120rem / 16);


	/* spacing */
	--space-xs: 4px;
	--space-sm: 8px;
	--space-md: 1rem;
	--space-md-lg: var(--s24);
	--space-lg: var(--s32);
	--space-xl: 40px;
	--space-2xl: 48px;
	--space-3xl: var(--s56);
	--space-4xl: var(--s64);
	--space-5xl: var(--s80);
	--space-6xl: var(--s96);
	--space-section: calc(160rem / 16);

	/* layout */
	--max-width: 1200px;
	--post-width: 800px;
	--header-height: 120px;
	--mb-header-height: 55px;

}

* {
	box-sizing: border-box;
	font-weight: 400;
	letter-spacing: .05em;
	list-style-type: none;
	margin: 0;
	padding: 0;
}

body {
	color: var(--color-text);
	font-family: var(--font-main);
	line-height: 1.6;
}

/* 
NOTE:
・PC大画面 → 16pxで固定（それ以上大きくならない）
・中間幅 → なめらかに縮小
・小さくなりすぎたら → 14pxで止まる
・SP → 強制16px（読みやすさ優先）
 */
html {
	font-size: clamp(14px, 1vw, 16px);
	scroll-behavior: smooth;
	scroll-padding-top: 60px;
}

body {
	font-family: var(--font-main);
	color: var(--color-text);
}

h2, h3 {
	font-weight: 600;
}

a {
	transition: .2s;
	text-decoration: none;
	cursor: pointer !important;
}

a:hover {
	opacity: .5;
}

span {
	font-size: inherit;
}

.section {
	padding-block: var(--space-section);
}

/* FAQの黒い矢印を消す */
summary {
	list-style: none;
}

/* Safari用の特殊対応（余白を調整） */
summary::-webkit-details-marker {
	display: none;
}

.btn {
	white-space: nowrap;
}

.btn:hover {
	opacity: unset;
	transform: scale(1.02);
}

/* ※本サイトはデモ（架空案件）です */
.note {
    font-size: var(--s14);
    margin-top: -.4em;
    font-weight: 500;
		color: white;
}

.section__title {
	position: relative;
	font-size: var(--s48);
	font-weight: 700;
	z-index: 1;
	text-align: center;
	margin-bottom: var(--space-6xl);
	color: var(--color-text-dark);
}

.section__title--white {
	color: #fff;
}

.section__title-en {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	font-size: var(--s120);
	background: linear-gradient(90deg, rgba(255, 200, 100, 0.7), rgba(255, 150, 50, 0.7));
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	font-weight: 700;
	z-index: -1;
	pointer-events: none;
	max-width: 100%;
	overflow-x: hidden;
}

.section__title-en--white {
	background: none;
	-webkit-background-clip: initial;
	-webkit-text-fill-color: rgba(255, 255, 255, 0.2);
	color: rgba(255, 255, 255, 0.2);
}

@media (max-width: 767px) {
	.section__title-en {
		font-size: 4.5rem;
	}
}


button, input[type=submit] {
	cursor: pointer;
}

/* レスポンシブ対応（例） */
@media (max-width: 768px) {
	.section {
		padding-block: var(--space-6xl);
	}

	.section__title {
		font-size: 24px;
		margin-bottom: var(--space-5xl);
	}
}

/* 圏点 */
.dot-above {
	text-emphasis: filled dot white;
	font-weight: inherit;
}

.container {
	max-width: var(--max-width);
	margin: 0 auto;
	width: 90%;
}

.my-hd-en {
	font-size: 5rem;
	font-weight: 700;
}


/* header
====================================================*/

.site-header {
	height: var(--header-height);
	background: none;
	width: 100%;
	position: absolute;
	top: 0;
	left: 0;
	z-index: 9999;
}

.site-header__container {
	display: flex;
	justify-content: space-between;
	align-items: center;
	height: 100%;
	max-width: unset;
	width: 90%;
}

.site-header__inner.fadeDown.is-animated {
	animation: fadeDown 1s forwards;
}

@keyframes fadeDown {
	0% {
		transform: translateY(-30px);
		opacity: 0;
	}

	80% {
		opacity: 1;
	}

	100% {
		opacity: 1;
		transform: translateY(0);
	}
}

.site-branding__link {
	font-weight: 500;
	color: #fff;
	font-family: var(--font-en);
	font-size: var(--s32);
	/* display: flex;
	align-items: center; */
	height: 100%;
}


/* WP dashboard menu */

.main-menu {
	display: flex;
	gap: 2em;
	align-items: center;
}

.main-menu__item {
	font-weight: 500;
	color: #fff;
}

.main-menu__item a {
	color: inherit;
	letter-spacing: 0.1em;
	font-weight: 500;
}

.main-menu__item--top {
	display: none;
}

.main-menu__item--contact a {
	background: var(--gradation);
	padding: 1em 2em;
	display: flex;
	justify-content: center;
	align-items: center;
	border-radius: 100vh;
	white-space: nowrap;
	color: white;
}

.main-menu__item--contact a:hover {
	opacity: unset;
		transform: scale(1.02);

}

@media (max-width: 1024px) {
	.site-header {
		position: fixed;
	background: rgba(0, 0, 0, .7);
		height: 60px;
	}

	.site-header__inner.fadeDown.is-animated {
		animation: none;
	}

	.site-branding__link {
		font-size: var(--s24);
	}
}

/* === header animation === */

/* === スクロールした後のヘッダーB === */

.site-header-sub {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	transform: translateY(-100px);
	transition: all 0.3s;
	background: rgba(0, 0, 0, .7);
	z-index: 3;
	display: flex;
	justify-content: flex-end;
	align-items: center;
	height: calc(var(--header-height) - 20px);
}

.site-header-sub.scrolled {
	transform: translateY(0);
	/* スクロール後に表示 */
}

.site-header-sub__container {
	width: 90%;
	display: flex;
	justify-content: space-between;
	max-width: unset;
	align-items: center;
}

.site-header-sub .menu-item a {
	color: #fff;
	font-weight: 500;
}

@media (max-width: 1024px) {
	.site-header-sub {
		display: none;
	}
}

/* mb header
====================================================*/
/* === ハンバーガーメニュー === */


@media (max-width: 1024px) {
	.main-navigation {
		position: fixed;
		right: -320px;
		top: 0;
		width: 300px;
		/* スマホに収まるサイズ */
		height: 100vh;
		padding-top: 80px;
		background-color: #fff;
		transition: all .6s;
		z-index: 200;
		overflow-y: auto;
		/* メニューが多くなったらスクロールできるように */
	}


	.hamburger {
		position: absolute;
		right: 15px;
		top: 17px;
		width: 40px;
		height: 40px;
		cursor: pointer;
		z-index: 300;
	}


	.main-menu {
		flex-direction: column;

	}


	.menu-item {
		width: 100%;
	}


	.main-menu__item a {
		color: var(--color-text);
	}

	.main-menu__item--contact a {
		color: white;
	}

	.menu-item a:hover {
		background-color: #eee;
	}

	/* === 線 === */

	.hamburger_border {
		position: absolute;
		left: 11px;
		width: 18px;
		height: 2px;
		background-color: #fff;
		transition: all .6s;
	}


	.hamburger_border_top {
		top: 6px;
	}


	.hamburger_border_center {
		top: 12px;
	}


	.hamburger_border_bottom {
		top: 18px;
	}


	.black_bg {
		position: fixed;
		left: 0;
		top: 0;
		width: 100vw;
		height: 100vh;
		z-index: -1;
		background-color: #333;
		opacity: 0;
		visibility: hidden;
		transition: all .6s;
		cursor: pointer;
	}


	/* 表示された時用のCSS */
	.main-navigation-open .main-navigation {
		right: 0;
		padding-inline: 30px;
	}


	.main-navigation-open .black_bg {
		opacity: .8;
		visibility: visible;
	}


	.main-navigation-open .hamburger_border_top {
		transform: rotate(45deg);
		top: 12px;
		background-color: #333;

	}


	.main-navigation-open .hamburger_border_center {
		width: 0;
		left: 50%;
	}


	.main-navigation-open .hamburger_border_bottom {
		transform: rotate(-45deg);
		top: 12px;
		background-color: #333;
	}
}



/* mv
====================================================*/

.hero {
	position: relative;
	background: url('images/designer.jpg') no-repeat;
	background-position: 10% 25%;
	background-attachment: fixed;
	background-size: cover;
	color: #fff;
	overflow: hidden;
	height: 100vh;
	height: 100dvh;
}

/* 黒のオーバーレイ */
.hero::before {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	background: rgba(0, 0, 0, 0.2);
	z-index: 0;
}

.hero__inner {
	position: absolute;
	z-index: 1;
	bottom: 15%;
	left: 5%;
	text-align: left;
}

.hero__title {
	font-size: var(--s80);
	margin-bottom: var(--space-md);
	font-weight: 700;
	color: white;
	line-height: 1.4;
}

.hero__subtitle {
	font-size: var(--s24);
	margin-bottom: var(--space-4xl);
	color: white;
	font-weight: 600;
}

/* グラデーションを反転にするボタン */
.hero__btn {
	color: #fff;
	padding: 1.2em 4em;
	border-radius: 100vh;
	text-decoration: none;
	display: inline-block;
	transition: .3s ease;
	font-weight: 600;
	text-align: center;
	background: linear-gradient(135deg, #ff8a00, #e52e71, #ff8a00);
	background-size: 200% 100%;
	background-position: left center;
	font-size: var(--s24);
}

/* ホバーで色反転 */
.hero__btn:hover {
	color: #fff;
	background-position: right center;
}

/* === MV内文字＋ボタンのズームイン === */

.hero__inner.zoomin.is-animated {
	animation: zoomIn 1s cubic-bezier(0.25, 1, 0.5, 1) forwards;
}

@keyframes zoomIn {
	0% {
		transform: scale(0.9);
		opacity: 0;
	}

	100% {
		opacity: 1;
		transform: scale(1);
	}
}


@media (max-width: 767px) {
	.hero {
		background-position: 42% 100%;
		height: 700px;
	}

	.hero::before {
		background: linear-gradient(45deg, rgba(0, 0, 0, .5), transparent);
	}

	.hero__inner {
		bottom: 8%;
		text-align: left;
		max-width: 100%;
	}

	.hero__title {
		font-size: 2.5rem;
	}
}


/* about
====================================================*/
.about {
	background: linear-gradient(135deg, #ff8a00, #e52e71);
	text-align: center;
	color: #fff;
}

.section__title--about {
	color: #fff;
}

.section__title-en--about {
	background: none;
	-webkit-background-clip: initial;
	-webkit-text-fill-color: rgba(255, 255, 255, 0.2);
	color: rgba(255, 255, 255, 0.05);
}

.about__text {
	text-align: center;
	font-size: var(--s20);
	line-height: 2.5;
	font-weight: 600;
	margin-bottom: 1em;
}


/* === about - animation === */

.matrix .bg-wrap {
	opacity: 0;
}

.matrix .bg-wrap+.bg-wrap {
	margin-top: 10px;
}

.matrix .bg-wrap .inn {
	opacity: 0;
	transform: matrix(1, 0, 0, 1, 0, 100);
	transition: .3s cubic-bezier(0.22, 1, 0.36, 1);
}

.matrix.is-animated .bg-wrap {
	opacity: 1;
}

.matrix.is-animated .bg-wrap .inn {
	opacity: 1;
	transform: matrix(1, 0, 0, 1, 0, 0);
}

/* 最初に出てくる */
.matrix.is-animated .bg-wrap .inn.large {
	transition-delay: 0s;
}

/* 少し遅れて出てくる */
.matrix.is-animated .bg-wrap .inn.small {
	transition-delay: 0.3s;
}

.matrix.is-animated .bg-wrap .inn.small--2 {
	transition-delay: .6s;
}

.matrix.is-animated .bg-wrap .inn.small--3 {
	transition-delay: .8s;
}

.matrix.is-animated .bg-wrap .inn.small--4 {
	transition-delay: 1s;
}

/* reasons
====================================================*/

.reasons__container {
	width: 86%;
}

.reasons__list {
	display: flex;
	gap: 30px;
}

.reasons__item {
	display: flex;
	justify-content: center;
	flex-direction: column;
	align-items: center;
	gap: 20px;
}

.reasons__item-circle {
	width: 180px;
	height: 180px;
	background: #f8f8f8;
	border-radius: 50%;
	position: relative;
}

.reasons__item-circle img {
	width: 120px;
	height: 100px;
	object-fit: contain;
}

.reasons__item-wrap {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	display: grid;
	justify-items: center;
	gap: 10px;
}


.reasons__item span {

	white-space: nowrap;
	text-align: center;
	font-weight: 700;
	font-size: var(--s20);
	color: var(--color-main);
	line-height: 1.6;
}

@media (max-width: 767px) {
	.reasons__list {
		flex-direction: column;
		gap: 60px;
	}
}

/* curriculum
====================================================*/
.curriculum {
	background-image: url(images/sec-bg.jpg);
	background-attachment: fixed;
}

.curriculum__list {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 30px;
}

.curriculum__item {
	background: #fff;
	padding: 40px;
	border-radius: 15px;
}

.curriculum__title {
	font-size: var(--s24);
	color: var(--color-main);
	margin-bottom: .4em;
}

.curriculum__title-en {
	display: block;
	background: linear-gradient(90deg, orange, darkorange);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	font-size: var(--s16);
	font-weight: 700;
	letter-spacing: 0;
}

.curriculum__item p {
	font-weight: 500;
}

@media (max-width: 767px) {
	.curriculum__list {
		grid-template-columns: 1fr;
	}
}

/* FAQ
====================================================*/
.container--faq {
	max-width: 900px;
}

.faq__item {
	margin-bottom: .5em;
}

.faq__question {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 1em;
	font-weight: 600;
	cursor: pointer;
	position: relative;
	font-size: 18px;
	border-bottom: 1px solid #eee;
}

.faq__icon {
	display: inline-block;
	margin-left: 10px;
	width: 10px;
	height: 10px;
	border-right: 2px solid #aaa;
	border-bottom: 2px solid #aaa;
	transform: rotate(45deg);
	transition: transform 0.3s ease;
}

.faq__item.active .faq__icon {
	transform: rotate(225deg);
}


.faq__answer {
	max-height: 0;
	overflow: hidden;
	opacity: 0;
	transform: translateY(-10px);
	transition: all 0.4s ease;
	padding: 0 1em;
}

.faq__item.active .faq__answer {
	max-height: 500px;
	opacity: 1;
	transform: none;
	padding: 1em;
}


/* CTA
====================================================*/
.cta {
	background: linear-gradient(135deg, #ff8a00, #e52e71);
	color: #fff;
	text-align: center;
	padding-block: var(--space-6xl);
}

.cta__title {
	font-size: var(--s40);
	margin-bottom: var(--space-md);
	font-weight: 700;
}

.cta__text {
	font-size: var(--s20);
	font-weight: 500;
	margin-bottom: var(--space-xl);
}

.cta__text-note {
	margin-top: 0;
	display: block;
	font-size: var(--s16);
}

.cta__btn {
	display: inline-block;
	background: #fff;
	padding: 1em 3em;
	border-radius: 100vh;
	font-size: var(--s24);
}

.cta__btn span {
	background: linear-gradient(135deg, #ff8a00, #e52e71);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	font-weight: 700;
	letter-spacing: .1em;
}


@media (max-width: 767px) {
	.cta__title {
		font-size: 24px;
		word-break: auto-phrase;
	}

	.cta__text {
		word-break: auto-phrase;
	}
}


/* footer
====================================================*/
.site-footer {
	padding: 40px 0;
	text-align: center;
	background: #333;
}

.site-footer__copyright {
	font-size: 12px;
	font-weight: 400;
	color: #fff;
}








/* 固定ページ
====================================================*/
article.page {
	padding: 80px 0;
}

.page-header {
	background-image: url(images/sec-bg.jpg);
	background-attachment: fixed;
	padding: 100px 0;
	text-align: center;
	padding-top: var(--header-height);
}

.page-header__title {
    font-size: var(--s48);
    color: #fff;
    letter-spacing: .1em;
    font-weight: 600;
}


/* Contact form 7
====================================================*/

.contact__text {
	margin-bottom: var(--space-xl);
	max-width: 600px;
	margin-inline: auto;
}

.contact h2 {
	text-align: center;
	margin-bottom: 1em;
}

.wpcf7-form {
	max-width: 600px;
	margin: 0 auto;
}

.wpcf7-form p {
	margin-bottom: 1.5em;
}

.wpcf7-form label {
	font-weight: 600;
}

.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 textarea {
	width: 100%;
	padding: 0.8em;
	border: none;
	background-color: #f8f8f8;
	border-radius: 4px;
	height: 3.5em;
	box-sizing: border-box;
}

.wpcf7 textarea {
	height: 12em;
}

.wpcf7 input[type="submit"] {
	border-radius: 100vh;
	border: none;
	max-width: 300px;
	width: 100%;
	padding: 1.2em 2em;
	font-size: var(--s20);
	font-weight: 500;
	background-image: linear-gradient(to right, orange, salmon);
	transition: .3s;
	margin: 30px auto 0;
	position: relative;
	color: #fff;
	display: block;
	font-weight: 700;
	letter-spacing: .5em;
}

.wpcf7 input[type="submit"]:hover {
	opacity: .5;
}





/* home.php
====================================================*/
.blog .post-item {
	margin-bottom: 30px;
}

.blog .post-title a {
	font-size: 20px;
}

.blog .post-meta {
	font-size: 12px;
	color: var(--color-main);
}

.blog .post-excerpt p {
	font-weight: 500;
	font-size: 14px;
}

.br-mb {
	display: none;
}

@media (max-width: 767px) {
.br-mb {
	display: block;
}
}

