body {
	color: #111;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 500;
}

p:empty {
	display: none;
}

html {
	font-size: 62.5%;
}
@media screen and (min-width: 1400px) {
    html {
        font-size: 67.5%;
    }
}
@media screen and (max-width: 1200px) {
    html {
        font-size: 52.5%;
    }
}
@media screen and (max-width: 950px) {
    html {
        font-size: 47.5%;
    }
}
@media screen and (max-width: 768px) {
    html {
        font-size: 62.5%;
    }
}
@media screen and (max-width: 375px) {
    html {
        font-size: 2.6666666667vw;
    }
}

/* pcの電話番号発信対応 */

/* ホバー */

a {
	color: inherit;
	text-decoration: none;
	-webkit-transition: opacity 0.3s;
	transition: opacity 0.3s;
}

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

/* Remove default padding */

ul,
ol {
	padding: 0;
}

/* Remove default margin */

body,
h1,
h2,
h3,
h4,
p,
ul,
ol,
figure,
blockquote,
dl,
dd {
	margin: 0;
}

/* Set core root defaults */

html {
	scroll-behavior: smooth;
}

/* Set core body defaults */

body {
	line-height: 1.5;
	min-height: 100vh;
	text-rendering: optimizeSpeed;
}

/* Remove list styles on ul, ol elements with a class attribute */

ul,
ol {
	list-style: none;
}

/* A elements that don't have a class get default styles */

a:not([class]) {
	-webkit-text-decoration-skip: ink;
	text-decoration-skip-ink: auto;
}

/* Make images easier to work with */

img {
	display: block;
	max-width: 100%;
	width: 100%;
}

/* Natural flow and rhythm in articles by default */

article > * + * {
	margin-top: 1em;
}

/* Inherit fonts for inputs and buttons */

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

/* Blur images when they have no alt attribute */

img:not([alt]) {
	filter: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg"><filter id="filter"><feGaussianBlur stdDeviation="10" /></filter></svg>#filter');
	-webkit-filter: blur(10px);
	filter: blur(10px);
}

/* フォームリセット */

input,
button,
select,
textarea {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	background: transparent;
	border: none;
	border-radius: 0;
	font: inherit;
	outline: none;
}

textarea {
	resize: vertical;
}

input[type=submit],
input[type=button],
label,
button,
select {
	cursor: pointer;
}

select::-ms-expand {
	display: none;
}

/* ヘッダー */
.header {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1000;
    width: 100%;
    height: 6rem;
    background-color: #fff;
    box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16);
}

.header__inner {
    display: flex;
    align-items: center;
    height: inherit;
    max-width: 145rem;
    width: 100%;
    padding-left: 2.5rem;
    padding-right: 2.5rem;
    margin-left: auto;
    margin-right: auto;
}
@media screen and (max-width: 1024px) {
    .header__inner {
        padding-left: 1.5rem;
        padding-right: 1.5rem;
    }
}

.header__name {
    margin-right: auto;
}

.header__logo {
    width: 18.9rem;
}
@media screen and (max-width: 1024px) {
    .header__logo {
        width: 14.3rem;
    }
}

.header__nav {
    height: inherit;
}

.header__items {
    display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
    -webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
    height: inherit;
}

.header__item {
    height: inherit;
}

.header__item:not(:first-child) {
    margin-left: 5rem;
}
@media screen and (max-width: 1024px) {
    .header__item:not(:first-child) {
        margin-left: 3rem;
    }
}

.header__item:last-of-type {
    margin-left: 6.4rem;
    display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
    -webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
    -webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
}
@media screen and (max-width: 1024px) {
    .header__item:last-of-type {
        margin-left: 4rem;
    }
}

.header__link {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.4rem;
    font-weight: 500;
    height: inherit;
    color: #111;
    position: relative;
}

.header__link::after {
    background-color: #111;
    border-radius: 50%;
    content: "";
    height: 0.3rem;
    left: 50%;
    opacity: 0;
    position: absolute;
    top: 1.3rem;
    -webkit-transform: translate(-50%, 0);
    transform: translate(-50%, 0);
    -webkit-transition: opacity 0.3s;
    transition: opacity 0.3s;
    width: 0.3rem;
}

.header__link:hover::after {
    opacity: 1;
    visibility: visible;
}

/* グローバルナビ */
.global-nav__items {
	background-color: #fff;
	border-radius: 0 0 1rem 1rem;
	-webkit-box-shadow: 0 10px 10px rgba(203, 79, 91, .1);
	box-shadow: 0 10px 10px rgba(203, 79, 91, .1);
	opacity: 0;
	padding: 1rem 3rem 1.5rem 2.9rem;
	position: absolute;
	-webkit-transition: opacity 0.3s;
	transition: opacity 0.3s;
	-webkit-transition: opacity 0.4s;
	transition: opacity 0.4s;
	visibility: hidden;
	width: clamp(226px, 33%, 246px);
	width: clamp(22.6rem, 33%, 24.6rem);
}

.global-nav:hover > .global-nav__items {
	opacity: 1;
	visibility: visible;
}

.global-nav__item {
	padding: 10px 0;
	padding: 1rem 0;
}

.global-nav__link {
	color: #111;
	font-size: 1.4rem;
	height: inherit;
	line-height: 1;
	padding: 1rem 0;
	position: relative;
	-webkit-transition: color 0.3s;
	transition: color 0.3s;
}

.global-nav__link::before {
	background-color: #439887;
	border-radius: 50%;
	content: "";
	height: 0.3rem;
	left: -1rem;
	opacity: 0;
	position: absolute;
	top: 50%;
	-webkit-transform: translate(0, -50%);
	transform: translate(0, -50%);
	-webkit-transition: opacity 0.3s;
	transition: opacity 0.3s;
	width: 0.3rem;
}

.global-nav__link:hover {
	color: #439887;
}

.global-nav__link:hover::before {
	opacity: 1;
}

.global-nav:hover .global-nav__items {
	opacity: 1;
}

/* ハンバーガー */
.hamburger {
    position: fixed;
    z-index: 9999;
    top: 0.9rem;
    right: 1.5rem;
    width: 4.2rem;
    height: 4.2rem;
    border-radius: 50%;
    background-color: #439887;
    cursor: pointer;
}

.hamburger.is-active {
    background-color: #fff;
}

.hamburger span {
    position: absolute;
    left: 1.3rem;
    width: 1.6rem;
    display: inline-block;
    height: 1px;
    background-color: #fff;
    transition: transform 0.3s, background-color 0.3s;
}

.hamburger.is-active span {
    background-color: #439887;
}

.hamburger span:nth-child(1) {
    top: 15px;
}

.hamburger span:nth-child(2) {
    top: 21px;
    transition: opacity 0.3s;
}

.hamburger span:nth-child(3) {
    top: 27px;
}

.hamburger.is-active span:nth-child(1) {
    top: 20px;
    transform: rotate(-45deg);
}

.hamburger.is-active span:nth-child(2) {
    opacity: 0;
}

.hamburger.is-active span:nth-child(3) {
    top: 20px;
    transform: rotate(45deg);
}

.header__name-white {
    position: fixed;
    z-index: 9999;
    top: 2rem;
    left: 1.5rem;
    width: 14.3rem;
    opacity: 0;
    visibility: hidden;
}

.header__name-white.is-active {
    opacity: 1;
    visibility: visible;
}

/* ドロワーメニュー */
.drawer-menu {
    position: absolute;
    z-index: 5000;
    display: none;
    top: 0;
    left: 0;
    width: 100%;
    max-height: 100vh;
    background-color: #439887;
    overflow-y: scroll;
    -webkit-overflow-scrolling: touch;
    padding-top: 13.4rem;
    padding-bottom: 3rem;
}

.drawer-menu__inner {
    width: 100%;
    height: inherit;
    padding-left: 1.5rem;
    padding-right: 1.5rem;
    margin-left: auto;
    margin-right: auto;
}

.drawer-menu__accordion {
    width: 100%;
}

.drawer-menu__content-block {
    padding-bottom: 9rem;
}

.drawer-menu__contents {
    background-color: #fff;
    border-radius: 2.5rem;
    padding-top: 2.8rem;
    padding-bottom: 2.2rem;
    margin-top: 3.4rem;
    width: 100%;
    max-width: 30rem;
    margin-left: auto;
    margin-right: auto;
}

.drawer-menu__text {
    text-align: center;
    color: #333;
    font-size: 1.5rem;
    line-height: 1.333;
    font-weight: 700;
}

.drawer-menu__button-block {
    margin-top: 2.3rem;
    text-align: center;
}

.drawer-menu__button {
    width: 25rem;
    max-width: 100%;
    display: inline-block;
    background: linear-gradient(180deg, #F7913F 0%, #F7913F 50%, #FF7A10 50%, #FF7A10 100%);
    color: #fff;
    font-weight: 700;
    font-size: 1.6rem;
    line-height: 1;
    padding: 1.8rem 1rem;
    border-radius: 9999px;
    transition: opacity 0.3s ease-in-out;
    position: relative;
}

.drawer-menu__button:hover {
    opacity: 0.7;
}

.drawer-menu__button img {
    width: 1.8rem;
    height: 1.8rem;
    position: absolute;
    top: 50%;
    right: 3.5rem;
    transform: translate(0, -50%);
}

.accordion {
	width: 100%;
}

.accordion__item:last-of-type {
	border-bottom: 1px solid rgba(255, 255, 255, 0.17);
}

.accordion__title {
	background-color: transparent;
	border-top: 1px solid rgba(255, 255, 255, 0.17);
	cursor: pointer;
	padding: 1.4rem 0;
	position: relative;
}

.accordion__title::before,
.accordion__title::after {
	background-color: #fff;
	content: "";
	height: 0.2rem;
	position: absolute;
	right: 15px;
	right: 1.5rem;
	top: 50%;
	-webkit-transition: opacity 0.3s, -webkit-transform 0.3s;
	transition: opacity 0.3s, -webkit-transform 0.3s;
	transition: transform 0.3s, opacity 0.3s;
	transition: transform 0.3s, opacity 0.3s, -webkit-transform 0.3s;
	width: 1.6rem;
}

.accordion__title::after {
	-webkit-transform: rotate(90deg);
	transform: rotate(90deg);
}

.accordion__title.is-open::after {
	-webkit-transform: rotate(180deg);
	transform: rotate(180deg);
}

.accordion__title.is-open::before {
	opacity: 0;
}

.accordion__title-text {
	font-size: 1.6rem;
	line-height: 1;
    font-weight: 600;
    color: #fff;
}

.accordion__content {
	display: none;
	padding-bottom: 1.5rem;
	padding-left: 1.5rem;
	padding-right: 1.5rem;
}

.accordion__content.accordion__content--large {
	padding-left: 0;
}

.accordion__content-flex {
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
}

.accordion__list {
	padding-left: 1.5rem;
	position: relative;
}

.accordion__list::before {
	background-color: #fff;
	border-radius: 50%;
	content: "";
	height: 0.5rem;
	left: 0;
	position: absolute;
	top: 50%;
	-webkit-transform: translate(0, -50%);
	transform: translate(0, -50%);
	width: 0.5rem;
}

.accordion__link {
	color: #fff;
	display: inline-block;
	font-size: 1.6rem;
	line-height: 1;
	padding: 1.4rem 0;
	-webkit-transition: opacity 0.3s;
	transition: opacity 0.3s;
}

.accordion__link:hover {
	opacity: 0.8;
}


/* FV */
.fv {
    position: relative;
    z-index: 2;
    padding-top: 15.6rem;
    padding-bottom: 3.6rem;
    overflow: hidden;
}
@media screen and (max-width: 768px) {
    .fv {
        padding-top: 10.8rem;
        padding-bottom: 1rem;
    }
}

.fv__bg {
    position: absolute;
    bottom: -1rem;
    right: -1rem;
    z-index: -1;
}

.fv__inner {
    max-width: 149rem;
    width: 100%;
    padding-left: 2.5rem;
    padding-right: 2.5rem;
    margin-left: auto;
    margin-right: auto;
}
@media screen and (max-width: 768px) {
    .fv__inner {
        padding-left: 1.5rem;
        padding-right: 1.5rem;
    }
}

.fv__flex {
    display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
}
@media screen and (max-width: 768px) {
    .fv__flex {
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -ms-flex-direction: column;
        flex-direction: column;
        -webkit-box-align: center;
        -ms-flex-align: center;
        align-items: center;
    }
}

.fv__text-block {
    margin-left: 11rem;
    margin-top: -1.8rem;
}
@media screen and (max-width: 768px) {
    .fv__text-block {
        width: 100%;
        margin-left: 0;
        text-align: center;
    }
}

.fv__img-block {
    margin-top: 1.6rem;
    width: 33%;
}
@media screen and (max-width: 1200px) {
    .fv__img-block {
        margin-left: 1.6rem;
        width: 27%;
    }
}
@media screen and (max-width: 768px) {
    .fv__img-block {
        margin-left: 0;
        width: 83%;
        margin-top: 0.7rem;
        max-width: 30rem;
    }
}

.fv__speech-block img {
    max-width: 44.8rem;
    width: 100%;
}
@media screen and (max-width: 768px) {
    .fv__speech-block img {
        width: 94.5%;
        margin-left: auto;
        margin-right: auto;
    }
}

.fv__large-title {
    margin-top: -2rem;
}
@media screen and (max-width: 768px) {
    .fv__large-title {
        margin-top: -1rem;
    }
}

.fv__large-text {
    font-size: 4rem;
    font-weight: 700;
    color: #333;
    line-height: 2;
}

.fv__large-text.fv__large-text--large {
    font-size: 5rem;
}

@media screen and (max-width: 1300px) {
    .fv__large-text {
        font-size: 3.6rem;
        color: #333;
        line-height: 1.764;
    }
    .fv__large-text.fv__large-text--large {
        font-size: 4.4rem;
    }
}

@media screen and (max-width: 1024px) {
    .fv__large-text {
        font-size: 3.4rem;
    }
}

@media screen and (max-width: 768px) {
    .fv__large-text {
        text-align: center;
        line-height: 1.5;
    }
}

.fv__star {
    font-size: 5rem;
    font-weight: 700;
    color: #439887;
    line-height: 0.625;
    display: inline-block;
    position: relative;
}

.fv__star::after {
    content: '';
    background-image: url(../img/feature-star.png);
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    position: absolute;
    top: -2rem;
    right: -1rem;
    width: 2rem;
    height: 2.2rem;
}

@media screen and (max-width: 768px) {
    .fv__star {
        font-size: 5.2rem;
    }
    .fv__star::after {
        top: -1.5rem;
    }
}

.fv__small-title {
    margin-top: 1.5rem;
    border-radius: 1.3rem;
    background: linear-gradient(180deg, #439887 0%, #439887 50%, #2A7B7B 50%, #2A7B7B 100%);
    padding: 0.8rem 1.6rem;
    display: inline-block;
}
@media screen and (max-width: 768px) {
    .fv__small-title {
        margin-top: 0.7rem;
        border-radius: 2rem;
        padding: 0.8rem 2rem;
        text-align: center;
    }
}

.fv__small-text {
    color: #fff;
    font-size: 2.2rem;
    line-height: 1;
    font-weight: 600;
}
@media screen and (max-width: 1300px) {
    .fv__small-text {
        font-size: 1.8rem;
        line-height: 1.25;
    }
}
@media screen and (max-width: 768px) {
    .fv__small-text {
        font-size: 1.6rem;
    }
}

.fv__yellow {
    color: #FFD152;
    font-size: 2.2rem;
    line-height: 1;
    font-weight: 700;
}
@media screen and (max-width: 1200px) {
    .fv__yellow {
        line-height: 1.25;
    }
}
@media screen and (max-width: 768px) {
    .fv__yellow {
        font-size: 1.6rem;
    }
}

.fv__icon-block {
    margin-top: 3.5rem;
    display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
    gap: 1.5rem;
}
@media screen and (max-width: 768px) {
    .fv__icon-block {
        margin-top: 2.1rem;
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 0.5rem;
    }
}

.fv__icon-link {
    display: flex;
    align-items: center;
    justify-content: center;
}

.fv__icon-card {
    border: 2px solid #B6B4B3;
    border-radius: 1.4rem;
    position: relative;
    min-width: 16.3rem;
    padding: 2.2rem 0.9rem 0.7rem;
    background-color: #fff;
}
@media screen and (max-width: 768px) {
    .fv__icon-card {
       min-width: initial;
       width: calc(100% - 0.5rem * 2 / 3);
       padding: 1.9rem 0 1rem;
    }
}

.fv__icon-img {
    width: 2.9rem;
    height: 2.9rem;
    position: absolute;
    left: 50%;
    top: -1.5rem;
    transform: translate(-50%, 0);
}
@media screen and (max-width: 768px) {
    .fv__icon-img {
        width: 2rem;
        height: 2rem;
        top: -1rem;
    }
}

.fv__icon-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.fv__icon-title {
    text-align: center;
    font-size: 1.5rem;
    color: #333;
    line-height: 1;
    font-weight: 700;
}
@media screen and (max-width: 768px) {
    .fv__icon-title {
        font-size: 1.3rem;
        line-height: 1.2;
    }
}

.fv__icon-title.large {
    font-size: 2.2rem;
    color: #4D4D4D;
    font-weight: 700;
    line-height: 1.45;
}
@media screen and (max-width: 768px) {
    .fv__icon-title.large {
        font-size: 1.8rem;
    }
}
@media screen and (max-width: 480px) {
    .fv__icon-title.large {
        font-size: 1.5rem;
    }
}

.fv__icon-title.large a {
    color: #188FC4;
    text-decoration: underline;
}

.fv__icon-contents {
    text-align: center;
    font-size: 1.7rem;
    color: #333;
    line-height: 1;
    font-weight: 700;
}
@media screen and (max-width: 768px) {
    .fv__icon-contents {
        font-size: 1.2rem;
    }
}

.fv__icon-large {
    color: #CB4F5B;
    font-family: "Open Sans", sans-serif;
    font-size: 4rem;
    text-shadow: 1px 2px 0 rgba(0, 0, 0, 0.16);
}
@media screen and (max-width: 768px) {
    .fv__icon-large {
        font-size: 2.4rem;
    }
}


/* バナー */
.banner {
    background-color: #439887;
    padding-top: 4rem;
    padding-bottom: 2.8rem;
}
@media screen and (max-width: 768px) {
    .banner {
        padding-top: 2.7rem;
        padding-bottom: 3rem;
    }
}

.banner02 {
    background-color: #2A7B7B;
}

.banner__inner {
    max-width: 113rem;
    width: 100%;
    padding-left: 2.5rem;
    padding-right: 2.5rem;
    margin-left: auto;
    margin-right: auto;
    text-align: center;
}
@media screen and (max-width: 768px) {
    .banner__inner {
        padding-left: 1.5rem;
        padding-right: 1.5rem;
    }
}

.banner__flex {
    display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
    -webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
    -webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
    gap: 2.5rem;
}
@media screen and (max-width: 768px) {
    .banner__flex {
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -ms-flex-direction: column;
        flex-direction: column;
        gap: 0.2rem;
    }
}

.banner__img-block {
    width: 15rem;
}
@media screen and (max-width: 768px) {
    .banner__img-block {
        width: 13.8rem;
        margin-left: auto;
        margin-right: auto;
    }
}

.banner__contents {
    display: -webkit-box;
	display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
	-webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    align-items: center;
    gap: 1.6rem;
}
@media screen and (max-width: 768px) {
    .banner__contents {
        gap: 0.8rem;
    }
}

.banner__text {
    color: #fff;
    font-size: 1.6rem;
    line-height: 1.25;
    letter-spacing: 0.076em;
    font-weight: 500;
}
@media screen and (max-width: 768px) {
    .banner__text {
        font-size: 1.4rem;
    }
}

.banner__button-block {
    text-align: center;
}

.banner__button {
    transition: opacity 0.3s ease-in-out;
}

.banner__button:hover {
    opacity: 0.7;
}

.banner__button img {
    max-width: 48.2rem;
    margin-left: auto;
    margin-right: auto;
}
@media screen and (max-width: 768px) {
    .banner__button img {
        max-width: 34.5rem;
        width: 100%;
    }
}

/* バナー03 */
.banner03 {
    background-color: #DAFEEA;
    padding-top: 2rem;
    padding-bottom: 3rem;
}
@media screen and (max-width: 768px) {
    .banner03 {
        padding-top: 3rem;
    }
}

.banner03__inner {
    max-width: 113rem;
    width: 100%;
    padding-left: 2.5rem;
    padding-right: 2.5rem;
    margin-left: auto;
    margin-right: auto;
    text-align: center;
}
@media screen and (max-width: 768px) {
    .banner03__inner {
        padding-left: 1.5rem;
        padding-right: 1.5rem;
    }
}

.banner03__contents {
    display: -webkit-box;
	display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
	-webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    align-items: center;
    gap: 1.5rem;
}
@media screen and (max-width: 768px) {
    .banner03__contents {
        gap: 0.8rem;
    }
}

.banner03__text {
    font-size: 2.6rem;
    letter-spacing: 0.012em;
    font-weight: 900;
    line-height: 1.4;
    color: #333333;
}
@media screen and (max-width: 768px) {
    .banner03__text {
        font-size: 2rem;
    }
}

.banner03__text .red {
    color: #D44251;
}

.banner03__button-block {
    text-align: center;
}

.banner03__button {
    transition: opacity 0.3s ease-in-out;
}

.banner03__button:hover {
    opacity: 0.7;
}

.banner03__button img {
    max-width: 42rem;
    margin-left: auto;
    margin-right: auto;
}
@media screen and (max-width: 768px) {
    .banner03__button img {
        max-width: 32rem;
        width: 100%;
    }
}

/* バナー04 */
.banner04 {
    background-color: #FFFFFF;
    padding-top: 3.2rem;
    padding-bottom: 3.2rem;
}
@media screen and (max-width: 768px) {
    .banner04 {
        padding-top: 2.4rem;
        padding-bottom: 2.4rem;
    }
}

.banner04__inner {
    max-width: 113rem;
    width: 100%;
    padding-left: 2.5rem;
    padding-right: 2.5rem;
    margin-left: auto;
    margin-right: auto;
    text-align: center;
}
@media screen and (max-width: 768px) {
    .banner04__inner {
        padding-left: 1.5rem;
        padding-right: 1.5rem;
    }
}

.banner04__contents {
    display: -webkit-box;
	display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
	-webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}
@media screen and (max-width: 768px) {
    .banner04__contents {
        gap: 0.5rem;
    }
}

.banner04__text {
    font-size: 4.3rem;
    letter-spacing: 0.012em;
    font-weight: 900;
    line-height: 1.14;
    color: #333333;
}
@media screen and (max-width: 768px) {
    .banner04__text {
        font-size: 2.4rem;
    }
}

.banner04__text span {
    color: #D44251;
}

.banner04__lead {
    font-size: 3.2rem;
    color: #333333;
    letter-spacing: 0.012em;
    font-weight: 900;
    line-height: 1.14;
}
@media screen and (max-width: 768px) {
    .banner04__lead {
        font-size: 1.8rem;
        line-height: 1.3;
    }
}

.banner04__lead span {
    display: inline-block;
    line-height: 1.8;
    font-size: 2rem;
    font-weight: 500;
}
@media screen and (max-width: 768px) {
    .banner04__lead span {
        font-size: 1.6rem;
    }
}

/* リスク */
.risk {
    position: relative;
    z-index: 2;
    padding-top: 6.2rem;
    padding-bottom: 7.5rem;
    overflow: hidden;
}
@media screen and (max-width: 768px) {
    .risk {
        padding-top: 3.3rem;
        padding-bottom: 5.4rem;
    }
}

.risk__bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -1;
}

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


.risk__inner {
    max-width: 113rem;
    width: 100%;
    padding-left: 2.5rem;
    padding-right: 2.5rem;
    margin-left: auto;
    margin-right: auto;
}
@media screen and (max-width: 768px) {
    .risk__inner {
        padding-left: 2rem;
        padding-right: 2rem;
    }
}

.risk__title {
    font-size: 3rem;
    line-height: 1;
    text-align: center;
    color: #333333;
}
@media screen and (max-width: 768px) {
    .risk__title {
        font-size: 1.8rem;
        line-height: 2.4;
    }
}

.risk__title-dot {
    display: inline-block;
    font-weight: bold;
    font-size: 4.6rem;
    line-height: 1;
    color: #FF7A10;
    position: relative;
}
@media screen and (max-width: 768px) {
    .risk__title-dot {
        font-size: 3rem;
    }
}

.risk__title-dot::after {
    content: '';
    position: absolute;
    width: 0.7rem;
    height: 0.7rem;
    border-radius: 50%;
    background-color: #FF7A10;
    top: -0.7rem;
    left: 50%;
    transform: translate(-50%, 0);
}
@media screen and (max-width: 768px) {
    .risk__title-dot::after {
        content: '';
        width: 0.45rem;
        height: 0.45rem;
    }
}

.risk__contents {
    -webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
    display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
    -webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
    gap: 2.6rem;
    margin-left: 7.5rem;
    margin-top: 2rem;
}
@media screen and (max-width: 768px) {
    .risk__contents {
        -webkit-box-orient: vertical;
        -webkit-box-direction: reverse;
        -ms-flex-direction: column-reverse;
        flex-direction: column-reverse;
        gap: 0.87rem;
        margin-top: 0.8rem;
        margin-left: 0;
    }
}

.risk__img-block {
    width: 34.5%;
    margin-top: 2rem;
    margin-left: -5rem;
}
@media screen and (max-width: 768px) {
    .risk__img-block {
        width: 66%;
        margin-left: auto;
        margin-right: auto;
        max-width: 30rem;
    }
}

.risk__cards {
    width: 41%;
    display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
    -webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	-ms-flex-direction: column;
	flex-direction: column;
    gap: 0.5rem;
}
@media screen and (max-width: 768px) {
    .risk__cards {
        max-width: 36.4rem;
        width: 100%;
        gap: 0.44rem;
    }
}

.risk__card {
    background-color: #fff;
    padding: 1.3rem 1rem;
    display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
    gap: 1.5rem;
}
@media screen and (max-width: 768px) {
    .risk__card {
        padding: 0.8rem;
        gap: 1rem;
    }
}

.risk__card img {
    width: 2rem;
}
@media screen and (max-width: 768px) {
    .risk__card img {
        width: 1.5rem;
    }
}

.risk__card-text {
    font-size: 1.6rem;
    line-height: 1;
    font-weight: 400;
    color: #111;
}
@media screen and (max-width: 768px) {
    .risk__card-text {
        font-size: 1.4rem;
    }
}

.risk__card-text.risk__card-text--blue {
    color: #188FC4;
    font-weight: 400;
}

.risk__card-img {
    width: 80rem;
    margin-top: 2rem;
    margin-left: auto;
    margin-right: auto;
}
@media screen and (max-width: 768px) {
    .risk__card-img {
        max-width: 36rem;
        width: 100%;
    }
}

/* 復旧サービステキスト */
.text {
    margin-top: 4rem;
}
@media screen and (max-width: 768px) {
    .text {
        margin-top: 2.5rem;
    }
}

.text__inner {
    max-width: 113rem;
    width: 100%;
    padding-left: 2.5rem;
    padding-right: 2.5rem;
    margin-left: auto;
    margin-right: auto;
    text-align: center;
}
@media screen and (max-width: 768px) {
    .text__inner {
        padding-left: 1.5rem;
        padding-right: 1.5rem;
    }
}

.text__speech-block {
    width: 16rem;
    position: relative;
    margin-left: auto;
    margin-right: auto;
}
@media screen and (max-width: 768px) {
    .text__speech-block {
        width: 11.7rem;
    }
}

.text__speech {
    position: absolute;
    top: 38%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: 1.8rem;
    line-height: 1;
    font-weight: 700;
    color: #fff;
    width: 100%;
}
@media screen and (max-width: 768px) {
    .text__speech {
        font-size: 1.3rem;
    }
}

.text__text-block {
    text-align: center;
}

.text__text {
    font-size: 4rem;
    font-weight: 700;
    line-height: 1.475;
    color: #111;
}
@media screen and (max-width: 768px) {
    .text__text {
        font-size: 3rem;
        line-height: 1.46666667;
    }
}

.text__text.text__text--orange {
    color: #FF7A10;
}

.text__title-img img {
    width: 26.1rem;
    display: inline-block;
}
@media screen and (max-width: 768px) {
    .text__title-img img {
        width: 20.7rem;
    }
}

/* 特徴 */
.feature {
    background-color: #439887;
    padding-top: 5.5rem;
    padding-bottom: 21.4rem;
    margin-top: 4.4rem;
}
@media screen and (max-width: 768px) {
    .feature {
       padding-top: 2.2rem;
       padding-bottom: 2.7rem;
       margin-top: 4.5rem;
    }
}

.feature__inner {
    max-width: 90rem;
    width: 100%;
    padding-left: 2.5rem;
    padding-right: 2.5rem;
    margin-right: auto;
    margin-left: auto;
}
@media screen and (max-width: 768px) {
    .feature__inner {
        padding-left: 5.7rem;
        padding-right: 5.7rem;
    }
}

.feature__title {
    font-size: 2.8rem;
    line-height: 1;
    font-weight: 700;
    color: #fff;
    text-align: center;
}
@media screen and (max-width: 768px) {
    .feature__title {
        font-size: 2.2rem;
        line-height: 1.76666667;
    }
}

.feature__star {
    display: inline-block;
    color: #F6D036;
    position: relative;
    font-size: 4rem;
    font-weight: 700;
    line-height: 1;
}

.feature__star::after {
    content: '';
    position: absolute;
    top: -1rem;
    right: -2.3rem;
    background-image: url(../img/feature-star.png);
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    width: 2.1rem;
    height: 2.3rem;
}
@media screen and (max-width: 768px) {
    .feature__star {
        display: inline-block;
        color: #F6D036;
        position: relative;
        font-size: 3rem;
        font-weight: 700;
        line-height: 1;
    }
    
    .feature__star::after {
        top: -1rem;
        right: -2rem;
        width: 2rem;
        height: 2rem;
    }
}

.feature__contents {
    margin-top: 4.6rem;
    display: -webkit-box;
	display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
    gap: 3.5rem;
    position: relative;
    z-index: 5;
}
@media screen and (max-width: 768px) {
    .feature__contents {
        margin-top: 2.4rem;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -ms-flex-direction: column;
        flex-direction: column;
        gap: 2.2rem;
        max-width: 40rem;
        width: 100%;
        margin-left: auto;
        margin-right: auto;
    }
}


.feature__card {
    position: relative;
    background-color: #fff;
    border-radius: 1.6rem;
    box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16);
    padding: 5rem 3rem 0.9rem;
}
@media screen and (max-width: 768px) {
    .feature__card {
        padding: 3.7rem 3rem 0.6rem;
    }
}

.feature__card-number {
    font-size: 2.8rem;
    line-height: 1;
    font-family: "Open Sans", sans-serif;
    color: #fff;
    width: 4.8rem;
    height: 4.8rem;
    -webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
    -webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
    position: absolute;
    top: 0;
    left: 50%;
    transform: translate(-50%, -50%);
    background-color: #E8C43C;
    border-radius: 50%;
}
@media screen and (max-width: 768px) {
    .feature__card-number {
        top: 0.5rem;
    }
}

.feature__card-title {
    font-size: 2.4rem;
    line-height: 1;
    font-weight: 700;
    color: #333;
    text-align: center;
}

.feature__card-title.feature__card-title--green {
    color: #439887;
}

.feature__img {
    display: block;
    margin-top: 1.5rem;
    width: 94%;
    margin-left: auto;
    margin-right: auto;
}
@media screen and (max-width: 768px) {
    .feature__img {
        margin-top: 0.4rem;
        width: 92%;
    }
}

/* 解決 */
.solution {
    padding-top: 17.7rem;
    padding-bottom: 13rem;
    position: relative;
    overflow: hidden;
    margin-top: -30rem;
    z-index: 3;
}
@media screen and (max-width: 768px) {
    .solution {
        padding-top: 13.7rem;
        padding-bottom: 5.2rem;
        margin-top: -10rem;
    }
}

.solution::before {
    content: '';
    background-color: #439887;
    width: 100%;
    height: 20rem;
    z-index: -3;
    position: absolute;
    left: 0;
    top: 0;
}

.solution::after {
    content: '';
    background: url(../img/solution_bg.png);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center top;
    width: 100%;
    height: 230rem;
    z-index: -1;
    position: absolute;
    left: 0;
    top: 0;
}
@media screen and (max-width: 768px) {
    .solution::after {
        background: url(../img/solution-bg-sp.png);
        background-repeat: no-repeat;
        background-size: cover;
        background-position: center top;
        height: 320rem;
    }
}

.solution.not-bg {
    background-color: #F5FFFB;
    padding-top: 10rem;
    margin-top: 0;
    padding-bottom: 10rem;
}
@media screen and (max-width: 768px) {
    .solution.not-bg {
        padding-top: 5.2rem;
        padding-bottom: 5.2rem;
    }
}

.solution.not-bg::before {
    display: none;
}

.solution.not-bg::after {
    display: none;
}

.solution__inner {
    max-width: 100rem;
    width: 100%;
    padding-left: 2.5rem;
    padding-right: 2.5rem;
    margin-left: auto;
    margin-right: auto;
}

.solution__title {
    text-align: center;
    line-height: 1.4;
    font-size: 3.6rem;
    font-weight: 700;
}
@media screen and (max-width: 768px) {
    .solution__title {
        font-size: 2.6rem;
    }
}

.solution__title-red {
    font-size: 5.3rem;
    letter-spacing: 0.012em;
    color: #DD4554;
    position: relative;
    display: inline-block;
    padding-left: 2rem;
    padding-right: 2rem;
}
@media screen and (max-width: 768px) {
    .solution__title-red {
        font-size: 3.6rem;
        padding-left: 0;
        padding-right: 0;
    }
}
@media screen and (max-width: 480px) {
    .solution__title-red {
        font-size: 3.2rem;
    }
}

.solution__title-red::before {
    position: absolute;
    width: 2.8rem;
    height: 2.1rem;
    content: '';
    background-image: url(../img/quotation-icon.png);
    background-repeat: no-repeat;
    background-size: cover;
    background-repeat: no-repeat;
    top: 1rem;
    left: -2.2rem;
}

.solution__title-red::after {
    position: absolute;
    width: 2.8rem;
    height: 2.1rem;
    content: '';
    background-image: url(../img/quotation-icon.png);
    background-repeat: no-repeat;
    background-size: cover;
    background-repeat: no-repeat;
    transform: rotate(180deg);
    top: 1rem;
    right: -2.2rem;
}
@media screen and (max-width: 768px) {
    .solution__title-red::before {
        width: 1.9rem;
        height: 1.5rem;
        content: '';
        left: -2.3rem;
    }
    .solution__title-red::after {
        width: 1.9rem;
        height: 1.5rem;
        content: '';
        right: -2rem;
    }
}

.solution__title p {
    display: inline-block;
    margin-left: 1em;
    margin-right: 1em;
}
@media screen and (max-width: 768px) {
    .solution__title p.mr {
        margin-right: -1em;
    }
}

.solution__contents {
    margin-top: 5.6rem;
}
@media screen and (max-width: 768px) {
    .solution__contents {
        margin-top: 2rem;
        max-width: 50rem;
        margin-left: auto;
        margin-right: auto;
    }
}

.solution__case {
    display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
    -webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
    gap: 5rem;
}
@media screen and (max-width: 768px) {
    .solution__case {
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -ms-flex-direction: column;
        flex-direction: column;
        gap: 0;
    }
}

.solution__case + .solution__case {
    margin-top: 5rem;
}
@media screen and (max-width: 768px) {
    .solution__case + .solution__case {
        margin-top: 4rem;
    }
}

.solution__case-img {
    width: 33%;
}
@media screen and (max-width: 768px) {
    .solution__case-img {
        width: 53%;
        margin-left: auto;
        margin-right: auto;
        margin-top: -0.7rem;
    }
}

.solution__case-img img {
    width: 100%;
    height: auto;
    object-fit: cover;
}

.solution__case-text-block {
    width: 65%;
}
@media screen and (max-width: 768px) {
    .solution__case-text-block {
        width: 100%;
        margin-top: -0.8rem;
    }
}

.solution__case-number {
    font-family: "Open Sans", sans-serif;
    font-weight: 900;
    font-size: 2rem;
    color: #2A7B7B;
    position: relative;
}
@media screen and (max-width: 768px) {
    .solution__case-number {
        font-size: 1.4rem;
    }
}

.solution__case-number::after {
    content: '';
    position: absolute;
    width: 80%;
    height: 1px;
    background-color: #2A7B7B;
    top: 50%;
    right: -1rem;
    transform: translate(0, -50%);
}
@media screen and (max-width: 768px) {
    .solution__case-number::after {
        width: 77%;
        right: 0;
    }
}

.solution__case-title {
    font-size: 2.8rem;
    line-height: 1.5;
    color: #333;
    font-weight: 900;
}
@media screen and (max-width: 768px) {
    .solution__case-title {
        font-size: 2rem;
        line-height: 1.15;
        margin-top: 1rem;
    }
}

.solution__case-lists {
    margin-top: 1rem;
}

.solution__case-list {
    font-size: 2.2rem;
    color: #4D4D4D;
    line-height: 1.81818182;
    font-weight: 600;
    border-bottom: 1px solid #C3C3C3;
    padding-left: 2.7rem;
    background: url(../img/check-icon.png) left 0px top 6px no-repeat;
    background-size: 2.4rem 2.4rem;
}
@media screen and (max-width: 768px) {
    .solution__case-list {
        font-size: 1.6rem;
        line-height: 2;
        padding-left: 2.4rem;
        background-size: 1.8rem 1.8rem;
    }
}
.solution__case-list.regular {
    font-weight: 400;
}

.solution__case-list.not-check {
    background: none;
    border-bottom: none;
    padding-left: 0;
}

.solution__case-list img {
    width: 2rem;
    display: inline-block;
    margin-left: 0.2em;
    margin-right: 0.2em;
}



/* ケース */
.case {
    background-color: #DAFEEA;
    padding-top: 10rem;
    padding-bottom: 11rem;
    position: relative;
    z-index: 2;
    overflow: hidden;
}
@media screen and (max-width: 768px) {
    .case {
        padding-top: 4.7rem;
        padding-bottom: 6.3rem;
    }
}

.case__bg {
    width: 41.1rem;
    position: absolute;
    left: -1rem;
    bottom: 3.2rem;
    z-index: -1;
}
@media screen and (max-width: 768px) {
    .case__bg {
        width: 11.2rem;
        left: 0;
        bottom: 0.6rem;
    }
}

.case__bg02 {
    width: 24.5rem;
    position: absolute;
    bottom: 0;
    right: 6.4rem;
    z-index: -1;
}
@media screen and (max-width: 768px) {
    .case__bg02 {
        width: 8.4rem;
        bottom: 16.7rem;
        right: 2.8rem;
    }
}

.case__inner {
    max-width: 103rem;
    width: 100%;
    padding-left: 2.5rem;
    padding-right: 2.5rem;
    margin-left: auto;
    margin-right: auto;
}
@media screen and (max-width: 768px) {
    .case__inner {
        padding-left: 1.5rem;
        padding-right: 1.5rem;
    }
}

.case__title-block {
    text-align: center;
}

.case__title-small {
    font-family: "Open Sans", sans-serif;
    color: #505050;
    font-weight: 900;
    font-size: 2rem;
    line-height: 1.5;
}
@media screen and (max-width: 768px) {
    .case__title-small {
        font-size: 1.6rem;
    }
}

.case__title {
    font-size: 3.8rem;
    line-height: 1;
    display: inline-block;
    color: #2A7B7B;
    text-align: center;
    position: relative;
    font-weight: 700;
}
@media screen and (max-width: 768px) {
    .case__title {
        font-size: 2.2rem;
    }
}

.case__title::before,
.case__title::after {
    content: '';
    background-color: #2A7B7B;
    width: 3.4rem;
    height: 4px;
    position: absolute;
    top: 50%;
    transform: translate(0, -50%);
}
@media screen and (max-width: 768px) {
    .case__title::before,
    .case__title::after {
        width: 1.8rem;
    }
}

.case__title::before {
    left: 35.3rem;
}
@media screen and (max-width: 768px) {
    .case__title::before {
        left: 20.3rem;
    }
}

.case__title::after {
    right: 35.3rem;
}
@media screen and (max-width: 768px) {
    .case__title::after {
        right: 20.3rem;
    }
}

.case__sub-title {
    color: #111;
    font-size: 2.4rem;
    text-align: center;
    margin-top: 1.4rem;
    line-height: 1;
    font-weight: 500;
}

.case__sub-title--line {
    text-decoration-color: #F0F072;
    text-decoration-line: underline;
    text-decoration-thickness: 8px;
    text-underline-offset: -3px;
    text-decoration-skip-ink: none;
}
@media screen and (max-width: 768px) {
    .case__sub-title {
        font-size: 1.4rem;
        margin-top: 0.5rem;
    }
    .case__sub-title--line {
        text-decoration-thickness: 4px;
        text-underline-offset: -2px;
    }
}

.case__contents {
    margin-top: 6.2rem;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 3rem;
}
@media screen and (max-width: 768px) {
    .case__contents {
        margin-top: 3.6rem;
        grid-template-columns: repeat(1, 1fr);
        gap: 1.8rem;
        max-width: 44rem;
        margin-left: auto;
        margin-right: auto;
    }
}

.case__text-contents {
    margin-top: 7.5rem;
    text-align: center;
    border: 4px solid #2A7B7B;
    border-radius: 1.5rem;
    display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
    -webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
    -webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
    position: relative;
    max-width: 89rem;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    background-color: #fff;
    padding: 3.4rem 1rem 3rem 1rem;
}
@media screen and (max-width: 768px) {
    .case__text-contents {
        margin-top: 3.5rem;
        padding: 1.5rem 3rem 3rem 3rem;
    }
}

.case__text {
    font-size: 2.2rem;
    font-weight: 500;
    line-height: 1.6363;
    color: #333;
}
@media screen and (max-width: 768px) {
    .case__text {
        font-size: 1.6rem;
        line-height: 1.375;
        text-align: left;
    }
}

.case__text.case__text--green {
    color: #2A7B7B;
}

.case__text-contents img {
    position: absolute;
    right: 5.2rem;
    bottom: -3rem;
    width: 6.4rem;
    z-index: 2;
}
@media screen and (max-width: 768px) {
    .case__text-contents img {
        right: 3.3rem;
        bottom: -2.5rem;
        width: 4rem;
    }
}

.case__text-last {
    color: #4D4D4D;
    font-size: 2.2rem;
    line-height: 1.4;
    margin-top: 1.8rem;
    font-weight: 600;
    text-decoration: underline;
    text-align: center;
}
@media screen and (max-width: 768px) {
    .case__text-last {
        font-size: 1.6rem;
    }
}

/* カード */
.card {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
    box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16);
    background-color: #fff;
}

.card__block {
    display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
    padding: 3.3rem 3rem 1.2rem 1.6rem;
    gap: 2.2rem;
}
@media screen and (max-width: 768px) {
    .card__block {
        padding: 1.8rem 1rem 1.4rem;
        gap: 1.5rem;
    }
}

.card__block.card__block--grow {
    flex-grow: 600;
}

.card__img {
    width: 26.3%;
}

.card__img04 {
    width: 32%;
}
@media screen and (max-width: 768px) {
    .card__img04 {
        width: 26.3%;
    }
}

.card__img img {
    width: 100%;
    height: auto;
    object-fit: cover;
}

.card__text-block {
    width: 73%;
}
@media screen and (max-width: 768px) {
    .card__text-block {
        margin-top: 1rem;
    }
}

.card__text-block04 {
    margin-left: -2rem;
}
@media screen and (max-width: 768px) {
    .card__text-block04 {
        margin-left: 0;
    }
}

.card__number {
    font-size: 2rem;
    color: #2A7B7B;
    line-height: 1;
    padding-left: 0.8rem;
    display: inline-block;
    position: relative;
}

.card__number::before {
    content: '';
    width: 3px;
    height: 3.5rem;
    background-color: #2A7B7B;
    position: absolute;
    left: 0;
    top: -0.7rem;
}
@media screen and (max-width: 768px) {
    .card__number {
        font-size: 1.2rem;
        padding-left: 0.6rem;
    }

    .card__number::before {
        content: '';
        height: 2.5rem;
    }
}

.card__title-text {
    font-size: 2rem;
    color: #333333;
    line-height: 1.5;
    font-weight: 600;
    margin-top: 1rem;
}
@media screen and (max-width: 768px) {
    .card__title-text {
        font-size: 1.6rem;
        margin-top: 0.5rem;
    }
}

.card__body {
    background-color: #2A7B7B;
    padding: 2.4rem 4.8rem 3.2rem;
    flex-grow: 1;
}
@media screen and (max-width: 768px) {
    .card__body {
        padding: 1.3rem 3.4rem 2rem;
    }
}

.card__text {
    color: #fff;
    font-size: 1.6rem;
    line-height: 1.625;
    font-weight: 400;
}
@media screen and (max-width: 768px) {
    .card__text {
        font-size: 1.4rem;
        line-height: 1.5;
    }
}

.card__text .bold {
    font-weight: 700;
}

/* フロー */
.flow {
    padding-top: 10.3rem;
    padding-bottom: 8.5rem;
    background-color: #439887;
    position: relative;
    overflow: hidden;
}
@media screen and (max-width: 768px) {
    .flow {
        padding-top: 5rem;
        padding-bottom: 6rem;
    }
}

.flow__inner {
    max-width: 100rem;
    width: 100%;
    padding-left: 2.5rem;
    padding-right: 2.5rem;
    margin-left: auto;
    margin-right: auto;
}
@media screen and (max-width: 768px) {
    .flow__inner {
        padding-left: 3rem;
        padding-right: 3rem;
    }
}

.flow__title {
    text-align: center;
    font-size: 3.6rem;
    line-height: 1;
    color: #fff;
}
@media screen and (max-width: 768px) {
    .flow__title {
        text-align: center;
        font-size: 2.1rem;
        line-height: 1;
        color: #fff;
    }
}

.flow__contents {
    margin-top: 6rem;
    width: 100%;
    position: relative;
    z-index: 2;
}

.flow__contents::after {
    content: '';
    width: 3px;
    height: 95%;
    background-color: #F6D036;
    z-index: -1;
    position: absolute;
    top: 0;
    left: 14.2%;
}
@media screen and (max-width: 768px) {
    .flow__contents {
        margin-top: 3rem;
        max-width: 40rem;
        margin-left: auto;
        margin-right: auto;
    }
    .flow__contents::after {
        left: 50%;
        transform: translate(-50%, 0);
    }
}

.flow__content + .flow__content {
    margin-top: 3.5rem;
}
@media screen and (max-width: 768px) {
    .flow__content + .flow__content {
        margin-top: 2rem;
    }
}

.flow__content {
    border-radius: 1.6rem;
    display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
    background-color: #fff;
    box-shadow: 3px 3px 6px rgba(0, 0, 0, 0.16);
}
@media screen and (max-width: 768px) {
    .flow__content {
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -ms-flex-direction: column;
        flex-direction: column;
        border-radius: 1.6rem;
    }
}

.flow__left-sp {
    background-color: #F6D036;
    border-top-left-radius: 1.6rem;
    border-top-right-radius: 1.6rem;
    display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    padding-top: 1.4rem;
    padding-bottom: 2.1rem;
}

.flow__left {
    width: 28.4%;
    background-color: #F6D036;
    clip-path: polygon(0% 0%, 90% 0%, 100% 50%, 90% 100%, 0% 100%);
    display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
    -webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
    padding: 1.5rem 0 1.5rem 1.5rem;
    border-bottom-left-radius: 1.6rem;
    border-top-left-radius: 1.6rem;
}

.flow__left img {
    width: 9rem;
    display: block;
    position: relative;
}

.flow__left-img {
    position: relative;
}

.flow__left-img::after {
    content: '';
    position: absolute;
    z-index: 2;
    top: 50%;
    right: -12.4rem;
    width: 12.1rem;
    height: 1px;
    background-color: #fff;
}

.flow__content-title-block.mt {
    margin-top: 1.2rem;
}
@media screen and (max-width: 768px) {
    .flow__content-title-block.mt {
        margin-top: 0;
    }
}

.flow__content-title-block.ml {
    margin-left: 1rem;
}
@media screen and (max-width: 768px) {
    .flow__content-title-block.ml {
        margin-left: 0;
    }
}

.flow__left-sp {
    padding: 1.4rem 1rem 2.1rem 1rem;
}

.flow__content-number {
    font-size: 2.4rem;
    line-height: 1;
    font-weight: 500;
    color: #C3353F;
    text-align: center;
    margin-left: 0.5rem;
}
@media screen and (max-width: 768px) {
    .flow__content-number {
        font-size: 2rem;
        margin-left: 0;
    }
}

.flow__content-number.ml {
    margin-left: -2rem;
}
@media screen and (max-width: 768px) {
    .flow__content-number.ml {
        margin-left: 0;
    }
}

.flow__content-icon {
    width: 7rem;
    margin-top: 0.5rem;
    margin-left: auto;
    margin-right: auto;
}

.flow__content-title {
    color: #333;
    font-size: 1.6rem;
    font-weight: 500;
    line-height: 1.2;
    text-align: left;
    padding-top: 1.3rem;
    display: inline-block;
    margin-left: 0.7rem;
}
@media screen and (max-width: 768px) {
    .flow__content-title {
        padding-top: 1rem;
        text-align: center;
        margin-left: 0;
        display: block;
    }
}

.flow__right {
    width: 71.6%;
    background-color: #fff;
    display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
    -webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
    padding-left: 3.6rem;
    padding-right: 1rem;
    border-radius: 1.6rem;
}
@media screen and (max-width: 768px) {
    .flow__right {
        width: 100%;
        background-color: #fff;
        padding: 0.4rem 2.3rem 1.6rem;
    }
}

.flow__content-text {
    font-size: 1.6rem;
    line-height: 1.75;
    color: #111;
}
@media screen and (max-width: 768px) {
    .flow__content-text {
        font-size: 1.4rem;
        line-height: 1.428;
    }
}

.flow__content-text.flow__content-text--red {
    color: #C3353F;
}

.flow__content-text--underline {
    border-bottom: 1px solid #C3353F;
}

.flow__sub-bg {
    background: url(../img/flow-bg-icon.png);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    width: 18.3rem;
    height: 19.2rem;
    position: absolute;
    bottom: -6.2rem;
    right: 4rem;
    z-index: 5;
}

.flow__sub-bg02 {
    background: url(../img/flow-bg.svg);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    width: 60rem;
    height: 60rem;
    position: absolute;
    bottom: -41rem;
    right: -22.1rem;
    z-index: 1;
}

/* 質問 */
.faq {
    height: auto;
    position: relative;
    padding-top: 8.55rem;
    padding-bottom: 9.8rem;
    overflow: hidden;
}
@media screen and (max-width: 768px) {
    .faq {
        padding-top: 6.5rem;
        padding-bottom: 4.4rem;
    }
}

.faq::after {
    content: '';
    background: url(../img/faq_bg.png);
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center top;
    width: 100%;
    height: 190rem;
    z-index: -1;
    position: absolute;
    left: 0;
    top: 0;
}
@media screen and (max-width: 768px) {
    .faq::after {
        background: url(../img/faq_bg-sp.png);
        background-size: cover;
        background-repeat: no-repeat;
        background-position: center top;
        height: 200rem;
    }
}

.faq::before {
    content: '';
    background: #439887;
    width: 100%;
    height: 20rem;
    z-index: -3;
    position: absolute;
    left: 0;
    top: 0;
}

.faq__sub-bg {
    background: url(../img/flow-bg-icon.png);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    width: 18.3rem;
    height: 19.2rem;
    position: absolute;
    top: -13rem;
    right: 4rem;
    z-index: 5;
}

.faq__sub-bg02 {
    background: url(../img/flow-bg.svg);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    width: 60rem;
    height: 60rem;
    position: absolute;
    top: -19rem;
    right: -22.1rem;
    z-index: -1;
}



.faq__inner {
    max-width: 85rem;
    padding-left: 2.5rem;
    padding-right: 2.5rem;
    margin-left: auto;
    margin-right: auto;
}
@media screen and (max-width: 768px) {
    .faq__inner {
        padding-left: 1.5rem;
        padding-right: 1.5rem;
    }
}

.faq__title {
    font-size: 3.2rem;
    font-weight: 700;
    line-height: 1;
    text-align: center;
}
@media screen and (max-width: 768px) {
    .faq__title {
        font-size: 2.2rem;
    }
}

.faq__contents {
    margin-top: 5rem;
    width: 100%;
}
@media screen and (max-width: 768px) {
    .faq__contents {
        margin-top: 3rem;
    }
}

.faq__card:not(:first-child) {
    margin-top: 1.8rem;
}
@media screen and (max-width: 768px) {
    .faq__card:not(:first-child) {
        margin-top: 2rem;
    }
}

.faq__card {
    background-color: #fff;
    border-radius: 1.6rem;
    box-shadow: 3px 3px 6px rgba(1, 1, 1, 0.16);
    padding-top: 3.3rem;
    padding-bottom: 2.3rem;
    padding-left: 2.85rem;
    padding-right: 3.75rem;
}
@media screen and (max-width: 768px) {
    .faq__card {
        padding-top: 2rem;
        padding-bottom: 2.5rem;
        padding-left: 4rem;
        padding-right: 2.8rem;
    }
}

.faq__q {
    border-bottom: 1px solid #EADCDE;
    padding-bottom: 2.5rem;
    position: relative;
}
@media screen and (max-width: 768px) {
    .faq__q {
        padding-bottom: 1.8rem;
    }
}


.faq__q::after {
    content: 'Q';
    font-size: 3rem;
    font-weight: 700;
    line-height: 1;
    color: #2A7B7B;
    font-family: "Open Sans", sans-serif;
    position: absolute;
    top: 0;
    left: 0;
}

.faq__q-text {
    line-height: 1.2778;
    font-size: 1.8rem;
    font-weight: 600;
    color: #111;
    padding-left: 4rem;
}
@media screen and (max-width: 768px) {
    .faq__q-text {
        line-height: 1.55556;
    }
}

.faq__a {
    padding-top: 1.35rem;
}

.faq__text {
    font-size: 1.6rem;
    line-height: 2;
    color: #111;
    font-weight: 400;
    padding-left: 4rem;
}
@media screen and (max-width: 768px) {
    .faq__text {
        font-size: 1.4rem;
    }
}

.faq__text a {
    text-decoration: underline;
}

.faq__last {
    margin-top: 10.6rem;
    color: #4D4D4D;
    font-size: 3.9rem;
    letter-spacing: 0.012em;
    line-height: 1.13;
    text-align: center;
    font-weight: 900;
}
@media screen and (max-width: 768px) {
    .faq__last {
        margin-top: 5rem;
        font-size: 2.3rem;
        line-height: 1.3;
    }
}

.faq__last span {
    color: #D44251;
}

/* work */
.work {
    margin-top: 7.7rem;
    padding-bottom: 5.5rem;
}
@media screen and (max-width: 768px) {
    .work {
        margin-top: 6.7rem;
    }
}

.work__inner {
    max-width: 103rem;
    width: 100%;
    padding-left: 2.5rem;
    padding-right: 2.5rem;
    margin-left: auto;
    margin-right: auto;
}
@media screen and (max-width: 768px) {
    .work__inner {
        padding-left: 1.5rem;
        padding-right: 1.5rem;
    }
}

.work__title {
    padding-left: 9.6rem;
    color: #333333;
    font-weight: 900;
    letter-spacing: 0.012em;
    font-size: 3.2rem;
    line-height: 1;
    position: relative;
}
@media screen and (max-width: 768px) {
    .work__title {
        padding-left: 6.6rem;
        font-size: 2.8rem;
    }
}

.work__title::before {
    content: "";
    background-image: url(../img/work-icon.png);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    position: absolute;
    left: 0;
    top: -3rem;
    width: 9.5rem;
    height: 10rem;
}
@media screen and (max-width: 768px) {
    .work__title::before {
        content: "";
        background-image: url(../img/work-icon.png);
        background-repeat: no-repeat;
        background-size: cover;
        background-position: center;
        position: absolute;
        left: 0;
        top: -2rem;
        width: 6.5rem;
        height: 7rem;
    }
}

.work__lead {
    margin-top: 4.3rem;
    color: #4D4D4D;
    font-size: 3.9rem;
    letter-spacing: 0.012em;
    line-height: 1.13;
    font-weight: 900;
}
@media screen and (max-width: 768px) {
    .work__lead {
        margin-top: 3.3rem;
        font-size: 2.3rem;
        line-height: 1.3;
    }
}

.work__lead .red {
    color: #D44251;
}

.work__icon-block {
    margin-top: 3.5rem;
    display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
    gap: 1.5rem;
}
@media screen and (max-width: 768px) {
    .work__icon-block {
        margin-top: 2.1rem;
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 0.5rem;
    }
}

.work__icon-card {
    border: 2px solid #B6B4B3;
    border-radius: 1.4rem;
    position: relative;
    min-width: 16.3rem;
    padding: 2.2rem 0.9rem 0.7rem;
    background-color: #fff;
}
@media screen and (max-width: 768px) {
    .work__icon-card {
       min-width: initial;
       width: calc(100% - 0.5rem * 2 / 3);
       padding: 1.9rem 0 1rem;
    }
}

.work__icon-img {
    width: 2.9rem;
    height: 2.9rem;
    position: absolute;
    left: 50%;
    top: -1.5rem;
    transform: translate(-50%, 0);
}
@media screen and (max-width: 768px) {
    .work__icon-img {
        width: 2rem;
        height: 2rem;
        top: -1rem;
    }
}

.work__icon-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.work__icon-title {
    text-align: center;
    font-size: 1.5rem;
    color: #333;
    line-height: 1;
    font-weight: 700;
}
@media screen and (max-width: 768px) {
    .work__icon-title {
        font-size: 1.3rem;
        line-height: 1.2;
    }
}

.work__icon-title.large {
    font-size: 2.2rem;
    color: #4D4D4D;
    font-weight: 700;
    line-height: 1.45;
}
@media screen and (max-width: 768px) {
    .work__icon-title.large {
        font-size: 1.8rem;
    }
}
@media screen and (max-width: 480px) {
    .work__icon-title.large {
        font-size: 1.5rem;
    }
}

.work__icon-contents {
    text-align: center;
    font-size: 1.7rem;
    color: #333;
    line-height: 1;
    font-weight: 700;
}
@media screen and (max-width: 768px) {
    .work__icon-contents {
        font-size: 1.2rem;
    }
}

.work__icon-contents.mt {
    margin-top: 1rem;
}
@media screen and (max-width: 768px) {
    .work__icon-contents.mt {
        margin-top: 0.6rem;
    }
}

.work__icon-large {
    color: #CB4F5B;
    font-family: "Open Sans", sans-serif;
    font-size: 3.6rem;
    text-shadow: 1px 2px 0 rgba(0, 0, 0, 0.16);
}
@media screen and (max-width: 768px) {
    .work__icon-large {
        font-size: 2.4rem;
    }
}

.work__icon-small {
    color: #4D4D4D;
    font-family: "Open Sans", sans-serif;
    font-size: 2.6rem;
    text-shadow: 1px 2px 0 rgba(0, 0, 0, 0.16);
}
@media screen and (max-width: 768px) {
    .work__icon-small {
        font-size: 2rem;
    }
}

.work__contents {
    margin-top: 3rem;
}

.work__content {
    font-size: 1.8rem;
    line-height: 1.28;
    color: #111111;
}
@media screen and (max-width: 768px) {
    .work__content {
        font-size: 1.6rem;
    }
}

.work__content + .work__content {
    margin-top: 2rem;
}

.work__content-title {
    font-weight: 500;
}

.work__text {
    font-weight: 400;
}

/* フッター */
.footer {
	margin-top: 10.6rem;
}

.footer__inner {
	margin-left: auto;
	margin-right: auto;
    max-width:  1450px;
	max-width: 145rem;
    padding-left: 25px;
	padding-left: 2.5rem;
    padding-right: 25px;
	padding-right: 2.5rem;
	width: 100%;
}

.footer__flex {
	-webkit-box-align: start;
	-ms-flex-align: start;
	align-items: flex-start;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
}

.footer__info {
	margin-right: 6rem;
}

.footer__logo {
	width: 20rem;
}

.footer__company {
	font-size: 1.6rem;
	line-height: 1;
	margin-top: 3.7rem;
}

.footer__address {
	font-size: 1.4rem;
	line-height: 1.7;
	margin-top: 2rem;
}

.footer__nav {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	margin-right: auto;
}

.footer__lists {
    margin-right: 58px;
	margin-right: 5.8rem;
}

.footer__lists:nth-child(3) {
    margin-right: 85px;
	margin-right: 8.5rem;
}

.footer__list-title {
	font-size: 1.6rem;
	line-height: 1;
	font-weight: bold;
	display: inline-block;
	position: relative;
}

.footer__list-title::after {
	content: '';
	background-color: #111;
    border-radius: 50%;
    height: 0.5rem;
    left: 50%;
    opacity: 0;
    position: absolute;
    top: -1.8rem;
    -webkit-transform: translate(-50%, 0);
    transform: translate(-50%, 0);
    -webkit-transition: opacity 0.3s;
    transition: opacity 0.3s;
    width: 0.5rem;
}

.footer__list-title:hover::after {
	opacity: 1;
}

.footer__list:first-of-type {
	margin-top: 1.1rem;
}

.footer__link {
	display: inline-block;
	font-size: 1.4rem;
	line-height: 1;
	padding: 0.9rem 0;
	-webkit-transition: color 0.3s;
	transition: color 0.3s;
}

.footer__link:hover {
	color: #439887;
}

.footer__button-content {
	gap: 2.7rem;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	-ms-flex-direction: column;
	flex-direction: column;
	margin-top: -0.3rem;
}

.footer__copyright {
	background-color: #111;
	color: #fff;
	font-size: 1.4rem;
	line-height: 1;
	margin-top: 9.6rem;
	padding: 2.8rem 0;
	text-align: center;
	width: 100%;
}

@media screen and (max-width: 1440px) {
    .footer__info {
        margin-right: 6rem;
    }

    .footer__lists {
        margin-right: 2rem;
    }

    .footer__lists:nth-child(3) {
        margin-right: 2.5rem;
    }
}

@media screen and (max-width: 1200px) {
    .footer__lists:nth-child(3) {
        margin-right: 3rem;
    }
}

@media screen and (max-width: 1024px) {
    .footer__flex {
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -ms-flex-direction: column;
        flex-direction: column;
    }

    .footer__nav {
        margin-top: 4.6rem;
        margin-right: 0;
        width: 100%;
    }

    .footer__lists {
        margin-right: 0;
    }

    .footer__lists:nth-child(1) {
        width: 25%;
    }
    
    .footer__lists:nth-child(2) {
        margin-right: 0;
        width: 30%;
    }
    
    .footer__lists:nth-child(3) {
        margin-right: 0;
        width: 20%;
    }
    
    .footer__lists:nth-child(4) {
        width: 25%;
    }
    
    .footer__button-content {
        margin-top: 4.5rem;
    }
}

@media screen and (max-width: 768px) {
    .footer {
        margin-top: 5rem;
    }
    
    .footer__inner {
        padding-left: 2rem;
        padding-right: 2rem;
    }
    
    .footer__info {
        margin-right: 0;
    }
    
    .footer__logo {
        width: 15rem;
    }
    
    .footer__company {
        font-size: 1.2rem;
        margin-top: 2rem;
    }
    
    .footer__address {
        font-size: 1.2rem;
        line-height: 1.6;
        margin-top: 0.9rem;
    }
    
    .footer__list-title {
        font-size: 1.4rem;
    }

    .footer__link {
        font-size: 1.2rem;
    }

    .footer__copyright {
        font-size: 1.2rem;
        margin-top: 5rem;
        padding: 1.9rem 0;
    }
}

@media screen and (max-width: 600px) {
    .footer__nav {
        gap: 6.7rem 2rem;
        display: grid;
        grid-template-columns: 1fr 1fr;
    }

    .footer__lists:nth-child(1) {
        -webkit-box-ordinal-group: 1;
        -ms-flex-order: 0;
        order: 0;
        width: 100%;
    }
    
    .footer__lists:nth-child(2) {
        -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
        order: 2;
        width: 100%;
    }
    
    .footer__lists:nth-child(3) {
        -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
        order: 1;
        width: 100%;
    }
    
    .footer__lists:nth-child(4) {
        -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
        order: 3;
        width: 100%;
    }
    
    .footer__button-content {
        text-align: center;
        width: 100%;
    }
    
}

/* 共通パーツ */
.button {
    display: -webkit-inline-box;
	display: -ms-inline-flexbox;
	display: inline-flex;
    -webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
    -webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
    gap: 1.1rem;
    width: 17.7rem;
    background: linear-gradient(180deg, #F7913F 0%, #F7913F 50%, #FF7A10 50%, #FF7A10 100%);
    border-radius: 9999px;
    transition: opacity 0.3s ease-in-out;
    height: 4.2rem;
}

@media screen and (max-width: 768px) {
    .button {
        width: 31.5rem;
        max-width: 100%;
        height: 5rem;
    }
}

.button:hover {
    opacity: 0.7;
}

.button.button--blue {
    background: linear-gradient(180deg, #4596BA 0%, #4596BA 50%, #28799D 50%, #28799D 100%);
}

.button span {
    color: #fff;
    font-size: 1.3rem;
    line-height: 1;
    font-weight: 700;
}

.button__img {
    width: 1.7rem;
}

.lg2-show {
	display: none;
}
@media screen and (max-width: 1200px) {
    .lg2-show {
        display: block;
    }
}

.u-desktop {
	display: block;
}
@media screen and (max-width: 768px) {
    .u-desktop {
        display: none;
    }
}

.u-desktop-flex {
	display: flex;
}
@media screen and (max-width: 768px) {
    .u-desktop-flex {
        display: none;
    }
}

.u-lg2 {
	display: none;
}
@media screen and (max-width: 1200px) {
    .u-lg2 {
        display: block;
    }
}

.u-mobile {
	display: none;
}
@media screen and (max-width: 768px) {
    .u-mobile {
        display: block;
    }
}

.u-sp2 {
	display: none;
}

.u-sp {
	display: none;
}

.lg-show {
    display: none;
}
@media screen and (max-width: 1024px) {
    .lg-show {
        display: block;
    }
}
