* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

html {
	font-size: 16px;
	scroll-behavior: smooth;
}

body {
	font-family: 'Noto Sans JP', sans-serif;
	color: #333;
	line-height: 1.6;
	background-color: #fff;
	padding-top: 100px;
}
@media (max-width: 768px){
	body{
		padding-top: 70px;
	}
}

html, body {
	overflow-x: hidden;
}

.fadeUp {
    opacity: 0;
    transform: translateY(40px);
    transition: opacity 0.8s ease, transform 0.8s ease;
}

.fadeUp.active {
    opacity: 1;
    transform: translateY(0);
}

/* ========================================
	ヘッダー
	======================================== */
.header {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;

	background: #fff;
	z-index: 9999;
}

.header__inner {
	width: 100%;
	height: 100px;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 60px; /* 要素間の余白 */
}

/* ロゴ */
.header__logo {
	flex: none;
	padding-left: 0;
}


.logo-img {
	max-width: 220px;
	width: 100%;
	height: auto;
}

/* ナビ */
.header__nav {
	flex: none;
}

.nav-list {
	display: flex;
	gap: 50px;
	width: auto;
	max-width: none;
	justify-content: center;

	list-style: none;
}

.nav-list a {
	color: #000;
	text-decoration: none;
	font-size: 20px;
	font-weight: 700;
	position: relative;
}

.nav-list a::after {
	content: "";
	display: block;
	width: 0;
	height: 0;
	margin: 8px auto 0;
	border-left: 8px solid transparent;
	border-right: 8px solid transparent;
	border-top: 10px solid #006837;
}

/* CTA */
.header__btn {
	flex: none;
	padding: 0;
}

.header__btn img {
	max-width: 280px; /* 必要に応じて調整 */
	width: 100%;
	height: auto;
	display: block;
}

/* 期限 */
.header__deadline {
	flex: 1;
	background: #006837;
	color: #fff;

	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
}

.header__deadline p {
	font-size: 18px;
	font-weight: 700;
	margin: 0;
}

.header__deadline strong {
	font-size: 30px;
	font-weight: 700;
	line-height: 1.2;
}

.header__deadline span {
	text-decoration: underline;
}

.form-th{
	vertical-align: top !important;
}

@media (max-width: 768px){

	.header__inner{
		flex-direction: row;   /* ←縦じゃなく横にする */
		justify-content: space-between;
		align-items: center;
		gap: 10px;
		padding: 0 10px;
		box-sizing: border-box;
	}

	.header__logo,
	.header__btn,
	.header__deadline{
		width: 100%;
	}

	.header__nav{
		display: none;
	}

	.nav-list{
		gap: 20px;
	}

	.nav-list a{
		font-size: 15px;
	}

	.header__deadline strong{
		font-size: 22px;
	}

	.header__btn img{
		max-width: 140px;
		width: auto;
	}

	.header__btn{
		margin-left: 2rem;
		flex-shrink: 0;
	}

	.header__logo{
		max-width: 140px;
	}

}

@media (min-width: 768px) and (max-width: 1024px) {

  .header__inner {
    gap: 20px;
    justify-content: space-between;
    padding: 0 12px;
  }

  .logo-img {
    max-width: 160px;
  }

  .nav-list {
    gap: 20px;
  }

  .nav-list a {
    font-size: 16px;
  }

  .header__btn img {
    max-width: 180px;
  }
}

/* ========================================
	HEROセクション
	======================================== */
.hero {
	padding: 0;
	padding-bottom: 2rem;
}

.hero__content {
	max-width: 100%;
	margin: 0;
}

.hero__content img {
	display: block;
	width: 100%;
	height: auto;
}	


/* ========================================
	プロジェクト紹介セクション
	======================================== */
.project {
	text-align: center;
}

.project__inner {
	max-width: 900px;
	margin: 0 auto;
	padding: 0 1rem;
}

/* 画像（タイトル系）も中央 */
.project-img {
	display: block;
	margin: 0 auto 1.5rem;
	max-width: 100%;
	height: auto;
}

/* テキスト */
.project__text {
	text-align: center;
	line-height: 1.8;
	margin-top: 2rem;
}

/* pの下に入れる画像2枚用レイアウト */
.project__images {
	display: flex;
	justify-content: center;
	gap: 1.5rem;
	margin: 4rem 0;
	flex-wrap: nowrap;
}

.project__images picture {
	width: 45%;
	max-width: 320px;
}

.project__images img {
	display: block;
	width: 100%;
	height: auto;
}

@media (max-width: 768px) {
	.project__images {
		gap: 0.75rem;
	}

	.project__images picture {
		width: 48%;
		max-width: none;
	}
}

.project__cta {
	text-align: center;
	margin-top: 2.5rem;
}

.project__cta {
	position: relative;
}

@media (max-width: 768px) {
	.cta-main {
		width: 80% !important;
		max-width: none;
	}
}

.cta-left{
	position:absolute;
	top:-10px;
	left:0;
	width:65px;
	height:auto;
}

@media (max-width: 768px) {
	.cta-left, .cta-right {
		display: none;
	}
}

.cta-right{
	position:absolute;
	top:50px;
	right:0;
	width: 83px;
	height:auto;
}

/* ボタン画像 */
.cta-main {
	display: inline-block;
	max-width: 320px;
	width: 100%;
	height: auto;
	transition: transform 0.25s ease, filter 0.25s ease;
}

/* ホバー：軽く浮く */
.cta-main:hover {
	transform: translateY(-3px);
	filter: brightness(1.05);
}

/* クリック：押し込み */
.cta-main:active {
	transform: translateY(0px) scale(0.98);
	filter: brightness(0.95);
}

.cta-note {
	margin-top: 0.8rem;
	font-size: 0.75rem;
	color: #888;
	line-height: 1.4;
	text-align: center;
}

.sec-icon2{
	display: none;
}

@media (max-width: 768px) {

	.project__images{
		position: relative;
		margin-top: 2rem;
		margin-bottom: 2rem;
	}

	.sec-icon2{
		display: block;
		position: absolute;
		top: -50px;     
		right: 0px;
		margin: 0;
		z-index: 10;
	}

	.sec-icon2 img{
		width: 120px;
		height: auto;
		display: block;
	}

}

/* ========================================
	想いセクション
	======================================== */

.thought-section {
	position: relative;
	background: #fde3bd;
	padding: 60px 0;
	margin-top: 250px;
}
@media (max-width: 768px) {
	.thought-section {
		margin-top: 150px;
		padding-bottom: 0px;
	}
}

/* 波 */
.thought-section::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;

	width: 100%;
	height: 180px;

	background: url("../img/thought-wave-top.webp")
		left top / 100% 180px no-repeat;

	transform: translateY(-100%);
	z-index: 1;
}

@media (max-width: 768px) {
	.thought-section::before {
		height: 60px;

		background: url("../img/thought-wave-top.webp")
			top center / 100% 60px no-repeat;

		transform: translateY(-100%);
	}
}

.thought-section::after {
	content: "";
	position: absolute;

	top: -15vw;
	left: -1vw;

	width: clamp(320px, 26vw, 700px);
	aspect-ratio: 1 / 1;

	background: url("../img/thought-text.png") no-repeat center;
	background-size: contain;

	z-index: 2;
	pointer-events: none;
}

@media (max-width: 768px) {
	.thought-section::after {
		width: clamp(180px, 16vw, 420px); /* 約60%まで縮小 */
		aspect-ratio: 1 / 1;

		top: -27vw;   /* 上にはみ出し強め */
		left: -1vw;  /* 左にはみ出し強め */

		background-size: contain;
	}
}

/*.thought-section::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;

	width: 100%;
	height: 180px;

	background:
		url("../img/thought-wave-bottom.webp")
		center bottom / 100% 180px no-repeat;

	transform: translateY(100%);
}*/

.thought-inner {
  max-width: 1000px;
  margin: 0 auto;
  padding: 0 20px;
  position: relative;
}

.thought-title-wrap {
	position: relative;
	margin-bottom: 40px;
}

@media (max-width: 768px) {
	.thought-title-wrap2 {
		margin-top: 4rem;
		margin-bottom: 4rem;
	}
}

.thought-title1-back {
	position: absolute;
	top: -30px;
	right: -19.5vw;

	width: clamp(400px, 35vw, 700px);
	height: auto;

	z-index: 1;
	pointer-events: none;
}

@media (max-width: 768px) {
	.thought-title1-back {
		top: 80px;        /* 下に移動（タイトルの右下へ） */
		right: -6vw;     /* 右にはみ出し */
		
		width: 90vw;      /* 少し小さく調整 */
		max-width: none;

		z-index: 1;
		pointer-events: none;
	}
}

.thought-title2-back {
	position: absolute;
	top: -30px;
	right: -19.5vw;

	width: clamp(400px, 35vw, 700px);
	height: auto;

	z-index: 1;
	pointer-events: none;
}

@media (max-width: 768px) {
	.thought-title2-back {
		top: 50px;        /* 下に移動（タイトルの右下へ） */
		right: -6vw;     /* 右にはみ出し */
		
		width: 90vw;      /* 少し小さく調整 */
		max-width: none;

		z-index: 1;
		pointer-events: none;
	}
}

.thought-title-wrap .sec-title {
	position: relative;
	z-index: 2;
}



/* タイトル画像 */
.sec-title {
  display: block;
  max-width: 100%;
  margin: 0 auto 40px;
  height: auto;
}

.thought-title2 {
  width: 60%;
  height: auto;
}
@media (max-width: 768px) {
	.thought-title2 {
		width: 100%;
		height: auto;
	}
}

/* 本文 */
.sec-text {
  font-size: 16px;
  line-height: 1.9;
  color: #333;
  margin-bottom: 40px;
  text-align: center;
}

@media (max-width: 768px) {
	.sec-text {
	  text-align: left;
	}
}

/* 単体画像 */
.sec-image {
  text-align: center;
  margin: 40px 0;
}

.sec-image img {
  width: 100%;
  max-width: 700px;
  height: auto;
}

@media (max-width: 768px) {
	.sec-image--full picture img {
		width: 100vw;
		max-width: none;
		margin-left: calc(50% - 50vw);
		margin-right: calc(50% - 50vw);
		display: block;
	}
}

/* 小アイコン */
.sec-icon {
  text-align: center;
  margin: 30px 0 50px;
}

.sec-icon img {
  width: 150px;
  height: auto;
}

.sec-title--small {
  width: 60%;
  height: auto;
  display: block;
  margin: 0 auto 40px;
}
@media (max-width: 768px) {
  .sec-title--small {
    width: 70%;
  }
}

/* 横並びブロック */
.flex-block {
  display: flex;
  gap: 40px;
  align-items: top;
  margin-bottom: 60px;
}

/* 画像（プロジェクトの2枚並びと同等） */
.flex-img {
  flex: 1;
}

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

/* テキスト側 */
.flex-text {
  flex: 1;
}

.mini-title {
  display: block;
  max-width: 420px;
  margin-bottom: 15px;
  height: auto;
}

.flex-text p {
  font-size: 16px;
  line-height: 2.2;
}

/* 逆レイアウト */
.flex-block.reverse {
  flex-direction: row-reverse;
}

/* スマホ */
@media (max-width: 768px) {
  .flex-block,
  .flex-block.reverse {
    flex-direction: column;
    gap: 20px;
  }

  .sec-text {
    font-size: 15px;
  }

	.flex-block {
		flex-direction: column;
		margin-bottom: 0px;
	}
	.flex-block.normal {
		margin-bottom: 30px;
	}

	/* タイトル（画像）→ 1番目 */
	.flex-text .mini-title {
		order: 1;
	}

	/* 文章 → 2番目 */
	.flex-text p {
		order: 2;
	}

	/* 写真 → 3番目 */
	.flex-img {
		order: 3;
		transform: translateY(-30px);
	}

	/* flexの子要素として順序制御できるようにする */
	.flex-text {
		display: flex;
		flex-direction: column;
	}
}


.mini-title {
  display: block;
  margin: 0 0 20px;
  line-height: 1;
}

.flex-text {
  line-height: 1;
}

.thought-treat {
  position: absolute;
  height: auto;
  pointer-events: none;
}

.thought-treat--left {
  left: 0;
}

.thought-treat--right {
  right: 0;
}

.thought-treat--small {
  width: 65px;
}

.thought-treat--medium {
  width: 83px;
}

.thought-section .thought-treat2 {
  top: 200px;
}

.thought-section .thought-treat1 {
  top: 250px;
}

.thought-section .thought-treat4 {
  top: 600px;
}

.thought-section .thought-treat3 {
  top: 650px;
}

.thought-treat3 {
  left: -80px;
}

.thought-section .thought-treat5 {
  top: 950px;
}

.thought-section .thought-treat6 {
  top: 1600px;
}

.thought-treat6 {
  left: -160px;
}

.thought-section .thought-treat7 {
  top: 1720px;
}

.thought-treat7 {
  right: -80px;
}

/* ========================================
	歴史セクション
	======================================== */

.history-section {
  position: relative;
  width: 100%;
  padding: 150px 0 0;

  background: url("../img/history-wave-top.webp") top center / cover no-repeat;
}

/*@media (max-width: 768px) {

	.history-section {
		padding: 130px 0 0;

		background: url("../img/history-wave-top-sp.webp")
			top center / 100% auto no-repeat;

		background-repeat: no-repeat;

		min-height: 0;
	}
}*/

/* 波 */
.history-section::before {
	content: "";
	position: absolute;
	top: 180px;
	left: 0;

	width: 100%;
	height: 180px;

	background: url("../img/history-wave-top-b.webp")
		left top / 100% 180px no-repeat;

	transform: translateY(-100%);
	z-index: 10;
}

@media (max-width: 768px) {
	.history-section::before {
		top: 60px;
		height: 60px;

		background: url("../img/history-wave-top-b.webp")
			top center / 100% 60px no-repeat;

		transform: translateY(-100%);
	}
}

.history-wave-bottom {
  display: block;
  width: 100%;
  height: auto;

  margin: 0;
}

.history-section::after {
	content: "";
	position: absolute;

	top: -5vw;
	left: -1vw;

	width: clamp(320px, 26vw, 700px);
	aspect-ratio: 1 / 1;

	background: url("../img/history-text.png") no-repeat center;
	background-size: contain;

	z-index: 2;
	pointer-events: none;
}


@media (max-width: 768px) {

	.history-section::after {
		top: -10vw;
		left: -1vw;

		width: clamp(180px, 45vw, 320px);
		aspect-ratio: 1 / 1;

		background-size: contain;
	}
}

.history-inner {
  max-width: 1000px;
  margin: 0 auto;
  padding: 150px 20px 0 20px;
  position: relative;
  	z-index: 2;
}

@media (max-width: 768px) {

	.history-inner {
		padding-top: 0px;

	}
}

/* 画像・テキスト共通（想いと統一） */
.history-section .sec-title {
  display: block;
  max-width: 100%;
  margin: 0 auto 40px;
  height: auto;
}

.history-section .sec-text {
  font-size: 16px;
  line-height: 1.9;
  text-align: center;
  margin-bottom: 80px;
  color: #333;
}

@media (max-width: 768px) {

	.history-section .sec-text {
		text-align: left;
		margin-bottom: 40px;

	}
}

.history-section .sec-image {
  text-align: center;
  margin: 80px 0;
}


@media (max-width: 768px) {

	.history-section .sec-image {
		margin: 40px 0;

	}
}

.history-section .sec-image img {
  width: 100%;
  max-width: 700px;
  height: auto;
}

/* ========================================
   お届けまでの流れ
======================================== */

.flow-section {
	position: relative;
	background: #f3f6f7;
	padding: 100px 20px 0 120px; /* ★下を広げる（重なり対策） */
	overflow: visible;
	z-index: 10;
	margin-bottom: 250px;
}

@media (max-width: 768px) {

	.flow-section {
		padding: 60px 0px;
		margin-bottom: 80px;
	}
}

/* 波 */
.flow-section::before {
	content: "";
	position: absolute;
	bottom: -180px;
	left: 0;

	width: 100%;
	height: 180px;

	background: url("../img/flow-wave-bottom.webp") left bottom / 100% 180px no-repeat;

	z-index: 1;
}

@media (max-width: 768px) {

	.flow-section::before {
		bottom: -30px;
		height: 80px;

		background: url("../img/flow-wave-bottom.webp")
			left bottom / 100% auto no-repeat;
	}
}

.flow-section::after {
	content: "";
	position: absolute;

	top: -18vw;
	left: -1vw;

	width: clamp(360px, 39vw, 1050px);
	aspect-ratio: 1 / 1;

	background: url("../img/flow-text.png") no-repeat center;
	background-size: contain;

	z-index: 2;
	pointer-events: none;
}

@media (max-width: 768px) {

	.flow-section::after {
		top: -27vw;   /* 少し上に逃がす */
		left: -1vw;   /* 左にはみ出し強め */

		width: 60vw;  /* 約6割サイズ */
		aspect-ratio: 1 / 1;

		background-size: contain;
	}
}

.flow-inner {
	max-width: 1100px;
	margin: 0 auto;
}

/* タイトル画像 */

.flow-title {
	display: block;
	margin: 0 auto 60px;
	max-width: 80%;
	height: auto;
}

@media (max-width: 768px) {

	.flow-title {
		margin-bottom: 20px;
	}
}

/* STEP */

.flow-steps {
	display: flex;
	justify-content: center;
	gap: 0px;
	margin-bottom: 100px;
}

.step-item {
	flex: 1;
	max-width: 320px;
}

.step-item img {
	width: 100%;
	height: auto;
	display: block;
}

@media (max-width: 768px) {

	.flow-steps {
		flex-direction: column;
		align-items: center;
		gap: 20px;
	}

	.step-item {
		width: 100%;
		max-width: 320px; /* 画像サイズの見栄え調整 */
	}
}

/* 応募要項 */

.requirements {
	position: relative;
	border: 0.7px solid #000;
	padding: 80px 50px 50px;
}

.requirements {
	position: relative;
	border: 0.7px solid #000;
	padding-top: 60px; /* ←これ追加 */
	margin-bottom: 70px;
}

.requirements::before {
	content: "";
	position: absolute;
	top: -2px;
	left: 50%;
	transform: translateX(-50%);
	width: 300px;
	height: 30px;
	background: rgba(255, 255, 255, 0.8);
}

.requirements-table {
	padding: 40px 20px;
}

.requirements-head {
	position: absolute;
	top: -35px;
	left: 50%;
	transform: translateX(-50%);

	background: transparent; /* ←絶対これ */
	padding: 0;
	z-index: 10;
}

.requirements-head img {
	display: block;
	height: auto;
	max-width: 300px;
}

/* 行 */

.requirements-row {
	display: flex;
	align-items: stretch;
	margin-bottom: 40px;
}

.requirements-row:last-child {
	margin-bottom: 0;
}

/* 左 */

.requirements-label {
	width: 220px;

	background: rgba(255, 255, 255, 0.8);

	display: flex;
	align-items: center;
	justify-content: center;

	font-size: 20px;
	font-weight: 700;

	padding: 25px;
}

/* 右 */

.requirements-content {
	flex: 1;

	display: flex;
	align-items: center;

	padding: 0 30px;

	line-height: 1.9;
	font-size: 16px;
}

@media (max-width: 768px) {
	.requirements {
		padding: 30px 15px 30px;
		margin: 0 20px;
	}

	.requirements::before {
		top: -12px;
		left: 47%;
		width: 140px;
		height: 20px;
	}

	.requirements-head {
		top: -15px;
	}

	.requirements-head img{
		max-width: 200px;
		width: 90%;
		height: auto;
	}

	.requirements-table {
		padding: 20px 10px;
	}

	.requirements-row {
		flex-direction: column;
		gap: 10px;
		margin-bottom: 25px; /* 40px → 少し詰める */
	}

	.requirements-label {
		width: 100%;
		display: flex;
		justify-content: center;
		align-items: center;
		font-size: 16px;
		padding: 5px 15px;
		text-align: center;
	}

	.requirements-content {
		padding: 0 10px;
		font-size: 15px;
		align-items: flex-start;
	}
}

/*.flow-section::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;

	width: 100%;
	height: 140px;

	background: url("../img/flow-wave.png") no-repeat bottom center;
	background-size: cover;

	pointer-events: none;

	z-index: 1;
}*/

.project__cta {
	position: relative;
	z-index: 10;
	margin-bottom: -90px;
}

/* ========================================
	フォームセクション
	======================================== */
.form-section {
	position: relative;
	z-index: 5;
	margin-top: -40px; /* ★重なり量 */
	padding-top: 80px; /* ★中身が隠れないように調整 */

	padding: 4rem 1rem;
	background-color: #fff;
}

.form-section::after {
	content: "";
	position: absolute;

	top: -26vw;
	left: -1vw;

	width: clamp(640px, 52vw, 1400px);
	aspect-ratio: 1 / 1;

	background: url("../img/form-text.png") no-repeat center;
	background-size: contain;

	z-index: 2;
	pointer-events: none;
}

@media (max-width: 768px) {

	.form-section::after {
		top: -35vw;      /* 少し上へ逃がす */
		left: -1vw;      /* 左にはみ出し強め */

		width: 80vw;     /* 約6割サイズ */
		aspect-ratio: 1 / 1;

		background-size: contain;
	}
}

.form__container {
	max-width: 800px;
	margin: 0 auto;
}

.form__title {
	font-size: 2rem;
	font-weight: 700;
	color: #333;
	margin-bottom: 2rem;
	text-align: center;
}

@media (max-width: 768px) {
	.form__title {
		font-size: 1.6rem;
	}
}


.p-form-table {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 2rem;
}

.p-form-table th {
	text-align: left;
	padding: 1rem;
	font-weight: 700;
	color: #333;
	width: 31%;
	font-size: 0.95rem;
}

.p-form-table td {
	padding: 1rem;
}

.required {
	color: #fff;
	font-weight: 700;
	margin-left: 0.5rem;
	font-size: 0.75rem;
	background-color: #a28a49;
	padding: 0.2rem 0.4rem;
	border-radius: 3px;
	display: inline-block;
}

.no-required {
	color: #a28a49;
	font-weight: 400;
	margin-left: 0.5rem;
	font-size: 0.75rem;
	padding: 0.2rem 0.4rem;
	border-radius: 3px;
	border: 1px solid #a28a49;
	display: inline-block;
}

.p-form-input-name {
	display: flex;
	gap: 1rem;
}

.p-form-input-name > div {
	flex: 1;
}

.p-form-input-name .title {
	font-size: 0.8rem;
	color: #666;
	margin-bottom: 0.3rem;
	font-weight: 500;
	display: block;
}

.p-form-table input[type="text"],
.p-form-table input[type="email"],
.p-form-table input[type="tel"],
.p-form-table select,
.p-form-table textarea {
	width: 100%;
	padding: 0.75rem;
	border: 1px solid #969696;
	border-radius: 4px;
	font-family: 'Noto Sans JP', sans-serif;
	font-size: 0.95rem;
	margin-bottom: 0.5rem;
	transition: border-color 0.3s;
	background-color: rgba(162, 138, 73, 0.1);
}

.p-form-table input[type="text"]:focus,
.p-form-table input[type="email"]:focus,
.p-form-table input[type="tel"]:focus,
.p-form-table select:focus,
.p-form-table textarea:focus {
	outline: none;
	border-color: #2ecc71;
	box-shadow: 0 0 0 3px rgba(46, 204, 113, 0.1);
}

.p-form-table textarea {
	resize: vertical;
	min-height: 120px;
}

.date-grid{
	display:block;
	width:100%;
}

.date-grid input,
.date-grid .date-picker{
	width: 100%;
	padding: 0.75rem;
	border: 1px solid #969696;
	border-radius: 4px;
	font-family: 'Noto Sans JP', sans-serif;
	font-size: 0.95rem;
	background-color: rgba(162, 138, 73, 0.1);
	box-sizing: border-box;
}

@media (max-width:768px){

	.date-grid{
		gap:8px;
	}

	.date-grid input{
		width:80px;
	}
}

.yubin {
	display: flex;
	gap: 0.5rem;
	align-items: center;
}

.yubin input {
	flex: 1;
}

.yubin-linkbtn {
	background-color: #6f6e6d;
	color: #fff;
	padding: 0.75rem 1rem;
	border-radius: 4px;
	text-decoration: none;
	font-size: 0.85rem;
	white-space: nowrap;
	transition: background-color 0.3s;
	cursor: pointer;
	margin-bottom: 0.5rem;
}

.yubin-linkbtn:hover {
	background-color: #27ae60;
}

.select {
	position: relative;
	display: inline-block;
	width: 100%;
}

.select select {
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");
	background-repeat: no-repeat;
	background-position: right 0.75rem center;
	background-size: 1.5em 1.5em;
	padding-right: 2.5rem;
	cursor: pointer;
}

h3.c-ttl-lv2 {
	font-size: 1.4rem;
	font-weight: 700;
	color: #333;
	margin-bottom: 1.5rem;
	margin-top: 2rem;
	padding: 0 1rem;
	border-left: 4px solid #a28a49;
}

@media (max-width:768px){
	h3.c-ttl-lv2{
		font-size: 1.2rem;
	}
}

.check {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	cursor: pointer;
	font-size: 0.95rem;
	margin-bottom: 0.75rem;
}

.check input[type="checkbox"] {
	width: 18px;
	height: 18px;
	cursor: pointer;
	accent-color: #2ecc71;
}

.p-form-note {
	margin-bottom: 1rem;
	font-size: 0.85rem;
	line-height: 1.8;
}

.note1{
	padding-left: 1em;
	line-height: 1.8;
}
.p-form-note .u-line{
	text-decoration: underline;
}

.p-form-note span {
	font-weight: 700;
	display: block;
	margin-bottom: 0.5rem;
}

.p-form-note a:hover {
	text-decoration: underline;
}

.c-btn-main {
	text-align: center;
	margin-top: 2rem;
}

.c-btn-main--form button {
	background-color: #a28a49;
	color: #fff;
	padding: 1.5rem 4rem;
	border: none;
	font-size: 1rem;
	font-weight: 700;
	cursor: pointer;
	transition: background-color 0.3s, transform 0.2s;
	font-family: 'Noto Sans JP', sans-serif;
	margin-top: 2rem;
}

.c-btn-main--form button:hover {
	background-color: #27ae60;
	transform: translateY(-2px);
}

.c-btn-main--form button:active {
	transform: translateY(0);
}

@media (max-width: 768px) {

	.p-form-table,
	.p-form-table tbody,
	.p-form-table tr,
	.p-form-table th,
	.p-form-table td {
		display: block;
		width: 100%;
	}

	.p-form-table tr {
		margin-bottom: 20px;
	}

	.p-form-table th {
		padding: 0.5rem 0;
		width: 100%;
		text-align: left;
		font-size: 0.95rem;
	}

	.p-form-table td {
		padding: 0.5rem 0 1rem;
	}

	/* 入力欄を少し広げて見やすく */
	.p-form-table input,
	.p-form-table textarea,
	.p-form-table select {
		font-size: 16px; /* iOSズーム防止 */
	}

	.c-btn-main--form button{
		font-size: 0.85rem;
	}
}
/* ========================================
	フッター
	======================================== */
.footer {
	padding: 60px 20px 20px;
}

.footer__inner {
	max-width: 1100px;
	margin: 0 auto;

	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
}

.footer__spacer {
}

/* 右側（ロゴ＋住所） */
.footer__right {
	justify-self: end;

	display: flex;
	flex-direction: column;
	align-items: flex-end;
	text-align: right;
	gap: 10px;
}

.footer__logo {
	width: 180px;
	height: auto;
}

.footer__address {
	font-size: 14px;
	line-height: 1.6;
}

/* 中央ボタン */
.footer__center {
	justify-self: center;
	position: static;   /* ★重要：absoluteを無効化 */
	transform: none;

	display: flex;
	justify-content: center;
}

.footer__btn {
	display: inline-block;
	transition: 0.3s;
}

.footer__btn img {
	width: 300px;
	height: auto;
}

.footer__btn:hover {
	transform: translateY(-2px);
}

.footer__bottom {
	margin-top: 50px;
	text-align: center;
	font-size: 12px;
}

@media (max-width: 768px) {
	.footer{
		padding-top: 0px;
	}

	.footer__inner {
		grid-template-columns: 1fr;
		text-align: center;
		gap: 40px;
	}

	.footer__right {
		justify-self: center;
		align-items: center;
		text-align: center;
	}

	.footer__center {
		justify-self: center;
	}

	.footer p{
		font-size: 0.65rem !important;
	}	
}

.gototop img {
    width: 100%;
    height: 100%;
}

.gototop.active {
    opacity: 1;
    transform: translateY(0);
}

.gototop {
    position: fixed;
    right: 20px;
    bottom: 20px;
    width: 80px;
    height: 80px;
    background: rgba(255, 255, 255, 0.8);
    border: solid 2px #1D1C21;
    box-sizing: border-box;
    border-radius: 5px;
    display: block;
    z-index: 20;
    transition: 0.1s;
    opacity: 0;
    transform: translateY(-20%);
}

/* ========================================
	レスポンシブ
	======================================== */
@media (max-width: 768px) {
	.header__inner{
		flex-direction: row;
		justify-content: space-between;
		align-items: center;
		height: 70px;
		padding: 0 12px;
		gap: 0;
	}

	/* ナビは完全非表示 */
	.header__nav{
		display: none;
	}

	/* ロゴ */
	.logo-img{
		max-width: 140px;
		height: auto;
	}

	/* CTAボタン */
	.header__btn img{
		max-width: 160px;
		height: auto;
		display: block;
	}

	.header__logo,
	.header__btn{
		flex: none;
	}

	.project__text {
		text-align: left;
	}

	.sp-br {
		display: none;
	}
}

/* ========================================
   確認画面
======================================== */

.p-confirm-table{
    width:100%;
    border-collapse:collapse;
    margin-bottom:2rem;
}

.p-confirm-table th{
    width:31%;
    background:#fff;
    vertical-align:top;
}

.p-confirm-table td{
    padding:15px;
}

.confirm-value{
    line-height:1.8;
    word-break:break-word;
}

.c-btn-main--back{
    margin-top:15px;
}

.c-btn-main--back button{
    background:#6f6e6d;
    color:#fff;
    border:none;
    padding:1.5rem 4rem;
    font-size:1rem;
    font-weight:700;
    cursor:pointer;
    transition:.3s;
}

.c-btn-main--back button:hover{
    background:#555;
}

.error-wrap{
    max-width:700px;
    margin:40px auto;
    padding:30px;
    border:1px solid #d9534f;
    background:#fff5f5;
    border-radius:6px;
    text-align:center;
}

.error-wrap h4{
    margin-bottom:20px;
    color:#d9534f;
}

.error-wrap input[type=button]{
    margin-top:20px;
    background:#a28a49;
    color:#fff;
    border:none;
    padding:15px 40px;
    cursor:pointer;
}

/* ========================================
   THANKSページ
   ======================================== */

.container {
	max-width: 800px;
	margin: 4rem auto;
	padding: 3rem 2rem;
	text-align: center;
}
@media (max-width: 768px) {
	.container{
		margin-top: 0;
	}
}
.thanks-icon {
	font-size: 4rem;
	margin-bottom: 1rem;
}

.thanks-title {
	font-size: 2rem;
	font-weight: 700;
	color: #333;
	margin-bottom: 1rem;
}

.thanks-subtitle {
	font-size: 1rem;
	color: #666;
	margin-bottom: 2rem;
	line-height: 1.8;
}

.thanks-message {
	border-left: 4px solid #a28a49;
	padding: 1.5rem;
	margin: 2rem 0;
	text-align: left;
	font-size: 0.95rem;
	color: #333;
	line-height: 1.8;
}

.thanks-message strong {
	color: #a28a49;
}

.thanks-footer {
	background-color: #f5f5f5;
	padding: 1.5rem;
	margin: 2rem 0 -3rem;
	font-size: 0.85rem;
	color: #999;
}

.button-group {
	display: flex;
	gap: 1rem;
	justify-content: center;
	margin-top: 3rem;
}

.btn {
	padding: 0.75rem 2rem;
	border: none;
	font-size: 1rem;
	font-weight: 700;
	cursor: pointer;
	transition: background-color 0.3s;
	font-family: 'Noto Sans JP', sans-serif;
	text-decoration: none;
	display: inline-block;
}

.btn-primary {
	background-color: #a28a49;
	color: #fff;
}

.btn-primary:hover {
	background-color: #a28a49;
}

.footer p {
	font-size: 0.85rem;
}

/* ========================================
   THANKSページ レスポンシブ
   ======================================== */

@media (max-width: 768px) {
	.thanks-title {
		font-size: 1.5rem;
	}

	.thanks-subtitle {
		font-size: 0.9rem;
	}

	.thanks-icon {
		font-size: 3rem;
	}

	.button-group {
		flex-direction: column;
	}

	.btn {
		width: 100%;
	}
}