:root {
    --sp-design-width: 750;
    --pc-fixed-width: 640px
}

*, :before, :after {
    box-sizing: border-box
}

:where(:root) {
    overflow-wrap: anywhere;
    text-spacing-trim: trim-start;
    text-autospace: normal;
    line-break: strict;
    -webkit-text-size-adjust: 100%;
    -moz-text-size-adjust: 100%;
    text-size-adjust: 100%;
    scrollbar-gutter: stable;
    -webkit-tap-highlight-color: transparent;
    font-family: sans-serif;
    line-height: 1
}

:where(body) {
    min-block-size: 100dvb;
    margin: unset
}

:where(h1, h2, h3, h4, h5, h6) {
    margin-block: unset;
    text-wrap: pretty
}

:where(search) {
    display: block
}

:where(p, blockquote, figure, pre, address, ul, ol, dl, menu) {
    margin-block: unset
}

:where(blockquote, figure) {
    margin-inline: unset
}

:where(p:lang(en)) {
    text-wrap: pretty
}

:where(address:lang(ja)) {
    font-style: unset
}

:where(ul, ol, menu) {
    padding-inline-start: unset;
    list-style-type: ""
}

:where(dt) {
    font-weight: bolder
}

:where(dd) {
    margin-inline-start: unset
}

:where(pre) {
    text-spacing-trim: space-all;
    text-autospace: no-autospace
}

:where(em:lang(ja)) {
    font-weight: bolder
}

:where(:is(i, cite, em, dfn, var):lang(ja)) {
    font-style: unset
}

:where(code, kbd, samp) {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New, monospace;
    font-size: unset;
    font-feature-settings: initial;
    font-variation-settings: initial;
    font-variant-ligatures: none
}

:where(abbr[title]) {
    cursor: help;
    text-decoration-line: underline;
    text-decoration-style: dotted
}

:where(time) {
    text-autospace: no-autospace
}

@media (forced-colors:active) {
    :where(mark) {
        color: highlighttext;
        background-color: highlight
    }

}

@media print {
    :where(mark) {
        border-style: dotted;
        border-width: 1px
    }

}

:where(a:any-link) {
    color: unset;
    -webkit-text-decoration-line: unset;
    text-decoration-line: unset;
    text-decoration-thickness: from-font
}

:where(img, svg, picture, video, canvas, model, audio, iframe, embed, object) {
    vertical-align: bottom;
    block-size: auto;
    max-inline-size: 100%
}

:where(iframe) {
    border: unset
}

:where(table) {
    border-collapse: collapse
}

:where(caption, th) {
    text-align: unset
}

:where(caption) {
    text-wrap: pretty
}

:where(button, input, select, textarea) {
    border-style: solid;
    border-width: 1px;
    border-color: unset;
    border-radius: unset;
    text-align: unset;
    color: unset;
    font: unset;
    letter-spacing: unset
}

::file-selector-button {
    border-style: solid;
    border-width: 1px;
    border-color: unset;
    border-radius: unset;
    text-align: unset;
    color: unset;
    font: unset;
    letter-spacing: unset
}

:where(input:is([type=radio i], [type=checkbox i])) {
    margin: unset
}

:where(input[type=file i]) {
    border: unset
}

:where(input[type=search i]) {
    -webkit-appearance: textfield
}

@supports (-webkit-touch-callout:none) {
    :where(input[type=search i]) {
        background-color: canvas
    }

}

:where(input:is([type=tel i], [type=url i], [type=email i], [type=number i]):not(:placeholder-shown)) {
    direction: ltr
}

:where(textarea) {
    margin-block: unset;
    resize: block
}

:where(input:not([type=button i], [type=submit i], [type=reset i]), textarea, [contenteditable]) {
    text-autospace: no-autospace
}

:where(button, input:is([type=button i], [type=submit i], [type=reset i])) {
    background-color: unset
}

::file-selector-button {
    background-color: unset
}

:where(button, input:is([type=button i], [type=submit i], [type=reset i]), [role=tab i], [role=button i], [role=option i]) {
    touch-action: manipulation
}

::file-selector-button {
    touch-action: manipulation
}

:where(button:enabled, label[for], select:enabled, input:is([type=button i], [type=submit i], [type=reset i], [type=radio i], [type=checkbox i]):enabled, [role=tab i], [role=button i], [role=option i]) {
    cursor: pointer
}

:where(:enabled)::file-selector-button {
    cursor: pointer
}

:where(fieldset) {
    min-inline-size: 0;
    margin-inline: unset;
    padding: unset;
    border: unset
}

:where(legend) {
    padding-inline: unset
}

:where(progress) {
    vertical-align: unset
}

::placeholder {
    opacity: unset
}

:where(summary) {
    cursor: pointer;
    list-style-type: ""
}

:where(summary)::-webkit-details-marker {
    display: none
}

:where(dialog, [popover]) {
    padding: unset;
    border: unset;
    overscroll-behavior-block: contain
}

:where(dialog:not([open], [popover]), [popover]:not(:popover-open)) {
    display: none!important
}

:where(dialog) {
    max-inline-size: unset;
    max-block-size: unset
}

:where(dialog)::backdrop {
    background-color: oklch(0% 0 0/.3)
}

:where([popover]) {
    margin: unset
}

:where(:focus-visible) {
    outline-offset: 3px
}

[tabindex="-1"]:focus {
    outline: none!important
}

:where(:disabled, [aria-disabled=true i]) {
    cursor: default
}

[hidden]:not([hidden=until-found i]) {
    display: none!important
}

a {
    cursor: pointer
}

a:hover {
    opacity: .8;
    transition: all .3s
}

img {
    width: auto;
    height: auto
}

input[type=submit], input[type=button] {
    -webkit-box-sizing: content-box;
    box-sizing: border-box;
    cursor: pointer;
    appearance: button;
    border: none;
    border-radius: 10px
}

input[type=submit]::-webkit-search-decoration {
    display: none
}

input[type=button]::-webkit-search-decoration {
    display: none
}

input[type=submit]:focus, input[type=button]:focus {
    outline-offset: -2px
}

html {
    scroll-behavior: smooth;
    background-color: #fff;
    overflow-x: clip
}

body {
    width: 100%;
    max-width: var(--pc-fixed-width);
    word-break: break-all;
    background-color: #fff;
    margin-inline: auto;
    font-family: Noto Sans JP, sans-serif;
    position: relative;
    overflow-x: clip
}

html {
    font-size: min(calc(100vw * 16 / var(--sp-design-width)), calc(var(--pc-fixed-width) * 16 / var(--sp-design-width)))
}

p {
    font-size: 1rem
}

.amatic {
    font-family: Amatic SC, sans-serif
}

.manrope {
    font-family: Manrope, sans-serif
}

.inner {
    width: 46.875rem;
    margin-inline: auto;
    position: relative
}

.header {
    background: #fff;
    padding-block: .625rem
}

.header .inner {
    justify-content: flex-start;
    align-items: center;
    display: flex
}

@media (color<=2147477350) {
    .header .inner {
        width: 100%;
        padding-inline: 1.125rem
    }

}

.header .logo {
    width: 12.3125rem;
    margin-inline-end: .375rem;
    display: block
}

@media (color<=2147477350) {
    .header .logo {
        width: 15.5rem;
        margin-inline-end: 4.875rem
    }

}

.header__right {
    align-items: center;
    gap: 1.25rem;
    display: flex
}

@media (color<=2147477350) {
    .header__right {
        gap: .625rem
    }

}

.header__badge {
    width: 15.5rem;
    margin-inline-end: 1rem;
    display: block
}

@media (color<=2147477350) {
    .header__badge {
        width: 17.8125rem
    }

}

.header__tel {
    width: 22.1875rem;
    display: block
}

@media (color<=2147477350) {
    .header__tel {
        width: 5.625rem
    }

}

.header__tel-text {
    color: #010101;
    margin-block-start: 1.25rem;
    margin-inline-end: 1.125rem;
    font-size: .9rem;
    font-weight: 800
}

.footer {
    font-family: Zen Kaku Gothic New, sans-serif
}

.footer__bg {
    background: #a9a1c7;
    padding-block: 5.0625rem 4.875rem
}

.footer__link {
    text-align: center;
    color: #fff;
    margin-block-end: 1.25rem;
    font-size: 1.75rem;
    line-height: 1;
    display: block
}

.footer__logo {
    width: 30.625rem;
    margin-block: 2.625rem 1.6875rem;
    margin-inline: auto
}

.footer__copy {
    text-align: center;
    color: #fff;
    font-size: 1.75rem;
    line-height: 1
}

/* The supplied FV reserves space for the HTML CTA and campaign notes.
   Its bottom fixed-CTA placeholder is clipped; the existing sticky CTA is retained. */
.kv__bg {
    background: #d1d9ed;
    padding-block: 0 10.9375rem
}

.kv__visual {
    aspect-ratio: 1116 / 1840;
    position: relative;
    overflow: hidden
}

.kv__main {
    position: absolute;
    inset: 0
}

.kv__main img {
    display: block;
    width: 100%;
    height: auto
}

.kv__btn {
    position: absolute;
    top: 60.7608695652%;
    left: 7.1684587814%;
    width: 85.8422939068%
}

.kv__btn img {
    display: block;
    width: 100%;
    height: auto
}

.kv__note {
    position: absolute;
    top: 79.8913043478%;
    left: 4.8387096774%;
    width: 90.3225806452%;
    color: #4e586b;
    font-family: Zen Kaku Gothic New, sans-serif;
    font-size: 1.125rem;
    font-weight: 400;
    line-height: 1.3333333333
}

.kv__note span {
    display: block
}

/* Keep the upper artwork fixed; the comparison background follows its own content. */
.price {
    z-index: 5;
    margin-block-start: -9.375rem;
    position: relative
}

.price__bg {
    position: relative;
    isolation: isolate;
    background: #e7f0f5;
    padding-block: 15.625rem 11.875rem
}

.price__bg:before {
    content: "";
    position: absolute;
    z-index: -1;
    inset: 0 0 auto;
    height: 125rem;
    background: url(../images/price_bg.webp) center top/100% auto no-repeat, linear-gradient(to bottom, #d1d9ed 0, #e7f0f5 25rem);
    -webkit-mask-image: linear-gradient(#000 0, #000 100rem, transparent 125rem);
    mask-image: linear-gradient(#000 0, #000 100rem, transparent 125rem);
    pointer-events: none
}

.price img {
    width: 100%;
    height: auto
}

.price__comparison {
    position: relative
}

.price__comparison:before {
    content: "";
    position: absolute;
    z-index: -1;
    inset: -6.25rem 0 -11.875rem;
    background: url(../images/price_bg.webp) center bottom/100% auto no-repeat;
    pointer-events: none
}

.price-top {
    width: 41.875rem;
    margin-block-end: 2.4375rem;
    margin-inline: auto
}

.price__thumbs {
    justify-content: space-between;
    align-items: flex-start;
    width: 41.875rem;
    margin-block-end: -2.8125rem;
    margin-inline: auto;
    display: flex
}

.price__thumb {
    cursor: pointer;
    background: 0 0;
    border: none;
    flex: 0 0 20.5rem;
    width: 20.5rem;
    min-width: 0;
    padding: 0
}

.price__thumb img {
    width: 100%
}

.price__thumb-on {
    z-index: 5;
    display: none;
    position: relative
}

.price__thumb-off {
    margin-block-start: .625rem
}

.price__thumb.is-active .price__thumb-on {
    display: block
}

.price__thumb.is-active .price__thumb-off {
    display: none
}

.price__main {
    width: 44.0938rem;
    margin-block-start: -1.25rem;
    margin-inline-start: 1.34375rem;
    overflow: hidden
}

/* Only the selected panel contributes to height, using its own image ratio. */
.price__slides {
    height: auto
}

.price__slide {
    display: none;
    position: relative;
    height: auto
}

.price__slide.is-active {
    display: block
}

.price__slide>img {
    display: block;
    width: 100%;
    height: auto
}

.price__campaign-note {
    position: absolute;
    top: 34%;
    left: 4.5%;
    width: 90%;
    color: #4e586b;
    font-family: Zen Kaku Gothic New, sans-serif;
    font-size: 1.0625rem;
    font-weight: 400;
    line-height: 1.6
}

.price__note {
    color: #4e586b;
    width: 41.875rem;
    margin-block: .9375rem 1.25rem;
    margin-inline: auto;
    font-family: Zen Kaku Gothic New, sans-serif;
    font-size: 1.125rem
}

.price__comparison-top {
    margin-block-end: -13rem
}

.price__comparison-table {
    width: 41.875rem;
    margin-block-end: 3.75rem;
    margin-inline: auto
}

.price__comparison-txt {
    width: 37.5rem;
    margin-block-end: 4.5rem;
    margin-inline: auto
}

.price__comparison-cta {
    background: url(../images/price_comparison-cta-bg.webp) top/cover no-repeat;
    width: 45rem;
    margin-inline: auto;
    padding-block: 4.6875rem 3.75rem;
    padding-inline: 2.1875rem
}

.price__comparison-cta-top {
    width: 33.9375rem;
    margin-block-end: 1.875rem;
    margin-inline: auto
}

.price__comparison-cta-btn {
    width: 39.375rem;
    margin-block-end: 1.875rem;
    margin-inline: auto;
    display: block
}

.price__comparison-cta-links {
    flex-wrap: wrap;
    justify-content: space-between;
    width: 39.375rem;
    margin-inline: auto;
    display: flex
}

.price__comparison-cta-link {
    width: 18.75rem
}

.point {
    z-index: 5;
    margin-block-start: -4.375rem;
    position: relative
}

.point__bg {
    background: url(../images/point_bg.webp) top/cover no-repeat;
    padding-block-start: 12.1875rem
}

.point__top {
    width: 19.9375rem;
    margin-block-end: 1.8125rem;
    margin-inline: auto 1.75rem
}

.point__note {
    color: #4e586b;
    width: 41.875rem;
    margin-block-end: 2.1875rem;
    margin-inline: auto;
    font-family: Zen Kaku Gothic New, sans-serif;
    font-size: 1.125rem;
    line-height: 1.666
}

.point__item {
    width: 41.875rem;
    margin-block-end: 5.0625rem;
    margin-inline: auto
}

.point__item:last-child {
    margin-block-end: 0
}

.point__iryo {
    width: 44.375rem;
    margin-block: 8.625rem .625rem;
    margin-inline-start: auto
}

.point__example-ttl {
    margin-block-end: 1.5625rem
}

.point__example-item {
    width: 41.875rem;
    margin-block-end: 2.25rem;
    margin-inline: auto
}

.point__example-item:last-child {
    margin-block-end: 0
}

.point__example-bottom {
    width: 44.375rem;
    margin-inline-start: auto
}

.cta__bg {
    z-index: 5;
    background: url(../images/cta_bg.webp) 50%/cover no-repeat;
    margin-block: -.625rem;
    padding-block: 3.8125rem;
    position: relative
}

.cta__top {
    width: 33.9375rem;
    margin-block-end: 1.875rem;
    margin-inline: auto
}

.cta__btn {
    width: 39.375rem;
    margin-inline: auto;
    display: block
}

.anxiety__bg {
    background: #ffcddb;
    padding-block: 12.0625rem 8.125rem
}

.anxiety__top {
    margin-block: -17.5rem -11.875rem
}

.anxiety__main {
    width: 44.375rem;
    margin-inline-start: auto
}

.caution__bg {
    background: url(../images/caution_bg.webp) 50%/cover no-repeat;
    padding-block: 7.625rem 13.125rem
}

.caution__top {
    width: 37.5rem;
    margin-block-end: 4.1875rem;
    margin-inline-start: 4.375rem
}

.caution__item {
    width: 41.875rem;
    margin-block-end: 4.0625rem;
    margin-inline: auto
}

.everyday {
    margin-block-start: -4.375rem
}

.step__bg {
    padding-block: 7.75rem 8.125rem
}

.step__top {
    width: 17.5rem;
    margin-block-end: 3.3125rem;
    margin-inline: auto
}

.step__item {
    width: 42.5rem;
    margin-block-end: 2.8125rem
}

.step__item:nth-child(2) {
    width: 42.6875rem
}

.step__item:nth-child(3) {
    width: 43.4375rem;
    margin-block-end: 0
}

.reason__bg {
    background: url(../images/reason_bg.webp) bottom/cover no-repeat;
    padding-block: 8.4375rem 27.8125rem
}

.reason__top {
    width: 31.625rem;
    margin-block-end: 3.6875rem;
    margin-inline: auto
}

.reason__list {
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 2.5rem 0;
    width: 41.875rem;
    margin-inline: auto;
    display: flex
}

.reason__item {
    width: 20.3125rem
}

.reason__note {
    color: #4e586b;
    width: 41.875rem;
    margin-block-start: 1.4375rem;
    margin-inline: auto;
    font-family: Zen Kaku Gothic New, sans-serif;
    font-size: 1.125rem;
    line-height: 1.11
}

.faq__bg {
    background: url(../images/faq_bg.webp) 50%/cover no-repeat;
    padding-block: 8.75rem 8rem
}

.faq__top {
    width: 16.0625rem;
    margin-block-end: 5.75rem;
    margin-inline: auto
}

.faq__accordion {
    width: 41.875rem;
    margin-block-end: 1.25rem;
    margin-inline: auto;
    font-family: Zen Kaku Gothic New, sans-serif
}

.faq__accordion summary {
    color: #4e586b;
    background: url(../images/faq_accordion.webp) 50%/cover no-repeat;
    place-content: center;
    height: 10rem;
    padding-inline-start: 2.5rem;
    font-size: 2rem;
    font-weight: 700;
    line-height: 1.6875;
    position: relative
}

.faq__accordion summary:after {
    content: "";
    background: url(../images/faq_accordion_arrow.webp) 50%/cover no-repeat;
    width: 2.5rem;
    height: 2.5rem;
    position: absolute;
    top: 3.75rem;
    right: 1.875rem
}

.faq__accordion[open] summary:after {
    transform: rotate(180deg)
}

.faq__cont {
    background: #fff;
    border-radius: 0 0 .625rem .625rem;
    padding-block: 2.625rem 3.0625rem;
    padding-inline: 2.5rem .9375rem
}

.faq__txt {
    color: #4e586b;
    font-size: 1.75rem;
    line-height: 1.57
}

.faq__txt .info {
    font-size: 1.25rem
}

.about__bg {
    background: #f2f2f2;
    padding-block: 8.1875rem 7.8125rem
}

.about__inner {
    width: 41.875rem;
    margin-inline: auto;
    font-family: Zen Kaku Gothic New, sans-serif
}

.about h2 {
    text-align: center;
    color: #4e586b;
    margin-block-end: 5.125rem;
    font-size: 3.125rem;
    font-weight: 700
}

.about__item {
    margin-block-end: 2.8125rem
}

.about__item-ttl {
    color: #4e586b;
    font-size: 1.75rem;
    font-weight: 700;
    line-height: 1.57
}

.about__item-txt {
    color: #4e586b;
    font-size: 1.6875rem;
    line-height: 1.57
}

.about__item-cycle {
    margin-block: 2.1875rem
}

.precautions__bg {
    background: #f2f2f2;
    padding-block-end: 8.125rem
}

.precautions__inner {
    width: 41.875rem;
    margin-inline: auto;
    font-family: Zen Kaku Gothic New, sans-serif
}

.precautions h2 {
    text-align: center;
    color: #4e586b;
    margin-block-end: 3.75rem;
    font-size: 3.125rem;
    font-weight: 700
}

.precautions__txt {
    text-align: center;
    color: #4e586b;
    margin-block-end: 3.4375rem;
    font-size: 1.75rem;
    font-weight: 700;
    line-height: 1.57
}

.precautions__item {
    margin-block-end: 3.125rem
}

.precautions__item:last-child {
    margin-block-end: 0
}

.precautions__item-ttl {
    color: #4e586b;
    background: #fff;
    margin-block-end: 2.25rem;
    padding-block: 1.1875rem;
    padding-inline-start: 1.3125rem;
    font-size: 1.875rem;
    font-weight: 700;
    line-height: 1
}

.precautions__item-product {
    color: #4e586b;
    font-size: 1.75rem;
    font-weight: 700;
    line-height: 1.57
}

.precautions__item-txt {
    color: #4e586b;
    font-size: 1.75rem;
    line-height: 1.57
}

.fixed {
    z-index: 100;
    background: #fff;
    width: 100%;
    padding-block: .9375rem;
    position: sticky;
    bottom: 0;
    left: 0
}

.fixed__btn {
    width: 44.375rem;
    margin-inline: auto;
    display: block
}

.u-visually__hidden {
    clip: rect(1px, 1px, 1px, 1px);
    width: 1px;
    height: 1px;
    position: absolute;
    overflow: hidden
}

.u-pc__only {
    display: none
}
