/* =====================================
   共通スタイル定義 (style.css)
   フォント、フッター、ヘッダー、リセットCSS
   ===================================== */

/* フォント読み込み */
@font-face {
	font-family: '07YasashisaGothicBold';
	src: url('../fonts/07YasashisaGothicBold.ttf') format('truetype');
	font-weight: bold;
	font-style: normal;
}

@font-face {
	font-family: 'DelaGothicOne';
	src: url('../fonts/DelaGothicOne-Regular.ttf') format('truetype');
	font-weight: normal;
	font-style: normal;
}

/* CSS変数（カラー、フォントサイズ） */
:root {
	/* スケーリング係数（JavaScriptで動的に設定） */
	--scale-factor: 1;

	/* フォント変数 */
	--font-primary: '07YasashisaGothicBold', sans-serif;
	--font-secondary: 'DelaGothicOne', sans-serif;

	/* カラー変数 */
	--color-base-brown: #8c6129;
	--color-brown: #8c6129;
	--color-white: #ffffff;
	--color-black: #222222;
	--color-off-white: #e4e4e4;
	--color-orange: #e2aa26;
	--color-overlay-dark: rgba(0, 0, 0, 0.5);
	--color-overlay-brown: rgba(69, 57, 48, 0.25);
	--color-divider: rgba(255, 255, 255, 0.3);

	/* フォントサイズ変数（デスクトップ基準） */
	--font-size-heading-1: 96px;
	--font-size-heading-2: 64px;
	--font-size-heading-3: 56px;
	--font-size-heading-4: 48px;
	--font-size-heading-5: 40px;
	--font-size-body-large: 32px;
	--font-size-body-medium-large: 28px;
	--font-size-body-medium: 24px;
	--font-size-body-small: 14px;

	/* スペーシング変数 */
	--spacing-section-large: 112px;
	--spacing-section-medium: 80px;
	--spacing-gap-large: 80px;
	--spacing-gap-medium: 64px;
	--spacing-gap-small: 40px;
	--spacing-gap-xs: 32px;
	--spacing-gap-xxs: 16px;

	/* 角丸変数 */
	--radius-large: 40px;
	--radius-medium: 32px;
	--radius-small: 8px;
}

/* モバイル用のCSS変数 */
@media (max-width: 600px) {
	:root {
		/* フォントサイズ変数（モバイル基準） */
		--font-size-heading-1: 56px;
		--font-size-heading-2: 42px;
		--font-size-heading-3: 40px;
		--font-size-heading-4: 36px;
		--font-size-heading-5: 32px;
		--font-size-body-large: 24px;
		--font-size-body-medium-large: 19px;
		--font-size-body-medium: 18px;
		--font-size-body-small: 12px;

		/* スペーシング変数 */
		--spacing-section-large: 80px;
		--spacing-section-medium: 60px;
		--spacing-gap-large: 60px;
		--spacing-gap-medium: 48px;
		--spacing-gap-small: 32px;
		--spacing-gap-xs: 24px;
		--spacing-gap-xxs: 16px;

		/* 角丸変数 */
		--radius-large: 32px;
		--radius-medium: 24px;
		--radius-small: 8px;
	}
}

/* リセット＆ベーススタイル */
* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

body {
	font-family: var(--font-primary);
	background-color: var(--color-base-brown);
	color: var(--color-black);
	line-height: 1.5;
	overflow-x: hidden;
}

img {
	max-width: 100%;
	height: auto;
	display: block;
}

a {
	text-decoration: none;
	color: inherit;
	transition: opacity 0.3s ease;
}

a:hover {
	opacity: 0.8;
}

ul {
	list-style: none;
}

/* 共通コンテナスタイル */
.container {
	width: calc(1600px * var(--scale-factor));
	max-width: 100%;
	margin: 0 auto;
	padding-left: calc(96px * var(--scale-factor));
	padding-right: calc(96px * var(--scale-factor));
}

@media (max-width: 600px) {
	.container {
		width: 100%;
		padding-left: calc(32px * var(--scale-factor));
		padding-right: calc(32px * var(--scale-factor));
	}
}

/* パーツスタイル */
.outline-narrow-text {
	-webkit-text-stroke: calc(1px * var(--scale-factor)) var(--color-black);
	text-stroke: calc(1px * var(--scale-factor)) var(--color-black);
}

.outline-middle-text {
	-webkit-text-stroke: calc(2px * var(--scale-factor)) var(--color-black);
	text-stroke: calc(2px * var(--scale-factor)) var(--color-black);
}

.outline-wide-text {
	-webkit-text-stroke: calc(3px * var(--scale-factor)) var(--color-black);
	text-stroke: calc(3px * var(--scale-factor)) var(--color-black);
}

/* 共通リンクスタイル (ソーシャルボタン・バナー) */
.social-buttons {
	display: flex;
	gap: calc(var(--spacing-gap-xxs) * var(--scale-factor));
	align-items: center;
}

.social-btn {
	width: calc(80px * var(--scale-factor));
	height: calc(80px * var(--scale-factor));
	display: block;
	transition: opacity 0.3s ease;
}

.social-btn:hover {
	opacity: 0.8;
}

.social-btn img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: var(--radius-small);
}

.banner-links {
	display: flex;
	gap: calc(var(--spacing-gap-xs) * var(--scale-factor));
	align-items: center;
}

.banner-link {
	width: calc(360px * var(--scale-factor));
	display: block;
	transition: opacity 0.3s ease;
}

.banner-link:hover {
	opacity: 0.8;
}

.banner-link img {
	width: 100%;
	height: auto;
	border-radius: var(--radius-small);
}

/* フッタースタイル */
.footer {
	background-color: var(--color-base-brown);
	color: var(--color-white);
	padding: calc(var(--spacing-gap-large) * var(--scale-factor)) calc(var(--spacing-gap-medium) * var(--scale-factor));
}

.footer-container {
	max-width: calc(1600px * var(--scale-factor));
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	gap: calc(var(--spacing-gap-small) * var(--scale-factor));
}

.footer-main {
	display: flex;
	gap: calc(450px * var(--scale-factor));
	align-items: flex-start;
}

.footer-logo {
	flex: 0 0 auto;
	width: calc(360px * var(--scale-factor));
}

.footer-logo img {
	width: 100%;
	height: auto;
}

.footer-nav {
	flex: 1;
	display: flex;
	align-items: flex-start;
}

.footer-nav ul {
	display: flex;
	flex-direction: column;
	gap: calc(12px * var(--scale-factor));
}

.footer-nav li a {
	font-size: calc(var(--font-size-body-medium) * var(--scale-factor));
	font-weight: bold;
	color: var(--color-white);
	display: inline-flex;
	align-items: center;
	gap: calc(6px * var(--scale-factor));
}

.footer-nav .external-icon {
	width: calc(24px * var(--scale-factor));
	height: calc(24px * var(--scale-factor));
	display: inline-block;
	vertical-align: middle;
}

.footer-social {
	display: flex;
	gap: calc(var(--spacing-gap-small) * var(--scale-factor));
	align-items: center;
	justify-content: center;
	margin-bottom: calc(var(--spacing-gap-small) * var(--scale-factor));
}

.footer-bottom {
	display: flex;
	flex-direction: column;
	gap: calc(var(--spacing-gap-xs) * var(--scale-factor));
	align-items: center;
}

.footer-divider {
	width: 100%;
	height: 2px;
	background-color: var(--color-divider);
}

.footer-copyright {
	text-align: center;
}

.footer-copyright p {
	font-size: calc(var(--font-size-body-medium) * var(--scale-factor));
	font-weight: bold;
	color: var(--color-white);
}

/* モバイル対応 */
@media (max-width: 600px) {

	/* 共通リンクスタイル */
	.social-btn {
		width: calc(70px * var(--scale-factor));
		height: calc(70px * var(--scale-factor));
	}

	.banner-link {
		width: 100%;
		max-width: calc(450px * var(--scale-factor));
	}

	.footer {
		padding: calc(var(--spacing-gap-medium) * var(--scale-factor)) calc(var(--spacing-gap-small) * var(--scale-factor));
	}

	.footer-main {
		flex-direction: column;
		gap: calc(var(--spacing-gap-small) * var(--scale-factor));
		margin: auto;
	}

	.footer-logo {
		width: calc(340px * var(--scale-factor));
	}

	.footer-nav ul {
		gap: calc(12px * var(--scale-factor));
	}

	.footer-nav li a {
		font-size: calc(var(--font-size-body-large) * var(--scale-factor));
	}

	.footer-series {
		width: calc(400px * var(--scale-factor));
	}

	.footer-social {
		flex-direction: column;
		gap: calc(var(--spacing-gap-small) * var(--scale-factor));
	}
}