@charset "UTF-8";

.p-mainVisual {
	max-width: 1024px;
	margin: 0 auto;
}
.p-mainVisual__textLayer {
	justify-content: flex-end;
}
.p-mainVisual .p-blogParts {
	width: 66.5%;
	margin: 0 auto;
	padding-bottom: 0.5%;
}

@media (max-width: 959px) {
	.p-mainVisual__textLayer {
		padding: 0;
	}
	.p-mainVisual .p-blogParts {
		width: 100%;
		padding-bottom: 0;
	}
}

/* ========================================
effect
======================================== */

.shiny {
	overflow: hidden;
	position: relative;
	transition: opacity 0.25s, transform 0.25s;
	z-index: 0;
}
.shiny::before {
	content: "";
	position: absolute;
	display: block;
	visibility: visible;
	clear: none;
	z-index: 1;
	top: 50%;
	left: -120px;
	width: 80px;
	height: 200px;
	background-image: linear-gradient(
		90deg,
		hsla(0, 0%, 100%, 0),
		hsla(0, 0%, 100%, 0.6) 80%,
		hsla(0, 0%, 100%, 0)
	);
	transform: translateY(-50%) rotate(25deg);
}
.shiny::after {
	content: "";
	position: absolute;
	display: block;
	visibility: visible;
	clear: none;
	z-index: 1;
	top: 0;
	left: -100px;
	width: 50px;
	height: 100%;
	background-image: linear-gradient(100deg, hsla(0, 0%, 100%, 0), #fff);
	animation: shiny-btn 3s ease-in-out infinite;
}
.shiny:hover {
	transform: translateY(2px);
}
.shiny:hover::before {
	left: 110%;
	transition: 0.25s ease-in-out;
}
.shiny:hover::after {
	animation: none;
}

@keyframes shiny-btn {
	0% {
		opacity: 0;
		transform: scale(0) rotate(25deg);
	}
	84% {
		opacity: 0;
		transform: scale(0) rotate(25deg);
	}
	85% {
		opacity: 0.9;
		transform: scale(1) rotate(25deg);
	}
	100% {
		opacity: 0;
		transform: scale(50) rotate(25deg);
	}
}

/* ========================================
   トップページ専用h1（見た目には表示しない）
======================================== */
.u-visually-hidden {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	border: 0;
	clip-path: inset(50%);
	overflow: hidden;
	white-space: nowrap;
}
