@charset "utf-8";
/*----------------------------------------------
	root
---------------------------------------------*/
:root {
	/* 色 */
	--main-color: #F39800;
	--wh-color: #ffffff;
	--bk-color: #222;

	/* color with opacity */
	--rgb-wh-color: rgba(255, 255, 255, 0.85);
    --rgb-bk-color: rgba(0, 0, 0, 0.3);

}
/*----------------------------------------------
	html
---------------------------------------------*/
html {
	font-size: 62.5%;
}
/*↑ 10pxが1remとなる様に調整*/

/*----------------------------------------------
	body
---------------------------------------------*/
/* 1. PREVENT SCROLLBARS */
html, body {
    margin: 0;
    padding: 0;
    width: 100%;
    overflow-x: hidden; /* Fixes left/right scroll issues */
}

body {
    background-color: transparent;
    position: relative;
    min-width: 100%;
    font-size: 2rem;
    font-family: "Noto Sans JP", sans-serif;
    color: var(--bk-color);
    line-height: 1.4;
}

/* 2. FIXED CONTAINER */
.body-bg-slider {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    z-index: -100; /* Behind everything */
    background-color: #000; /* Dark base */
    overflow: hidden;
}

/* 3. OVERLAY (Tints the images) */
.bg-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.2); /* Adjust for text readability */
    z-index: 10; /* Higher than .bg-slide */
    pointer-events: none;
}

/* 4. SLIDE PROPERTIES */
.bg-slide {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover; /* Equivalent to background-size: cover */
    object-position: center;
    opacity: 0;
    /* 15s Cycle (5s per image) for a slower, smoother feel */
    animation: bodyBgFade 15s linear infinite;
    will-change: opacity;
}

/* 5. STAGGERED DELAYS (5s increments) */
.bg-slide:nth-of-type(1) { 
    animation-delay: 0s; 
    animation-name: firstBgFix, bodyBgFade; 
}
.bg-slide:nth-of-type(2) { 
    animation-delay: 5s; 
}
.bg-slide:nth-of-type(3) { 
    animation-delay: 10s; 
}


/* 6. SEAMLESS FADE LOGIC 
   For 3 images, each has 33.33% of the time.
   We overlap the fade-in and fade-out to prevent gaps.
*/
@keyframes bodyBgFade {
    0% { opacity: 0; }
    6% { opacity: 1; }    /* Fade in complete (approx 1s) */
    33.33% { opacity: 1; } /* Stay visible until 5s */
    40% { opacity: 0; }    /* Fade out complete (approx 6s) */
    100% { opacity: 0; }
}

/* Immediate visibility for the first image on load */
@keyframes firstBgFix {
    0%, 33.33% { opacity: 1; }
    40%, 100% { opacity: 0; }
}

/* --- RESPONSIVE TYPOGRAPHY --- */
@media screen and (max-width: 1280px) {
    body { font-size: calc(12px + 8 * (100vw - 768px) / 512); }
}
@media screen and (max-width: 768px) {
    body { font-size: 1.5rem; }
}


/*----------------------------------------------
	a
---------------------------------------------*/
a {
	color: #fff;
	text-decoration: none;
}

/*----------------------------------------------
	table
---------------------------------------------*/
table {
	border-collapse: collapse;
	border-spacing: 0;
}
/*----------------------------------------------
	h1,h2,h3,h4,h5,h6
---------------------------------------------*/
h1,
h2,
h3,
h4,
h5,
h6 {
	margin: 0;
}
/*----------------------------------------------
	img
---------------------------------------------*/
img {
	max-width: 100%;
	height: auto;
	vertical-align: middle;
}
/*----------------------------------------------
	li
---------------------------------------------*/
li {
	list-style-type: none;
	list-style-position: inside;
}
/*----------------------------------------------
	*
---------------------------------------------*/
* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}


