@charset "UTF-8";

/*=========================================================
リセット & ガタつき防止
=========================================================*/

html {scrollbar-gutter: stable;}
*,*::before,*::after{box-sizing:border-box}
html,body,p,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,table,th,td,figure,blockquote,form,fieldset,input,textarea,select{margin:0;padding:0}
ul,ol{list-style:none}
img{max-width:100%;height:auto;vertical-align:middle;border-style:none}
address{font-style: normal}

/*=========================================================
ヘッダー
=========================================================*/

#gHeader {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 80px;
    background: #333;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
}
#gHeader nav a {
    color: #fff;
    margin: 0 15px;
    text-decoration: none;
}

/*=========================================================
画像ホバー（真っ白オーバーレイ）
=========================================================*/

.hover-container {
	position: relative;
	display: inline-block;
	line-height: 0;
	vertical-align: middle;
}
.img-white-overlay {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	filter: brightness(0) invert(1);
	opacity: 0;
	transition: opacity 0.3s ease;
	pointer-events: none;
}
a:hover .img-white-overlay {
	opacity: 0.3; 
}

/*=========================================================
フェードイン演出
=========================================================*/
.fadein {
	opacity: 0;
	transform: translateY(30px);
	transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}
.fadein.scrollin {
	opacity: 1;
	transform: translateY(0);
}

/*=========================================================
モーダル (dialog)
=========================================================*/

body.is-locked {
	overflow: hidden;
}
.modal {
	border: none;
	border-radius: 12px;
	padding: 0;
	width: 90%;
	max-width: 500px;
	background: transparent;
}
/* フェードアニメーション */
.modal {
    opacity: 0;
    transform: scale(0.9);
    transition: opacity 0.4s ease, transform 0.4s ease, display 0.4s allow-discrete;
}
.modal[open] {
    opacity: 1;
    transform: scale(1);
}
@starting-style {
    .modal[open] {
        opacity: 0;
        transform: scale(0.9);
    }
}
/* 背景のフェード */
.modal::backdrop {
    background: rgba(0, 0, 0, 0);
    transition: background-color 0.4s ease, display 0.4s allow-discrete;
}
.modal[open]::backdrop {
    background: rgba(0, 0, 0, 0.7);
}
@starting-style {
    .modal[open]::backdrop {
        background: rgba(0, 0, 0, 0);
    }
}

.modal-inner { padding: 40px; background: #fff; text-align: center; border-radius: 12px; }

/*=========================================================
タブ
=========================================================*/

.tab-list { display: flex; gap: 10px; border-bottom: 2px solid #ccc; margin-bottom: 20px; }
.tab-btn { padding: 10px 20px; cursor: pointer; border: none; background: none; font-weight: bold; }
.tab-btn.active { color: #d93333; border-bottom: 2px solid #d93333; margin-bottom: -2px; }
.tab-content { display: none; }
.tab-content.active { display: block; animation: fadeIn 0.4s; }
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }

/*=========================================================
アコーディオン
=========================================================*/

.accordion_head { cursor: pointer; background: #eee; padding: 15px; border-bottom: 1px solid #ccc; position: relative; }
.accordion_head::after { content: '+'; position: absolute; right: 20px; }
.accordion_head.selected::after { content: '-'; }
.accordion_body { display: none; background: #fff; overflow: hidden; }

/*=========================================================
スライドショー
=========================================================*/

.slider-outer { overflow: hidden; border: 1px solid #ddd; }
.slider-inner { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; -ms-overflow-style: none; }
.slider-inner::-webkit-scrollbar { display: none; }
.slide-item { flex: 0 0 100%; scroll-snap-align: start; min-height: 250px; font-size: 2rem; }
.slider-dots { display: flex; justify-content: center; gap: 10px; margin-top: 15px; }
.dot { width: 12px; height: 12px; border-radius: 50%; background: #ccc; border: none; cursor: pointer; }
.dot.active { background: #333; }

/*=========================================================
ハンバーガーメニュー
=========================================================*/

.hamburger {
	position: fixed;
	top: 15px;
	right: 15px;
	width: 50px;
	height: 50px;
	z-index: 2000;
	background: #333;
	border: none;
	cursor: pointer;
	display: flex;
	justify-content: center;
	align-items: center;
}
.hamburger-line, .hamburger-line::before, .hamburger-line::after {
	position: absolute;
	width: 25px;
	height: 2px;
	background: #fff;
	transition: all 0.3s;
}
.hamburger-line::before { content: ""; top: -8px; left: 0; }
.hamburger-line::after { content: ""; top: 8px; left: 0; }
.is-active .hamburger-line { background: transparent; }
.is-active .hamburger-line::before { transform: rotate(45deg); top: 0; }
.is-active .hamburger-line::after { transform: rotate(-45deg); top: 0; }

.nav-menu {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100vh;
	background: rgba(0, 0, 0, 0.95);
	z-index: 1500;
	display: flex;
	justify-content: center;
	align-items: center;
	opacity: 0;
	visibility: hidden;
	transition: 0.4s;
}
.nav-menu.is-active { opacity: 1; visibility: visible; }
.nav-link { display: block; color: #fff; font-size: 2rem; text-decoration: none; padding: 20px; transition: 0.3s; }
.nav-link:hover { color: #ffa500; }