@charset "UTF-8";
/* ============================================
   Minimal Reset（空テーマ用）
============================================ */
*, *::before, *::after {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

html {
	scroll-padding-top: 80px;
	overflow-x: hidden;
}

img {
	vertical-align: bottom;
	max-width: 100%;
	height: auto;
}

a img {
	border: none;
}
a:hover img {
	opacity: 0.8;
}

li {
	list-style: none;
}

body {
	font-family: "Noto Sans JP", sans-serif;
	font-weight:400;
	color:#333;
	background:#fff;
}

a { color:#e6929e; }
a:hover { color:#ffc508; }

p, li {
	line-height:1.8;
}

@media screen and (min-width: 768px) {
	img {
		width: auto;
	}
}
.pcOnly {display:none;}

@media screen and (min-width: 768px) {
	.spOnly {display:none !important;}
	.pcOnly {display:inherit;}
}

/* 本文 */
.tmpl_inner {
	margin:0 auto;
	max-width:1200px;
}
.tmpl_inner100per {
	margin:0 auto;
	max-width:100%;
}

@media screen and (max-width:1200px) {
	.tmpl_inner {
		max-width:96%;
	}
	.tmpl_inner100per {
		max-width:100%;
	}
}
@media screen and (max-width:768px) {
	.tmpl_inner {
		max-width:90%;
	}
	.tmpl_inner100per {
		max-width:100%;
	}
}

/* マージン */
.mt00 {margin-top:0;}
.mt10 {margin-top:10px;}
.mt20 {margin-top:20px;}
.mt30 {margin-top:30px;}
.mt40 {margin-top:40px;}
.mt50 {margin-top:50px;}


/* ============================================
   ヘッダー
============================================ */
header {
	background:#1c1c1c;
	position:fixed;
	top:0;
	left:0;
	width:100%;
	z-index:9999;
}

header .inner {
	margin:0 auto;
	max-width:1200px;
	padding:0 20px;
}

header .sp_header {
	display:flex;
	align-items:center;
	justify-content:space-between;
	height:80px;
}

/* ロゴ：上端から配置し、下に10px飛び出す */
.header_logo {
	position:relative;
	top:0;
	align-self:flex-start;
	margin-bottom:-10px;
	flex-shrink:0;
}

.header_logo a {
	display:block;
}

.header_logo .logo_img {
	display:block;
	width:514px;
	height:auto;
}

/* PC用ロゴ：PC時表示・SP時非表示 */
.logo_img--pc {
	display:block !important;
}

.logo_img--sp {
	display:none !important;
}

/* グローバルナビ（PC） */
.gnavi {
	display:flex;
	align-items:center;
}

.nav_list {
	display:flex;
	gap:0;
}

.nav_item a {
	display:block;
	padding:10px 18px;
	color:#fff;
	text-decoration:none;
	font-size:0.9375rem;
	font-weight:500;
	letter-spacing:0.05em;
	position:relative;
	transition:color 0.3s;
}

/* アクティブ・ホバー：ゴールドのアンダーライン */
.nav_item a::after {
	content:'';
	position:absolute;
	bottom:0;
	left:50%;
	transform:translateX(-50%);
	width:0;
	height:2px;
	background:#c9a227;
	transition:width 0.3s;
}

.nav_item a:hover::after,
.nav_item a.is-active::after {
	width:calc(100% - 36px);
}

.nav_item a:hover,
.nav_item a.is-active {
	color:#c9a227;
}

/* ハンバーガーメニュー（SP用・PC時は非表示） */
.hamburger {
	display:none;
}

/* SPナビ */
.gnavi_sp {
	display:none;
	position:fixed;
	top:80px;
	left:0;
	width:100%;
	background:#1c1c1c;
	z-index:9998;
	flex-direction:column;
}

.gnavi_sp.is-open {
	display:flex;
}

.gnavi_sp .nav_list {
	display:flex;
	flex-direction:column;
	gap:0;
	width:100%;
}

.gnavi_sp .nav_item {
	border-bottom:1px solid rgba(255,255,255,0.1);
}

.gnavi_sp .nav_item a {
	display:block;
	padding:18px 5%;
	color:#fff;
	font-size:0.9375rem;
	font-weight:500;
}

.gnavi_sp .nav_item a:hover,
.gnavi_sp .nav_item a.is-active {
	color:#c9a227;
}

/* main上部余白（PC） */
@media screen and (min-width:768px) {
	main {
		margin-top:80px;
	}
}

/* ============================================
   ヘッダー SP
============================================ */
@media screen and (max-width:768px) {
	header {
		height:60px;
	}
	header .inner {
		padding:0 0 0 2%;
	}
	header .sp_header {
		height:60px;
	}

	/* SP時は飛び出しなし */
	.header_logo {
		top:0;
	}

	/* SP用ロゴに切り替え */
	.logo_img--pc {
		display:none !important;
	}

	.logo_img--sp {
		display:block !important;
		width:auto !important;
		height:70px !important;
	}

	.header_logo .logo_img {
		width:auto;
	}

	/* PCナビ非表示 */
	.gnavi {
		display:none;
	}

	/* ハンバーガー表示 */
	.hamburger {
		display:block;
		position:fixed;
		top:0;
		right:0;
		width:60px;
		height:60px;
		background:#c9a227;
		cursor:pointer;
		z-index:9999;
	}

	.hamburger_border {
		display:block;
		position:absolute;
		left:50%;
		transform:translateX(-50%);
		width:28px;
		height:2px;
		background:#fff;
		border-radius:2px;
		transition:all 0.3s;
	}

	.hamburger_border_top    { top:20px; }
	.hamburger_border_center { top:29px; }
	.hamburger_border_bottom { top:38px; }

	.hamburger.is-open .hamburger_border_top {
		top:29px;
		transform:translateX(-50%) rotate(45deg);
	}
	.hamburger.is-open .hamburger_border_center {
		opacity:0;
	}
	.hamburger.is-open .hamburger_border_bottom {
		top:29px;
		transform:translateX(-50%) rotate(-45deg);
	}

	/* SPナビの表示位置 */
	.gnavi_sp {
		top:60px;
	}

	.gnavi_sp .nav_item a {
		font-size:4.5vw;
	}

	main {
		margin-top:60px;
	}
}


/* ============================================
   CTAセクション
============================================ */
.tmpl_cta {
	position:relative;
	overflow:hidden;
	background:#111 url(../images/cta_bg.png) no-repeat center center;
	background-size:cover;
	padding:120px 20px 120px;
	text-align:center;
}

/* 写真の暗幕オーバーレイ */
.tmpl_cta::before {
	content:'';
	position:absolute;
	inset:0;
	background:rgba(0,0,0,0.55);
	z-index:0;
}

/* ベース型ラインのSVGラッパー */
.tmpl_cta_base {
	position:relative;
	z-index:1;
	width:1100px;
	max-width:100%;
	margin:0 auto;
}

/* SVGライン：五角形（ホームベース型） */
.tmpl_cta_base_svg {
	position:absolute;
	top:0;
	left:0;
	width:100%;
	height:100%;
	overflow:visible;
	pointer-events:none;
}

/* CTA内コンテンツ */
.tmpl_cta_inner {
	position:relative;
	z-index:1;
	padding:80px 80px 100px;
	/* 三角部分の高さ分だけ下に余白 */
	padding-bottom:240px;
}

/* メインテキスト（1〜2行想定） */
.tmpl_cta_title {
	font-size:4.375rem;
	font-weight:900;
	color:#fff;
	line-height:1.5;
	margin-bottom:20px;
	letter-spacing:0.05em;
}

/* サブテキスト（1〜2行想定） */
.tmpl_cta_sub_text {
	font-size:1.5rem;
	color:#c9a227;
	line-height:1.8;
	margin-bottom:40px;
	letter-spacing:0.05em;
}

/* ボタングループ（1つでも2つでも中央揃え） */
.tmpl_cta_btn_wrap {
	display:flex;
	justify-content:center;
	gap:50px;
	flex-wrap:wrap;
}

/* CTAボタン：ゴールド塗り */
.tmpl_cta_btn_primary {
	display:inline-flex;
	align-items:center;
	gap:0;
	padding:0 40px;
	height:80px;
	background:#d4af37;
	color:#1c1c1c;
	font-size:1.125rem;
	font-weight:700;
	text-decoration:none;
	border:1px solid transparent;
	letter-spacing:0.05em;
	transition:background 0.3s;
	white-space:nowrap;
}

.tmpl_cta_btn_primary:hover {
	background:#e5c158;
	color:#1c1c1c;
}

.tmpl_cta_btn_primary::after {
	content:'';
	display:inline-block;
	width:30px;
	height:12px;
	margin-left:14px;
	background-image:url(../images/arrow_primary.png);
	background-repeat:no-repeat;
	background-position:center center;
	background-size:contain;
	flex-shrink:0;
}

/* CTAボタン：枠線のみ */
.tmpl_cta_btn_secondary {
	display:inline-flex;
	align-items:center;
	gap:0;
	padding:0 40px;
	height:80px;
	background:transparent;
	color:#fff;
	font-size:1.125rem;
	font-weight:700;
	text-decoration:none;
	border:1px solid #fff;
	letter-spacing:0.05em;
	transition:background 0.3s;
	white-space:nowrap;
}

.tmpl_cta_btn_secondary:hover {
	background:rgba(255,255,255,0.15);
	color:#fff;
}

.tmpl_cta_btn_secondary::after {
	content:'';
	display:inline-block;
	width:30px;
	height:12px;
	margin-left:14px;
	background-image:url(../images/arrow_secondary.png);
	background-repeat:no-repeat;
	background-position:center center;
	background-size:contain;
	flex-shrink:0;
}

/* imgタグが残存する場合の非表示 */
.tmpl_cta_arrow {
	display:none;
}

/* ============================================
   CTAセクション SP
============================================ */
@media screen and (max-width:768px) {
	.tmpl_cta {
		padding:40px 20px 60px;
	}

	.tmpl_cta_inner {
		padding:40px 20px 160px;
	}

	.tmpl_cta_title {
		font-size:7vw;
		margin-bottom:15px;
	}

	.tmpl_cta_sub_text {
		font-size:3.4vw;
		margin-bottom:30px;
	}

	.tmpl_cta_btn_wrap {
		flex-direction:column;
		align-items:center;
		gap:15px;
	}

	.tmpl_cta_btn_primary,
	.tmpl_cta_btn_secondary {
		width:100%;
		max-width:280px;
		justify-content:center;
		font-size:4.0vw;
		padding:0 6vw;
		height:14vw;
		box-sizing:border-box;
	}
}


/* ============================================
   フッター
============================================ */
footer {
	background:#0d0d0d;
	color:#fff;
	padding:80px 0 0;
}

footer .inner {
	margin:0 auto;
	max-width:1200px;
	padding:0 20px;
}

/* フッター上部グリッド */
.footer_grid {
	display:flex;
	gap:60px;
	padding-bottom:80px;
}

/* ロゴエリア */
.footer_logo_area {
	flex:0 0 426px;
}

.footer_logo_area .footer_logo_img {
	display:block;
	width:426px;
	height:auto;
	margin-bottom:30px;
}

.footer_desc {
	font-size:0.875rem;
	line-height:2;
	color:#888;
}

/* ナビエリア */
.footer_nav_area {
	display:flex;
	flex:1;
	padding-top:10px;
	border-left:1px solid #d4af37;
}

.footer_nav {
	padding:0 40px;
}

.footer_nav:first-child {
	flex:0 0 260px;
	border-right:1px solid #d4af37;
}

.footer_nav:last-child {
	flex:1;
}

.footer_nav_label {
	font-family:'Bebas Neue', sans-serif;
	font-size:1rem;
	letter-spacing:0.2em;
	color:#c9a227;
	margin-bottom:30px;
}

.footer_nav ul {
	display:flex;
	flex-direction:column;
	gap:0;
}

.footer_nav ul li a {
	display:block;
	padding:14px 0;
	color:#fff;
	text-decoration:none;
	font-size:0.9375rem;
	font-weight:400;
	transition:color 0.3s;
}

.footer_nav ul li a:hover {
	color:#c9a227;
}

/* コピーライトバー */
.footer_bottom {
	border-top:1px solid #141414;
	padding:25px 0;
	display:flex;
	justify-content:space-between;
	align-items:center;
}

.footer_copy {
	font-size:0.8rem;
	color:#555;
}

.footer_bottom_links {
	display:flex;
	gap:40px;
}

.footer_bottom_links a {
	font-size:0.8rem;
	color:#555;
	text-decoration:none;
	transition:color 0.3s;
}

.footer_bottom_links a:hover {
	color:#c9a227;
}

/* ============================================
   フッター SP
============================================ */
@media screen and (max-width:768px) {
	footer {
		padding:60px 0 0;
	}

	footer .inner {
		padding:0 5%;
	}

	.footer_grid {
		flex-direction:column;
		gap:40px;
		padding-bottom:50px;
	}

	.footer_logo_area {
		flex:none;
	}

	.footer_logo_area .footer_logo_img {
		width:100%;
		max-width:100%;
		margin-bottom:20px;
	}

	.footer_desc {
		font-size:3.2vw;
	}

	.footer_nav_area {
		flex-direction:column;
		gap:40px;
		padding-top:0;
		border-left:none;
		border-top:1px solid #d4af37;
		padding-top:40px;
	}

	.footer_nav {
		padding:0;
	}

	.footer_nav:first-child {
		flex:none;
		border-right:none;
	}

	.footer_nav:last-child {
		flex:none;
	}

	.footer_nav_label {
		font-size:4vw;
		margin-bottom:15px;
	}

	.footer_nav ul li a {
		font-size:4vw;
		padding:12px 0;
	}

	.footer_bottom {
		flex-direction:column;
		gap:15px;
		text-align:center;
		padding:20px 0;
	}

	.footer_copy {
		font-size:3vw;
	}

	.footer_bottom_links {
		gap:25px;
	}

	.footer_bottom_links a {
		font-size:3vw;
	}
}