@charset "utf-8";

/* --- 1. 基本設定 --- */
*, *::before, *::after { box-sizing: border-box; }
body { 
    margin: 0; 
    padding: 0; 
    font-family: "Noto Serif JP", serif; /* デフォルトは明朝 */
    font-weight: 400; 
    color: #000; 
    line-height: 1.6; 
    overflow-x: hidden; 
}

.gothic { 
    font-family: "Noto Sans JP", sans-serif; /* ゴシック切り替え用 */
    font-weight: 700; 
}

/* 明朝体太字（指示書 ExtraBold 900）が必要な場合用 */
.serif-bold {
    font-family: "Noto Serif JP", serif;
    font-weight: 900;
}

/* --- 2. 表示切り替え --- */
.pc-view { display: block !important; }
.sp-view { display: none !important; }
@media (max-width: 767px) {
    .pc-view { display: none !important; }
    .sp-view { display: block !important; }
}

/* --- 3. メインビジュアル --- */
.mv { width: 100%; background-color: #ebf7fe; }
.mv img { width: 100%; height: auto; display: block; }

/* --- 4. 背景グラデーション --- */
.bg-yellow-grad-bottom { background: #FFF100; background: linear-gradient(to bottom, #FFF100 80%, #ffffff 100%); }
.bg-yellow-grad-both { background: #FFF100; background: linear-gradient(to bottom, #ffffff 0%, #FFF100 5%, #FFF100 95%, #ffffff 100%); }
.bg-yellow-grad-top { height: 120px; background: linear-gradient(to bottom, #ffffff 0%, #FFF100 100%); }

/* --- 5. コンテナ・共通余白 --- */
.container { max-width: 1100px; margin: 0 auto; padding: 0 40px; position: relative; }
.section-padding { padding: 100px 0; }
.space-top-60 { margin-top: 60px; }
.space-top-40 { margin-top: 40px; }
.space-top-0 { margin-top: 0px; }

/* --- 6. 固定LINEボタン --- */
.fixed-line-container {
    position: fixed; 
    right: calc(50% - 550px); 
    bottom: 50px; 
    z-index: 10000;
}
@media (max-width: 1200px) { .fixed-line-container { right: 20px; } }
@media (max-width: 767px) { 
    .fixed-line-container { bottom: 20px; right: 10px; } 
    .fixed-line-container img { width: 180px; }
}
.fixed-line-container img { width: 200px; height: auto; display: block; }

/* PC版のLINEボタンのにじみ対策 */
@media (min-width: 768px) {
    .fixed-line-container img { 
        image-rendering: -webkit-optimize-contrast;
		/*width: 250px;*/
		width: 300px;
    }
}

/* --- 7. 各コンテンツの配置調整 --- */
.intro-inner { 
    /*max-width: 700px;*/ 
	max-width: 740px;
    margin: 0 auto; 
    text-align: left; 
}
.headline-40-pc { 
    /*max-width: 700px;*/ 
	max-width: 740px;
    margin-left: 0; 
}
.lead-text { 
	/*font-size: 1.5rem;*/ 
	font-size: 2rem; 
	line-height: 1.4; margin-bottom: 10px; }
.note { 
	/*font-size: 0.9rem; */
	font-size: 1.1rem; 
	font-weight: bold; }
	@media (max-width: 767px) {
		.note { 
			font-size: 0.9rem; 
		}
	}
	
.company-names { 
	/*font-size: 1.3rem; */
	font-size: 1.8rem; 
	display: inline-block; 
	/*line-height: 1.2; */
	line-height: 1.4; 
	margin-bottom: 0px;}

.flex-layout { display: flex; justify-content: space-between; align-items: flex-start; }
.side-title-area { width: 30%; }
.content-area { width: 65%; }
.section-title { font-size: 2.2rem; margin: 0; line-height: 1.2; }

.tile-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.p-card { background-color: #FFF100; 
	/*padding: 25px;*/ 
	padding: 15px 25px;
	border-radius: 2px; }
.p-card h3 { margin: 0 0 10px; font-size: 1.1rem; }
.p-card p { margin: 0; font-size: 0.9rem; }
.and-more { margin-top: 15px; }

.recommend-footer-inner { 
	/*max-width: 450px; */
	max-width: 740px; 
	margin: 0 auto; }
.check-list { list-style: none; padding: 0; font-weight: bold; 
	/*font-size: 1.2rem; */
	font-size: 1.6rem; 
	margin-top: 0px;
	}
	@media (max-width: 767px) {
		.check-list{
			font-size: 1.2rem;
		}
	}
.check-list li::before { content: "・"; }

.schedule-item { display: flex; margin-bottom: 30px; }
.sch-time { 
	/*width: 120px;*/ 
	width: 160px;
	flex-shrink: 0; 
	/*font-size: 1.1rem;*/
	font-size: 1.5rem;
	}
.sch-content { 
	/*font-size: 1.1rem; */
	font-size: 1.5rem; 
	}
.sch-sub { 
	/*font-size: 0.95rem;*/ 
	font-size: 1.1rem; 
	display: block; 
	margin-top: 5px; }
	
	@media (max-width: 767px) {
		sch-time { 
			width: 120px;
			font-size: 1.1rem;
		}
		.sch-content { 
			font-size: 1.1rem;
			}
		.sch-sub { 
			font-size: 0.95rem;  
			}
	}

.prize-text-inner { text-align: left; 
	/*max-width: 450px; */
	max-width: 740px; 
	margin: 0 auto; font-weight: bold; 
	/*font-size: 1.1rem; */
	/*font-size: 1.6rem; */
	font-size: 1.5rem;
	}
	@media (max-width: 767px) {
		.prize-text-inner {
			font-size: 1.1rem;
		}
	}

.info-wrapper-left { text-align: left; }
.info-title-left { font-size: 2.2rem; 
	/*margin-bottom: 30px; */
	margin-bottom: 0px;
}
.info-row { display: flex; margin-bottom: 10px; font-size: 1rem; font-weight: bold; }
.info-label { 
	/*width: 100px; */
	/*width: 60px;*/
	width: 70px;
	}
	@media (max-width: 767px) {
	.info-label { 
		width: 70px;
		}
	}
	
.info-note-left { 
	/*margin-top: 30px; */
	margin-top: 0px; 
	font-weight: bold; font-size: 1rem; }

/* --- 8. フッター --- */
.footer-area { 
    background-color: #FFF100; 
    padding: 0px 0 80px; 
    text-align: center; 
}
.copyright { font-size: 0.85rem; margin: 0; font-weight: bold; }

/* スマホ用の設定 */
@media screen and (max-width: 480px) {
    .copyright {
        font-size: 2.5vw;
        white-space: nowrap;
    }
}

/* --- 9. レスポンシブ (SP) --- */
@media (max-width: 767px) {
    .section-padding { padding: 60px 0; }
    .intro.section-padding { padding-top: 40px !important; }
    .container { padding: 0 20px; }
    .flex-layout { flex-direction: column; }
    .side-title-area, .content-area { width: 100%; }
    .section-title { text-align: left; margin-bottom: 30px; font-size: 1.8rem; }
    .tile-grid { grid-template-columns: 1fr; }
    .lead-text { font-size: 1.2rem; }
    .company-names { font-size: 1.1rem; }
    .schedule-item { flex-direction: column; }
    .sch-time { margin-bottom: 5px; }
    .footer-area { padding: 40px 0 60px; }
	
    .info-title-left {
        font-size: 1.5rem; 
        /*margin-bottom: 20px;*/
		margin-bottom: 0px;
        white-space: nowrap; 
    }
}

/* --- 10. 画像の設定（にじみ対策強化版） --- */
img {
    max-width: 100%;
    height: auto;
    display: block;
    margin: 0 auto;
    
    /* 基本のにじみ防止 */
    -ms-interpolation-mode: bicubic; /* IE/Edgeでのリサイズ品質向上 */
}

/* PC版（768px以上）で強力にシャープネスをかける */
@media (min-width: 768px) {
    .mv img,
    .headline-40-pc,
    .recommend-img-pc,
    .prize-img-pc,
    .fixed-line-container img {
        /* Chrome/Safariで最も効果があり、警告が出ない命令 */
        image-rendering: -webkit-optimize-contrast;
        
        /* 描画のブレを物理的に固定する設定（警告なし） */
        transform: translateZ(0); 
        backface-visibility: hidden;
    }
}

.headline-40-pc { 
	/*max-width: 700px; */
	max-width: 740px; 
	margin-left: 0; }
.recommend-img-pc { 
	/*max-width: 450px;*/
	max-width: 740px;
	}
	

	
@media (min-width: 768px) {
.prize-img-headline-wrap{
	width:740px;
	margin:0px auto;
}

	.prize-img-pc { 
		/*max-width: 450px; */
		/*max-width: 740px; */
		/*max-width: 360px;*/
		max-width: 480px;
		margin:0px;
		}
}
@media (max-width: 767px) {
	.prize-img-headline-wrap{
		/*width:70%;*/
		width:80%;
		margin:0px;
	}
}

.footer-lead{
	font-size: 1.6rem;
	margin-bottom: 0px;
}
@media (max-width: 767px) {
	.footer-lead{
		font-size: 1.2rem;
	}
}




