@import url('https://fonts.googleapis.com/css2?family=Zen+Maru+Gothic:wght@300;400;500;700;900&display=swap');

/* ----------------------------------------
Reset
---------------------------------------- */

* {
	margin: 0;
	padding: 0;
}

*,
::before,
::after {
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
}

body {
	-webkit-font-smoothing: antialiased;
}

img,
picture,
video,
canvas,
svg {
	display: block;
	max-width: 100%;
}

input,
button,
textarea,
select {
	font: inherit;
}

p,
h1,
h2,
h3,
h4,
h5,
h6 {
	overflow-wrap: break-word;
}

:where(a[href],
area,
button,
label[for],
select,
summary,
[tabindex]:not([tabindex*="-"])) {
	-ms-touch-action: manipulation;
	cursor: pointer;
	touch-action: manipulation;
}

:where(input[type=file]) {
	cursor: auto;
}

:where(input[type=file])::-webkit-file-upload-button {
	cursor: pointer;
}

:where(input[type=file])::-webkit-file-upload-button,
:where(input[type=file])::file-selector-button {
	cursor: pointer;
}

:where(button,
button[type],
input[type=button],
input[type=submit],
input[type=reset])[disabled] {
	cursor: not-allowed;
}

/* ----------------------------------------
Base
---------------------------------------- */
.sp{
	display: none;
}
@media (max-width: 768px) {
	.sp{
	display: block;
}
	.pc{
		display: none;
	}
}
 
@font-face {
	font-family: "Zen Maru Gothic", sans-serif;
    font-weight: 500;
}

html {
	font-size: 62.5%;
	overflow-x: hidden;
	scroll-behavior: smooth;
	visibility: hidden;
}

html.wf-active,
html.loading-delay {
	visibility: visible;
}

body {
	background-color: #fff;
	color: #191d1c;
	font-family: "Zen Maru Gothic", sans-serif;
    font-weight: 500;
	font-size: 1.6rem;
	line-height: 1.5;
	min-height: 100vh;
	overflow-x: hidden;
	position: relative;
}

li {
	list-style: none;
}

a {
	color: #191d1c;
	text-decoration: none;
}

a:hover {
	opacity: 0.7;
}

/* ----------------------------------------
footer
---------------------------------------- */

.footer {
	background-color: #191d1c;
	padding: 25px;
	position: relative;
	text-align: center;
	z-index: 999;
}

.copyright {
	color: #fff;
	font-size: 1.2rem;
}

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

.header {
	padding: 5px 0 10px;
	position: relative;
	z-index: 999;
}

.header__inner {
	margin: 0 auto;
	max-width: 1254px;
	width: 100%;
}

.header__logo {
	margin: 0 auto;
	width: 207px;
}

/* ----------------------------------------
form
---------------------------------------- */

.form {
	margin: 0 auto;
	max-width: 600px;
	width: 100%;
}

.form__container {
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	-webkit-box-align: center;
	-ms-flex-align: center;
	-ms-flex-wrap: wrap;
	align-items: center;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	flex-wrap: wrap;
	gap: 5px 20px;
	justify-content: space-between;
}

.form__container:not(:first-child) {
	margin-top: 32px;
}

.form__label {
	font-family: "Zen Maru Gothic", sans-serif;
    font-weight: 500;
	font-size: 2rem;
	
	letter-spacing: calc(100 / 1000 * 1em);
	min-width: 155px;
}

.form__input {
	border: none;
	border-radius: 5px;
	border: 1px solid #B4B4B4;
	font-family: hiragino-kaku-gothic-pron, sans-serif;
	height: 53px;
	min-width: 335px;
	padding: 17px 28px;
	width: 100%;
}

.form__input:focus-visible {
	outline: none;
}

.form__input::-webkit-input-placeholder {
	color: #eee;
	font-size: 1.4rem;
	font-weight: 300;
}

.form__input::-moz-placeholder {
	color: #eee;
	font-size: 1.4rem;
	font-weight: 300;
}

.form__input:-ms-input-placeholder {
	color: #eee;
	font-size: 1.4rem;
	font-weight: 300;
}

.form__input::-ms-input-placeholder {
	color: #eee;
	font-size: 1.4rem;
	font-weight: 300;
}

.form__input::placeholder {
	color: #eee;
	font-size: 1.4rem;
	font-weight: 300;
}

.form__submit {
	display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    background-color: #C09236;
    color: white;
    gap: 20px;
    padding: 14px 48px;
    width: 80%;
    margin-top: 64px;
    text-decoration: none;
    font-size: 36px;
    border-radius: 5px;
	font-weight: bold;
}

.form__submit:active {
	height: 57px;
	margin-top: 57px;
}

.wpcf7-form-control-wrap {
	-webkit-box-flex: 1;
	-ms-flex: 1;
	flex: 1;
	position: relative;
}

.wpcf7-radio {
	display: block;
	text-align: center;
}

.wpcf7-list-item {
	margin-left: 0;
}

.wpcf7-response-output {
	display: none;
}

.wpcf7-not-valid-tip {
	font-size: 1.2rem;
	left: 20px;
	position: absolute;
	top: calc(100% + 5px);
}

.grecaptcha-badge {
	visibility: hidden;
}

/* ----------------------------------------
tab
---------------------------------------- */

.tab {
	-ms-flex-wrap: wrap;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	flex-wrap: wrap;
}

.tab__label {
	-webkit-box-align: center;
	-ms-flex-align: center;
	-webkit-transform: translateX(-50%);
	-webkit-box-ordinal-group: 0;
	-ms-flex-order: -1;
	align-items: center;
	border: none;
	bottom: -15px;
	color: #999;
	display: none;
	font-size: 1.4rem;
	left: 50%;
	order: -1;
	padding: 5px 10px;
	position: absolute;
	text-align: center;
	text-decoration: underline;
	transform: translateX(-50%);
	z-index: 100;
}

.tab__label:has(+ .is_show) {
	display: block;
}

.tab__content {
	-webkit-transform: translateX(-200%);
	-webkit-transition: -webkit-transform 0.4s;
	height: 0;
	opacity: 0;
	pointer-events: none;
	transform: translateX(-200%);
	transition: -webkit-transform 0.4s;
	transition: transform 0.4s;
	transition: transform 0.4s, -webkit-transform 0.4s;
	visibility: hidden;
	width: 100%;
}

.tab__content.is_show {
	-webkit-box-ordinal-group: 2;
	-ms-flex-order: 1;
	-webkit-transform: translateX(0);
	height: auto;
	opacity: 1;
	order: 1;
	padding-bottom: 100px;
	padding-top: 30px;
	pointer-events: auto;
	transform: translateX(0);
	visibility: visible;
}

.tab__content.is_show ~ .tab__content {
	-webkit-transform: translateX(200%);
	transform: translateX(200%);
}

/* ----------------------------------------
diagnosis
---------------------------------------- */

.diagnosis {
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	background-color: #fafafa;
	min-height: calc(100vh - 143px);
	overflow: hidden;
	padding-bottom: 140px;
	user-select: none;
	background-size: cover;
}

.diagnosis__inner {
	margin: 0 auto;
	max-width: 1440px;
	padding: 50px 20px 0;
	position: relative;
	width: 100%;
	z-index: 10;
}

.diagnosis__section {
	cursor: auto;
	margin: 0 auto;
	max-width: 800px;
	position: relative;
	width: 100%;
	z-index: 0;
}

.diagnosis__step {
	-webkit-transform: translateX(-50%);
	background-color: #ffeaea;
	display: none;
	height: 10px;
	left: 50%;
	max-width: 600px;
	position: absolute;
	transform: translateX(-50%);
	width: 100%;
	z-index: 10;
}

.diagnosis__step::after {
	background-color: #ba0000;
	content: "";
	display: block;
	height: 100%;
	left: 0;
	position: absolute;
	top: 0;
}

.diagnosis__step.is_show {
	display: block;
}

.diagnosis__step--01::after {
	content: "";
	width: 11%;
}

.diagnosis__step--02::after {
	content: "";
	width: 22%;
}

.diagnosis__step--03::after {
	content: "";
	width: 33%;
}

.diagnosis__step--04::after {
	content: "";
	width: 44%;
}

.diagnosis__step--05::after {
	content: "";
	width: 55%;
}

.diagnosis__step--06::after {
	content: "";
	width: 66%;
}

.diagnosis__step--07::after {
	content: "";
	width: 77%;
}

.diagnosis__step--08::after {
	border-radius: 100px;
	content: "";
	width: 88%;
}

.diagnosis__step--09::after {
	border-radius: 100px;
	content: "";
	width: 100%;
}



.diagnosis__heading {
	margin-bottom: 30px;
	text-align: center;
}

.diagnosis__num {
	color: #3C4358;
	font-family: "Zen Maru Gothic", sans-serif;
    font-weight: 500;
	font-size: 4rem;
	
}

.diagnosis__text {
	font-size: 2rem;
	letter-spacing: calc(200 / 1000 * 1em);
	margin-bottom: 15px;
}

.diagnosis__title {
	color: #3C4358;
	font-family: "Zen Maru Gothic", sans-serif;
    font-weight: 700;
	font-size: 4.8rem;
	
	letter-spacing: calc(100 / 1000 * 1em);
}

.diagnosis__title span {
	display: inline-block;
}

.diagnosis__list {
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	-webkit-box-align: center;
	-ms-flex-align: center;
	-ms-flex-wrap: wrap;
	align-items: center;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	flex-wrap: wrap;
	gap: 40px 5%;
	justify-content: center;
}

.diagnosis__item {
	width: 47.5%;
}

.diagnosis__item input {
	display: none;
}

.diagnosis__item label {
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	background-color: #fff;
	border-radius: 100px;
	border: 1px solid #3C4358;
	cursor: pointer;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	font-size: 2rem;
	font-weight: 500;
	height: 63px;
	justify-content: center;
	letter-spacing: calc(200 / 1000 * 1em);
	width: 100%;
}

.diagnosis__item label:hover {
	-webkit-box-shadow: none;
	background-color: #FFE5E5;
	box-shadow: none;
}

.diagnosis__item label:has(:checked) {
	-webkit-box-shadow: none;
	background-color: #FFE5E5;
	box-shadow: none;
}

.diagnosis__item .wpcf7-not-valid-tip {
	display: none;
}

/* ----------------------------------------
result
---------------------------------------- */

.result {
	background-color: #98f0f7;
	overflow: hidden;
}

.result__inner {
	margin: 0 auto;
	max-width: 1440px;
	min-height: 100vh;
	padding: 80px 40px 100px;
	position: relative;
	width: 100%;
}

.result__title {
	color: #3C4358;
	font-family: "Zen Maru Gothic", sans-serif;
    font-weight: 700;
	font-size: 4.0rem;
	
	letter-spacing: calc(100 / 1000 * 1em);
	margin-bottom: 48px;
	text-align: center;
}

.result__contents {
	background-color: #fff;
	margin: 0 auto;
	max-width: 860px;
	padding: 40px 40px 20px;
	position: relative;
	width: 100%;
	z-index: 100;
	border-radius: 8px;}

.result_level{
	background-color: #4D5981;
	color: white;
	font-size: 3.2rem;
	font-weight: bold;
	text-align: center;
	margin: 0 auto;
	max-width: 860px;
	padding: 24px;
}

.level1{
	background-color: #868686 !important;
}

.level2{
	background-color: #4D5981 !important;
}

.level3{
	background-color: #C09236 !important;
}

.level4{
	background-color: #FFC444 !important;
}

.level1-border{
	border: 2px solid #868686 !important;
}

.level2-border{
	border: 2px solid #4D5981 !important;
}

.level3-border{
	border: 2px solid #C09236 !important;
}

.level4-border{
	border: 2px solid #FFC444 !important;
}

.result__head {
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	gap: 40px;
	justify-content: center;
	padding-bottom: 40px;
	border-bottom: 1px solid #CECECE;
	margin-bottom: 60px;
}

.next-step {
    text-align: center;
    padding-bottom: 60px;
	border-bottom: 1px solid #CECECE;
}

.icon img {
   margin: 0 auto;
}

.next-step h3 {
    font-size: 2.4rem;
    margin-bottom: 2rem;
	margin-top: 16px;
}

.steps {
    display: flex;
    justify-content: center;
    gap: 3.2rem;
    flex-wrap: wrap;
}

.step {
    display: flex;
    align-items: center;
    gap: 24px;
    max-width: 800px;
	width: 100%;
}

.title {
    font-size: 2rem;
    font-weight: bold;
    white-space: nowrap;
}

.dotted-line {
    flex-grow: 1;
    border-bottom: 2px dashed #333;
    height: 0.5px;
}

.step p {
    font-size: 1.4rem;
	line-height: 2;
    max-width: 400px;
    text-align: left;
}

.next-line{
	width: 100%;
}

.line-sec{
	position: relative;
}

.line-text{
	position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    left: 0;
	height: max-content;
    margin: auto;
}

.line-text p{
	font-size: 1.6rem;
	text-align: center;
	font-weight: bold;
	margin-bottom: 24px;
}

.result .type {
	margin-left: 0px;
	width: 250px;
}

.result__text-area {
	-webkit-box-flex: 1;
	-ms-flex: 1;
	flex: 1;
}

.result__heading {
	margin-bottom: 30px;
	background-color: #4C5981;
	color: white;
	padding: 20px;
	text-align: center;
	font-size: 3.2rem;
}

.result_headlead{
	font-size: 2.4rem;
	text-align: center;
	font-weight: bold;
	margin-bottom: 16px;
}

.result_description{
	font-size: 1.4rem;
	line-height: 2;
	font-weight: 500;
}

input[type="date"] {
	font-family: "Zen Maru Gothic", sans-serif;
    font-weight: 700;
	background: #fff !important;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}

.wpcf7-radio {
	display: flex;
    gap: 20px;
	width: 100%;
}

.wpcf7-radio span{
	width: 100%;
}

.form__input {
min-width: 300px;
}

.form__mail-text {
	width: 65%;
    margin-left: auto;
	margin-top: 16px;
}

@media (max-width: 514px) {
	.form__mail-text {
		width: 100%;
		text-align: justify;
		font-size:14px;
	}
}

@media screen and (min-width: 633px) {
	.form__mail-text {
		width:100%;
		max-width: 416px;
	}
}

@media screen and (max-width: 768px) {
	.diagnosis__item label:hover {
	-webkit-box-shadow: none;
	background-color: #fff;
	box-shadow: none;
}

.footer {
	padding: 10px;
}

.copyright {
	font-size: 1.1rem;
}

.header {
	padding: 3px 0 6px;
}

.header__logo {
	width: 140px;
}

.form__label {
	font-size: 2rem;
	padding-left: 15px;
}

.form__input {
	height: 45px;
}

.form__submit {
	font-size: 1.8rem;
	height: 50px;
	margin-top: 60px;
}

.form__submit:active {
	height: 43px;
	margin-top: 67px;
}

.tab__label {
	font-size: 1.4rem;
}

.tab__content.is_show {
	padding-bottom: 60px;
	padding-top: 20px;
}

.diagnosis {
	min-height: calc(100vh - 86px);
	padding-bottom: 60px;
}

.diagnosis__inner {
	padding: 30px 20px 0;
}

.diagnosis__step {
	height: 8px;
	width: 80%;
}

.diagnosis__heading {
	margin-bottom: 20px;
}

.diagnosis__num {
	font-size: 2rem;
	margin-bottom: 10px;
}

.diagnosis__text {
	font-size: 1.4rem;
	margin-bottom: 10px;
}

.diagnosis__title {
	font-size: 2.9rem;
	letter-spacing: 0.05rem;
}

.diagnosis__list {
	gap: 20px 5%;
}

.diagnosis__item {
	min-width: 300px;
}

.diagnosis__item label {
	font-size: 1.6rem;
	font-weight: bold;
	height: 45px;
}

.result__inner {
	padding: 40px 10px 50px;
}

.result__title {
	font-size: 2.4rem;
	margin-bottom: 32px;
}
	
.result_level {
    background-color: #4D5981;
    color: white;
    font-size: 2.4rem;
    font-weight: bold;
    text-align: center;
    margin: 0 auto;
    max-width: 860px;
    padding: 16px;
}

.result__heading {
    font-size: 2rem
}

.step {
    align-items: baseline;
    flex-direction: column;
    gap: unset;
    max-width: 800px;
    width: 100%;
}

.steps {
    margin-top: 32px;
}

.line-text p {
    font-size: 2.4rem;
    text-align: center;
    font-weight: bold;
    margin-bottom: 16px;
}
	
.result__contents {
	padding: 16px;
}

.result__head {
	margin-bottom: 20px;
}

.result .type {
	width: 200px;
}

.result_headlead{
	font-size: 1.8rem;
}

}

/* 貯金タイプ診断専用CSS */

/* フォント設定 */
.zen-maru-gothic-regular {
    font-family: "Zen Maru Gothic", sans-serif;
    font-weight: 700;
}

/* 全体にフォント適用 */
.savings-fv-section,
.savings-recommend-section,
.savings-about-section,
.savings-bottom-cta {
    font-family: "Zen Maru Gothic", sans-serif;
}

/* 共通のハイライトカラー */
.highlight-red {
    color: #BA0000;
}

.highlight-gold {
    color: #C09236;
}

/* FVセクション */
.savings-fv-section {
    background-color: #fff;
    padding: 80px 20px;
    position: relative;
    height: 650px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.savings-fv-container {
    position: relative;
    max-width: 1200px;
    width: 100%;
    margin: 0 auto;
}

/* キャラクター配置 */
.character {
    position: absolute;
    z-index: 1;
}

.character img {
    width: 150px;
    height: auto;
}

.character-top-left {
    top: 0;
    left: 0;
}

.character-top-right {
    top: 0;
    right: 0;
}

.character-bottom-left {
    bottom: 0;
    left: 40px;
}
.character-bottom-left img{
   width: 180px !important;
}

.character-bottom-right {
    bottom: 0;
    right: 40px;
}

/* 中央コンテンツ - 白いボックスなし */
.savings-fv-center {
    text-align: center;
    padding: 60px;
    position: relative;
    z-index: 2;
    max-width: 820px;
    margin: 0 auto;
}
.savings-fv-subtitle {
    font-size: 28px;
    font-weight: 500;
    margin-bottom: 10px;
    color: #333;
}

.savings-fv-title {
    font-size: 100px;
    font-weight: 700;
    color: #333;
    margin-bottom: 20px;
    line-height: 1.2;
}
.savings-fv-title span{
		letter-spacing: -20px;
	}

.savings-fv-features {
    display: flex;
    justify-content: center;
    align-items: center;
	width: 95%;
    margin: 0 auto;
    margin-bottom: 32px;
    gap: 0;
	
}

.feature-item {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    flex: 1;
    padding: 0 8px;
    position: relative;
}

.feature-item:not(:last-child)::after {
    content: '';
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 2px;
    height: 60px;
    background: repeating-linear-gradient(
        to bottom,
        #333 0px,
        #333 4px,
        transparent 4px,
        transparent 8px
    );
}

.feature-item img {
    width: 40px;
    height: 40px;
    flex-shrink: 0;
}

.feature-item span {
    font-size: 14px;
    font-weight: bold;
    text-align: left;
    line-height: 1.4;
}

.savings-cta-btn {
    display: inline-flex;
	justify-content: center;
    align-items: center;
    gap: 20px;
    background-color: #BA0000;
    color: white;
    padding: 25px 40px;
    border-radius: 50px;
    text-decoration: none;
    font-size: 28px;
    font-weight: 500;
    transition: all 0.3s ease;
	min-width: 500px;
	box-shadow: 0 4px 4px rgba(0, 0, 0, 0.2);
}

.savings-cta-btn:hover {
    background-color: #9e0000;
    transform: translateY(-2px);
}

.savings-cta-btn img {
    width: 24px;
    height: 24px;
}

/* おすすめセクション */
.savings-recommend-section {
    background-color: #f8f9fa;
    padding: 80px 20px 0;
    text-align: center;
    position: relative;
}

.info-icon {
    width: 60px;
    height: 60px;
    background-color: #333;
    color: white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 40px;
	margin-top: -10px;
    font-size: 40px;
    font-weight: bold;
}
.info-icon span{
margin-top: -7px;
}

.recommend-title {
    font-size: 40px;
    font-weight: 700;
    color: #333;
    margin-bottom: 60px;
}

.recommend-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
    max-width: 900px;
    margin: 0 auto 40px;
}

.recommend-item {
    display: flex;
    align-items: flex-start;
    gap: 20px;
    text-align: left;
    padding: 20px;
    background-color: #fff;
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.check-icon {
    width: 40px;
    height: 40px;
    flex-shrink: 0;
    margin-top: 5px;
}

.check-icon img {
    width: 100%;
    height: 100%;
}

.recommend-item p {
    font-size: 20px;
    font-weight: bold;
    line-height: 1.6;
    margin: 0;
    color: #333;
}

.recommend-bottom {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    gap: 60px;
    max-width: 1000px;
    margin: 0 auto;
    position: relative;
    z-index: 10;
    padding-bottom: 0;
}

.character-left, .character-right {
    position: relative;
    z-index: 15;
    margin-bottom: -80px;
}

.character-left img, .character-right img {
    width: 150px;
    height: auto;
}

.character-right img {
    width: 180px;
    height: auto;
}

.recommend-message {
    text-align: center;
}

.recommend-message p {
    font-size: 32px;
    margin-bottom: 15px;
    color: #333;
}

.recommend-message .highlight-gold {
    font-size: 32px;
    color: #D79F00;
}

/* 三角形装飾画像 */
.section-triangle-img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: auto;
    display: block;
    z-index: 5;
}

/* Aboutセクション */
.savings-about-section {
    background-color: #fff !important;
    background-image: none !important;
    padding: 120px 20px 80px;
    position: relative;
}

.about-container {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    gap: 60px;
    align-items: center;
}

.about-left {
    flex: 1;
}

.about-label {
    font-size: 14px;
    color: #C09236 !important;
    font-weight: bold;
    margin-bottom: 10px;
}

.about-title {
    font-size: 48px;
    font-weight: bold;
    color: #333;
    margin-bottom: 30px;
    padding-bottom: 16px;
    border-bottom: 2px solid #E5E5E5;
}

.about-title::after {
    content: "とは";
    font-size: 32px;
}

.about-subtitle {
    font-size: 24px;
    font-weight: bold !important;
    color: #333 !important;
    margin-bottom: 20px;
    background: linear-gradient(to top, #FFD700 50%, transparent 50%) !important;
    display: inline-block !important;
    padding: 2px 4px;
}

.about-description {
    font-size: 16px;
    font-weight: bold !important;
    line-height: 1.8;
    margin-bottom: 20px;
    color: #333;
}

.about-checks {
    margin: 30px 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.check-item {
    background-color: #FAFAFA !important;
    color: #333 !important;
    padding: 16px;
    margin-bottom: 0;
    font-size: 20px;
    font-weight: bold;
    display: flex;
    align-items: center;
    border-radius: 8px !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1) !important;
}

.check-item .highlight-red {
    color: #BA0000;
}

.about-cta {
    font-size: 18px;
    font-weight: bold !important;
    color: #BA0000;
    margin-top: 30px;
}

.about-right {
    flex: 1;
}

.savings-types-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
}

.savings-type {
    text-align: center;
    padding: 20px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border-right: 1px dashed #ccc;
    border-bottom: 1px dashed #ccc;
}

.savings-type:nth-child(even) {
    border-right: none;
}

.savings-type:nth-child(3), .savings-type:nth-child(4) {
    border-bottom: none;
}

.savings-type img {
    width: 200px;
    height: 200px;
    object-fit: contain;
    margin: 0 auto 15px;
}

.savings-type span {
    font-size: 16px;
    font-weight: bold;
    color: #333;
}

/* レスポンシブ対応 */
@media (max-width: 1024px) {
    
    .savings-fv-title {
    font-size: 80px;
}
	.savings-fv-title span{
		letter-spacing: -16px;
	}
    .character img {
        width: 120px;
    }
    
    .about-container {
        flex-direction: column;
        gap: 40px;
    }
	.recommend-bottom {
		gap: 0;
	}
}

@media (max-width: 768px) {
	.savings-fv-title span{
		letter-spacing: -12px;
	}
	.savings-fv-section {
    background-color: #fff;
    padding: 80px 0px;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
		height: unset;
}
	
	.savings-fv-features {
    width: 70%;
   
}
	.feature-item {
    flex-direction: column;
}
	.feature-item span {
    text-align: center;
		font-size: 12px;
}
    .savings-fv-center {
        margin: 0px;
        padding: 0px;
    }
    
    .savings-fv-title {
        font-size: 64px;
    }
	
    
    .recommend-grid {
        grid-template-columns: 1fr;
        gap: 20px;
		width: 70%;
    }
	.info-icon {
    width: 50px;
    height: 50px;
    background-color: #333;
    color: white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 24px;
    font-size: 36px;
    font-weight: bold;
}
    .recommend-title {
    font-size: 32px;
    font-weight: bold;
    color: #333;
    margin-bottom: 40px;
}
    .recommend-bottom {
        
        gap: 0px;
    }
    
    
	.recommend-message p {
    font-size: 24px;
    margin-bottom: 15px;
    color: #333;
}
	.character-left, .character-right {
    margin-bottom: -40px;
}
	.character-left img {
    width: 100px;
}
	.character-right img {
    width: 130px;
}
	
	
	.pc-character{
		display: none !important;
	}
	.sp-character{
		width: 15%;
	}
	.savings-fv-subtitle {
    font-size: 20px;
    margin-bottom: 0;
}
	
}

@media (max-width: 480px) {
    .savings-fv-title span{
		letter-spacing: -8px;
	}
    .savings-fv-center {
        
    }
    
    .savings-fv-title {
        font-size: 46px;
		margin-bottom:12px;
    }
       .feature-item span {
        text-align: center;
        font-size: 10px;
    }
	.savings-cta-btn {
    font-size: 20px;
    padding: 16px 24px;
    width: 90%;
    min-width: unset;
    box-shadow: 0 4px 4px rgba(0, 0, 0, 0.2);
}
	
 .feature-item:not(:last-child)::after {
    
    width: 1px;
	}
	.savings-fv-features {
        width: 95%;
		margin-bottom:16px;
    }
	.feature-item img {
    width: 30px;
    height: 30px;
    flex-shrink: 0;
}
    .savings-fv-subtitle {
        font-size: 16px;
    }
    
    .recommend-title {
        font-size: 24px;
    }
    
    .about-title {
        font-size: 28px;
    }
	    .sp-characters {
        gap: 8px;
    }
.savings-fv-section {
        
        padding: 40px 0px;
        
    }
	    .recommend-grid {
        margin-bottom: 24px;
        width: 100%;
    }
	.check-icon {
    width: 20px;
    height: 20px;
    
}
	.savings-recommend-section {
    padding: 40px 12px 0;
    
}
	    .info-icon {
        width: 40px;
        height: 40px;
        
        font-size: 32px;
    }
	.recommend-item {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    text-align: left;
    padding: 12px;
    background-color: #fff;
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}
	.recommend-item p {
    font-size: 16px;
    font-weight: bold;
    line-height: 1.6;
    margin: 0;
    color: #333;
}
.recommend-bottom {
	position: relative;
	padding-bottom: 40px;
 }
	.character-left, .character-right {
    position: absolute;
		bottom: -25px;
}
	.character-right {
        right: 40px;
    }
	.character-left{
		left: 40px;
	}
	.recommend-message p {
        font-size: 16px;
        margin-bottom: 8px;
        
    }
	.recommend-message .highlight-gold {
    font-size: 20px;
    color: #D79F00;
}
	    .character-left img {
        width: 65px;
    }
	.character-right img {
        width: 90px;
    }
	.about-subtitle {
    font-size: 20px;
    margin-bottom: 8px;
    background: linear-gradient(to top, #FFD700 40%, transparent 40%) !important;
    padding: 0px 4px;
}
	.about-title {
    font-size: 32px;
    margin-bottom: 16px;
    padding-bottom: 0px;
    border-bottom: unset;
}
	.about-title::after {
    content: "とは";
    font-size: 24px;
}
	.about-description {
    font-size: 14px;
    line-height: 2;
    margin-bottom: 16px;
    color: #333;
}
	.check-item {
    background-color: #FAFAFA !important;
    color: #333 !important;
    padding: 12px;
    margin-bottom: 0;
    font-size: 16px;
    font-weight: bold;
    display: flex;
    align-items: center;
    border-radius: 8px !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1) !important;
}
	.about-checks {
    margin-top: 0;
		text-align: left;
    
}
	.about-left{
		text-align: center;
	}
	.savings-type img {
    width: 200px;
    height: 150px;
    object-fit: contain;
    margin: 0;
}
	.savings-type {
    text-align: center;
    padding: 12px;
}
	.about-cta {
    font-size: 24px;
    
}
}

/* 底部CTAセクション */
.savings-bottom-cta-bg {
    background-color: #FAFAFA !important;
}

/* PC用キャラクター配置 */
.pc-character {
    position: absolute;
    z-index: 1;
}

.pc-character img {
    width: 150px;
    height: auto;
}

.character-top-left {
    top: 0;
    left: 0;
}

.character-top-right {
    top: 0;
    right: 0;
}

.character-bottom-left {
    bottom: 0;
    left: 40px;
}

.character-bottom-right {
    bottom: 0;
    right: 40px;
}

/* スマホ用キャラクター（初期状態は非表示） */
.sp-characters {
    display: none !important;
}

/* 768px以下でのみ表示 */
@media (max-width: 768px) {
    .sp-characters {
        display: flex !important;
        justify-content: center;
        gap: 15px;
        width: 100%;
        flex-wrap: wrap;
        margin-bottom: 20px;
        order: -1;
		align-items: center;
    }
}
@media (max-width: 480px) {
    .sp-characters {
        gap: 8px;
    }
	.sp-character {
        width: 20%;
    }
	.feature-item {
    
    gap: 4px;
    
}
	#three {
		width: 24%;
}
}

/* 診断ページ - 最小限の修正（フォントと色のみ） */

/* 全体にZen Maru Gothicフォント適用 */
.diagnosis {
    font-family: "Zen Maru Gothic", sans-serif;
}

/* 診断の質問番号の色変更 */
.diagnosis__num {
    color: #BA0000;
}

/* 診断のタイトル色変更 */
.diagnosis__title {
    color: #333;
    font-family: 'Zen Maru Gothic', sans-serif;
}

.diagnosis__title span {
    color: #C09236;
}

/* プログレスバーの色変更 */
.diagnosis__step {
    border-radius: 100px;
}

.diagnosis__step::after {
    background-color: #BA0000;
    border-radius: 100px;
}

/* 選択肢のボタンデザイン - TOPページ準拠 */
.diagnosis__item label {
    border-radius: 50px;
    border: 1px solid #3C4358;
    background-color: #fff;
    transition: all 0.3s ease;
    
}

/* 選択肢のホバー色変更 */
.diagnosis__item label:hover {
    background-color: #FFE5E5;
    border-color: #3C4358;
}

/* 選択時の色変更 */
.diagnosis__item label:has(:checked) {
    background-color: #BA0000;
    color: white;
    border-color: #BA0000;
}

/* チェックボックス選択時の色 */
.diagnosis__item label:has(input[type="checkbox"]:checked) {
    background-color: #BA0000;
    border-color: #BA0000;
    color: white;
}

/* 注意文の色 */
.tyuui {
    color: #BA0000;
    
}

/* 戻るボタンの色 */
.tab__label {
    color: #C09236;
}

.tab__label:hover {
    color: #BA0000;
}

/* フォーム関連の色変更 */
.form__label {
    font-family: 'Zen Maru Gothic', sans-serif;
}

.form__input:focus {
    border-color: #BA0000;
    box-shadow: 0 0 0 3px rgba(186, 0, 0, 0.1);
}

/* 送信ボタンの色 - TOPページのCTAボタン準拠 */
.form__submit {
    background-color: #BA0000;
    font-family: 'Zen Maru Gothic', sans-serif;
    border-radius: 50px;
    box-shadow: 0 4px 4px rgba(0, 0, 0, 0.2);
    transition: all 0.3s ease;
    border: none;
	margin: 0 auto;
	margin-top: 40px;
	width: 100%;
}

.form__submit:hover {
    background-color: #9e0000;
    transform: translateY(-2px);
}

/* 性別選択の色 */
.wpcf7-radio .wpcf7-list-item:has(input:checked) label {
    background-color: #BA0000;
    color: white;
}

/* メール注意文の色 */
.form__mail-text {
    color: #BA0000;
   
}

/* ========================================
   診断結果ページ専用CSS - 競合回避版
======================================== */

.result-page {
    background-color: #FAFAFA;
    font-family: "Zen Maru Gothic", sans-serif;
    overflow: hidden;
}

.result-page .result__inner {
    margin: 0 auto;
    max-width: 1000px;
    width: 100%;
}

.result-page .result__title {
    color: #333;
    font-size: 48px;
    font-weight: bold;
    text-align: center;
    margin-bottom: 60px;
    letter-spacing: 0.05em;
}

.result-page .result__contents {
    background-color: #fff;
    padding: 60px 50px;
    position: relative;
}

/* ヘッダー部分 */
.result-page .result__head {
    display: flex;
    align-items: center;
    gap: 40px;
    margin-bottom: 40px;
    padding-bottom: 40px;
    border-bottom: 2px solid #E5E5E5;
}

.result-page .result__character-wrapper {
    flex-shrink: 0;
}

.result-page .result__character-wrapper img {
    width: 300px;
    height: auto;
    max-height: 300px;
    object-fit: contain;
}

.result-page .result__text-area {
    flex: 1;
}

.result-page .result__type-label {
    font-size: 36px;
    color: #333;
    margin-bottom: 15px;
    font-weight: bold;
    letter-spacing: 0.05em;
	text-align: center;
}

.result-page .result__type-prefix {
    font-size: 20px;
    font-weight: normal;
}

.result-page .result__subtitle {
    font-size: 18px;
    color: #333;
    margin-bottom: 25px;
    background-color: #F5F5F5;
    padding: 12px 16px;
    border-radius: 8px;
    text-align: center;
    font-weight: bold;
}

.result-page .result__description {
    line-height: 1.8;
}

.result-page .result__description p {
    font-size: 16px;
    color: #333;
    margin-bottom: 15px;
    font-weight: bold;
}

.result-page .result__description p:last-child {
    margin-bottom: 0;
}

/* 次のステップセクション */
.result-page .next-step {
    margin-bottom: 50px;
}

.result-page .next-step__icon {
    width: 60px;
    height: 60px;
    background-color: #333;
    color: white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 30px;
    font-size: 40px;
    font-weight: bold;
}

.result-page .next-step__title {
    font-size: 32px;
    font-weight: bold;
    text-align: center;
    color: #333;
    margin-bottom: 40px;
}

.result-page .steps {
    display: flex;
    flex-direction: column;
    gap: 30px;
}

.result-page .step {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    padding: 25px 0;
    width: 100%;
}

.result-page .step__check {
    flex-shrink: 0;
    margin-top: 2px;
}

.result-page .step__check img {
    width: 20px;
    height: 20px;
	margin-top: 4px;
}

.result-page .step__content {
    flex: 1;
    display: flex;
    align-items: flex-start;
    gap: 8px;
    width: 100%;
    text-align: left;
}

.result-page .step__title {
    font-size: 20px;
    font-weight: bold;
    color: #333;
    line-height: 1.4;
    flex-shrink: 0;
    width: 180px;
}

.result-page .step__dotted-line {
    height: 1px;
    background: repeating-linear-gradient(to right, #949494 0px, #949494 4px, transparent 0px, transparent 6px);
    margin-top: 10px;
    width: 120px;
    flex-shrink: 0;
}

.result-page .step__description {
    font-size: 16px;
    line-height: 1.8;
    color: #555;
    margin: 0;
    width: 600px;
    font-weight: bold;
}

/* おすすめセクション */
.result-page .result__recommendation {
    text-align: center;
    padding: 80px 40px 40px;
    background-image: url('../img/next-line.png');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    position: relative;
}

.result-page .recommendation__title {
    font-size: 24px;
    font-weight: bold;
    color: #333;
    margin-bottom: 30px;
}

.result-page .recommendation__button {
    display: inline-flex;
    align-items: center;
    gap: 15px;
    background-color: #0AB53C;
    color: white;
    padding: 18px 40px;
    border-radius: 50px;
    text-decoration: none;
    font-size: 18px;
    font-weight: bold;
    transition: all 0.3s ease;
    box-shadow: 0 4px 12px rgba(10, 181, 60, 0.3);
}

.result-page .recommendation__button:hover {
    background-color: #089a32;
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(10, 181, 60, 0.4);
}

.result-page .recommendation__button img {
    width: 24px;
    height: 24px;
}

/* ハイライト色 */
.result-page .highlight-red {
    color: #BA0000;
    font-weight: bold;
}

.result-page .highlight-gold {
    color: #C09236;
    font-weight: bold;
}

/* タブレット対応 */
@media (max-width: 1024px) {
    .result-page {
        padding: 50px 15px 70px;
    }

    .result-page .result__title {
        font-size: 40px;
        margin-bottom: 50px;
    }

    .result-page .result__contents {
        padding: 50px 40px;
    }

    .result-page .result__character-wrapper img {
        width: 220px;
        max-height: 280px;
    }

    .result-page .result__type-label {
        font-size: 32px;
    }

    .result-page .step__title {
        width: 150px;
    }

    .result-page .step__description {
        width: 500px;
    }
}

/* スマホ対応 */
@media (max-width: 768px) {
    .result-page {
        padding: 40px 15px 60px;
    }

    .result-page .result__title {
        font-size: 32px;
        margin-bottom: 40px;
    }

    .result-page .result__contents {
        padding: 30px 20px;
    }

    .result-page .result__head {
        flex-direction: column;
        align-items: center;
        text-align: center;
        gap: 25px;
        margin-bottom: 30px;
        padding-bottom: 30px;
    }

    .result-page .result__character-wrapper img {
        width: 180px;
        max-height: 220px;
    }

    .result-page .result__type-label {
        font-size: 28px;
    }

    .result-page .result__type-prefix {
        font-size: 16px;
    }

    .result-page .result__subtitle {
        font-size: 16px;
        font-weight: bold;
    }

    .result-page .result__description p {
        font-size: 14px;
        font-weight: bold;
    }

    .result-page .next-step__icon {
        width: 50px;
        height: 50px;
        font-size: 32px;
        margin-bottom: 25px;
    }

    .result-page .next-step__title {
        font-size: 24px;
        margin-bottom: 30px;
    }

    .result-page .steps {
        gap: 20px;
    }

    .result-page .step {
        flex-direction: row;
        align-items: flex-start;
        gap: 15px;
        padding: 20px 0;
    }

    .result-page .step__check {
        flex-shrink: 0;
        margin-top: 2px;
    }

    .result-page .step__content {
        flex-direction: column;
        gap: 10px;
        flex: 1;
    }

    .result-page .step__title {
        font-size: 18px;
        width: 100%;
    }

    .result-page .step__dotted-line {
        width: 100%;
        margin: 5px 0;
    }

    .result-page .step__description {
        font-size: 14px;
        width: 100%;
        font-weight: bold;
    }

    .result-page .recommendation__title {
        font-size: 20px;
        margin-bottom: 25px;
    }

    .result-page .recommendation__button {
        font-size: 16px;
        padding: 15px 30px;
        gap: 12px;
    }

    .result-page .recommendation__button img {
        width: 20px;
        height: 20px;
    }

    /* スマホ用背景画像 */
    .result-page .result__recommendation {
        background-image: url('../img/next-line-sp.png');
		    padding: 100px 20px 80px;
    }
	
}

/* 小さなスマホ対応 */
@media (max-width: 480px) {
    .result-page .result__contents {
        padding: 20px 15px;
    }

    .result-page .result__type-label {
        font-size: 24px;
    }

    .result-page .result__type-prefix {
        font-size: 14px;
    }

    .result-page .result__subtitle {
        font-size: 14px;
        padding: 10px 12px;
    }

    .result-page .next-step__title {
        font-size: 20px;
    }

    .result-page .step__title {
        font-size: 16px;
    }

    .result-page .recommendation__title {
        font-size: 18px;
    }

    .result-page .recommendation__button {
        font-size: 14px;
        padding: 12px 25px;
        width: 100%;
        max-width: 300px;
    }
}

/* 極小スマホ対応 */
@media (max-width: 360px) {
    .result-page {
        padding: 30px 10px 50px;
    }

    .result-page .result__contents {
        padding: 15px 10px;
    }

    .result-page .result__character-wrapper img {
        width: 150px;
        max-height: 180px;
    }

    .result-page .result__type-label {
        font-size: 20px;
    }

    .result-page .result__type-prefix {
        font-size: 12px;
    }

    .result-page .step {
        gap: 10px;
    }

    .result-page .step__check img {
        width: 16px;
        height: 16px;
    }

    .result-page .step__description {
        font-size: 13px;
    }
	
}

/* 貯金タイプの色変更 */
.type-kotsukotsu {
    color: #297AB9 !important;
}

.type-kenjitsu {
    color: #D79F00 !important;
}

.type-sanzai {
    color: #BA0000 !important;
}

.type-tsumori {
    color: #4E4E4E !important;
}


/* エラーメッセージのスタイルだけ追加 */
.error-message {
    color: #dc3545;
    font-size: 14px;
    margin-top: 5px;
    display: none;
}

.error-message.show {
    display: block;
}

.form__input.error {
    border-color: #dc3545 !important;
    background-color: #fff5f5;
}


.wpcf7-not-valid-tip {
	color: #1700e9; 
	font-size: 12px;
	font-weight: normal;
	display: block;
	position: unset;
}