html,
body,
div,
span,
applet,
object,
iframe,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video {
    margin: 0;
    padding: 0;
    border: 0
}

table {
    border-collapse: collapse;
    border-spacing: 0
}

caption,
th,
td {
    text-align: left;
    vertical-align: middle;
    font-weight: 200
}

q::before,
q::after,
blockquote::before,
blockquote::after {
    content: "";
    content: none
}

a {
    display: inline-block
}

a img {
    border: none
}

img {
    vertical-align: bottom;
    max-width: 100%;
    height: auto
}

ul {
    list-style: none
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section,
summary {
    display: block
}

a {
    color: #000;
    text-decoration: none
}

a:hover {
    cursor: pointer
}

p {
    margin: 0
}

input,
button,
textarea,
select {
    margin: 0;
    padding: 0;
    background: none;
    border: none;
    border-radius: 0;
    outline: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none
}

*:focus {
    outline: none
}

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

html {
    font-size: 62.5%;
    line-height: 1;
    margin-top: 0 !important;
    scroll-behavior: smooth
}

body {
    position: relative;
    font-style: normal;
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 400;
    color: #000;
    font-size: 16px;
    -webkit-text-size-adjust: 100%;
    letter-spacing: .05em;
    line-height: 1.75;
    width: 100%;
    margin: 0 auto;
    -ms-overflow-style: none;
    scrollbar-width: none
}

body#thanks {
    text-align: left
}

a {
    color: #000;
    text-decoration: none;
    -webkit-transition: .3s ease-in-out;
    transition: .3s ease-in-out
}

a:hover {
    cursor: pointer;
    opacity: .7
}

a:hover img {
    -webkit-transition: .3s ease-in-out;
    transition: .3s ease-in-out;
    opacity: .7
}

.sp {
    display: none
}

@media(min-width: 768px)and (max-width: 1024px) {
    .sp {
        display: none
    }
}

@media(max-width: 767px) {
    .sp {
        display: block
    }
}

.tab {
    display: none
}

@media(min-width: 768px)and (max-width: 1024px) {
    .tab {
        display: block
    }
}

@media(max-width: 767px) {
    .tab {
        display: none
    }
}

.tab-sp {
    display: none
}

@media(min-width: 768px)and (max-width: 1024px) {
    .tab-sp {
        display: block
    }
}

@media(min-width: 768px)and (max-width: 1024px) {
    .pc {
        display: none
    }
}

@media(max-width: 767px) {
    .pc {
        display: none
    }
}

@media(max-width: 767px) {
    .pc-tab {
        display: none
    }
}

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

.center {
    text-align: center
}

.red {
    color: #c30023
}

.l-inner {
    width: 92%;
    max-width: 1200px;
    margin: 0 auto
}

.l-inner-wide {
    max-width: 1640px;
    width: 92%;
    margin-inline: auto
}

.l-main {
    text-align: center;
    overflow: hidden
}

body {
    max-width: 750px;
    margin-inline: auto;
    width: 100%
}

h2,
h3,
h4 {
    margin: 0
}

ol {
    list-style-type: none
}

.loop {
    background-color: #000;
    padding-top: clamp(2px, 2px + (16 - 2)*(100vw - 375px)/375, 16px);
    padding-bottom: clamp(2px, 2px + (16 - 2)*(100vw - 375px)/375, 16px);
}

.loop__item img {
    vertical-align: baseline;
    width: 100%
}

@-webkit-keyframes scale {
    0% {
        -webkit-transform: scale(1);
        transform: scale(1)
    }

    25% {
        -webkit-transform: scale(1.02);
        transform: scale(1.02)
    }

    50% {
        -webkit-transform: scale(1);
        transform: scale(1)
    }

    75% {
        -webkit-transform: scale(1.03);
        transform: scale(1.03)
    }

    100% {
        -webkit-transform: scale(1);
        transform: scale(1)
    }
}

@keyframes scale {
    0% {
        -webkit-transform: scale(1);
        transform: scale(1)
    }

    25% {
        -webkit-transform: scale(1.02);
        transform: scale(1.02)
    }

    50% {
        -webkit-transform: scale(1);
        transform: scale(1)
    }

    75% {
        -webkit-transform: scale(1.03);
        transform: scale(1.03)
    }

    100% {
        -webkit-transform: scale(1);
        transform: scale(1)
    }
}

.effect {
    opacity: 0;
    -webkit-transition: opacity 1.2s ease-out, -webkit-transform 1.2s ease-out;
    transition: opacity 1.2s ease-out, -webkit-transform 1.2s ease-out;
    transition: transform 1.2s ease-out, opacity 1.2s ease-out;
    transition: transform 1.2s ease-out, opacity 1.2s ease-out, -webkit-transform 1.2s ease-out;
    will-change: transform, opacity
}

.effect.effect--left {
    -webkit-transform: translateX(-20px);
    transform: translateX(-20px)
}

.effect.effect--right {
    -webkit-transform: translateX(20px);
    transform: translateX(20px)
}

.effect.effect--bottom {
    -webkit-transform: translateY(20px);
    transform: translateY(20px)
}

.effect.show {
    opacity: 1;
    -webkit-transform: translateX(0) translateY(0);
    transform: translateX(0) translateY(0)
}

.slide-in {
    -webkit-transform: translateX(-100%);
    transform: translateX(-100%);
    opacity: 0;
    -webkit-transition: opacity .8s ease-out, -webkit-transform .8s ease-out;
    transition: opacity .8s ease-out, -webkit-transform .8s ease-out;
    transition: transform .8s ease-out, opacity .8s ease-out;
    transition: transform .8s ease-out, opacity .8s ease-out, -webkit-transform .8s ease-out;
    will-change: transform, opacity
}

.slide-in.show {
    -webkit-transform: translateX(0);
    transform: translateX(0);
    opacity: 1
}

.scale-up {
    -webkit-transform: scale(0);
    transform: scale(0);
    opacity: 0;
    -webkit-transition: opacity .8s ease-out, -webkit-transform .8s ease-out;
    transition: opacity .8s ease-out, -webkit-transform .8s ease-out;
    transition: transform .8s ease-out, opacity .8s ease-out;
    transition: transform .8s ease-out, opacity .8s ease-out, -webkit-transform .8s ease-out;
    will-change: transform, opacity
}

.scale-up.show {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 1
}

.reveal-up {
    -webkit-transform: translateY(100%);
    transform: translateY(100%);
    opacity: 0;
    -webkit-transition: opacity .8s ease-out, -webkit-transform .8s ease-out;
    transition: opacity .8s ease-out, -webkit-transform .8s ease-out;
    transition: transform .8s ease-out, opacity .8s ease-out;
    transition: transform .8s ease-out, opacity .8s ease-out, -webkit-transform .8s ease-out;
    will-change: transform, opacity
}

.reveal-up.show {
    -webkit-transform: translateY(0);
    transform: translateY(0);
    opacity: 1
}

.visible {
    opacity: 0;
    -webkit-transition: opacity .8s ease-out;
    transition: opacity .8s ease-out;
    will-change: opacity
}

.visible.show {
    opacity: 1
}

.p-mainv {
    position: relative;
    background: url(../img/fv-bg.png) no-repeat center/cover
}

.p-mainv__head {
    padding-top: clamp(15px, 15px + (30 - 15)*(100vw - 375px)/375, 30px);
}

@media(max-width: 375px) {
    .p-mainv__head {
        padding-top: 15px
    }
}

.p-mainv__head img {
    width: calc(700/750*100*1%)
}

.p-mainv__logo {
    margin: 0
}

.p-mainv__subhead {
    margin-top: -10px;
    margin-bottom: clamp(10px, 10px + (24 - 10)*(100vw - 375px)/375, 24px)
}

@media(max-width: 375px) {
    .p-mainv__subhead {
        margin-bottom: 10px
    }
}

.p-mainv__subhead img {
    width: calc(500/750*100*1%)
}

.p-mainv__title {
    margin-bottom: clamp(10px, 10px + (24 - 10)*(100vw - 375px)/375, 24px)
}

@media(max-width: 375px) {
    .p-mainv__title {
        margin-bottom: 10px
    }
}

.p-mainv__title img {
    width: calc(600/750*100*1%)
}

.p-mainv__image {
    position: relative;
    padding-bottom: clamp(80px, 80px + (55 - 80)*(100vw - 375px)/375, 55px)
}

@media(max-width: 375px) {
    .p-mainv__image {
        padding-bottom: 80px
    }
}

.p-mainv__image img {
    display: inline-block
}

.p-mainv__image .img01 img {
    width: calc(450/750*100*1%)
}

.p-mainv__image .img02 {
    width: calc(148/750*100*1%);
    position: absolute;
    top: 22%;
    left: 7%;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%)
}

.p-mainv__image .img03 {
    width: calc(190/750*100*1%);
    position: absolute;
    top: 53%;
    right: 3%;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%)
}

.p-mainv__image .img04 {
    width: calc(206/750*100*1%);
    position: absolute;
    left: 4%;
    bottom: 6%;
    z-index: 9
}

.p-about__wrap {
    position: relative;
    background-color: #cc3366;
}

.p-about__wrap img {
    width: 88%;
}

.p-about__wrap >img {
    margin-top: 6%;
    margin-bottom: 6%;
}

.p-reason {
    padding-top: clamp(30px, 30px + (65 - 30)*(100vw - 375px)/375, 65px);
    padding-bottom: clamp(30px, 30px + (65 - 30)*(100vw - 375px)/375, 65px);
    background-color: #cc3366;
}

.p-flow {
    background-color: #cc3366;
}

.p-flow >img {
    width: 90%;
    margin-bottom: 5%;
    margin-top: 5%;
}

@media(max-width: 375px) {
    .p-reason {
        padding-top: 30px
    }
}

@media(max-width: 375px) {
    .p-reason {
        padding-bottom: 30px
    }
}

.p-reason__head {
    margin-bottom: clamp(20px, 20px + (40 - 20)*(100vw - 375px)/375, 40px)
}

.p-reason__head img {
    width: calc(1080/750*100*1%)
}

.p-reason__list {
    margin-bottom: clamp(15px, 15px + (30 - 15)*(100vw - 375px)/375, 30px)
}

@media(max-width: 375px) {
    .p-reason__list {
        margin-bottom: 15px
    }
}

.p-reason__list img {
    width: calc(680/750*100*1%)
}

.p-liver__wrap {
    position: relative
}

.p-sample {
    padding-top: clamp(30px, 30px + (60 - 30)*(100vw - 375px)/375, 100px);
    padding-bottom: clamp(30px, 30px + (60 - 30)*(100vw - 375px)/375, 100px)
}

@media(max-width: 375px) {
    .p-sample {
        padding-top: 30px
    }
}

@media(max-width: 375px) {
    .p-sample {
        padding-bottom: 30px
    }
}

.p-sample__head {
    margin-bottom: clamp(30px, 30px + (60 - 30)*(100vw - 375px)/375, 60px)
}

@media(max-width: 375px) {
    .p-sample__head {
        margin-bottom: 30px
    }
}

.p-sample__head img {
    width: calc(450/750*100*1%)
}

.p-sample__list li {
    margin-bottom: clamp(25px, 25px + (50 - 25)*(100vw - 375px)/375, 50px)
}

@media(max-width: 375px) {
    .p-sample__list li {
        margin-bottom: 25px
    }
}

.p-sample__list li img {
    width: calc(690/750*100*1%)
}

.p-faq {
    margin-top: clamp(30px, 30px + (60 - 30)*(100vw - 375px)/375, 100px);
    margin-bottom: clamp(30px, 30px + (60 - 30)*(100vw - 375px)/375, 100px);
}

@media(max-width: 375px) {
    .p-faq {
        margin-top: 30px;
        margin-bottom: 30px;
    }
}

.p-faq__head {
    text-align: center;
    font-size: 60px;
    font-weight: 700;
    line-height: 1em;
    letter-spacing: .03em;
    font-size: clamp(30px, 30px + 30*(100vw - 375px)/375, 60px);
    margin-bottom: clamp(30px, 30px + (60 - 30)*(100vw - 375px)/375, 60px)
}

@media(max-width: 375px) {
    .p-faq__head {
        margin-bottom: 30px
    }
}

.p-faq__list-wrap {
    border: solid 4px #cc3366;
    border-radius: clamp(10px, 10px + (20 - 10)*(100vw - 375px)/375, 20px);
    background-color: #cc3366;
    overflow: hidden
}

@media(max-width: 375px) {
    .p-faq__list-wrap {
        border-radius: 10px
    }
}

@media(min-width: 0px)and (max-width: 375px) {
    .p-faq__list-wrap {
        border-width: 2px
    }
}

.p-faq__list-wrap:not(:last-of-type) {
    margin-bottom: clamp(12px, 12px + (24 - 12)*(100vw - 375px)/375, 24px)
}

@media(max-width: 375px) {
    .p-faq__list-wrap:not(:last-of-type) {
        margin-bottom: 12px
    }
}

.p-faq__list dt {
    text-align: left;
    color: #ffffff;
    padding-top: clamp(20px, 20px + (40 - 20)*(100vw - 375px)/375, 40px);
    padding-bottom: clamp(20px, 20px + (40 - 20)*(100vw - 375px)/375, 40px);
    padding-left: 15%;
    padding-right: 9.5%;
    background-color: #cc3366;
    font-size: 28px;
    font-weight: 500;
    line-height: 1.4285714286em;
    letter-spacing: .05em;
    font-size: clamp(14px, 14px + 14*(100vw - 375px)/375, 28px);
    position: relative
}

@media(max-width: 375px) {
    .p-faq__list dt {
        padding-top: 20px
    }
}

@media(max-width: 375px) {
    .p-faq__list dt {
        padding-bottom: 20px
    }
}

@media(min-width: 0px)and (max-width: 375px) {
    .p-faq__list dt {
        padding-right: 12.2%
    }
}

.p-faq__list dt::before {
    content: "";
    max-width: 52px;
    width: 7.5%;
    height: auto;
    aspect-ratio: 137/217;
    background: url(../img/icon-q.png) no-repeat center/contain;
    position: absolute;
    top: 50%;
    left: 4.5%;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%)
}

.p-faq__list dt::after {
    content: "";
    width: clamp(26px, 26px + (52 - 26)*(100vw - 375px)/375, 52px);
    aspect-ratio: 1/1;
    background: url(../img/icon-plus.png) no-repeat center/contain;
    position: absolute;
    top: 50%;
    right: 2.6%;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%)
}

@media(max-width: 375px) {
    .p-faq__list dt::after {
        width: 26px
    }
}

.p-faq__list dt:hover {
    cursor: pointer
}

.p-faq__list dt.active::after {
    background: url(../img/icon-minus.png) no-repeat center/contain
}

.p-faq__list dd {
    text-align: left;
    color: #1d1d1d;
    padding: 0 4.2%;
    background-color: #fff;
    font-size: 26px;
    font-weight: 400;
    line-height: 1.4615384615em;
    letter-spacing: normal;
    font-size: clamp(13px, 13px + 13*(100vw - 375px)/375, 26px);
    position: relative;
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    -webkit-transition: .3s ease-in-out;
    transition: .3s ease-in-out
}

.p-faq__list dd.open {
    padding-block: clamp(20px, 20px + (40 - 20)*(100vw - 375px)/375, 40px);
    max-height: 1000px;
    opacity: 1
}

@media(max-width: 375px) {
    .p-faq__list dd.open {
        padding-block: 20px
    }
}

@media(min-width: 768px)and (max-width: 1024px) {
    .p-faq__list dd.open {
        padding-block: 28px
    }
}

@media(max-width: 767px) {
    .p-faq__list dd.open {
        padding-block: 17px
    }
}

.l-footer {
    background-color: #1d1d1d;
    text-align: center;
    padding-top: clamp(25px, 25px + (50 - 25)*(100vw - 375px)/375, 50px);
    padding-bottom: clamp(15px, 15px + (30 - 15)*(100vw - 375px)/375, 30px);
    margin-bottom: 141px;
}

@media(max-width: 375px) {
    .l-footer {
        padding-top: 25px;
        padding-bottom: 15px;
        margin-bottom: 70px;
    }
}

@media (min-width: 376px) and (max-width: 767px) {
    .l-footer {
        padding-top: 25px;
        padding-bottom: 15px;
        margin-bottom: 81px;
    }
}

.l-footer__link {
    margin-bottom: clamp(15px, 15px + (28 - 15)*(100vw - 375px)/375, 28px);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    gap: 40px
}

@media(max-width: 375px) {
    .l-footer__link {
        margin-bottom: 15px
    }
}

.l-footer__link a {
    color: #fff;
    text-decoration: underline;
    font-size: 24px;
    font-weight: 500;
    line-height: 1em;
    letter-spacing: .05em;
    font-size: clamp(12px, 12px + 12*(100vw - 375px)/375, 24px);
    display: inline-block
}

.l-footer__link a:hover {
    text-decoration: none
}

.l-footer__copy {
    color: #fff;
    font-size: 20px;
    font-weight: 400;
    line-height: 1em;
    letter-spacing: .05em;
    font-size: clamp(10px, 10px + 10*(100vw - 375px)/375, 20px)
}

.p-policy {
    padding: 50px 0 80px;
    width: 92%;
    margin-inline: auto
}

.p-policy h1 {
    margin: 0 0 20px
}

@media(max-width: 767px) {
    .p-policy h1 {
        font-size: 24px
    }
}

.p-policy h2 {
    margin: 30px 0 10px
}

@media(max-width: 767px) {
    .p-policy h2 {
        font-size: 20px
    }
}

.p-policy h3 {
    margin: 20px 0 0
}

.p-policy p {
    margin: 10px 0
}

@media(max-width: 767px) {
    .p-policy p {
        font-size: 14px
    }
}

.p-policy ul {
    margin: 20px 0;
    padding-left: 1em
}

.p-policy ul li {
    text-indent: -1em;
    margin-bottom: 6px
}

@media(max-width: 767px) {
    .p-policy ul li {
        font-size: 14px
    }
}

.p-policy ol {
    margin: 20px 0
}

.p-policy ol li {
    padding-left: 1em;
    text-indent: -1em;
    margin-bottom: 6px
}

@media(max-width: 767px) {
    .p-policy ol li {
        font-size: 14px
    }
}

.p-company {
    padding: 50px 0 80px;
    width: 92%;
    margin-inline: auto
}

.p-company h1 {
    margin: 0 0 20px
}

@media(max-width: 767px) {
    .p-company h1 {
        font-size: 24px
    }
}

.p-company h2 {
    margin: 30px 0 10px
}

@media(max-width: 767px) {
    .p-company h2 {
        font-size: 20px
    }
}

.p-company h3 {
    margin: 20px 0 0
}

.p-company p {
    margin: 10px 0
}

@media(max-width: 767px) {
    .p-company p {
        font-size: 14px
    }
}

.p-company ul {
    margin: 20px 0;
    padding-left: 1em
}

.p-company ul li {
    text-indent: -1em;
    margin-bottom: 6px
}

@media(max-width: 767px) {
    .p-company ul li {
        font-size: 14px
    }
}

.p-company ol {
    margin: 20px 0
}

.p-company ol li {
    padding-left: 1em;
    text-indent: -1em;
    margin-bottom: 6px
}

@media(max-width: 767px) {
    .p-company ol li {
        font-size: 14px
    }
}

.p-company .info {
    margin-bottom: 20px
}

.p-company .info label {
    font-weight: bold;
    display: block;
    margin-bottom: 5px
}

.p-company .info p {
    margin: 0;
    padding: 0;
    color: #343434
}

.p-company .info .link {
    color: #1690ff;
    text-decoration: underline;
}


.line-btn {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    text-align: center;
    z-index: 1000;
    -webkit-animation: scale 2s linear infinite;
    animation: scale 2s linear infinite;
}
.line-btn img {
    height: auto;
    width: auto;
    max-height: 140px;
    transition: transform 0.3s ease;
}
.line-btn a:hover {
    opacity: 1;
}
.line-btn img:hover {
    opacity: 1;
}