@charset "utf-8";

:root {
	--pcp: / 1375 * 100%;
	--pcv: / 1375 * 100vw;
	
	--spp: / 375 * 100%;
	--spv: / 375 * 100vw;
}

html {
	background: #fff;
	scroll-padding-top: 133px;
	scroll-behavior: smooth;
}

body{
	font-family: sans-serif;
}

.page-cont p,
.page-cont th,
.page-cont td,
.page-cont li {
	margin: 0;
	line-height: 1;
}

.page-cont ul,
.page-cont ol {
	list-style-type: none;
}


@media print, screen and (min-width:768px) {
	.pc-none {
		display: none !important;
	}
	.box1220 {
		max-width: 1220px;
		width: calc(1220 var(--pcp));
		margin: 0 auto;
		position: relative;
	}
	.box1012 {
		max-width: 1012px;
		width: calc(1012 var(--pcp));
		margin: 0 auto;
		position: relative;
	}
	
	a[href^="tel:"] {
		pointer-events: none;
		color: #000;
		text-decoration: none;
	}
}

@media screen and (max-width:767px) {
	html {
		scroll-padding-top: 86px;
	}
	.sp-none {
		display: none !important;
	}
	.box-sp {
		width: calc(345 var(--spp));
		margin: 0 auto;
		position: relative;
	}
}

/* -------------------------------------------------
	header
------------------------------------------------- */

@media print, screen and (min-width:768px) {
	.header-wrap {
		height: 123px;
	}
	#header {
		width: 100%;
		height: 123px;
		box-sizing: border-box;
		border-bottom: solid 2px #ccc;
		background: #fff;
		position: fixed;
		left: 0;
		top: 0;
		z-index: 100;
	}
	#header .inner {
		max-width: 1260px;
		margin: 0 auto;
		padding: 0 20px;
		box-sizing: border-box;
	}
	#header .logo {
		margin-top: 46px;
	}
	#header .logo img {
		width: 265px;
		height: auto;
	}
	#header .yamaha {
		margin: 38px 16px 0 0;
	}
	#header .yamaha img {
		width: 137px;
		height: auto;
	}
	
	#header .page-nav {
		display: flex !important;
		gap: 14px 30px;
		position: absolute;
		top: 68px;
		left: 53.2%;
		transform: translate(-50%,-50%);
		list-style-type: none;
	}
	#header .page-nav li {
		white-space: nowrap;
		font-size: 15px;
		line-height: 1;
	}
	#header .page-nav li a {
		color: #000;
	}
}

@media print, screen and (min-width:768px) and (max-width:1260px) {
	#header .page-nav {
		width: 400px;
		flex-wrap: wrap;
		justify-content: center;
		left: 57%;
		top: 68px;
	}
}

@media print, screen and (min-width:768px) and (max-width:830px) {
	#header .page-nav {
		gap: 14px 20px;
	}
	#header .page-nav li {
		font-size: 13px;
	}
}

@media screen and (max-width:767px) {
	.header-wrap {
		height: 76px;
	}
	#header {
		width: 100%;
		height: 76px;
		box-sizing: border-box;
		border-bottom: solid 2px #ccc;
		background: #fff;
		position: fixed;
		left: 0;
		top: 0;
		z-index: 100;
	}
	#header .inner {
		padding-top: 0;
		padding-bottom: 0;
		padding-right: 20px;
	}
	#header .logo {
		margin-top: 28px;
	}
	#header .logo img {
		width: 139px;
		height: auto;
	}
	#header .yamaha {
		margin-top: 26px;
	}
	#header .yamaha img {
		width: 80px;
		height: auto;
	}
}

/* -------------------------------------------------
	見出し
------------------------------------------------- */

.h-type1 {
	margin-bottom: 35px;
	font-size: 2.8rem;
	line-height: 1;
	text-align: center;
	font-weight: normal;
}
.h-type1 span {
	padding: 0 0.3em 5px;
	display: inline-block;
	border-bottom: solid 1px #666;
}
p.text-big{
	font-size:2.8rem;
	text-align:center;
	margin-bottom:34px;
}
.h-type2 {
	padding: 0.4em 0 0.3em 0.7em;
	margin-bottom: 20px;
	font-size: 2.2rem;
	line-height: 1.5;
	border-bottom: solid 1px #666;
	border-left: solid 10px #000;
}

@media screen and (max-width:767px) {
	.h-type1 {
		margin-bottom: 18px;
		font-size: 2.2rem;
	}
	.h-type1 span {
		padding: 0 0.3em 5px;
	}
	
	.h-type2 {;
		font-size: 1.6rem;
		line-height: calc(22 / 15);
		border-left-width: 8px;
	}
	p.text-big{
	font-size:2.0rem;
}
}

/* -------------------------------------------------
	ボタン
------------------------------------------------- */

.btn-type1 {
	width: 287px;
	height: 100px;
	padding-left: 1em;
	padding-right: 2em;
	box-sizing: border-box;
	font-size: 2.2rem;
	color: #fff;
	background: #519d3f;
	display: flex;
	align-items: center;
	position: relative;
	border-radius: 6px;
	transition: background ease 0.3s;
}
.btn-type2 {
	width: 287px;
	height: 100px;
	padding-left: 1em;
	padding-right: 2em;
	box-sizing: border-box;
	font-size: 2.2rem;
	color: #fff;
	background: #519d3f;
	display: flex;
	align-items: center;
	position: relative;
	border-radius: 6px;
	transition: background ease 0.3s;
}
.btn-type1::after,
.btn-type2::after {
	width: 18px;
	height: 18px;
	box-sizing: border-box;
	border-right: solid 3px #fff;
	border-top: solid 3px #fff;
	content: "";
	display: block;
	position: absolute;
	right: 18px;
	top: 50%;
	transform: translateY(-50%) rotate(45deg);
}
.btn-type1:hover,
.btn-type2:hover  {
	text-decoration: none;
	background: #72cd33;
}

/* .low */
.btn-type1.low {
	height: 77px;
	font-size: 1.8rem;
}
.btn-type1.low::after {
	width: 14px;
	height: 14px;
}

@media screen and (max-width:767px) {
	.btn-type1 {
		width: 300px;
		max-width: 100%;
		margin-left: auto;
		margin-right: auto;
		height: 77px;
		font-size: 1.8rem;
	}
	.btn-type1::after {
		width: 13px;
		height: 13px;
		border-right: solid 2px #fff;
		border-top: solid 2px #fff;
		right: 20px;
	}
	
	/* .low */
	.btn-type1.low {
		height: 77px;
		font-size: 1.8rem;
	}
	.btn-type1.low::after {
		width: 14px;
		height: 14px;
	}
}

/* -------------------------------------------------
	#fv
------------------------------------------------- */

#fv img {
	width: 100%;
}

/* --- 前提：画像の下に隙間ができないようにするリセット --- */
#fv h1 {
    margin: 0;
    line-height: 0;
}
#fv h1 img {
    width: 100%;
    height: auto;
    vertical-align: bottom;
}

/* --- ブルーグレーの帯部分 --- */
.period-bar {
    background-color: #3b4b57; 
    
    /* 左側のアロー装飾の設定 */
    background-image: url("../img/bg-3arrow.png");
    background-repeat: no-repeat;
    background-position: left center;
    background-size: auto 100%;

    /* 中身のレイアウト設定 */
    display: flex;
    justify-content: center;
    align-items: center; 
    width: 100%;
    padding: 24px 20px; 
    box-sizing: border-box;
}
.period-txt {
    color: #ffffff;
    font-size: 2.8rem;
    margin: 0;
    line-height: 1.4;
}


@media screen and (max-width: 767px) {
    .period-bar {
        padding: 16px 10px;
        height: 80px;
    }

    .period-txt {
        font-size: 1.8rem;
        line-height: 1.6!important;
        text-align: center;
    }
}

/* -------------------------------------------------
	#lead
------------------------------------------------- */

#lead {
	padding-top: 45px;
	text-align: center;
}
#lead .title {
	font-size: 2.8rem;
	line-height: 1;
}
#lead .desc {
	margin-top: 0.9em;
	font-size: 1.8rem;
	line-height: calc(33 / 18);
	margin-bottom: 45px;
}

@media screen and (max-width:767px) {
	#lead {
		padding-top: 25px;
/*		text-align: left;*/
	}
	#lead .title {
		font-size: 2rem;
		line-height: 1.5;
	}
	#lead .desc {
		margin-top: 2em;
		font-size: 1.5rem;
		line-height: calc(25 / 15);
		margin-bottom: 20px;
		text-align: left;
	}
}

/* -------------------------------------------------
	#lineup
------------------------------------------------- */

#lineup {
	margin-top: 70px;
}
#lineup .bikes .pic-box {
	position: relative;
}
#lineup .bikes .pic-box .name {
	width: auto;
	height: calc(143 / 515 * 100%);
	position: absolute;
	z-index: 2;
	left: 0;
	top: calc(10 / 515 * 100%);
}
#lineup .bikes .item:nth-child(1) .pic-box .name {
	left: auto;
	right: 0;
}
#lineup .bikes .pic-box .pic {
	width: 100%;
	position: relative;
	z-index: 4;
	margin-top:40px;
}
#lineup .bikes .texts .name {
	font-size: 2.8rem;
	font-weight: bold;
	line-height: 1.5;
}
#lineup .bikes .texts .desc {
	margin-top: 3.2em;
	font-size: 1.8rem;
	line-height: calc(33 / 18);
}
#lineup .bikes .texts .btn {
	margin-top: 18px;
}
#lineup .bikes .texts .shop {
	margin-top: 24px;
	padding-left: 30px;
	font-size: 1.8rem;
	position: relative;
}
#lineup .bikes .texts .shop::before {
	width: 16px;
	height: 16px;
	box-sizing: border-box;
	border-left: solid 3px #000;
	border-bottom: solid 3px #000;
	content: "";
	display: block;
	position: absolute;
	left: 0.3em;
	top: -0.2em;
	transform: rotate(-45deg);
}
#lineup .bikes .texts .shop a {
	font-weight: bold;
	text-decoration: underline;
	color: #000;
}
#lineup .bikes .texts .shop a:hover {
	opacity: 0.6;
	transition: none;
}

@media print, screen and (min-width:768px) {
#lineup {
	margin-bottom: 50px;
}
#lineup .bikes .item {
    position: relative; /* 擬似要素の基準にする */
    min-height: 140px;
    padding-bottom: 40px; /* 必要に応じて中身が背景の下に被らないよう調整 */
}
/* 共通の背景設定（擬似要素） */
#lineup .bikes .item::before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    width: 100%;
    height: 140px;
    background-repeat: no-repeat;
    background-position: right top;
    background-size: 100% auto;
    z-index: 0;
}
/* --- 1つめのアイテム --- */
#lineup .bikes .item:nth-child(1)::before {
    background-image: url("../img/bg_001.jpg");
}

/* --- 2つめのアイテム --- */
#lineup .bikes .item:nth-child(2)::before {
    background-image: url("../img/bg_002.jpg");
}

/* --- 3つめのアイテム --- */
#lineup .bikes .item:nth-child(3)::before {
    background-image: url("../img/bg_003.jpg");
}

/* 中身を前面に出す */
#lineup .bikes .item .col2 {
    position: relative;
    z-index: 1;
}
.name {
    margin: 0;
    padding-top: 25px; /* 背景画像の適切な位置に文字が来るよう調整 */
    font-size: 24px;
    font-weight: bold;
    color: #fff; /* 背景が暗い場合を想定 */
}

	#lineup .bikes .col2 {
		max-width: 1220px;
		width: calc(1220 var(--pcp));
		margin: 0 auto;
		display: flex;
		justify-content: center;
	}
	#lineup .bikes .item:nth-child(odd) .col2 {
		flex-direction: row-reverse;
	}
	#lineup .bikes .col2 .pic-box {
		width: calc(597 / 1220 * 100%);
	}
	#lineup .bikes .col2 .texts {
		width: calc(623 / 1220 * 100%);
		padding-top: 4px;
	}
	#lineup .bikes .item:nth-child(odd) .texts .desc {
		padding-right: 2em;
	}
	#lineup .bikes .item .texts .btn-type2 {
		margin-top: 22px;
	}
}

@media screen and (max-width:767px) {
	#lineup .bikes .item {
        position: relative;
        padding-top: 20px; /* 背景画像内のタイトルの位置調整 */
    }
	/* 1. 全体を包むコンテナを縦並びのFlexboxに */
    #lineup .bikes .col2 {
        display: flex;
        flex-direction: column;
        margin-bottom:60px;
    }
    /* 2. 中間の箱を「無いもの」として扱い、中身を直接.col2の子要素にする */
    #lineup .bikes .texts,
    #lineup .bikes .box-sp {
        display: contents; 
    }
	#lineup .bikes .item + .item {
		margin-top: 55px;
	}
	#lineup .bikes .item:nth-child(1) {
		background: url("../img/bg_001_sp.jpg") no-repeat center top / 100% auto;
	}
	#lineup .bikes .item:nth-child(2) {
		background: url("../img/bg_002_sp.jpg") no-repeat center top / 100% auto;
	}
	#lineup .bikes .item:nth-child(3) {
		background: url("../img/bg_003_sp.jpg") no-repeat center top / 100% auto;
	}
	/* 一番上：タイトル */
    #lineup .bikes .texts .name {
        order: 1; 
        color: #fff;
        margin-top: 0;
        padding: 5px 20px;
        font-size: 2.0rem;
        font-weight:bold;
        line-height: 1.3;
        z-index: 10;
        text-shadow: 0 0 10px rgba(0,0,0,0.5);
    }

    /* 二番目：説明文 */
    #lineup .bikes .texts .desc {
        order: 2; 
        padding: 40px 20px 10px;
        margin-top:0!important;
        font-size: 1.5rem;
        color: #000;
    }

    /* 三番目：バイク画像 */
    #lineup .bikes .pic-box {
        order: 3; 
        width: 100%;
        text-align: center;
    }
    #lineup .bikes .pic-box .pic {
        width: 80%;
        margin: 0 auto;
        display: block;
    }

    /* 四番目：ボタン（画像の下に配置） */
    #lineup .bikes .texts .btn-type2 {
        order: 4; 
        margin: 0 auto; 
        width: 80%;
        display: flex; /* 前回のボタンスタイルを引き継ぎ */
        justify-content: space-between; 
        font-size: 1.8rem;
    }

    /* 念のため、画像側の不要なタイトルは非表示 */
    #lineup .bikes .pic-box .name {
        display: none;
    }
	#lineup .bikes .item .texts .btn-type1 {
		margin-top: 18px;
	}
}


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

@media print, screen and (min-width:768px) {
	.acc-target {
		display: block !important;
	}
}

@media screen and (max-width:767px) {
	.acc-trigger {
		width: 100%;
		background: transparent;
		display: block;
		border: none;
		padding: 0.6em 0 0.5em;
		font-size: 1.5rem;
		line-height: 1;
		text-align: center;
		position: relative;
	}
	.acc-trigger::before {
		width: 100%;
		height: 100%;
		background: #c7bfb0;
		display: block;
		content: "";
		position: absolute;
		left: 0;
		top: 0;
		z-index: 2;
		mix-blend-mode: multiply;
	}
	.acc-trigger > span {
		display: inline-block;
		position: relative;
		z-index: 4;
	}
	.acc-trigger .ico {
		display: inline-block;
		width: 1em;
		text-align: center;
		transform: scale(1.4);
	}
	.acc-trigger .ico::before {
		content: "＋";
		display: inline-block;
	}
	.acc-trigger.on .ico {
		transform: scale(1.4) rotate(45deg);
	}
}



/* -------------------------------------------------
	#guidance
------------------------------------------------- */

#guidance {
	margin-top: 57px;
}
#guidance p.strong {
	font-size: 2.8rem;
	line-height: 1;
	text-align: center;
	font-weight: bold;
	color: #e60012;
}
#guidance .lv2 {
	margin-top: 30px;
}
#guidance .lv2 .headline {
	padding: 0.7em 0.7em 0.6em;
	font-size: 2rem;
	color: #fff;
	line-height: 1;
	font-weight: bold;
	position: relative;
}
#guidance .lv2 .headline span {
	display: inline-block;
	position: relative;
	z-index: 4;
}
#guidance .lv2 .headline::before {
	width: 100%;
	height: 100%;
	background: #96876c;
	display: block;
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	z-index: 2;
	mix-blend-mode: multiply;
}
#guidance .lv2 p {
	margin-top: 1.2em;
	font-size: 1.6rem;
	line-height: calc(30 / 16);
}

@media screen and (max-width:767px) {
	#guidance {
		margin-top: 30px;
	}
	#guidance p.strong {
		margin-bottom: 20px;
		font-size: 2rem;
	}
	#guidance .lv2 {
		margin-top: 22px;
	}
	#guidance .lv2 .headline {
		padding: 0.7em 0.7em 0.6em;
		font-size: 1.6rem;
	}
	#guidance .lv2 p {
		font-size: 1.5rem;
		line-height: calc(25 / 15);
	}
}

/* -------------------------------------------------
	#qa
------------------------------------------------- */

#qa {
	margin-top: 55px;
}
#qa .qa-list li {
	padding-bottom: 17px;
	border-bottom: solid 2px #fff;
}
#qa .qa-list li:first-child {
	padding-top: 5px;
}
#qa .qa-list li + li {
	padding-top: 17px;
}
#qa .qa-list li p.about {
	font-size: 1.6rem;
	line-height: calc(30 / 16);
	font-weight: bold;
}
#qa .qa-list li p:not(.about) {
	padding-left: 35px;
	position: relative;
	font-size: 1.6rem;
	line-height: calc(30 / 16);
}
#qa .qa-list li p .label {
	position: absolute;
	left: 0;
}

@media screen and (max-width:767px) {
	#qa {
		margin-top: 55px;
	}
	#qa .qa-list li {
		padding-bottom: 13px;
	}
	#qa .qa-list li:first-child {
		padding-top: 25px;
	}
	#qa .qa-list li + li {
		padding-top: 13px;
	}
	#qa .qa-list li p.about {
		font-size: 1.5rem;
		line-height: calc(25 / 15);
	}
	#qa .qa-list li p:not(.about) {
		padding-left: 42px;
		font-size: 1.5rem;
		line-height: calc(25 / 15);
	}
	#qa .qa-list li p .label {
		left: 6px;
	}
}

/* -------------------------------------------------
	#call-center
------------------------------------------------- */

#call-center {
	padding: 54px 0 46px;
	border-top: solid 2px #cccccc;
	border-bottom: solid 2px #cccccc;
}
#call-center .title {
	font-size: 1.8rem;
	color: #666666;
	line-height: 1;
}
#call-center .group {
	display: flex;
	align-items: flex-end;
}
#call-center .group a {
	width: 321px;
	display: block;
}
#call-center .group a img {
	width: 100%;
}
#call-center .group p {
	font-size: 1.6rem;
	color: #666666;
}

@media print, screen and (min-width:768px) {
	#call-center {
		display: flex;
		justify-content: center;
		align-items: center;
		gap: 0 19px;
	}
	#call-center .title {
		transform: translateY(2px);
	}
}

@media print, screen and (min-width:768px) and (max-width:850px) {
	#call-center .group a {
		width: 260px;
	}
}

@media screen and (max-width:767px) {
	#call-center {
		padding: 15px 0 17px;
		text-align: center;
	}
	#call-center .title {
		font-size: 1.1rem;
	}
	#call-center .group {
		display: inline-flex;
	}
	#call-center .group a {
		width: 194px;
		margin: 6px auto 0;
	}
	#call-center .group p {
		font-size: 1rem;
	}
}

/*---------------ADD------------*/

.cta-wrap {
    display: flex;
    flex-direction: column; 
    gap: 20px;
    width: 100%;
    max-width: 820px; 
    margin: 0 auto 65px;
    padding: 20px;
    box-sizing: border-box;
}
.cta-wrap.cta-bottom {
    width: 30%;
    margin-bottom:30px;
}

.cta-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
}
.btn-type1 {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    width: 100%;
    height: 100px;
    background-color: #519d3f; 
    color: #fff;
    text-decoration: none;
    border-radius: 8px;
    transition: opacity 0.3s;
    margin-bottom:15px;
    padding-left: 22px;
    box-sizing: border-box;
}
.btn-type2 {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    width: 52%;
    height: 100px;
    background-color: #519d3f; 
    color: #fff;
    text-decoration: none;
    border-radius: 8px;
    transition: opacity 0.3s;
    margin-top:20px;
    margin-bottom:15px;
    padding-left: 22px; 
    box-sizing: border-box;
}

.btn-type1:hover,
.btn-type2:hover {
    opacity: 0.8;
}
.note {
    font-size: 15px;
    line-height: 1.4;
    color: #000;
    text-align: center;
}
.qa-list .note {
    text-align: left;
    line-height: 1.5;
}

@media screen and (min-width: 768px) {
    .cta-wrap {
        flex-direction: row; /* 横並び */
        align-items: flex-start; /* 注釈があってもボタンの頭を揃える */
        justify-content: center;
        gap: 30px;
    }

    .cta-item {
        flex: 1; /* 幅を均等にする */
    }
    .qa-list .note.ln-1 {
	display:block;
    margin-top:-2px;
}
}
@media screen and (max-width: 767px) {
	.cta-wrap.cta-bottom{
		width:100%!important;
		margin: 0 auto;
	}
	.qa-list .note {
	font-size: 14px;
    margin-top:.5em;
}
}
/*--３枚横並び---*/
.col3 {
    display: flex;
    flex-wrap: wrap;
    gap: 25px; 
    width: 100%;
    max-width: 1218px;
    margin: 0 auto;
    box-sizing: border-box;
}

.col3 > div {
    /* カラム間の計算：(100% - (gap * 2)) / 3 */
    flex: 0 0 calc((100% - (25px * 2)) / 3); 
    min-width: 0;
    display: flex;
    flex-direction: column;
}

/* --- 画像のスタイル --- */
.col3 img {
    width: 100%;
    height: auto;
    display: block;
    vertical-align: bottom;
}

/* --- テキスト部分 --- */
.col3 p {
    padding: 15px 0; /* 左右の余白は不要（親のgapで確保されるため） */
    font-size: 16px;
    line-height: 1.6;
    color: #000;
    margin: 0;
}
.col3 .note {
    display: block;
    margin-top: 7px;
    font-size: 15px;
    color: #666;
    text-align: left;
}


@media screen and (max-width: 767px) {
    .col3 {
        flex-direction: column;
        gap: 16px; 
        padding: 0 20px;
    }

    .col3 > div {
        width: 100%;
        flex: 0 0 auto;
    }
    .btn-type1 {
    height: 86px;
	}
	.btn-type2 {
    height: 86px;
	}
	.note {
    font-size: 15px;
    line-height: 1.5!important;
    color: #000;
    text-align: left;
}
}

/*---Voice---*/
#voice{
	margin-bottom:70px;
}
#voice .bg,
#qa .bg{
	background: #d9e2e8;
	padding: 49px 20px;
}
#voice .bg img{
	display: block;
	margin: 0 auto;
}
#flow img{
	display: block;
	margin: 0 auto 70px;
}

#emo-img {
    background: url("../img/bg_004.jpg") no-repeat center center / cover;
    width: 100%;
    height: 672px;
    
    /* 帯（.harf-black）を上下中央に配置 */
    display: flex;
    align-items: center;
    margin: 0;
    padding: 0;
}

.harf-black {
    width: 100%;
    height: 280px;
    display: flex;
    justify-content: center;
    align-items: center;
}

#emo-img {
    background: url("../img/bg_004.jpg") no-repeat center center / cover;
    width: 100%;
    height: 672px;
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 0 0 45px;
    padding: 0;
}

.harf-black {
    width: 100%;
    display: flex;
    justify-content: center;
}

.emo-text {
    width: 100%;
    max-width: 690px;
    background-color: rgba(0, 0, 0, 0.6);
    padding: 50px 30px; 
    box-sizing: border-box;
    color: #fff;
    font-size: 20px;
    font-weight: bold;
    line-height: 1.8!important;
    text-align: left;
}


@media screen and (max-width: 767px) {
#emo-img {
   background: url("../img/bg_004_sp.jpg") no-repeat center center / cover;
    height: auto;
    min-height: 318px;
    padding: 40px 0;
}

.emo-text {
    width: 80%;
    padding: 30px 20px;
    font-size: 15px;
}
#voice {
margin-bottom: 50px;
}
#voice .bg{
	padding: 30px 20px;
}
#qa .bg{
	background: #d9e2e8;
	padding: 0;
}
}

.model-col3 {
    display: flex;
    flex-direction: column; /* スマホデフォルト */
    gap: 30px;
    width: 100%;
    max-width: 1218px; /* 前述のレイアウト幅と統一 */
    margin: 0 auto 40px;
    padding: 20px;
    box-sizing: border-box;
}

.model-col3 > div {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
}
.model-col3 img {
    width: 100%;
    height: auto;
    margin-bottom: 5px;
}
.model-col3 .btn-type1 {
    display: flex;
    align-items: center;
    justify-content: space-between; 
    width: 90%; 
    height: 100px;
    padding: 0 22px;
    background-color: #519d3f;
    color: #fff;
    text-decoration: none;
    font-size: 18px;
    line-height: 1.4;
    border-radius: 4px;
    box-sizing: border-box;
    transition: opacity 0.3s;
    position: relative;
}

.model-col3 .btn-type1:hover {
    opacity: 0.8;
}

@media screen and (min-width: 768px) {
    .model-col3 {
        flex-direction: row; /* 横並び */
        gap: 25px; /* 前述の指定 gap: 25px を採用 */
    }
    .model-col3 > div {
        flex: 1; /* 3等分 */
    }
}
@media screen and (max-width: 767px) {
	.model-col3 img {
    width: 90%;
}
.model-col3 .btn-type1 {
    height: 80px;
    font-size: 17px;
}
}

/*キャンペーン・リスト*/
.campaign-outline {
    width: 100%;
    max-width: 1015px; /* デザインに合わせて調整してください */
    margin: 0 auto 60px;
}

.camp-title {
    font-size: 18px;
    font-weight: bold;
    margin-bottom: 20px;
    line-height: 1.4;
}
.camp-list {
    margin: 0;
    padding: 0;
}
.camp-row {
    display: flex;
    flex-direction: row; /* PCは横並び */
    align-items: flex-start;
    margin-bottom: 20px; 
}

/* --- 左側（ラベル部分） --- */
.camp-row dt {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 200px;
    min-height: 36px;
    background-color: #3b4b57;
    color: #fff;
    font-weight: normal;
    padding: 8px;
    box-sizing: border-box;
    flex-shrink: 0;
}
.camp-row dd {
    flex-grow: 1;
    margin: 0;
    padding: 8px 0 8px 30px;
    line-height: 1.6;
}

.camp-row dd strong {
    font-weight: bold;
}

.camp-row dd p {
    margin: 0 0 15px 0; /* 注釈リストとの間隔 */
    line-height:1.5;
}

.camp-notes {
    list-style: none;
    margin: 0;
    padding: 0;
}

.camp-notes li {
    position: relative;
    padding-left: 1em; /* 1文字分インデントを下げる */
    text-indent: -1em; /* 1行目だけ1文字分戻す（これで「・」が綺麗に配置されます） */
    line-height:1.5;
    margin-bottom: .7em;
}

.camp-notes li::before {
    content: "・";
}

@media screen and (max-width: 767px) {
	.campaign-outline {
    width: 90%;
    margin: 0 auto 60px;
	}
    .camp-title {
        font-size: 16px;
        margin-bottom:12px;
    }

    .camp-row {
        flex-direction: column;
        margin-bottom: 16px;
    }

    .camp-row dt {
        width: 100%; /* ラベルを全幅に */
        margin-bottom: 12px; /* ラベルとテキストの間の余白 */
    }

    .camp-row dd {
        padding: 0; /* スマホ時は左の余白をなくす */
        font-size: 14px; /* スマホは少し文字を小さく */
    }
}
