@charset "UTF-8";

html {
    font-size: 62.5%;
}
@media (max-width: 833px) {
    html {
        font-size: 2.6666666667vw;
    }
}

body {
    width: 100%;
    margin: 0 auto;
    position: relative;
    overflow: hidden;
    color: #374190;
    word-break: break-all;
    letter-spacing: 0.04em;
    font-family: YakuHanJP_Noto, "Noto Sans JP", sans-serif;
    font-weight: 500;
    font-size: 1.6rem;
    line-height: 1.6;
}
@media (max-width: 833px) {
    body {
        font-size: 1.2rem;
    }
}

a {
    color: #374190;
    text-decoration: none;
    transition: background-color 0.3s ease-out;
}

a:hover {
    cursor: pointer;
}

ul {
    list-style-type: none;
}

ul.dot {
    list-style-type: none;
}

ul.dot li {
    margin-left: 1.1em;
    text-indent: -1.1em;
}

ul.dot li:before {
    content: "・";
}

ul.dot li:not(:last-child) {
    margin-bottom: 0.3em;
}

ul.circle {
    list-style-type: none;
}

ul.circle li {
    margin-left: 2rem;
    text-indent: -2rem;
}

ul.circle li:before {
    content: "●";
    margin-right: 0.4rem;
}

ul.circle li:not(:last-child) {
    margin-bottom: 0.8em;
}

ul.note {
    list-style-type: none;
}

ul.note li {
    margin-left: 1.1em;
    text-indent: -1.1em;
}

ul.note li:before {
    content: "※";
    font-family: cursive;
}

ul.note li:not(:last-child) {
    margin-bottom: 0.3em;
}

.link-underline {
    text-decoration: underline;
}

.link-block {
    display: block;
}

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

.pic-shadow {
    filter: drop-shadow(1.6rem 1.6rem 4rem rgba(0, 0, 0, 0.1));
}

.object {
    position: absolute;
}

.object-parent {
    position: relative;
}

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

.text-right {
    text-align: right;
}

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

.spOnly {
    display: none;
}

@media (max-width: 833px) {
    .spOnly {
        display: inherit;
    }
}

.nowrap {
    white-space: pre-wrap;
    word-break: keep-all;
}

.fixed-button-block .btn-01 {
    max-width: 6.4rem;
    height: clamp(32rem,50vh,40rem);
    line-height: 1.2;
    padding: 2rem 2rem 5rem;
    font-size: clamp(1.4rem,2.2vh,1.8rem);
    background: #ED3E4E;
    color: #FFF;
    box-shadow: 5px 5px 20px 0px rgba(0, 0, 0, 0.10);
    text-align: center;
    border-radius: 3.2rem;
}

.site-header .btn-01::before {
    right: 2.6rem;
}

.site-header .btn-01::after {
    width: 1.6rem;
    height: 1.6rem;
    top: calc(50% - 0.8rem);
}

.header-title {
    font-size: 1rem;
    text-align: center;
}

.header-title a {
    display: inline-block;
}

.header-title figure {
    display: inline-block;
    margin-bottom: 0;
}

.site-footer {
    padding: 4.8rem 1.6rem;
    background-color: #fff;
    color: #666;
    font-size: 1.2rem;
}

.site-footer p {
    letter-spacing: 0;
    font-size: 1.2rem;
}

.footer-area01 {
    font-size: 1.2rem;
    font-weight: 700;
}

.footer-title figure {
    display: flex;
    align-items: center;
}

.footer-title .caption {
    margin-left: 2rem;
    font-size: 1.4rem;
    color: #666;
}

.copy-right {
    margin-top: 2.8rem;
    line-height: 1;
}

input::-webkit-input-placeholder {
    color: rgba(0, 22, 88, 0.2);
}

input:-ms-input-placeholder {
    color: rgba(0, 22, 88, 0.2);
}

input::-moz-placeholder {
    color: rgba(0, 22, 88, 0.2);
}

input:-webkit-autofill {
    -webkit-box-shadow: 0 0 0 1000px #fff inset;
}

select {
    background-image: url("../../images/select_arrow.svg");
    background-position: right 2rem center;
    background-size: 2rem;
    background-repeat: no-repeat;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}

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

select.form_control {
    padding: 12px 24px 12px 10px;
}

.btn-01 {
    width: 100%;
    height: 4.8rem;
    padding-right: 4.4rem;
    padding-left: 2.2rem;
    justify-content: center;
    border-radius: 2.4rem;
    font-size: 1.5rem;
    min-width: fit-content;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #f7dd4b;
    color: #374190;
    letter-spacing: 0.08em;
    font-weight: 700;
    line-height: 1;
    transition: 0.3s ease-in-out;
}

.btn-01::before {
    content: "";
    position: absolute;
    width: 0.6rem;
    height: 0.6rem;
    top: calc(50% - 0.3rem);
    right: 2.9rem;
    z-index: 2;
    display: block;
    border-top: 2px solid #f7dd4b;
    border-right: 2px solid #f7dd4b;
    border-radius: 1px;
    transform: rotate(45deg);
}

.btn-01::after {
    content: "";
    width: 2rem;
    height: 2rem;
    position: absolute;
    top: calc(50% - 1rem);
    right: 2rem;
    border-radius: 50%;
    background-color: #374190;
}

.btn-01:hover {
    background-color: #fff;
    color: #374190;
}

.btn-01:hover::before {
    border-top-color: #fff;
    border-right-color: #fff;
}

.btn-01:hover::after {
    background-color: #374190;
}

.section-block.block-campaign {
    padding: 0;
}

.campaign-card {
    padding: 6rem 3.6rem 5.4rem;
    border-radius: 0;
}

.campaign-header {
    display: block;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 2rem;
}

.campaign-header .title {
    font-size: 2.4rem;
    text-align: center;
    margin-bottom: 2.8rem;
    line-height: 1.2;
    font-weight: 900;
}

.campaign-header .title .text-new {
    font-size: 1.6rem;
    color: #ed3e4e;
}

.campaign-header .title .text-new::before, .campaign-header .title .text-new::after {
    background-color: #ed3e4e;
}

.campaign-header .title span {
    display: inline-block;
    line-height: 1.5277777778;
}

.campaign-info {
    font-weight: 900;
    margin: 0 -1.6rem;
}

.campaign-info dl {
    margin-bottom: 0.8rem;
    display: flex;
}

.campaign-info dt {
    width: 8.2rem;
    margin-right: 1.6rem;
    display: flex;
    align-items: center;
    flex: none;
    justify-content: center;
    border-radius: 0.4rem;
    background-color: #ed3e4e;
    color: #fff;
    text-align: center;
}

.campaign-info dd {
    font-size: 1.4rem;
}

.campaign-info .note {
    font-weight: 400;
    font-size: 1.2rem;
}

.campaign-body .pic {
    display: block;
}

.campaign-body .pic img {
    width: 100%;
    max-width: none;
    margin-bottom: 40px;
}

.campaign-body .text {
    font-size: 1.2rem;
    line-height: 1.8;
    text-align: center;
    font-weight: 700;
}

.campaign-notice {
    margin-top: 4rem;
    padding: 2rem;
    border-radius: 0.8rem;
    background-color: rgba(255, 255, 255, 0.4);
    text-align: center;
    font-size: 1.5rem;
}

.campaign-notice dt {
    font-weight: 700;
}

@media (min-width: 834px) {
    .campaign-body {
        display: block;
    }
    .campaign-item:nth-child(1),
    .campaign-item:nth-child(2),
    .campaign-item:nth-child(3) {
        width: 100%;
    }
}

.campaign-item {
    margin: 0 0 4rem;
}

.campaign-body .text {
    margin-top: -2rem;
}

.object_a{
    width: 6.4rem;
    top: -4.4rem;
    left: -1rem;
}
@media (max-width: 833px) {
    .object_a {
        width: 17%;
    }
}

.object_d{
   width: 13.6rem;
   top: -134rem;
   right: -5.4rem;
}

@media (max-width: 833px) {
    .object_d {
        width: 71px;
        top: -20px;
    }
}

svg {
    vertical-align: bottom;
}

p {
    letter-spacing: 0.1em;
    line-height: 2;
}

p:not(:last-child) {
    margin-bottom: 1.5em;
}

.character01{
    position: relative;
}

.character01 .character-name{
    position:absolute;
    left: 11.5rem;
    bottom: 0;
}

.character01 .comment{
    margin-bottom: 2rem;
    right: -1rem!important;
}

.material-character-heading{
    margin-top: 5em;
}

.page-width {
    width: calc(1084px + 5rem);
    max-width: 100%;
    margin: 0 auto;
    padding: 4rem 1.6rem 2rem;
}

.page-width.bg-white {
    position: relative;
}

.cv-block {
    padding: 2rem 2rem;
    position: relative;
    z-index: 9;
    display: block;
    align-items: center;
    justify-content: space-between;
}

.l-card {
    border-radius: 1.6rem;
}

.l-card.blue {
    background-color: #374190;
    color: #fff;
}

.l-card.blue2 {
    background-color: #93d3df;
    color: #374190;
    border-radius: 0;
}

.l-card.yellow {
    background-color: #f7dd4b;
    color: #374190;
}

.l-card.white {
    background-color: #fff;
}

.cv-block .text {
    font-size: 1.6rem;
    letter-spacing: 0;
    font-weight: 900;
    line-height: 1.375;
}

.cv-block .text strong {
    color: #f7dd4b;
}

@media (min-width: 834px) {
    .cv-block .text {
        position: relative;
        top: 0;
    }
}

.cv-block .text .text02 {
    font-size: 2rem;
}

.cv-block .pic {
    width: 16rem;
    top: 1.6rem;
    text-align: right;
    position: absolute;
    right: 1rem;
    bottom: auto;
}

.cv-block .pic > img {
    filter: drop-shadow(0.4rem 0.4rem 0.4rem rgba(0, 0, 0, 0.2));
}

.cv-block .btn-01 {
    margin-top: 12px;
}

.cv-block .fukidashi {
    position: absolute;
    top: -4rem;
    right: 11.4rem;
    width: 7.2rem;
}

.cv-block .fukidashi img {
    width: 7.2rem;
    max-width: none;
}

.cv-block .text .text01 {
    margin-bottom: 0.2em;
    display: inline-block;
}

.text-new {
    display: inline-block;
    position: relative;
}

.text-new::before, .text-new::after {
    content: "";
    width: 3px;
    height: 1em;
    margin-bottom: -0.2rem;
    display: inline-block;
    background-color: #f7dd4b;
}

.text-new::before {
    position: absolute;
    top: 50%;
    transform: rotate(-24deg) translateY(-50%);
    left: -6px;
    margin-right: 0.8rem;
}

.text-new::after {
    position: absolute;
    top: 50%;
    transform: rotate(24deg) translateY(-50%);
    right: -6px;
    margin-left: 0.8rem;
}

.block-about {
    margin-top: 4.5rem;
    padding: 0 2.5rem;
    position: relative;
    z-index: 10;
}

.block-about::before {
    content: "";
    width: 100%;
    position: absolute;
    top: 43rem;
    bottom: 0;
    left: 0;
    z-index: -1;
    background-color: #93d3df;
}

.block-about .headline-02 {
    margin-bottom: 7.2rem;
}

.about-card {
    max-width: 100%;
    margin: 0 auto;
    padding: 4rem 2rem 1rem;
    position: relative;
    text-align: center;
}

.about-card::after {
    content: "";
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
    border-radius: 1.6rem;
    transform: rotate(2deg);
    background-color: #374190;
}

.about-card .pic {
    margin-bottom: 2em;
}

.about-card .headline-01 {
    margin-bottom: 2rem;
    letter-spacing: 0;
    font-size: 2.2rem;
    font-weight: 900;
}

.about-card .headline-03 {
    font-size: 1.6rem;
    letter-spacing: 0.08em;
    margin-bottom: 1.5rem;
}

.about-card p {
    margin-right: -0.5em;
    margin-left: -0.5em;
    letter-spacing: -0.06em;
    font-size: 1.1rem;
}

.about-card .point-list {
    width: 100%;
    display: flex;
    margin-top: 2rem;
    margin-bottom: 1.5rem;
    flex-wrap: wrap;
    justify-content: center;
}

.about-card .point-list li {
    width: 31.5%;
    height: 9.6rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 1.6rem;
    background-color: #fff;
    font-size: 1.4rem;
    letter-spacing: 0;
    font-weight: 900;
    margin-right: 2.75%;
    margin-bottom: 2.75%;
    border-radius: 1.6rem;
    line-height: 1.4285714286;
}

.about-card .point-list li + li {
    margin-left: inherit;
}

.about-card .point-list small {
    display: block;
    font-size: 1rem;
    font-size: 0.8rem;
}

.about-card .point-list li:nth-child(3n), .about-card .point-list li:last-child {
    margin-right: 0;
}

.about-card .pic img {
    width: 100%;
}

p.block-entry-catch {
    font-size: 20px;
    display: table;
    margin-left: auto;
    margin-right: auto;
    color: #f7dd4b;
    margin-bottom: 10px;
    position: relative;
}

p.block-entry-catch::before,
p.block-entry-catch::after {
    content: "";
    width: 2px;
    height: 30px;
    background: #f7dd4b;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
}

p.block-entry-catch::before {
    left: -12px;
    height: 20px;
    transform: translateY(-50%) rotate(-45deg);
}

p.block-entry-catch::after {
    right: -12px;
    height: 20px;
    transform: translateY(-50%) rotate(45deg);
}

.block-entry .headline {
    font-size: 2.4rem;
    letter-spacing: 0.12em;
    margin-bottom: 0.5em;
}

.entry-info {
    display: block;
    align-items: center;
    font-weight: 900;
    max-width: 90rem;
    margin: 3.2rem auto 0;
}

.entry-info dl {
    display: flex;
    align-items: center;
}

.entry-info dt {
    width: 6.8rem;
    margin-right: 1.2rem;
    flex: none;
    border-radius: 0.4rem;
    background-color: #fff;
    color: #374190;
    text-align: center;
}

.entry-info dd {
    font-size: 1.2rem;
}

.entry-info .note {
    margin-left: 3.2rem;
    display: flex;
    align-items: center;
    font-weight: 400;
    font-size: 1.2rem;
}

.entry-info .note li:not(:last-child) {
    margin-right: 1em;
    margin-bottom: 0;
}

.spHide, .pcOnly {
    display: none;
}

.entry-form {
    max-width: 90rem;
    margin: 3.2rem auto 0;
}

.form-group {
    display: flex;
}

.form-group + .form-group {
    margin-top: 2.4rem;
}

.form-box {
    width: 100%;
}

.form-box + .form-box {
    margin-left: 2rem;
}

.form-box dt {
    margin-bottom: 1.2rem;
    letter-spacing: 0.12em;
}

.form-box .required {
    color: #ed3e4e;
}

.form-control {
    width: 100%;
    padding: 1.2em 1.5em;
    border: 2px solid #fff;
    border-radius: 1.2rem;
    background-color: #fff;
    color: #374190;
    letter-spacing: 0;
}

.form-policy {
    max-width: 53.2rem;
    margin: 6.4rem auto 0;
    padding: 3.2rem 2.4rem 2.4rem;
    color: #374190;
    font-size: 1.4rem;
}

.form-policy dt {
    margin-bottom: 1em;
    text-align: center;
    font-weight: 700;
}

.form-doui {
    margin-top: 3.2rem;
    letter-spacing: 0;
}

.form-submit {
    width: 53.2rem;
    height: 6.4rem;
    margin: 3.2rem auto 0;
    padding: 0 3.8rem;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 3.2rem;
    background-color: #ed3e4e;
    color: #fff;
    letter-spacing: 0;
    font-weight: 700;
    font-size: 2rem;
    line-height: 1;
    transition: 0.3s ease-in-out;
}

.form-submit::before {
    content: "";
    width: 0.7rem;
    height: 0.7rem;
    position: absolute;
    top: calc(50% - 0.3rem);
    right: 2.9rem;
    z-index: 2;
    display: block;
    border-top: 2px solid #ed3e4e;
    border-right: 2px solid #ed3e4e;
    border-radius: 1px;
    transform: rotate(45deg);
}

.form-submit::after {
    content: "";
    width: 2.4rem;
    height: 2.4rem;
    position: absolute;
    top: calc(50% - 1.2rem);
    right: 2rem;
    border-radius: 50%;
    background-color: #fff;
}

.form-submit:hover {
    background-color: #fff;
    color: #ed3e4e;
}

.form-submit:hover::before {
    border-top-color: #fff;
    border-right-color: #fff;
}

.form-submit:hover::after {
    background-color: #ed3e4e;
}

.form-submit[data-status=disable] {
    background-color: #aaa;
    pointer-events: none;
}

.wpcf7-form-control-wrap {
    display: block;
}

.wpcf7-not-valid-tip {
    margin-bottom: 1.2rem;
    position: absolute;
    right: 0;
    bottom: 100%;
    color: #ed3e4e;
    font-size: 1.2rem;
}

.wpcf7-not-valid {
    border-color: #ed3e4e !important;
    background-color: #fbd4d7 !important;
}

.wpcf7 form .wpcf7-response-output {
    padding: 1em;
    text-align: center;
}

.notice-block {
    margin-top: 4.8rem;
    margin-right: auto;
    margin-left: auto;
    font-weight: 700;
    font-size: 1.8rem;
}

.notice-block dt {
    margin-bottom: 0.4em;
}

.notice-block dd p {
    line-height: 1.75;
}

.block-entry .notice-block {
    max-width: 90rem;
}

.hs-form-private {
    display: block;
}

.hs-form-field {
    width: 100%;
    margin-bottom: 1.6rem;
}

.hs-form-field > label {
    display: block;
    margin-bottom: 0.8rem;
    font-size: 1.4rem;
}

.hs-recaptcha {
    margin-top: 1.6rem;
}

.hs-recaptcha .input {
    width: fit-content;
    margin: 0 auto;
}

.hs-form-required {
    color: #ed3e4e;
}

.hs-input {
    width: 100%;
    padding: 0.7em 0.8em;
    border: 2px solid #fff;
    border-radius: 0.8rem;
    color: #374190;
    background-color: #fff;
    letter-spacing: 0;
    font-size: 1.6rem;
}

.hs-error-msgs, .hs-error-msg {
    margin-top: 0.5em;
    color: #ed3e4e;
    font-size: 1.2rem;
}

.hs_error_rollup {
    width: fit-content;
    margin: 0 auto;
}

.hs_competitor_investigation + div{
    width: 100%;
}

.hs-richtext {
    max-width: 53.2rem;
    margin: 4rem auto 2.4rem;
    padding: 2.4rem 2rem;
    border-radius: 0.8rem;
    font-size: 1.2rem;
    background-color: #fff;
    color: #374190;
}

.hs-richtext p:not(:last-child) {
    margin-bottom: 1em;
}

.hs-richtext strong {
    display: block;
    text-align: center;
}

.hs-submit {
    width: 100%;
}

.hs-field-desc {
    font-size: 1.2rem;
}

.hs-submit .hs-button {
    width: 90%;
    height: 4.8rem;
    padding: 0 3.8rem;
    border-radius: 2.4rem;
    font-size: 1.5rem;
    max-width: 100%;
    margin: 2.4rem auto 0;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #ed3e4e;
    color: #fff;
    letter-spacing: 0;
    font-weight: 700;
    line-height: 1;
    transition: 0.3s ease-in-out;
}

.hs-submit .hs-button::before {
    content: "";
    width: 0.7rem;
    height: 0.7rem;
    position: absolute;
    top: calc(50% - 0.3rem);
    right: 2.9rem;
    z-index: 2;
    display: block;
    border-top: 2px solid #ed3e4e;
    border-right: 2px solid #ed3e4e;
    border-radius: 1px;
    transform: rotate(45deg);
}

.hs-submit .hs-button::after {
    content: "";
    width: 2.4rem;
    height: 2.4rem;
    position: absolute;
    top: calc(50% - 1.2rem);
    right: 2rem;
    border-radius: 50%;
    background-color: #fff;
}

.hs-submit .hs-button:hover {
    background-color: #fff;
    color: #ed3e4e;
}

.hs-submit .hs-button:hover::before {
    border-top-color: #fff;
    border-right-color: #fff;
}

.hs-submit .hs-button:hover::after {
    background-color: #ed3e4e;
}

.section-block.block-entry {
    padding: 6.4rem 1.6rem;
    background-color: #374190;
    color: #fff;
    position: relative;
}

.lower {
    position: relative;
}

.lower::before {
    content: "";
    width: 185.8rem;
    height: 285rem;
    position: absolute;
    top: -28.8rem;
    left: 50%;
    z-index: -1;
    background: url(../../images/bg_pc.svg) no-repeat center top/contain;
    transform: translateX(-50%);
}

.lower .site-container {
    padding-top: 4.8rem;
}

.site-footer .content {
    display: block;
}

.footer-title img {
    width: 11.8rem;
}

.footer-area02 {
    margin-top: 4.8rem;
    padding-top: 4.8rem;
    border-top: 1px solid #ccc;
    text-align: center;
}

.footer-area02 p {
    font-size: 1rem;
}

.footer-privacy-policy-link {
    font-size: 10px;
}

.post-header .info {
    margin-bottom: 1rem;
    display: flex;
    align-items: center;
}

.post-header .date {
    margin-right: 2rem;
    flex: none;
    letter-spacing: 0.08em;
    font-family: "Jost", sans-serif;
    font-weight: 700;
    font-size: 1.8rem;
}

.post-header .cat {
    width: 8rem;
    height: 2.4rem;
    display: flex;
    align-items: center;
    flex: none;
    justify-content: center;
    border-radius: 1.2rem;
    background-color: #f7dd4b;
    font-weight: 900;
    font-size: 1.2rem;
}

.post-title {
    margin-bottom: 1em;
    font-size: 3.2rem;
    line-height: 1.5;
}

.post-thumbnail {
    margin-bottom: 6.4rem;
}

.post-content {
    font-size: 1.8rem;
}

.post-content h2 {
    margin-bottom: 2em;
    padding-left: 1em;
    border-left: 0.8rem solid #374190;
    font-size: 2rem;
}

.post-content p {
    font-weight: 700;
}

.post-content p:not(:last-child) {
    margin-bottom: 2em;
}

.post-content * + h2 {
    margin-top: 8rem;
}

.post-content .btn-01:hover {
    background-color: #f1f1f1;
}

.post-footer {
    margin-top: 8rem;
    padding-top: 6.4rem;
    border-top: 1px solid #374190;
}

.post-footer .btn-01 {
    font-size: 1.6rem;
}

.post-footer .btn-01:hover {
    background-color: #f1f1f1;
}

.block-request-thanks .content {
    width: 53.2rem;
}

.request-header {
    margin-bottom: 6.4rem;
    text-align: center;
}

.request-logo {
    margin-bottom: 5.4rem;
}

.request-title {
    font-size: 3.2rem;
}

.request-content p {
    letter-spacing: 0;
}

.request-content p a {
    text-decoration: underline;
}

.request-content .btn-01 {
    font-size: 1.6rem;
}

.request-content .btn-01:hover {
    background-color: #f1f1f1;
}

.request-content .btn-01:hover .icon * {
    fill: #374190;
}

.request-content .btn-01 .icon {
    margin-right: 0.6rem;
}

.request-content .btn-01 + p {
    margin-top: 12rem;
}

.request-footer {
    margin-top: 8rem;
}

.request-footer .btn-01 {
    font-size: 1.6rem;
}

.site-header {
    width: 100%;
    padding: 3.2rem 4.8rem;
    background: #fff;
}
.btn-01.header--navi--entry,
.btn-01.header--navi--trial {
    width: 270px;
    height: 48px;

    font-family: YakuHanJP_Noto, "Noto Sans JP", sans-serif;
    font-style: normal;
    font-weight: 700;
    font-size: 18px;
    line-height: 26px;

    opacity: 1;
}

.btn-01.header--navi--entry {
    max-width: 100%;
    width: 400px;
}

.btn-01.header--navi--entry::before,
.btn-01.header--navi--trial::before {
    top: calc(50% - 3px);
    right: 29px;
}

.btn-01.header--navi--entry::after,
.btn-01.header--navi--trial::after {
    width: 24px;
    height: 24px;
    top: calc(50% - 12px);
    right: 20px;
}

.btn-01.header--navi--entry:hover,
.btn-01.header--navi--trial:hover {
    background-color: #f7dd4b;
    color: #374190;
    opacity: 0.6;
}

.header--navi--buy,
.header--pop-sp--buy {
    background: #ED3E4E;
    border-radius: 100px;

    width: 134px;
    height: 48px;

    font-family: YakuHanJP_Noto, "Noto Sans JP", sans-serif;
    font-style: normal;
    font-weight: 700;
    font-size: 18px;
    line-height: 26px;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: 0.3s ease-in-out;
    opacity: 1;
    position: relative;
}

.header--navi--buy::before,
.header--pop-sp--buy::before {
    content: "";
    background: url(../../images/icon_cart.min.svg) no-repeat 0 0;
    background-size: cover;
    width: 24px;
    height: 24px;
    display: inline-block;
    margin-right: 6px;
}

.header--navi--buy:hover {
    opacity: 0.6;
}

.header--pop-sp--buy {
    margin: 0 auto;
    width: 176px;
}

.header--navi--method,
.header--pop-sp--method {
    background: #93D3DF;
    border-radius: 100px;

    width: 134px;
    height: 48px;

    font-family: YakuHanJP_Noto, "Noto Sans JP", sans-serif;
    font-style: normal;
    font-weight: 700;
    font-size: 18px;
    line-height: 26px;
    color: #374190;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: 0.3s ease-in-out;
    opacity: 1;
    position: relative;
}

.header--navi--method::before,
.header--pop-sp--method::before {
    content: "";
    background: url(../../images/icon_book.min.svg) no-repeat 0 0;
    background-size: cover;
    width: 24px;
    height: 24px;
    display: inline-block;

    margin-right: 6px;
}

.header--navi--method:hover {
    opacity: 0.6;
}

.header--pop-sp--method {
    margin: 0 auto;
    width: 176px;
}

.header--menu-sp {
    display: none;
}

@media (max-width: 833px) {
    .header--menu-sp {
        display: flex;
        align-items: center;
        justify-content: center;
        position: absolute;
        right: 20px;
        top: 22px;
        z-index: 11;
    }

    .header--menu-sp::before {
        content: "";
        background: url(../../images/icon_menu.min.svg) no-repeat center center;
        background-size: contain;
        width: 16px;
        height: 16px;
        display: block;
    }

    .site-header.is_open .header--menu-sp::before {
        background-image: url(../../images/icon_close.min.svg);
        background-size: 12px 12px;
    }
}


.header--pop-sp {
    background: #fff;
    padding: 50px 40px;
    width: 100%;
    height: 100vh;
    height: 100dvh;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 10;
    transition: 0.3s ease-in-out;
    transform: translate3d(200%, 0, 0);
    opacity: 0;
}

.site-header.is_open + .header--pop-sp {
    transform: translate3d(0, 0, 0);
    opacity: 1;
    z-index: 98;
}

.header--pop-sp--link {
    border-bottom: 1px solid #D6D7E1;
    display: block;
}

@media (min-width: 834px) {
    .header--pop-sp--link {
        margin-top: 2rem;
    }
}

.header--pop-sp--link li {
    border-top: 1px solid #D6D7E1;
    padding: 16px 24px;

    font-family: YakuHanJP_Noto, "Noto Sans JP", sans-serif;
    font-style: normal;
    font-weight: 700;
    font-size: 16px;
    line-height: 23px;
    color: #374190;
}

.header--pop-sp--link li a {
    color: #374190;
}

p.header--pop-sp--btn {
    margin: 24px 0 0;
    text-align: center;
}

p.header--pop-sp--btn + p.header--pop-sp--btn {
    margin-top: 12px;
}

/* add 2023.03.20 */
.header--navi--guideweb,
.header--pop-sp--guideweb {
    background: #374190;
    border-radius: 100px;

    width: 172px;
    height: 48px;

    font-family: YakuHanJP_Noto, "Noto Sans JP", sans-serif;
    font-style: normal;
    font-weight: 700;
    font-size: 18px;
    line-height: 26px;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: 0.3s ease-in-out;
    opacity: 1;
    position: relative;
}

.header--navi--guideweb::before,
.header--pop-sp--guideweb::before {
    content: "";
    background: url(../../images/icon_window.min.svg) no-repeat 0 0;
    background-size: cover;
    width: 20px;
    height: 17px;
    display: inline-block;

    margin-right: 6px;
}

.header--navi--guideweb:hover {
    opacity: 0.6;
}

.header--pop-sp--guideweb {
    margin: 0 auto;
    width: 176px;
}


/* 2023.04.05 add */
.youtube {
    padding-bottom: 56.25%;

    width: 100%;

    position: relative;
    overflow: hidden;
}

.youtube iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: none;
}

.youtube img {
    position: absolute;
    top: 0;
    left: 0;
    cursor: pointer;

    width: 100%;
    height: auto;
}

.youtube img.movie-thumb-icon {
    top: 50%;
    left: 50%;
    transform: translate3d(-50%, -50%, 0);

    width: 68px;
    height: auto;
    display: block;
}

.sp-spacer {
    display: none;
}

@media screen and (max-width: 833px) {
    .sp-spacer {
        display: block;
    }
}


.header-container {
    position: relative;
}

.header-guide-button-block {
    position: absolute;
    top: -8px;
    right: 0;
}

@media (max-width: 833px) {
    .header-guide-button-block {
        display: none;
    }
}


.guide-button {
    background: #F7DD4B;
    border-radius: 10px;
    padding: 12px 24px;
    font-weight: bold;
    display: inline-flex;
    gap: 12px;
    align-items: center;
    color: #00125E;
}

.guide-button.pop-sp {
    width: 100%;
    justify-content: center;
    font-size: 16px;
    padding: 20px 0;
}

.header--navi--link {
    display: flex;
    align-items: center;
    padding: 0 1em;
    position: relative;
    color: #00125e;
    font-size: 1.3rem;
}

@media (max-width: 1120px) and (min-width: 834px)  {
    .header--navi--link {
        padding: 0 .8em;
        font-size: calc(0.8818342152vw * 1.3);
    }
}

.header--pop-sp--button-block {
    text-align: center;
    margin-top: 20px;
}

.header--pop-sp-object-a {
    position: absolute;
    width: 77px;
    top: 122px;
    right: 20px;
}

.header--pop-sp-object-d {
    position: absolute;
    width: 91px;
    right: 53px;
    top: 44rem;
}

.fixed-header {
    position: fixed;
    top: -80px;
    left: 0;
    width: 100%;
    z-index: 100;
    visibility: hidden;
    transition: top 0.3s ease-in-out;
    background: #fff;
    box-shadow: 0px 4px 4px 0px rgba(0, 0, 0, 0.10);
    height: 70px;
    padding-left: 23px;
    padding-right: 9px;
}

@media (max-width: 833px) {
    .fixed-header {
        height: 56px;
    }
}

.fixed-header-inner {
    display: flex;
    align-items: center;
    height: 100%;
}

.fixed-header.is-active {
    visibility: visible;
    top: 0;
}

.fixed-header .header--navi {
    margin-top: 0;
    font-size: 13px;
    margin-left: 26px;
}

@media (min-width: 1440px) {
    .fixed-header .header--navi {
        margin-left: auto;
    }
}

@media (max-width: 1240px) {
    .fixed-header .header--navi {
        display: none;
    }
}

.fixed-header .header--navi--link {
    padding: 0 .5em;
    font-size: 1.15rem;
}

.fixed-header .header-title {
    width: 120px;
    line-height: 1;
}

@media (min-width: 1440px) {
    .fixed-header .header-title {
        width: 240px;
    }
}

@media (max-width: 1240px) {
    .fixed-header .header-title {
        width: 200px;
    }
}

@media (max-width: 833px) {
    .fixed-header .header-title {
        width: 130px;
    }
}

.fixed-header .guide-button {
    font-size: 14px;
    padding: 12px 19px 12px 12px;
    gap: 4px;
}

.fixed-header-guide-button-block {
    margin-left: auto;
}

@media (max-width: 1172px) {
    .fixed-header-guide-button-block {
        display: none;
    }
}

.header--navi {
    white-space: nowrap;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-top: 50px;
}

.header--navi--buy,
.header--pop-sp--buy {
    background: #ED3E4E;
    border-radius: 100px;
    width: 134px;
    height: 48px;
    font-family: YakuHanJP_Noto, "Noto Sans JP", sans-serif;
    font-style: normal;
    font-weight: 700;
    font-size: 18px;
    line-height: 26px;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: 0.3s ease-in-out;
    opacity: 1;
    position: relative;
}

.header--navi--buy::before,
.header--pop-sp--buy::before {
    content: "";
    background: url(../../images/icon_cart.min.svg) no-repeat 0 0;
    background-size: cover;
    width: 24px;
    height: 24px;
    display: inline-block;

    margin-right: 6px;
}

.header--navi--buy:hover {
    opacity: 0.6;
}

.header--pop-sp--buy {
    margin: 0 auto;
    width: 176px;
}

.header--navi--method,
.header--pop-sp--method {
    background: #93D3DF;
    border-radius: 100px;
    width: 134px;
    height: 48px;
    font-family: YakuHanJP_Noto, "Noto Sans JP", sans-serif;
    font-style: normal;
    font-weight: 700;
    font-size: 18px;
    line-height: 26px;
    color: #00125E;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: 0.3s ease-in-out;
    opacity: 1;
    position: relative;
}

.header--navi--method::before,
.header--pop-sp--method::before {
    content: "";
    background: url(../../images/icon_book.min.svg) no-repeat 0 0;
    background-size: cover;
    width: 24px;
    height: 24px;
    display: inline-block;
    margin-right: 6px;
}

.header--navi--method:hover {
    opacity: 0.6;
}

.header--pop-sp--method {
    margin: 0 auto;
    width: 176px;
}

.header--menu-sp {
    display: none;
}

@media (max-width: 1172px) {
    .fixed-header .header--menu-sp {
        display: flex;
        align-items: center;
        justify-content: center;
        position: absolute;
        right: 20px;
        top: 22px;
        z-index: 11;
    }

    .fixed-header .header--menu-sp::before {
        content: "";
        background: url(../../images/icon_menu.min.svg) no-repeat center center;
        background-size: contain;
        width: 27px;
        height: 24px;
        display: block;
    }

    .fixed-header .site-header.is_open .header--menu-sp::before, .fixed-header.is_open .header--menu-sp::before {
        background-image: url(../../images/icon_close.min.svg);
        background-size: 22px 22px;
    }
}

@media (max-width: 833px) {
    .header--menu-sp {
        display: flex;
        align-items: center;
        justify-content: center;
        position: absolute;
        right: 20px;
        top: 16px;
        z-index: 11;
    }

    .header--menu-sp::before {
        content: "";
        background: url(../../images/icon_menu.min.svg) no-repeat center center;
        background-size: contain;
        width: 27px;
        height: 24px;
        display: block;
    }

    .site-header.is_open .header--menu-sp::before, .fixed-header.is_open .header--menu-sp::before {
        background-image: url(../../images/icon_close.min.svg);
        background-size: 22px 22px;
    }

    .fixed-header .header--menu-sp {
        top: 16px;
    }
}


.header--pop-sp {
    background: #fff;
    padding: 50px 20px;
    width: 100%;
    height: 100vh;
    height: 100dvh;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 10;
    transition: 0.3s ease-in-out;
    transform: translate3d(200%, 0, 0);
    opacity: 0;
}

.site-header.is_open + .header--pop-sp {
    transform: translate3d(0, 0, 0);
    opacity: 1;
}

.header--pop-sp--link {
    display: block;
}

.header--pop-sp--link li {
    border-top: 1px solid #D6D7E1;
    padding: 15px 0;
    font-family: YakuHanJP_Noto, "Noto Sans JP", sans-serif;
    font-style: normal;
    font-weight: 700;
    font-size: 16px;
    line-height: 23px;
    color: #00125E;
}

.header--pop-sp--link li:first-child {
    border-top: none;
}

.header--pop-sp--link:last-child {
    border-bottom: none;
}

.header--pop-sp--link .header--navi--link::before {
    display: none;
}

.header--pop-sp--link li a {
    color: #00125E;
}

p.header--pop-sp--btn {
    margin: 24px 0 0;
    text-align: center;
}

p.header--pop-sp--btn + p.header--pop-sp--btn {
    margin-top: 12px;
}

/* add 2023.03.20 */
.header--navi--guideweb,
.header--pop-sp--guideweb {
    background: #00125E;
    border-radius: 100px;
    width: 172px;
    height: 48px;
    font-family: YakuHanJP_Noto, "Noto Sans JP", sans-serif;
    font-style: normal;
    font-weight: 700;
    font-size: 18px;
    line-height: 26px;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: 0.3s ease-in-out;
    opacity: 1;
    position: relative;
}

.header--navi--guideweb::before,
.header--pop-sp--guideweb::before {
    content: "";
    background: url(../../images/icon_window.min.svg) no-repeat 0 0;
    background-size: cover;
    width: 20px;
    height: 17px;
    display: inline-block;

    margin-right: 6px;
}

.header--navi--guideweb:hover {
    opacity: 0.6;
}

.header--pop-sp--guideweb {
    margin: 0 auto;
    width: 176px;
}

@media (max-width: 1120px) {
    .header--navi--link {
        padding: 0 .8em;
    }
}

.header--pop-sp--link .header--navi--link {
    padding: 0 10px;
}

.header--navi--link::before {
    content: "";
    display: block;
    position: absolute;
    top: 50%;
    right: 0;
    width: 1px;
    height: 15px;
    background: #C3CCED;
    transform: translateY(-50%);
}

.header--navi--item:last-child .header--navi--link::before {
    display: none;
}

/*.header--navi--item + .header--navi--item {*/
/*    margin-left: 40px;*/
/*}*/

.header--navi--link--logo {
    margin-right: 6px;
}

.header--pop-sp--link .header--navi--link--logo {
    margin-right: 20px;
    width: 30px;
}

.header--navi--link--logo--pass {
    fill: currentColor;
}

.header--navi--link:hover .header--navi--link--logo--pass {
    fill: #E55C5C;
}

.header--navi--link:hover .header--navi--link--logo--stroke {
    stroke: #E55C5C;
}


.header-guide-button-block {
    position: absolute;
    top: -8px;
    right: 0;
}

@media (max-width: 833px) {
    .header-guide-button-block {
        display: none;
    }
}

.fixed-header-guide-button-block {
    margin-left: auto;
}

@media (max-width: 1172px) {
    .fixed-header-guide-button-block {
        display: none;
    }
}

.header-inner {
    display: block;
    align-items: center;
    justify-content: flex-start;
    max-width: 1120px;
    margin: 0 auto;
}

@media (max-width: 833px) {
    .header-inner {
        justify-content: center;
    }

    .header--navi {
        display: none;
    }
}

@media (max-width: 1120px) {
    .header--navi {
        font-size: 14px;
    }
}

@media (max-width: 940px) {
    .header--navi {
        font-size: 12px;
    }
}

.footer-privacy-policy-link {
    color: #666;
}

@media (max-width: 833px) {
    .footer-privacy-policy-link {
        font-size: 10px;
    }
}

@media (max-width: 833px) {
    .site-header {
        padding: 20px;
        position: relative;
        z-index: 99;
    }
}

@media (max-width: 833px) {
    .header-title {
        width: 130px;
        z-index: 11;
        position: relative;
        font-size: 12px;
    }
}
/* add fixed-button-block 20231228 */
.fixed-button-block{
    position: fixed;
    -webkit-transition: 0.3s ease-in-out;
    -o-transition: 0.3s ease-in-out;
    transition: 0.3s ease-in-out;
    opacity: 0;
    transform: translateZ(0.01px);
  }
  .is-active .fixed-button-block{
    bottom: 0;
    opacity: 1;
  }
  .fixed-button-block .btn-01{
    background: #ED3E4E;
    color: #FFF;
    box-shadow: 5px 5px 20px 0px rgba(0, 0, 0, 0.10);
  }
  .fixed-button-block .btn-01::after{
    background-color: #FFF;
  }
  .fixed-button-block .btn-01::before {
    border-color: #ED3E4E;
  }

  @media (min-width: 834px) {
    .fixed-button-block{
        right: -10rem;
        top: 20rem; 
        bottom: 0;
        /* height: calc(100vh - 8rem); */
        margin: auto 0;
    }
    .is-active .fixed-button-block{
        top: 20rem; 
        right: 3.2rem;
    }
    .fixed-button-block .btn-01{
        max-width: 6.4rem;
        height: clamp(32rem,50vh,40rem);
        line-height: 1.2;
        padding: 2rem 2rem 5rem;
        font-size: clamp(1.4rem,2.2vh,1.8rem);
        /* margin: clamp(1rem,2vh,1.5rem) 0; */
        text-align: center;
    }
    .fixed-button-block .btn-01::after{
        top: auto;
        right: 2rem;
        bottom: clamp(1.8rem,2.4vh,2.4rem);
        
    }
    .fixed-button-block .btn-01::before {
        top: auto;
        right: 2.8rem;
        bottom: clamp(2.6rem,3.2vh,3.2rem);
        
    }
  }
  @media (min-width: 834px) and (max-width: 1284px) {
    .fixed-button-block{
        height: auto;
    }
    .is-active .fixed-button-block{
        right: 1.5rem;
    }
    .is-active.is_open .fixed-button-block{
        opacity: 0;
    }
    .fixed-button-block .btn-01{
        max-width: 4.2rem;
        padding: 2rem 1.5rem 4.3rem;
        font-size: clamp(1.1rem,2.1vh,1.5rem);
        height: clamp(32rem,50vh,40rem);
        line-height: 1.2;
        margin: 1rem 0;
        text-align: center;
    }
    .fixed-button-block .btn-01::after{
        top: auto;
        right: 1.2rem;
        bottom: 0.9rem;
    }
    .fixed-button-block .btn-01::before {
        top: auto;
        right: 2rem;
        bottom: 1.6rem;
    }
  }

  @media (max-width: 833px) {
    .fixed-button-block{
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: horizontal;
        -webkit-box-direction: reverse;
            -ms-flex-direction: row-reverse;
                flex-direction: row-reverse;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
        gap: .7rem;
        left: 0;
        bottom: -10rem;
        right: 0;
        padding:1rem 0 ;
        background: rgba(255, 255, 255, 0.6);
    }
    .is_open .fixed-button-block{
        opacity: 0;
        bottom:  -10rem;
    }
    .fixed-button-block .btn-01{
        max-width: 30.4rem;
        font-size: 1.4rem;
        padding: .7rem 2.4rem .7rem 1.2rem;
        height: 4.5rem;
        border-radius: 2.4rem
    }
    .fixed-button-block .free-paper-btn{
        padding-right: 3.1rem;
    }
    .fixed-button-block .btn-01::after{
        right: 1.4rem;
    }
    .fixed-button-block .btn-01::before {
        right:2.2rem;
    }
  }



/* spring2024のスタイル */
/* PCの時の背景 */
@media (min-width: 834px) {
    #spring2024-left {
        width: calc((100% - 375px) / 2);
        height: 100vh;
        background: url(../../images/spring_bg_left.svg) no-repeat center top/cover;
        position: fixed;
        top: 50%;
        left: 0;
        transform: translateY(-50%);
        z-index: -1;
    }
    #spring2024-left::before {
        content: "";
        width: 100%;
        min-width: 294px;
        max-width: 435px;
        aspect-ratio: 493/1024;
        background: url(../../images/spring_bg_left_chara.svg) no-repeat center top/cover;
        position: absolute;
        top: 57%;
        left: 50%;
        transform: translate3d(-50%, -50%, 0);
        z-index: -1;
    }
    
    #spring2024-right {
        width: calc((100% - 375px) / 2);
        height: 100vh;
        background: url(../../images/spring_bg_right.svg) no-repeat center top/cover;
        position: fixed;
        top: 50%;
        right: 0;
        transform: translateY(-50%);
        z-index: -1;
    }
    #spring2024-right::before {
        content: "";
        width: 100%;
        min-width: 294px;
        max-width: 435px;
        aspect-ratio: 493/1024;
        background: url(../../images/spring_bg_right_chara.svg) no-repeat center top/cover;
        position: fixed;
        top: 57%;
        right: 50%;
        transform: translate3d(50%, -50%, 0);
        z-index: -1;
    }
    

    /* スクロールエリア */

    #spring2024-container .contents {
        width: 375px;
        margin: 0 auto;
    }

    #spring2024-container .contents {
        border-radius: 20px;
        box-shadow: 0px 4px 30px 0px rgba(162, 155, 187, 0.5);
        margin-top: 6rem;
        overflow: hidden;
    }
}

/* PCの時の背景のキャラクター */
/* ビューポートの横幅が834px以上のとき */
@media (min-width: 834px) {
    #spring2024-bg-character span {
        transition: top 0.3s ease-in-out;
    }

    #spring2024-bg-character span:nth-child(1) {
        height: 52%;
        aspect-ratio: 235/535;
        position: absolute;
        top: 25%;
        left: calc((50% - 18.75rem) - 30%);
        background: url(../../images/spring_chara_left_1.svg) no-repeat center top/cover;
    }

    #spring2024-bg-character span:nth-child(2) {
        height: 50%;
        aspect-ratio: 145/512;
        position: absolute;
        bottom: 7%;
        left: calc((50% - 18.75rem) - 17%);
        background: url(../../images/spring_chara_left_2.svg) no-repeat center top/cover;
    }

    #spring2024-bg-character span:nth-child(3) {
        height: 19%;
        aspect-ratio: 137/199;
        position: absolute;
        top: 25%;
        right: calc((50% - 18.75rem) - 30%);
        background: url(../../images/spring_chara_right_1.svg) no-repeat center top/cover;
    }

    #spring2024-bg-character span:nth-child(4) {
        height: 49%;
        aspect-ratio: 271/501;
        position: absolute;
        bottom: 5%;
        right: calc((50% - 18.75rem) - 25%);
        background: url(../../images/spring_chara_right_2.svg) no-repeat center top/cover;
    }

    /* スクロール後header縦幅が狭くのキャラクターの位置調整 */
    #spring2024-bg-character.is-active span:nth-child(1) {
        top: 18%;
    }

    #spring2024-bg-character.is-active span:nth-child(3) {
        top: 16%;
        right: 11%;
    }
}
/* ビューポートの横幅が920px以上のとき */
@media (min-width: 920px) {
    #spring2024-bg-character span:nth-child(1) {
        top: 25%;
        left: calc((50% - 18.75rem) - 32%);
    }

    #spring2024-bg-character span:nth-child(2) {
        bottom: 5%;
    }

    #spring2024-bg-character span:nth-child(2) {
        left: calc((50% - 18.75rem) - 15%);
    }
}

/* ビューポートの横幅が919px以下かつ高さが900px以上のとき */
@media (max-width: 1100px) and (min-height: 900px) {
    #spring2024-bg-character span {
        transform: scale(0.7);
    }

    #spring2024-bg-character span:nth-child(1),
    #spring2024-bg-character.is-active.is-active span:nth-child(1) {
        top: 26%;
    }

    #spring2024-bg-character span:nth-child(2),
    #spring2024-bg-character.is-active span:nth-child(2) {
        bottom: 11%;
        left: calc((50% - 18.75rem) - 18%);
    }

    #spring2024-bg-character span:nth-child(3) {
        top: 33%;
        right: 2%;
    }
    #spring2024-bg-character.is-active span:nth-child(3) {
        top: 33%;
        right: 5%;
    }

    #spring2024-bg-character span:nth-child(4),
    #spring2024-bg-character.is-active span:nth-child(4) {
        right: calc((50% - 18.75rem) - 32%);
    }
}

#spring2024-container #hero-area {
    padding: 4rem 0 7rem;
    position: relative;
    overflow: hidden;
}

@media (max-width: 833px) {
    #spring2024-container #hero-area {
        padding-top: 2.6rem;
    }
}

#spring2024-container #hero-area::before {
    content: "";
    display: block;
    aspect-ratio: 94/225;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    background: url(../../images/hero_bg_spring.svg) no-repeat center top/cover;
    z-index: -1;
}

#spring2024-container #hero-area::after {
    content: "";
    display: block;
    aspect-ratio: 125/194;
    width: 100%;
    position: absolute;
    top: -1.8rem;
    left: 0;
    background: url(../../images/hero_bg_sakura.svg) no-repeat center top/cover;
    z-index: -1;
}

#spring2024-container .hero-lead {
    text-align: center;
}

#spring2024-container .hero-caption {
    margin: 0;
}

#spring2024-container .hero-caption span {
    font-size: 1.6rem;
    line-height: 2.75;
    font-weight: 700;
    color: #E8566E;
    position: relative;
}

#spring2024-container .hero-caption span::before {
    content: "";
    display: block;
    width: 0.2rem;
    height: 1.5rem;
    background-color: #E8566E;
    position: absolute;
    top: 60%;
    left: -1.5rem;
    transform: translateY(-50%) rotate(145deg);
}

#spring2024-container .hero-caption span::after {
    content: "";
    display: block;
    width: 0.2rem;
    height: 1.5rem;
    background-color: #E8566E;
    position: absolute;
    top: 60%;
    right: -1.5rem;
    transform: translateY(-50%) rotate(-145deg);
}

#spring2024-container .hero-headding {
    margin-top: 1.5rem;
}

#spring2024-container .hero-headding img {
    width: 82%;
    aspect-ratio: 308/180;
}

#spring2024-container .character {
    text-align: center;
    margin-top: 0.8rem;
}

#spring2024-container .character img {
    width: 90%;
    aspect-ratio: 342/201;
}

#hero-area .campaign-info {
    text-align: center;
    margin: 0 auto;
}

.campaign-info .info-inner {
    display: inline-block;
}

#hero-area .campaign-info dt {
    font-size: 1.2rem;
    background-color: #374190;
    color: #FFF000;
    margin-right: 1rem;
}

#hero-area .campaign-info dd {
    font-size: 1.3rem;
    letter-spacing: 0.08em;
    text-align: left;
}

#hero-area .campaign-info dd span {
    font-size: 2.2rem;
    margin: 0.15rem;
}

#spring2024-container .present {
    width: 90%;
    margin: 5.2rem auto 0;
    border-radius: 1.6rem;
    border: 4px solid #86CBBF;
    position: relative;
    background-color: #FFFFFF;
}

#spring2024-container .present .title {
    text-align: center;
    position: relative;
}

#spring2024-container .present .title::before {
    content: "";
    width: 23.3rem;
    aspect-ratio: 233/43;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate3d(-50%, -50%, 0);
    background: url(../../images/present_ribbon.svg) no-repeat center top/contain;
    z-index: 1;
}

#spring2024-container .present .title span {
    width: 100%;
    font-size: 1.4rem;
    line-height: 1.4rem;
    color: #FFFFFF;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate3d(-50%, -75%, 0);
    z-index: 2;
}

#spring2024-container .present .title em {
    color: #FFF000;
    font-style:normal;
}

#spring2024-container .present .item-img {
    width: 95%;
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 3.2rem auto 1.2rem;
}

#spring2024-container .present .item-img .prize_a {
    width: 57.7%;
    margin-right: 1rem;
}

#spring2024-container .present .item-img .prize_b {
    width: 37%;
}

#spring2024-container .present .flex {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 0.8rem;
}

#spring2024-container .present .flex.all-present-info {
    margin-bottom: 1.6rem;
}

#spring2024-container .present .flex img {
    display: inline-block;
    margin-right: 0.4rem;
}

#spring2024-container .present p {
    font-size: 1.2rem;
    line-height: 1.2rem;
    letter-spacing: 0;
    color: #0D9EA7;
}

#spring2024-container .present-about-section {
    padding: 7rem 0 4rem;
    background-color: #FBEEA5;
    position: relative;
}

#spring2024-container .present-about-section::before {
    content: "";
    display: block;
    width: 30rem;
    aspect-ratio: 324/143;
    position: absolute;
    top: 0;
    left: 50%;
    transform: translate3d(-50%, -60%, 0);
    background: url(../../images/start_character.png) no-repeat center top/contain;
}

#spring2024-container .present-about-section .adjust {
    margin: 0 1.85rem;
}

#spring2024-container .present-about-section .title {
    font-size: 2.4rem;
    line-height: 1.6;
    text-align: center;
    font-weight: 900;
}

#spring2024-container .present-about-section .description {
    font-size: 1.4rem;
    line-height: 2.6rem;
    letter-spacing: 0;
    text-align: center;
    margin-top: 2.4rem;
    font-weight: 700;
}

#spring2024-container .present-about-section .campaign-info {
    margin: 4rem 0.9rem 0;
}

#spring2024-container .present-about-section .campaign-info dt {
    background-color: #ED3E4E;
    color: #FFFFFF;
}

#spring2024-container .present-about-section .campaign-info dd {
    font-weight: 700;
}

#spring2024-container .present-about-section .note {
    font-size: 1.2rem;
    line-height: 1.7;
    margin-top: 1.6rem;
    text-align: left;
    letter-spacing: 0.04em;
}

#spring2024-container .present-area {
    margin-top: 5.5rem;
}

#spring2024-container .present-list-item {
    position: relative;
    margin: 0 1.7rem;
    position: relative;
}

#spring2024-container .present-list-item + .present-list-item {
    margin-top: 3.5rem;
}

#spring2024-container .present-list-item .prize {
    width: 30%;
    aspect-ratio: 106/101;
    position: absolute;
    top: -1.9rem;
    left: -3.2rem;
    transform: translate3d(0, 0, 0);
    z-index: 10;
}

#spring2024-container .present-list-item .prize img {
    width: 100%;
}

#spring2024-container .present-list-item-card {
    border: 4px solid #374190;
    border-radius: 1.6rem;
    overflow: hidden;
    position: relative;
}

#spring2024-container .present-list-item-card .head {
    background-color: #374190;
    color: #FFFFFF;
    text-align: right;
    padding: 1.3rem 1.6rem 1.6rem;
}

#spring2024-container .present-list-item-card .number-of-people {
    font-size: 2.5rem;
    line-height: 2.2rem;
    letter-spacing: 0;
    position: relative;
}

#spring2024-container .present-list-item-card .number-of-people::before {
    content: "・・・・・・・・・・・・・・・・・・・・・・・・";
    font-size: 1.2rem;
    display: block;
    position: absolute;
    top: 50%;
    right: 0;
    transform: translate3d(-50%, -50%, 0);
}

.number-of-people small {
    font-size: 1.4rem;
    line-height: 1.4rem;
    margin-left: 0.2rem;
}

#spring2024-container .present-list-item-card .content {
    padding: 2rem 1.5rem 2.5rem;
    background-color: #FFFFFF;
    text-align: center;
}

#spring2024-container .present-list-item-card .content .item-name {
    font-size: 2rem;
    line-height: 1.6;
    font-weight: 900;
}

#spring2024-container .present-list-item-card .content figure {
    width: 80%
    aspect-ratio: 242/136;
    margin-top: 2rem;
}

#spring2024-container .present-list-item-card .content .caption {
    font-size: 1.2rem;
    line-height: 1.7;
    letter-spacing: 0;
    text-align: left;
    font-weight: 700;
    margin: 2rem 0.5rem 0;
}

#spring2024-container .present-list-item-card .content .note {
    font-size: 1rem;
    line-height: 2rem;
    letter-spacing: 0;
    text-align: left;
    margin-top: 0.4rem;
}

#spring2024-container .present-list-item .rounded-corners {
    display: block;
    position: absolute;
    top: 0;
    left: 50%;
    transform: translate3d(-50%, -50%, 0);
    z-index: 8;
}
#spring2024-container .present-list-item + .present-list-item.all-present {
    margin-top: 5.4rem;
}

#spring2024-container .all-present .present-list-item-card .content .item-name {
    margin-top: 1.7rem;
}

#spring2024-container .all-present .present-list-item-card .content .note {
    display: inline-block;
    margin: 1.3rem auto 0;
}

#spring2024-container .present-list-item .rounded-corners .title {
    font-size: 1.5rem;
    line-height: 1.5rem;
    color: #FFFFFF;
    padding: 1.3rem 2.3rem;
    border-radius: 5rem;
    text-align: center;
    background-color: #374190;
    font-weight: 500;
}

#spring2024-container .present-area .note-area {
    margin-top: 3.5rem;
}

#spring2024-container .present-area .note-area strong {
    font-size: 1.4rem;
    line-height: 2.2;
    letter-spacing: 0.08em;
}

#spring2024-container .present-area .note-area span {
    display: block;
    font-size: 1rem;
    line-height: 1.75;
    margin-top: 0.4rem;
    letter-spacing: 0;
}

#spring2024-container .bg-decoration {
    position: relative;
}

#spring2024-container .bg-decoration::before {
    content: "";
    display: block;
    aspect-ratio: 94/225;
    width: 100%;
    position: absolute;
    top: 0;
    left: 0;
    background: url(../../images/hero_bg_spring.svg) no-repeat center top/cover;
    z-index: -1;
}
