/**
 * Vendors CSS - 外部ライブラリの最小限のスタイル
 * - Font Awesome (icons)
 * - Animate.css (基本アニメーション)
 */

/* ==========================================================================
   Font Awesome 4.7 - 使用アイコンのみ
   ========================================================================== */
@font-face {
	font-family: 'FontAwesome';
	src: url('https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/fonts/fontawesome-webfont.woff2') format('woff2'),
		 url('https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/fonts/fontawesome-webfont.woff') format('woff');
	font-weight: normal;
	font-style: normal;
	font-display: swap;
}

.fa {
	display: inline-block;
	font: normal normal normal 14px/1 FontAwesome;
	font-size: inherit;
	text-rendering: auto;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

.fa-5x { font-size: 5em; }

/* 使用アイコン */
.fa-laptop:before { content: "\f109"; }
.fa-photo:before { content: "\f03e"; }
.fa-pencil:before { content: "\f040"; }
.fa-users:before { content: "\f0c0"; }
.fa-handshake-o:before { content: "\f2b5"; }
.fa-envelope-o:before { content: "\f003"; }
.fa-fax:before { content: "\f1ac"; }
.fa-angle-double-up:before { content: "\f102"; }
.fa-angle-down:before { content: "\f107"; }
.fa-circle:before { content: "\f111"; }

/* ==========================================================================
   Animate.css - 使用アニメーションのみ
   ========================================================================== */
.animated {
	animation-duration: 1s;
	animation-fill-mode: both;
}

@keyframes fadeIn {
	from { opacity: 0; }
	to { opacity: 1; }
}

.fadeIn {
	animation-name: fadeIn;
}

@keyframes fadeInUp {
	from {
		opacity: 0;
		transform: translate3d(0, 40px, 0);
	}
	to {
		opacity: 1;
		transform: translate3d(0, 0, 0);
	}
}

.fadeInUp {
	animation-name: fadeInUp;
}

@keyframes slideInUp {
	from {
		opacity: 0;
		transform: translate3d(0, 100%, 0);
		visibility: visible;
	}
	to {
		opacity: 1;
		transform: translate3d(0, 0, 0);
	}
}

.slideInUp {
	animation-name: slideInUp;
}

/* ==========================================================================
   LightGallery - 軽量版 (ギャラリーライトボックス用)
   ========================================================================== */
.lg-backdrop {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 10000;
	background-color: rgba(0, 0, 0, 0.9);
	opacity: 0;
	transition: opacity 0.3s ease;
}

.lg-backdrop.in {
	opacity: 1;
}

.lg-outer {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 10001;
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
	transition: opacity 0.3s ease;
}

.lg-outer.lg-visible {
	opacity: 1;
}

.lg-inner {
	position: relative;
	max-width: 90%;
	max-height: 90%;
}

.lg-image {
	max-width: 100%;
	max-height: 90vh;
	display: block;
	margin: 0 auto;
}

.lg-close {
	position: absolute;
	top: 20px;
	right: 20px;
	width: 40px;
	height: 40px;
	background: rgba(255, 255, 255, 0.2);
	border: none;
	border-radius: 50%;
	cursor: pointer;
	font-size: 24px;
	color: #fff;
	z-index: 10002;
}

.lg-close:hover {
	background: rgba(255, 255, 255, 0.4);
}

.lg-prev,
.lg-next {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 50px;
	height: 50px;
	background: rgba(255, 255, 255, 0.2);
	border: none;
	border-radius: 50%;
	cursor: pointer;
	font-size: 24px;
	color: #fff;
	z-index: 10002;
}

.lg-prev { left: 20px; }
.lg-next { right: 20px; }

.lg-prev:hover,
.lg-next:hover {
	background: rgba(255, 255, 255, 0.4);
}
