@charset "UTF-8";

/* Reset & Base */
*,
*::before,
*::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    scroll-behavior: smooth;
}

body {
    font-family:
        "Yu Gothic",
        "游ゴシック",
        "YuGothic",
        "游ゴシック体",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Kaku Gothic ProN",
        "Hiragino Sans",
        "Meiryo",
        sans-serif;
    color: #1A2A3A;
    margin-bottom: min(18.54vw, 139px);
}

img {
    width: 100%;
    height: 100%;
}

main {
    max-width: min(100.00vw, 750px);
    margin: 0 auto;
}


.pc_bg {
    position: fixed;
    top: 0;
    left: 0;
    z-index: -1;
    width: 100vw;
    height: 100vh;
}

.fixed_box {
    position: fixed;
    bottom: 0;
    left: 50%;
    z-index: 10;
    display: flex;
    align-items: center;
    justify-content: center;
    max-width: 750px;
    width: 100%;
    height: auto;
    padding: min(2.67vw, 20px) min(4vw, 30px);
    background-color: #fff;
    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -moz-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    -o-transform: translateX(-50%);
}
.fixed_card {
    display: grid;
    width: min(12.16vw, 91.2px);
    height: auto;
    margin-right: min(5.34vw, 40px);
    box-shadow: 0 min(0.4vw, 3px) min(2vw, 15px) rgba(0, 0, 0, 0.15);
}
.fixed_cta {
    display: grid;
    width: min(56.94vw, 427px);
    height: auto;
    box-shadow: min(0.27vw, 2px) min(0.27vw, 2px) min(1.2vw, 9px) rgba(0, 0, 0, 0.1);
    border-radius: 1000px;
    -webkit-border-radius: 1000px;
    -moz-border-radius: 1000px;
    -ms-border-radius: 1000px;
    -o-border-radius: 1000px;
}

@media only screen and (min-width: 750px) {
    main {
        box-shadow: 0 0 20px rgba(0, 0, 0, 0.2);
    }
}

/* fv */
.fv_img {
    display: grid;
}


/* campaign */
.campaign {
    position: relative;
}

.campaign_img {
    display: grid;
}

.campaign_content {
    position: absolute;
    bottom: min(9.33vw, 70px);
    left: 50%;
    max-width: min(93.33vw, 700px);
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    font-family:
        "Yu Mincho",
        "游明朝",
        "YuMincho",
        "游明朝体",
        "Hiragino Mincho ProN",
        "Hiragino Mincho Pro",
        "MS PMincho",
        "MS Mincho",
        serif;
    ;
    transform: translateX(-50%);
}

.campaign_label {
    background-image: linear-gradient(90deg, rgba(210, 189, 79, 1), rgba(237, 217, 107, 1) 50%, rgba(210, 189, 79, 1));
    font-size: min(5.33vw, 40px);
    font-weight: 400;
    padding: 2px min(6.00vw, 45px);
    position: relative;
    z-index: 2;
    box-shadow: 0 2px min(0.53vw, 4px) rgba(0, 0, 0, 0.1);
    letter-spacing: 0.1em;
}

.campaign_link {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: auto;
    background-image: linear-gradient(270deg, rgba(253, 168, 78, 1), rgba(229, 110, 25, 1));
    text-decoration: none;
    color: #fff;
    padding-top: min(6.67vw, 50px);
    padding-bottom: min(6.67vw, 50px);
    margin-top: max(-5.33vw, -40px);
    border: min(0.67vw, 5px) solid #fff;
    box-shadow: 0 min(0.53vw, 4px) min(0.80vw, 6px) rgba(0, 0, 0, 0.1);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    border-radius: min(13.33vw, 100px);
    -webkit-border-radius: min(13.33vw, 100px);
    -moz-border-radius: min(13.33vw, 100px);
    -ms-border-radius: min(13.33vw, 100px);
    -o-border-radius: min(13.33vw, 100px);
}

.campaign_link:hover {
    transform: translateY(-2px);
    box-shadow: 0 min(0.80vw, 6px) min(1.07vw, 8px) rgba(0, 0, 0, 0.15);
}

.campaign_text {
    font-family: "Yu Mincho", "游明朝", "YuMincho", "游明朝体", serif;
    font-size: min(5.07vw, 38px);
    font-weight: 400;
    line-height: 1;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
}

.campaign_text .highlight {
    color: #F8F003;
}

.campaign_icon {
    position: absolute;
    right: min(4.00vw, 30px);
    top: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    width: min(5.33vw, 40px);
    height: min(5.33vw, 40px);
    background-color: #fff;
    border-radius: 50%;
    margin-left: min(2.67vw, 20px);
    transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    -moz-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    -o-transform: translateY(-50%);
}

.campaign_icon::after {
    content: '';
    display: block;
    width: min(1.60vw, 12px);
    height: min(1.60vw, 12px);
    border-top: 3px solid #F89F34;
    border-right: 3px solid #F89F34;
    transform: rotate(45deg);
    margin-left: -3px;
}

/* select */
.select {
    background-image: url(../img/background1.webp);
    background-size: cover;
    background-position: center top;
    padding: min(10.00vw, 75px) min(2.67vw, 20px) min(8.00vw, 60px);
    color: #fff;
    text-align: center;
}

.select_inner {
    max-width: min(92.00vw, 690px);
    margin: 0 auto;
}

.select_title {
    position: relative;
    /* margin-bottom: min(2.67vw, 20px); */
    height: min(8.00vw, 60px);
    display: flex;
    justify-content: center;
    align-items: center;
}

.select_title_en {
    position: absolute;
    top: max(-10.00vw, -75px);
    left: 50%;
    transform: translateX(-50%);
    font-size: min(15.99vw, 119.93px);
    font-weight: 400;
    line-height: 1;
    color: rgba(255, 255, 255, 0.15);
    z-index: 1;
}

.select_title_ja {
    position: relative;
    font-family: "Yu Mincho", "游明朝", "YuMincho", "游明朝体", serif;
    font-size: min(8.00vw, 60px);
    font-weight: 400;
    color: #DBCB7A;
    z-index: 2;
    text-shadow: 0 2px min(0.53vw, 4px) rgba(0, 0, 0, 0.5);
}

.select_divider {
    width: min(10.67vw, 80px);
    height: 1px;
    background-color: rgba(255, 255, 255, 1);
    margin: min(6.67vw, 50px) auto min(7.73vw, 58px);
}

.select_lead {
    font-size: min(4.27vw, 32px);
    line-height: min(6.83vw, 51.2px);
    margin-bottom: min(10.93vw, 82px);
    font-family: "Yu Mincho", "游明朝", "YuMincho", "游明朝体", serif;
}

.select_img {
    margin-bottom: min(5.33vw, 40px);
    overflow: hidden;
}

.select_desc {
    font-size: min(4.27vw, 32px);
    line-height: min(6.83vw, 51.2px);
    margin-bottom: min(5.33vw, 40px);
    font-family: "Yu Gothic", "游ゴシック", "YuGothic", "游ゴシック体", sans-serif;
}

.select_desc p+p {
    margin-top: min(2.67vw, 20px);
}

.select_gold_box {
    background-image: url(../img/background2.webp);
    background-size: cover;
    background-position: center;
    padding: min(5.33vw, 40px) min(2.67vw, 20px);
    font-family: "Yu Mincho", "游明朝", "YuMincho", "游明朝体", serif;
    border-radius: min(0.53vw, 4px);
    box-shadow: 0 min(0.53vw, 4px) min(1.33vw, 10px) rgba(0, 0, 0, 0.3);
    position: relative;
    overflow: hidden;
}

.select_gold_text {
    color: #1A2A3A;
    font-size: min(4.27vw, 32px);
    line-height: min(6.83vw, 51.2px);
}

/* problem */
.problem {
    background-image: url(../img/background3.webp);
    background-size: cover;
    background-position: center top;
    padding: min(10.67vw, 80px) 0px min(5.33vw, 40px);
    position: relative;
    overflow: hidden;
}

.problem_inner {
    position: relative;
}

.problem_title {
    text-align: center;
    margin-bottom: min(5.33vw, 40px);
    position: relative;
}

.problem_title_en {
    display: block;
    font-size: min(15.99vw, 119.93px);
    color: rgba(255, 255, 255, 0.4);
    position: absolute;
    top: max(-10.67vw, -80px);
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
}

.problem_title_ja {
    position: relative;
    font-family: "Yu Mincho", "游明朝", "YuMincho", "游明朝体", serif;
    font-size: min(8.00vw, 60px);
    line-height: min(12.00vw, 90px);
    z-index: 3;
}

.problem_img {
    position: absolute;
    top: max(-9.33vw, -70px);
    right: 0px;
    width: min(26.67vw, 200px);
    z-index: 2;
}

.problem_list_container {
    max-width: min(92.00vw, 690px);
    margin: 0 auto;
    background: #fff;
    padding: min(6.13vw, 46px) min(7.07vw, 53px);
    box-shadow: 0 min(0.53vw, 4px) min(1.33vw, 10px) rgba(0, 0, 0, 0.1);
    position: relative;
    z-index: 4;
    margin-bottom: min(5.33vw, 40px);
}

.problem_list {
    list-style: none;
}

.problem_list li {
    display: flex;
    align-items: center;
    padding: min(2.67vw, 20px) 0;
    border-bottom: 1px dotted #ccc;
}

.problem_list li:last-child {
    border-bottom: none;
}

.problem_check {
    display: flex;
    align-items: center;
    justify-content: center;
    width: min(4.00vw, 30px);
    min-width: min(4.00vw, 30px);
    margin-right: min(2.93vw, 22px);
}

.problem_text {
    font-size: min(4.27vw, 32px);
    line-height: min(6.83vw, 51.2px);
}

.problem_footer {
    text-align: center;
    font-size: min(4.27vw, 32px);
    line-height: min(6.83vw, 51.2px);
}

/* reason */
.reason {
    background-color: #AFC7D8;
    padding: min(10.67vw, 80px) 0px;
    text-align: center;
}

.reason_header {
    margin-bottom: min(5.33vw, 40px);
}

.reason_header_sub {
    display: inline-block;
    background-image: linear-gradient(90deg, rgba(26, 42, 58, 1), rgba(49, 79, 109, 1) 50%, rgba(26, 42, 58, 1));
    font-family: "Yu Mincho", "游明朝", "YuMincho", "游明朝体", serif;
    color: #fff;
    font-size: min(5.33vw, 40px);
    padding: min(0.53vw, 4px) min(2.93vw, 22px);
    margin-bottom: min(2.67vw, 20px);
}

.reason_header_title {
    font-family: "Yu Mincho", "游明朝", "YuMincho", "游明朝体", serif;
    font-size: min(6.67vw, 50px);
    line-height: min(10.67vw, 80px);
}

.reason_content {
    max-width: min(92.00vw, 690px);
    margin: 0 auto;
}

.reason_item {
    position: relative;
    padding-top: min(5.33vw, 40px);
    /* Space for label overlap */
}

.reason_item:nth-child(n+2) {
    margin-top: min(10.67vw, 80px);
}

.reason_label {
    position: absolute;
    top: 0;
    left: max(-4.00vw, -30px);
    /* Hangs off the left slightly */
    background-image: linear-gradient(90deg, rgba(210, 189, 79, 1), rgba(251, 238, 179, 1) 50%, rgba(210, 189, 79, 1));
    font-family: 'Alex Brush', cursive;
    font-size: min(6.67vw, 50px);
    padding: min(1.60vw, 12px) min(8.13vw, 61px);
    z-index: 2;
    box-shadow: 0 min(0.53vw, 4px) min(0.80vw, 6px) rgba(0, 0, 0, 0.2);
}

.reason_img {
    width: 100%;
    margin-bottom: 0;
    line-height: 0;
}

.reason_body {
    background: #fff;
    padding: min(4.67vw, 35px) min(3.33vw, 25px) min(10.67vw, 80px);
    text-align: center;
}

.reason_title {
    margin-bottom: min(4.00vw, 30px);
    color: #C73860;
    font-weight: bold;
}

.reason_title_sub {
    display: block;
    font-size: min(5.33vw, 40px);
    margin-bottom: min(2.67vw, 20px);
}

.reason_title_main {
    display: block;
    font-size: min(5.33vw, 40px);
}

.reason_divider {
    width: min(18.13vw, 136px);
    height: 1px;
    background-color: #000000;
    margin: 0 auto min(5.33vw, 40px);
}

.reason_desc {
    max-width: min(81.33vw, 610px);
    margin: 0 auto;
    font-size: min(4.27vw, 32px);
    line-height: min(6.83vw, 51.2px);
    text-align: left;
    display: inline-block;
}

.reason_item:last-child .reason_desc {
    max-width: min(83.33vw, 625px);
}

.reason_list_box {
    border: 1px solid #000000;
    padding: min(3.20vw, 24px) min(10.40vw, 78px);
    display: inline-block;
    width: 100%;
    max-width: min(72.53vw, 544px);
    margin-top: min(5.33vw, 40px);
    margin-bottom: min(5.33vw, 40px);
}

.reason_list {
    text-align: left;
    list-style: none;
    display: inline-block;
}

.reason_list li {
    font-size: min(4.27vw, 32px);
    line-height: min(6.83vw, 51.2px);
    margin-bottom: min(0.53vw, 4px);
}

.reason_list li:last-child {
    margin-bottom: 0;
}

.reason_desc_bottom {
    margin: 0 auto;
    font-size: min(4.27vw, 32px);
    line-height: min(6.83vw, 51.2px);
    text-align: left;
    margin-bottom: min(5.33vw, 40px);
    display: inline-block;
}

.reason_note {
    font-size: min(2.67vw, 20px);
    line-height: min(4.27vw, 32px);
    text-align: left;
    display: inline-block;
    width: 100%;
}

.reason_check_list_container {
    max-width: min(79.20vw, 594px);
    margin: min(5.33vw, 40px) auto;
}

.reason_check_list {
    list-style: none;
    text-align: left;
}

.reason_check_list li {
    display: flex;
    align-items: center;
    margin-bottom: min(3.20vw, 24px);
}

.reason_check_list li:last-child {
    margin-bottom: 0;
}

.reason_check_icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: min(4.00vw, 30px);
    min-width: min(4.00vw, 30px);
    margin-right: min(2.93vw, 22px);
}

.reason_check_text {
    font-size: min(4.27vw, 32px);
    line-height: min(6.83vw, 51.2px);
    font-weight: bold;
}

/* compare */
.compare {
    background-image: url(../img/background4.webp);
    background-size: cover;
    background-position: center;
    padding: min(8.00vw, 60px) 0 min(10.67vw, 80px);
    text-align: center;
}

.compare_inner {
    max-width: min(92.00vw, 690px);
    margin: 0 auto;
}

.compare_header {
    margin-bottom: min(6.00vw, 45px);
    position: relative;
}

.compare_title_en {
    font-size: min(15.99vw, 119.93px);
    font-weight: 400;
    line-height: 1;
    color: rgba(65, 84, 99, 0.05);
    position: absolute;
    top: max(-9.33vw, -70px);
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
}

.compare_title_sub {
    font-family: "Yu Mincho", "游明朝", "YuMincho", "游明朝体", serif;
    font-size: min(8.00vw, 60px);
    margin-bottom: min(2.00vw, 15px);
    position: relative;
    z-index: 2;
}

.compare_title_main {
    font-family: "Yu Mincho", "游明朝", "YuMincho", "游明朝体", serif;
    font-size: min(8.00vw, 60px);
    font-weight: 400;
    position: relative;
    z-index: 2;
}

.compare_table {
    margin-bottom: min(10.67vw, 80px);
}

.compare_table img {
    width: 100%;
    box-shadow: 0 min(0.53vw, 4px) min(1.33vw, 10px) rgba(0, 0, 0, 0.1);
}

.compare_message_box {
    color: #fff;
    margin-bottom: min(5.33vw, 40px);
    text-align: center;
}

.compare_message_top {
    display: inline-block;
    background-image: linear-gradient(90deg, rgba(26, 42, 58, 1), rgba(49, 79, 109, 1) 50%, rgba(26, 42, 58, 1));
    font-size: min(6.00vw, 45px);
    padding: min(1.07vw, 8px) min(5.33vw, 40px);
    margin-bottom: min(2.67vw, 20px);
}

.compare_message_main {
    display: inline-block;
    background-image: linear-gradient(90deg, rgba(26, 42, 58, 1), rgba(49, 79, 109, 1) 50%, rgba(26, 42, 58, 1));
    font-size: min(6.00vw, 45px);
    padding: 1px min(5.33vw, 40px);
}

.compare_text {
    font-size: min(4.27vw, 32px);
    line-height: min(6.83vw, 51.2px);
}

.marker {
    background: linear-gradient(transparent 50%, #E9E2BF 50%);
    padding: 0 min(0.67vw, 5px);
    font-weight: bold;
}

.compare_footer {
    background-image: linear-gradient(90deg, rgba(26, 42, 58, 1), rgba(49, 79, 109, 1) 50%, rgba(26, 42, 58, 1));
    color: #fff;
    padding: min(5.87vw, 44px) min(4.27vw, 32px) min(10.67vw, 80px);
    margin-top: min(8.93vw, 67px);
}

.compare_footer_message {
    font-family: "Yu Mincho", "游明朝", "YuMincho", "游明朝体", serif;
    font-size: min(5.33vw, 40px);
    font-style: italic;
    line-height: 1.8;
    margin-bottom: min(5.33vw, 40px);
    color: #DBCB7A;
}

.gold_text_large {
    font-size: min(8.33vw, 62.44px);
}

.compare_footer_img {
    width: 100%;
}

.compare_footer_img img {
    width: 100%;
}

/* program */
.program {
    background-color: #AFC7D8;
    padding: min(10.67vw, 80px) 0;
    text-align: center;
}

.program_header {
    margin-bottom: min(11.47vw, 86px);
    position: relative;
}

.program_title_en {
    font-size: min(15.99vw, 119.93px);
    font-weight: 400;
    line-height: 1;
    color: rgba(255, 255, 255, 0.31);
    position: absolute;
    top: max(-9.33vw, -70px);
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
}

.program_title_ja {
    font-family: "Yu Mincho", "游明朝", "YuMincho", "游明朝体", serif;
    font-size: min(8.00vw, 60px);
    position: relative;
    z-index: 2;
    font-weight: 400;
}

.program_list {
    max-width: min(92.00vw, 690px);
    margin: 0 auto;
}

.program_item {
    background: #fff;
    margin-bottom: min(16.13vw, 121px);
    position: relative;
    border-bottom: min(3.87vw, 29px) solid #1A2A3A;
    box-shadow: 0 min(0.53vw, 4px) min(1.33vw, 10px) rgba(0, 0, 0, 0.1);
}

.program_item:last-child {
    margin-bottom: 0px;
}

.program_label {
    position: absolute;
    top: max(-5.33vw, -40px);
    left: 50%;
    transform: translateX(-50%);
    background-image: linear-gradient(90deg, rgba(210, 189, 79, 1), rgba(251, 238, 179, 1) 50%, rgba(210, 189, 79, 1));
    font-family: "Yu Mincho", "游明朝", "YuMincho", "游明朝体", serif;
    font-size: min(5.87vw, 44px);
    line-height: min(5.87vw, 44px);
    padding: min(2.40vw, 18px) min(4.00vw, 30px);
    z-index: 2;
    white-space: nowrap;
    /* box-shadow: 0 min(0.53vw, 4px) min(0.80vw, 6px) rgba(0, 0, 0, 0.2); */
}

.program_img {
    width: 100%;
    line-height: 0;
}

.program_img img {
    width: 100%;
}

.program_body {
    padding: min(5.33vw, 40px) min(4.00vw, 30px);
    text-align: center;
}

.program_title {
    font-size: min(5.33vw, 40px);
    line-height: min(8.53vw, 64px);
    margin-bottom: min(5.33vw, 40px);
    font-weight: bold;
}

.program_divider {
    width: min(10.67vw, 80px);
    height: 1px;
    background-color: #000;
    margin: 0 auto min(5.33vw, 40px);
}

.program_desc {
    font-size: min(4.27vw, 32px);
    line-height: min(6.40vw, 48px);
    text-align: left;
}

/* which_part */
.which_part_inner {
    position: relative;
}

.which_part_bg {
    display: grid;
}

.which_part_title {
    position: absolute;
    top: min(9.07vw, 68px);
    left: 50%;
    width: 100%;
    font-family: "Yu Mincho", "游明朝", "YuMincho", "游明朝体", serif;
    font-size: min(8.00vw, 60px);
    line-height: min(12.00vw, 90px);
    font-weight: 400;
    text-align: center;
    transform: translateX(-50%);
}

.which_part_message_box {
    position: absolute;
    bottom: min(49.20vw, 369px);
    left: 50%;
    width: min(92.00vw, 690px);
    height: auto;
    padding: min(6.00vw, 45px) 0;
    border: 1px solid #1A2A3A;
    transform: translateX(-50%);
}

.which_part_message {
    font-family: "Yu Mincho", "游明朝", "YuMincho", "游明朝体", serif;
    font-size: min(5.33vw, 40px);
    line-height: min(8.53vw, 64px);
    text-align: center;
}

.which_part_line {
    position: absolute;
    bottom: max(-6.67vw, -50px);
    left: 50%;
    width: 1px;
    height: min(9.33vw, 70px);
    background-color: #000;
    transform: translateX(-50%);
}

.which_part_cta_container {
    position: relative;
    bottom: min(12.53vw, 94px);
    left: 50%;
    transform: translateX(-50%);
}

.which_part_cta_container .campaign_content {
    bottom: 0;
}

/* reserve */
.reserve {
    background-image: url(../img/background6.webp);
    background-size: 100% 100%;
    background-repeat: repeat;
    background-color: #fff;
    padding: min(10.67vw, 80px) 0 min(15.73vw, 118px);
    text-align: center;
}

.reserve_inner {
    max-width: min(92.00vw, 690px);
    margin: 0 auto;
}

.reserve_header {
    margin-bottom: min(5.33vw, 40px);
    position: relative;
}

.reserve_title_en {
    font-size: min(15.99vw, 119.93px);
    font-weight: 400;
    line-height: 1;
    color: rgba(221, 227, 232, 0.45);
    position: absolute;
    top: max(-9.33vw, -70px);
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
    z-index: 1;
    -webkit-transform: translateX(-50%);
    -moz-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    -o-transform: translateX(-50%);
}

.reserve_title_ja {
    font-family: "Yu Mincho", "游明朝", "YuMincho", "游明朝体", serif;
    font-size: min(8.00vw, 60px);
    position: relative;
    z-index: 2;
    font-weight: 400;
}

.reserve_text {
    font-size: min(4.27vw, 32px);
    line-height: min(6.83vw, 51.2px);
    margin-bottom: min(10.67vw, 80px);
}

/* voice */
.voice {
    background-image: url(../img/background7.webp);
    background-size: cover;
    background-position: top center;
    padding: min(12.00vw, 90px) 0 min(17.20vw, 129px);
}

.voice_inner {
    max-width: min(92.00vw, 690px);
    margin: 0 auto;
}

.voice_header {
    margin-bottom: min(5.33vw, 40px);
    position: relative;
    text-align: center;
}

.voice_title_en {
    font-size: min(15.99vw, 119.93px);
    font-weight: 400;
    line-height: 1;
    color: rgba(255, 255, 255, 0.41);
    position: absolute;
    top: max(-9.33vw, -70px);
    left: 50%;
    width: 100%;
    z-index: 1;
    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -moz-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    -o-transform: translateX(-50%);
}

.voice_title_ja {
    font-family: "Yu Mincho", "游明朝", "YuMincho", "游明朝体", serif;
    font-size: min(8.00vw, 60px);
    position: relative;
    z-index: 2;
    font-weight: 400;
}

.voice_list {
    display: flex;
    flex-direction: column;
    gap: min(8.00vw, 60px);
}



.voice_item_top {
    display: flex;
    align-items: flex-end;
    /* Align bottom of image and text block */
    margin-bottom: min(2.13vw, 16px);
}

.voice_item.reverse .voice_item_top {
    justify-content: start;
    /* Or just reverse order in HTML which handled */
}

.voice_img_box {
    width: min(23.60vw, 177px);
    flex-shrink: 0;
    margin-right: min(7.47vw, 56px);
}

.voice_item.reverse .voice_img_box {
    margin-right: 0;
    margin-left: min(6.93vw, 52px);
}

.voice_img_box img {
    width: 100%;
}

.voice_meta {
    padding-bottom: min(1.33vw, 10px);
}

/* .voice_item.reverse .voice_meta {
    text-align: right;
} */

.voice_number {
    font-family: "Yu Mincho", "游明朝", "YuMincho", "游明朝体", serif;
    font-size: min(10.67vw, 80px);
    line-height: 1;
    display: block;
    margin-bottom: min(1.33vw, 10px);
}

.voice_course {
    display: inline-block;
    background-color: #6A89A2;
    color: #fff;
    padding: min(0.67vw, 5px) min(1.87vw, 14px);
    font-size: min(5.33vw, 40px);
    margin-bottom: min(2.13vw, 16px);
}

.voice_profile {
    font-size: min(4.27vw, 32px);
}

.voice_divider {
    height: 1px;
    background-color: #000;
    width: 100%;
    margin-bottom: min(2.13vw, 16px);
}

.voice_text {
    font-size: min(4.27vw, 32px);
    line-height: min(6.83vw, 51.2px);
}

.highlight_red {
    color: #C73860;
    font-weight: bold;
}

/* faq */
.faq {
    background-image: url(../img/background8.webp);
    background-size: cover;
    /* Or maybe this one IS a repeating pattern? */
    background-repeat: repeat;
    padding: min(10.67vw, 80px) 0;
}

.faq_inner {
    max-width: min(92.00vw, 690px);
    margin: 0 auto;
}

.faq_header {
    text-align: center;
    margin-bottom: min(5.33vw, 40px);
    position: relative;
}

.faq_title_en {
    font-size: min(15.99vw, 119.93px);
    font-weight: 400;
    line-height: 1;
    color: rgba(65, 84, 99, 0.05);
    position: absolute;
    top: max(-9.33vw, -70px);
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
    z-index: 1;
    -webkit-transform: translateX(-50%);
    -moz-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    -o-transform: translateX(-50%);
}

.faq_title_ja {
    font-family: "Yu Mincho", "游明朝", "YuMincho", "游明朝体", serif;
    font-size: min(6.67vw, 50px);
    position: relative;
    z-index: 2;
    font-weight: 400;
}

.faq_list {
    display: flex;
    flex-direction: column;
    gap: min(5.33vw, 40px);
}

.faq_item {
    border: none;
}

.faq_summary {
    background-color: #6A89A2;
    /* Blueish gray background */
    color: #fff;
    padding: min(2.00vw, 15px) min(2.67vw, 20px);
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
    list-style: none;
    /* Hide default triangle */
}

/* Hide default triangle in WebKit */
.faq_summary::-webkit-details-marker {
    display: none;
}

.faq_q_box {
    display: flex;
    align-items: flex-start;
    gap: min(1.33vw, 10px);
}

.faq_q_text {
    font-size: min(4.27vw, 32px);
    line-height: min(6.83vw, 51.2px);
    font-weight: bold;
    text-align: left;
}

.faq_icon {
    position: relative;
    width: min(2.67vw, 20px);
    height: min(2.67vw, 20px);
    flex-shrink: 0;
}

/* Plus icon strokes */
.faq_icon::before,
.faq_icon::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    background-color: #fff;
    transform: translate(-50%, -50%);
}

.faq_icon::before {
    width: min(2.67vw, 20px);
    height: 1px;
    /* Horizontal line */
}

.faq_icon::after {
    width: 1px;
    height: min(2.67vw, 20px);
    /* Vertical line */
    transition: transform 0.3s;
}

/* When open, rotate/hide vertical line to make minus */
details[open] .faq_icon::after {
    transform: translate(-50%, -50%) rotate(90deg);
    /* Or just opacity: 0 */
    opacity: 0;
}

.faq_answer {
    background-color: #fff;
    padding: min(2.67vw, 20px);
    border: 1px solid #ccc;
    /* Maybe border is in design? */
    border-top: none;
}

.faq_answer_inner {
    display: flex;
    align-items: flex-start;
    gap: min(1.33vw, 10px);
}



.faq_a_text {
    font-size: min(4.27vw, 32px);
    line-height: min(6.83vw, 51.2px);
    text-align: left;
}

/* limited */
.limited {
    padding-bottom: min(10.67vw, 80px);
    background-color: #fff;
}

.limited_banner {
    background-image: url(../img/background2.webp);
    background-size: cover;
    background-position: center;
    padding: min(8.00vw, 60px) 0;
    text-align: center;
    margin-bottom: min(8.00vw, 60px);
}

.limited_banner_inner {
    max-width: min(80.00vw, 600px);
    margin: 0 auto;
}

.limited_banner_text_sub {
    font-family: "Yu Mincho", "游明朝", "YuMincho", "游明朝体", serif;
    font-size: min(4.27vw, 32px);
    margin-bottom: min(1.33vw, 10px);
}

.limited_banner_text_main {
    font-family: "Yu Mincho", "游明朝", "YuMincho", "游明朝体", serif;
    font-size: min(5.87vw, 44px);
    line-height: min(9.07vw, 68px);
}

.limited_content {
    max-width: min(92.00vw, 690px);
    margin: 0 auto;
    text-align: center;
}

.limited_offer_img {
    margin-bottom: min(5.33vw, 40px);
}

.limited_offer_img img {
    width: 100%;
}

.limited_text_lead {
    font-family: "Yu Mincho", "游明朝", "YuMincho", "游明朝体", serif;
    font-size: min(4.27vw, 32px);
    margin-bottom: min(8.00vw, 60px);
}

.limited_note {
    font-size: min(3.33vw, 25px);
    display: block;
    margin-top: min(0.80vw, 6px);
}

.limited_visual {
    margin-bottom: min(6.67vw, 50px);
    width: 100%;
}

.limited_visual_img {
    display: grid;
}

.limited_visual_img img {
    width: 100%;
    /* Add soft edge effect masking */
    mask-image: linear-gradient(to bottom, black 80%, transparent 100%);
    -webkit-mask-image: linear-gradient(to bottom, black 80%, transparent 100%);
}

.limited_message {
    font-family: "Yu Mincho", "游明朝", "YuMincho", "游明朝体", serif;
    font-size: min(4.27vw, 32px);
    line-height: 2;
    margin-bottom: min(6.67vw, 50px);
}

.limited_btn_container .campaign_link {
    margin-top: 0;
}

/* access */
.access {
    background-color: #AFC7D8;
    /* Dusty blue matching design */
    padding: min(10.67vw, 80px) 0;
}

.access_inner {
    max-width: min(92.00vw, 690px);
    margin: 0 auto;
}

.access_header {
    text-align: center;
    margin-bottom: min(5.33vw, 40px);
    position: relative;
}

.access_title_en {
    font-size: min(15.99vw, 119.93px);
    font-weight: 400;
    line-height: 1;
    color: rgba(221, 227, 232, 0.45);
    position: absolute;
    top: max(-9.33vw, -70px);
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
    z-index: 1;
    -webkit-transform: translateX(-50%);
    -moz-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    -o-transform: translateX(-50%);
}

.access_title_ja {
    font-family: "Yu Mincho", "游明朝", "YuMincho", "游明朝体", serif;
    font-size: min(6.67vw, 50px);
    position: relative;
    z-index: 2;
    font-weight: 400;
}

.access_content {
    text-align: center;
}

.access_logo {
    margin-bottom: min(5.33vw, 40px);
}

.access_logo img {
    max-width: 100%;
    width: min(88.13vw, 661px);
}

.access_address {
    font-family: "Yu Mincho", "游明朝", "YuMincho", "游明朝体", serif;
    font-size: min(4.27vw, 32px);
    line-height: min(6.83vw, 51.2px);
    margin-bottom: min(5.33vw, 40px);
}


.access_map iframe {
    width: 100%;
    max-width: 100%;
    vertical-align: bottom;
}