@charset "utf-8";

:root {
    color-scheme: dark;

    --lpWpx: 750px;

    --fs00: 12.4rem;
    --fs0: 8.8rem;
    --fs1: 6.2rem;
    --fs2: 4.6rem;
    --fs3: 3.4rem;
    --fs4: 2.6rem;

    --fvL: 21.79cqw;
    --fvS: 11.04cqw;

    --baseC: #fff;
    --halfC: #aaa;
    --accentC: #e7c467;
    --bgC: #000;
    --bgSubC: #000;
    --lineC: rgba(231, 196, 103, .4);

    --baseF: 'Roboto', 'Noto Sans JP', system-ui, sans-serif;

    --goldGrad: linear-gradient(180deg,
        #fff6d5   0%,
        #e9cb7a  20%,
        #c9a250  42%,
        #8e6c25  50%,
        #e0bf6d  60%,
        #f9ecb8  78%,
        #c9a250 100%);

    --silverGrad: linear-gradient(180deg,
        #ffffff   0%,
        #e2e6ea  20%,
        #a9b1b8  42%,
        #6f777e  50%,
        #c3cad0  60%,
        #f4f7f9  78%,
        #aeb6bd 100%);

    --goldGradH: linear-gradient(90deg,
        #8e6c25   0%,
        #e9cb7a  25%,
        #fff6d5  50%,
        #e9cb7a  75%,
        #8e6c25 100%);

}

*,
::before,
::after {
    box-sizing: border-box;
    background-repeat: no-repeat;
}

::before,
::after {
    text-decoration: inherit;
    vertical-align: inherit;
}

* {
    padding: 0;
    margin: 0;
}

html {
    -webkit-text-size-adjust: 100%;
            text-size-adjust: 100%;
    word-break: normal;
    tab-size: 4;
    scroll-behavior: smooth;
}

hr {
    overflow: visible;
    height: 0;
    color: inherit;
}

details,
main {
    display: block;
}

summary {
    display: list-item;
}

small {
    font-size: 80%;
}

[hidden] {
    display: none;
}

abbr[title] {
    border-bottom: none;
    text-decoration: underline dotted;
}

a {
    background-color: transparent;
}

ul,
dl,
ol {
    list-style: none;
}

code,
kbd,
pre,
samp {
    font-family: monospace;
}

pre {
    font-size: 1em;
}

sub,
sup {
    font-size: 75%;
    line-height: 0;
    position: relative;
    vertical-align: baseline;
}

sub {
    bottom: -0.25em;
}

sup {
    top: -0.5em;
}

table {
    border-color: inherit;
    text-indent: 0;
    border-collapse: collapse;
    border-spacing: 0;
}

iframe {
    border-style: none;
}

img {
    border-style: none;
}

progress {
    vertical-align: baseline;
}

textarea {
    overflow: auto;
    resize: vertical;
}

button,
input,
optgroup,
select,
textarea {
    font: inherit;
    background-color: transparent;
    border-style: none;
}

input {
    border-radius: 0;
}

optgroup {
    font-weight: bold;
}

button {
    overflow: visible;
}

button,
select {
    text-transform: none;
}

button,
[type='button'],
[type='reset'],
[type='submit'],
[role='button'] {
    cursor: pointer;
    -webkit-appearance: button;
            appearance: button;
}

[type='number']::-webkit-inner-spin-button,
[type='number']::-webkit-outer-spin-button {
    height: auto;
}

[type='search'] {
    -webkit-appearance: textfield;
            appearance: textfield;
    outline-offset: -2px;
}

[type='search']::-webkit-search-decoration {
    -webkit-appearance: none;
}

::-webkit-file-upload-button {
    -webkit-appearance: button;
            appearance: button;
    color: inherit;
    font: inherit;
}

legend {
    border: 0;
    color: inherit;
    display: table;
    max-width: 100%;
    white-space: normal;
}

[disabled] {
    cursor: default;
}

[aria-busy='true'] {
    cursor: progress;
}

[aria-controls] {
    cursor: pointer;
}

[aria-disabled='true'] {
    cursor: default;
}

:focus:not(:focus-visible) {
    outline: none;
}

:focus-visible {
    outline: 2px solid var(--baseC);
    outline-offset: 2px;
}

html {
    font-size: calc(100vw / 75);
}

@media screen and (min-width: 751px) {

    html {
        font-size: 10px;
    }

}

body {
    font-family: var(--baseF);
    font-size: var(--fs4);
    font-weight: 500;
    color: var(--baseC);
    line-height: 1.8;
    letter-spacing: .04em;
    background: var(--bgC);
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6, strong, th {
    font-weight: 700;
    line-height: 1.5;
    font-feature-settings: 'palt';
}

a {
    color: inherit;
    text-decoration: none;
    transition: opacity .3s ease;
}

@media (hover: hover) {

    a:hover {
        opacity: .7;
    }

}

img, video, object {
    max-width: 100%;
    height: auto;
    vertical-align: bottom;
    border: none;
}

.lp {
    width: var(--lpWpx);
    max-width: 100%;
    margin: 0 auto;
    position: relative;
    overflow-x: clip;
}

.sec {
    --secPad: 4rem;
    padding: 9rem var(--secPad);
    background: var(--bgC);
}

.sec.-sub {
    background: var(--bgSubC);
}

.bleed {
    margin-inline: calc(var(--secPad) * -1);
}

.frame {
    padding: 3rem;
    border: .1rem solid transparent;
    border-image: var(--goldGrad) 1;
}

.cta {
    display: block;
}

.cta img {
    width: 100%;
}

em,
.fv-title span,
.core-head h2 .num,
.principle-label,
.chapters-sub .num,
.chapter-list .num,
.form-title {
    font-style: normal;
    background-image: var(--goldGrad);
    -webkit-background-clip: text;
            background-clip: text;
    color: transparent;
    -webkit-text-fill-color: transparent;
    text-shadow: none;
}

.num {
    font-family: 'Roboto', sans-serif;
    font-weight: 700;
}

.rule {
    height: .1rem;
    margin: 3rem 0;
    background: var(--lineC);
}

.fv {
    padding: 0 0 2rem;
}

.fv-visual {
    container-type: inline-size;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    aspect-ratio: 750 / 1100;
    padding: 4rem;
    background: url(images/fv-bg_01.webp) center / cover no-repeat;
}

.fv-logo img {
    width: 25rem;
}

.fv-badge {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 24rem;
    height: 24rem;
    line-height: 1.3;
    text-align: center;
    border: .4rem solid #fff;
    border-radius: 50%;
}

.fv-badge b {
    font-family: 'Roboto', sans-serif;
    font-size: 4.4rem;
    font-weight: 700;
    letter-spacing: 0;
}

.fv-badge span {
    font-size: 6.6rem;
    font-weight: 700;
}

.fv-lead {
    font-size: var(--fs2);
    font-weight: 700;
    line-height: 1.5;
    text-shadow: 0 .2rem 1.6rem rgba(0, 0, 0, .9), 0 0 .6rem rgba(0, 0, 0, .8);
}

.fv-title {
    margin-top: 3rem;
    font-size: var(--fvS);
    font-weight: 900;
    line-height: 1.24;
    letter-spacing: 0;
}

.fv-title em,
.fv-title span {
    font-size: var(--fvL);
}

.fv-title span {
    background-image: var(--silverGrad);
}

.fv-note {
    display: flex;
    align-items: center;
    gap: 2.4rem;
    margin: 4rem 4rem 0;
    font-size: var(--fs3);
    font-weight: 700;
}

.fv-note span {
    white-space: nowrap;
}

.fv-note::before,
.fv-note::after {
    content: '';
    flex: 1;
    height: .2rem;
    background: linear-gradient(90deg, #000, var(--accentC));
}

.fv-note::after {
    background: linear-gradient(90deg, var(--accentC), #000);
}

.fv .cta {
    margin: 2rem 3.1rem 0;
}

.problem {
    padding-top: 16rem;
    background:
        linear-gradient(180deg, transparent 0 75%, var(--bgC) 100%) top center / 100% 120rem no-repeat,
        url(images/problem-bg_01.webp) top center / 100% 120rem no-repeat,
        var(--bgC);
}

.issue {
    position: relative;
    padding: 2.4rem 1rem 2.4rem 4rem;
    font-size: var(--fs3);
    font-weight: 700;
    background: var(--bgC);
}

.issue::before {
    content: '';
    position: absolute;
    left: -4rem;
    top: 50%;
    width: 5.5rem;
    height: .4rem;
    background: #fff;
}

.issue + .issue {
    margin-top: 2.5rem;
}

.arrow {
    position: relative;
    height: 3.4rem;
    margin: 5.5rem 0;
}

.arrow::before {
    content: '';
    position: absolute;
    left: 50%;
    top: -2.4rem;
    width: 4.8rem;
    height: 4.8rem;
    border-right: .7rem solid #fff;
    border-bottom: .7rem solid #fff;
    translate: -50% 0;
    rotate: 45deg;
}

.verdict {
    position: relative;
    z-index: 1;
    padding: 2.6rem 3rem;
    font-size: var(--fs3);
    font-weight: 700;
    text-align: center;
    background: rgba(0, 0, 0, .5);
    border: .4rem solid #fff;
}

.problem-title {
    position: relative;
    z-index: 1;
    margin-top: 5rem;
    font-size: var(--fs0);
    font-weight: 900;
    line-height: 1.3;
    text-align: center;
    text-shadow: 0 .2rem 1.6rem rgba(0, 0, 0, .9), 0 0 .6rem rgba(0, 0, 0, .8);
}

.problem-title em {
    font-size: var(--fs00);
    text-shadow: none;
    filter: drop-shadow(0 .2rem 1rem rgba(0, 0, 0, .95));
}

.problem-visual {
    margin-top: -34rem;
}

.problem-lead {
    font-size: var(--fs3);
    font-weight: 700;
    text-align: center;
}

.problem .cta {
    margin-top: 3rem;
}

.sec.manifesto {
    padding-top: 2rem;
    padding-bottom: 56.4rem;
    background: url(images/manifesto-bg_01.webp) top center / 100% 155rem no-repeat, var(--bgC);
}

.manifesto-title {
    margin-top: 4rem;
    font-size: var(--fs2);
    font-weight: 900;
    line-height: 1.55;
}

.manifesto-list {
    margin-top: 7rem;
}

.manifesto-list li {
    position: relative;
    padding-left: 6rem;
    font-size: var(--fs3);
    font-weight: 700;
    line-height: 1.7;
    text-shadow: 0 .2rem 1.6rem rgba(0, 0, 0, .9), 0 0 .6rem rgba(0, 0, 0, .8);
}

.manifesto-list em {
    filter: drop-shadow(0 .2rem 1rem rgba(0, 0, 0, .95));
}

.manifesto-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 2.9rem;
    width: 4rem;
    height: .2rem;
    background: var(--goldGradH);
}

.manifesto-list li + li {
    margin-top: 6rem;
}

.core {
    padding: 0;
}

.core-head {
    padding: 6rem 4rem 4rem;
    border-top: .1rem solid var(--lineC);
}

.core-head p {
    font-size: var(--fs3);
    font-weight: 700;
    line-height: 1.4;
}

.core-head h2 {
    font-size: var(--fs1);
    font-weight: 900;
    line-height: 1.2;
}

.core-head h2 .num {
    font-size: var(--fs0);
}

.principle {
    --overlap: 10rem;
    display: flex;
    align-items: center;
    border-top: .1rem solid var(--lineC);
}

.principle:last-of-type {
    border-bottom: .1rem solid var(--lineC);
}

.principle:nth-of-type(even) {
    flex-direction: row-reverse;
}

.principle-visual {
    position: relative;
    flex: 0 0 45%;
}

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

.principle-visual::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, transparent 30%, rgba(0, 0, 0, .8) 72%, #000 100%);
}

.principle:nth-of-type(even) .principle-visual::after {
    scale: -1 1;
}

.principle-body {
    position: relative;
    z-index: 1;
    flex: 1;
    min-width: 0;
    margin-left: calc(var(--overlap) * -1);
    padding: 6rem 4rem;
    text-shadow: 0 .2rem 1.2rem rgba(0, 0, 0, .9);
}

.principle:nth-of-type(even) .principle-body {
    margin-left: 0;
    margin-right: calc(var(--overlap) * -1);
}

.principle-label {
    font-size: var(--fs2);
    font-weight: 700;
    line-height: 1.2;
    filter: drop-shadow(0 .2rem .8rem rgba(0, 0, 0, .9));
}

.principle-label .num {
    font-size: var(--fs1);
    font-weight: 400;
}

.principle-label .num::after {
    content: '';
    display: inline-block;
    width: .2rem;
    height: 4.4rem;
    margin: 0 2.2rem;
    vertical-align: -.7rem;
    background: var(--goldGrad);
}

.principle-body h3 {
    margin-top: 1.5rem;
    font-size: var(--fs3);
    font-weight: 700;
}

.principle-text {
    margin-top: 2rem;
    font-size: var(--fs4);
    line-height: 1.75;
}

.principle-ref {
    margin-top: 2rem;
    color: var(--halfC);
    font-size: var(--fs4);
    line-height: 1.6;
}

.sec.chapters {
    background: url(images/chapters-bg_01.webp) top center / 100% 140rem no-repeat, var(--bgC);
}

.chapters-title {
    font-size: var(--fs2);
    font-weight: 900;
    line-height: 1.45;
    text-shadow: 0 .2rem 1.6rem rgba(0, 0, 0, .9), 0 0 .6rem rgba(0, 0, 0, .8);
}

.chapters .rule {
    position: relative;
    width: 39.3rem;
    height: .2rem;
    background: var(--goldGradH);
}

.chapters .rule::after {
    content: '';
    position: absolute;
    left: 50%;
    top: 50%;
    width: 1.2rem;
    height: 1.2rem;
    translate: -50% -50%;
    rotate: 45deg;
    background: var(--accentC);
}

.chapters-sub {
    font-size: var(--fs3);
    font-weight: 900;
}

.chapters-sub .num {
    font-size: var(--fs2);
}

.chapter-frame {
    width: 47rem;
    margin-top: 56.2rem;
    padding: 0 3.4rem;
    background: rgba(0, 0, 0, .6);
}

.chapter-list li {
    padding: 2.6rem 0;
    font-size: var(--fs4);
    font-weight: 700;
    line-height: 1.4;
}

.chapter-list li + li {
    border-top: .1rem solid var(--lineC);
}

.chapter-list .chapter-all {
    text-align: center;
}

.form-lead {
    font-feature-settings: 'palt';
    font-size: var(--fs2);
    font-weight: 900;
    text-align: center;
}

.form-title {
    font-feature-settings: 'palt';
    margin-top: 2rem;
    font-size: var(--fs1);
    font-weight: 900;
    line-height: 1.3;
    text-align: center;
}

.form h2 {
    margin-top: 2rem;
    font-size: var(--fs2);
    font-weight: 900;
    text-align: center;
}

.form-body {
    margin-top: 6rem;
}

.form-row + .form-row {
    margin-top: 4rem;
}

.form-label {
    display: flex;
    align-items: center;
    gap: 1.6rem;
    margin-bottom: 1.4rem;
    font-size: var(--fs4);
    font-weight: 700;
}

.form-req {
    padding: .4rem 1.2rem;
    color: #000;
    font-size: 2rem;
    line-height: 1.2;
    background: var(--accentC);
}

.form-input,
.form-select select {
    width: 100%;
    padding: 2.2rem 2.4rem;
    color: var(--baseC);
    font-size: var(--fs3);
    background: rgba(255, 255, 255, .05);
    border: .2rem solid var(--lineC);
}

.form-input::placeholder {
    color: var(--halfC);
}

.form-select select:invalid {
    color: var(--halfC);
}

.form-select option {
    color: #fff;
    background: #1a1a1a;
}

.form-input:focus,
.form-select select:focus {
    border-color: var(--accentC);
    outline: none;
}

.form-select {
    position: relative;
}

.form-select select {
    appearance: none;
    -webkit-appearance: none;
    padding-right: 7rem;
    cursor: pointer;
}

.form-select::after {
    content: '';
    position: absolute;
    right: 2.8rem;
    top: 50%;
    width: 1.4rem;
    height: 1.4rem;
    margin-top: -1.2rem;
    border-right: .2rem solid var(--accentC);
    border-bottom: .2rem solid var(--accentC);
    rotate: 45deg;
    pointer-events: none;
}

.page-header {
    padding: 4rem;
}

.page-logo img {
    width: 26.9rem;
}

.download {
    text-align: center;
}

.download-thanks {
    width: 42rem;
    margin: 0 auto 6rem;
}

.download-text {
    margin: 4rem 0;
    font-size: var(--fs3);
    font-weight: 700;
    line-height: 1.9;
}

.download .cta {
    margin: 5rem 0;
}

.thanks {
    text-align: center;
}

.thanks-title {
    font-size: var(--fs2);
    font-weight: 900;
    line-height: 1.5;
}

.thanks-lead {
    margin-top: 4rem;
    font-size: var(--fs3);
    font-weight: 700;
    line-height: 1.8;
}

.thanks-text {
    margin-top: 4rem;
    font-size: var(--fs4);
    line-height: 2;
}

.form-agree {
    margin-top: 6rem;
    text-align: center;
}

.form-agree label {
    display: inline-flex;
    align-items: center;
    gap: 1.6rem;
    font-size: var(--fs4);
    font-weight: 700;
    cursor: pointer;
}

.form-agree input {
    position: relative;
    flex: 0 0 auto;
    width: 3rem;
    height: 3rem;
    appearance: none;
    -webkit-appearance: none;
    background: rgba(255, 255, 255, .05);
    border: .2rem solid var(--lineC);
}

.form-agree input:checked {
    background: var(--accentC);
    border-color: var(--accentC);
}

.form-agree input:checked::before {
    content: '';
    position: absolute;
    left: 50%;
    top: 45%;
    width: .9rem;
    height: 1.7rem;
    border-right: .3rem solid #000;
    border-bottom: .3rem solid #000;
    translate: -50% -50%;
    rotate: 45deg;
}

.btn-submit {
    display: block;
    width: 100%;
    margin-top: 6rem;
    padding: 4rem 2rem;
    color: #fff;
    font-size: var(--fs2);
    font-weight: 600;
    line-height: 1.4;
    text-align: center;
    background: linear-gradient(135deg, #22aa33, #008811);
    border: .6rem solid #008811;
    border-radius: 10rem;
    box-shadow:
        inset  1.9rem  1.9rem 1.9rem rgba(255, 255, 255, .3),
        inset -1.9rem -1.9rem 1.9rem rgba(0, 0, 0, .2),
        inset   .4rem   .4rem  .2rem rgba(255, 255, 255, .3),
        inset  -.4rem  -.4rem  .2rem rgba(0, 0, 0, .1);
    transition: opacity .3s ease, filter .3s ease;
}

.btn-submit.-sending {
    filter: grayscale(1);
    opacity: .6;
    cursor: default;
    pointer-events: none;
}

@media (hover: hover) {

    .btn-submit:hover {
        opacity: .7;
    }

}

.privacy-title {
    margin-bottom: 6rem;
    font-size: var(--fs2);
    font-weight: 900;
    text-align: center;
}

.privacy h2 {
    display: flex;
    gap: 1.2rem;
    margin-top: 7rem;
    margin-bottom: 2rem;
    font-size: var(--fs3);
    font-weight: 700;
    line-height: 1.5;
}

.privacy h2 .num {
    color: var(--accentC);
}

.privacy p {
    margin-top: 2rem;
    font-size: var(--fs4);
    line-height: 2;
}

.privacy ul,
.privacy ol {
    margin: 2.4rem 0;
    padding-left: 3.6rem;
}

.privacy ul {
    list-style: disc;
}

.privacy ol {
    list-style: decimal;
}

.privacy ol.-roman {
    list-style: lower-roman;
}

.privacy li {
    font-size: var(--fs4);
    line-height: 2;
}

.privacy li + li {
    margin-top: 1.2rem;
}

.privacy li::marker {
    color: var(--accentC);
}

.privacy-contact a {
    text-decoration: underline;
}

.back-btn {
    display: block;
    margin: 9rem auto 0;
    padding: 2.4rem 6rem;
    color: var(--baseC);
    font-size: var(--fs4);
    font-weight: 700;
    border: .2rem solid transparent;
    border-image: var(--goldGrad) 1;
}

.benefit {
    padding-top: 0;
    text-align: center;
}

.benefit-title {
    font-size: var(--fs3);
    font-weight: 700;
    line-height: 1.8;
}

.benefit-sub {
    margin-top: 4rem;
    font-size: var(--fs2);
    font-weight: 700;
    line-height: 1.5;
}

.benefit-photo {
    margin: 5rem 0;
}

.benefit-text {
    margin: 4rem 0;
    font-size: var(--fs3);
    line-height: 1.9;
}

.benefit-info {
    margin: 5rem 0;
    padding: 3rem;
    font-size: var(--fs3);
    border: .2rem solid transparent;
    border-image: var(--goldGrad) 1;
}

.benefit-info div {
    display: flex;
    justify-content: center;
    gap: 1.6rem;
}

.benefit-info div + div {
    margin-top: 1.2rem;
}

.benefit-info dt {
    flex: 0 0 12rem;
    font-weight: 700;
    text-align: right;
}

.benefit-info dt::after {
    content: '：';
}

.benefit-info dd {
    flex: 1;
    text-align: left;
}

.form-heading {
    margin-top: 7rem;
    font-size: var(--fs2);
    font-weight: 900;
}

.benefit .form-body {
    margin-top: 3rem;
    text-align: left;
}

.footer {
    padding: 8.6rem 4rem;
    text-align: center;
    background: #111;
}

.footer-logo img {
    width: 26.9rem;
}

.footer-link {
    position: relative;
    display: inline-block;
    margin-top: 3.2rem;
    padding-left: 3.2rem;
    font-size: 2.2rem;
    letter-spacing: .08em;
    text-decoration: underline;
}

.footer-link::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    width: 1rem;
    height: 1rem;
    border-top: .2rem solid #fff;
    border-right: .2rem solid #fff;
    translate: 0 -50%;
    rotate: 45deg;
}

@media (prefers-reduced-motion: reduce) {

    *,
    ::before,
    ::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
    }

}

.grecaptcha-badge {
    display: none !important;
}