/*------------------------------
    common
------------------------------*/
:root {
    --color-red: #CC0033;
    --bg-gray: #F9F8F6;
    --bg-red: #FEEAE9;
    --text-black: #333333;
    --bg-yellow: #F9E671;
    --black: #000;
    --white: #FFF;
    --container : 1220px;
    --inner : 880px;
    --contents-padding: 0 10px;
    --sp-contents-padding: 0 20px;
    --inner-s : 780px;
}

body {
    margin: 0;
    padding: 0;
    line-height: 1.6;
    font-family: "Noto Sans JP", sans-serif;
    font-size: 14px; /* SP基準：1rem = 14px */
    font-weight: 400;
    color: var(--black);
    box-sizing: border-box;
}

@media (min-width: 768px) {
  html {
    font-size: 100%; /* PCは1rem=16px相当 */
  }
}

*, *::before, *::after {
  box-sizing: inherit;
}

img, picture, video, canvas, svg {
  display: block;
  max-width: 100%;
  height: auto;
}

h1, h2, h3, h4, h5 {
  margin: 0;
}
p {
    margin: 0;
    padding: 0;
}

img {
    width: 100%;
    max-width: 100%;
}

sup {
    font-size: .5em;
}

/*------------------------------
    layout
------------------------------*/
.wrapper {
    overflow: hidden;
}

.main {
    display: block;
    margin: 0;
    padding: 0;
}

.container {
    max-width: var(--container);
    margin: 0 auto;
    padding: var(--contents-padding);
}

.inner {
    max-width: var(--inner);
    margin: 0 auto;
    padding: var(--contents-padding);
}

.inner-s {
    max-width: var(--inner-s);
    margin: 0 auto;
    padding: var(--contents-padding);
}

/*------------------------------
    parts
------------------------------*/
a {
  transition: opacity 0.3s ease;
  color: #116BC0;
}

@media (hover: hover) and (pointer: fine) {
  a:hover { opacity: 0.7; }
}

.text-link_black {
    text-decoration: underline;
    color: var(--black);
}

.caption .item {
    display: table;
}

.caption._center .item {
    width: fit-content;
    margin: 0 auto;
}

.caption .item > span {
    display: table-cell;
    font-size: .75rem;
}
.caption .item > .mk {
    width: 15px;
}

.buttons .btn {
    max-width: 640px;
    margin: 0 auto;
    display: block;
}

.buttons p {
    margin-bottom: 9px;
}

.secondary-btn {
    max-width: 480px;
    margin: 30px auto 0;
    display: block;
}

.follower-button {
    z-index: 1000;
    position: fixed;
    bottom: 30px;
    left: 0;
    right: 0;
    max-width: 684px;
    margin: 0 auto;   
}

.marker {
    background: linear-gradient(transparent 70%, #FFF77B 70%);
}

.font-red {
    color: var(--color-red);
}

/*------------------------------
    header
------------------------------*/
.header {
    height: 80px;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
}


/*------------------------------
    footer
------------------------------*/
.footer .caption {
    padding-top: 242px;
}

.footer .footer-link {
    margin-top: 22px;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    gap: 6px;
} 

.footer .footer-link a {
    color: var(--black);
    text-align: center;
    font-size: 1rem;
} 

.copy {
    padding: 27px;
    margin-top: 36px;
    color:var(--white);
    text-align: center; 
    font-size: .843rem;
    background: var(--text-black);
}

/*------------------------------
    section
------------------------------*/
.kv {
    background: #FFE687;
}

.mv {
    background: #BAB2D7;
}

.section1 {
    padding: 40px 0;
}
.section1 .catch {
    text-align: center;
    font-size: 2.1875rem;
    font-weight: 700;
}
.section1 .catch > span {
    color: var(--color-red);
    font-size: 2.5625rem;
    font-weight: 700;
}
.section1 .catch + .img {
    margin-top: 31px;
}
.section1 .img + .text {
    margin-top: 29px;
    font-size: 1.25rem;
    font-weight: 500;
}
.section1 .text + .caption {
    margin-top: 14px;
}
.section2 {
    padding-top: 34px;
}
.section2 .vis {
    padding-top: 34px;
    background: #D0121B;
}
.section2 .vis img {
    margin-top: -68px;
}

.section2 .col1-wrap {
    position: relative;
    padding-bottom: 33px;
    margin-bottom: 63.5px;
    border-top: 6px solid #231815;
    background: var(--bg-yellow);
}

.section2 .col1-wrap::after {
    width: 228px;
    position: absolute;
    left: 0;
    right: 0;
    bottom: -63.5px;
    margin: 0 auto;
    height: 63.5px;
    content: '';
    display: block;
    background: url(../../../images/lp/anshin-campaign2602/obj_triangle.svg) no-repeat center center;
    background-size: 100% 100%;
}

.section2 .col1 hgroup {
   max-width: 563px;
   margin: -73px auto 0;
}
.section2 .col1 .caption {
    padding: var(--contents-padding);
    max-width: 697px;
    margin: 11px auto 0;
}
.section2 .col1 .column {
    padding: var(--contents-padding);
    max-width: 505px;
    margin: 24px auto 0;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    gap: 6px;
}
.section2 .col1 .column .icon {
    width: 40px;
    height: auto;
}
.section2 .col1 .column .text {
    text-align: center;
    color: var(--text-black);
    font-size: 1.593rem;
    font-weight: 700;
}

.section2 .col2 {
    padding: 30px 0 60px;
}

.section2 .col2 .catch {
    margin: 0 auto;
    max-width: 395px;
}

.section2 .col2 .column {
    margin: 15px auto 0;
    max-width: 503px;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    gap: 15px;
}

.section2 .col2 .buttons {
    margin-top: 30px;
}
.section2 .col2 .buttons > p {
    color: var(--text-black);
    text-align: center;
    font-size: 1.9375rem;
    font-weight: 700;
}
.section2 .col2 .buttons + .caption {
    margin-top: 30px;
}

.section3 {
    padding-bottom: 68px;
    background: linear-gradient(
    to bottom,
    transparent 0 60px,
    #F9E671 60px 100%
    );
}

.section3 h2 {
    max-width: 699px;
    margin: 0 auto;
}

.section3 h2 + p {
    color: var(--text-black);
    text-align: center;
    font-size: 1.8rem;
    font-weight: 700;
    line-height: 140%;
}

.section3 .line {
    margin-top: 24px;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0;
}

.section3 .line p {
    color: var(--text-black);
    font-size: 2.43rem;
    font-weight: 700;
}

.section3 .line img {
    max-width: 234px;
}

.section3 .line + .text {
    color: var(--text-black);
    text-align: center;
    font-size: 1.5rem;
    font-weight: 700;
}

.section3 .cover {
    margin-top: 39px;
    padding: 45px 60px;
    border-radius: 7.5px;
    background: var(--white);
}

.section3 .cover > .catch {
    color: var(--text-black);
    text-align: center;
    font-size: 1.78rem;
    font-weight: 700;
}

.section3 .cover > .catch > em {
    font-style: normal;
    font-size: 1.5rem;
}

.section3 .cover > img {
    max-width: 290px;
    margin: 20px auto;
}

.section3 .cover > .text {
    text-align: center;
    color: var(--text-black);
    font-size: 1.5rem;
    font-weight: 700;
}

.section3 .card {
    max-width: 680px;
    margin: 30px auto 0;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
}

.section3 .card .item {
    text-align: center;
    padding-left: 5px;
    padding-right: 5px;
    height: 116px;
    border-radius: 4.765px;
    border: 1.191px solid #333;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-direction: column;
    background: #FFF;
}

.section3 .card .item a ,
.section3 .card .item .text {
    font-size: .68rem;
}

.section3 .card .item .text.font-bold {
    font-size: .87rem;
    font-weight: 600;
}

.section3 .card .item .head {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0;
}

.section3 .card .item .head > p {
    font-size: .87rem;
    font-weight: 600;
}

.section3 .card .item:nth-child(1) {
    padding: 6px 0 5px;
}

.section3 .card .item:nth-child(2) {
    padding: 7px 0 5px;
}

.section3 .card .item:nth-child(3) {
    padding: 17px 0 5px;
}

.section3 .card .item:nth-child(4) {
    padding: 38px 0 5px;
}

.section3 .card .item:nth-child(5) {
    padding: 37px 0 5px;
}

.section3 .card .item:nth-child(6) {
    padding: 5px 0 5px;
}

.section3 .card .item:nth-child(1) .head img {
    width: 189px;
}
.section3 .card .item:nth-child(2) .head img {
    width: 130px;
}
.section3 .card .item:nth-child(3) .head img {
    width: 104px;
}
.section3 .card .item:nth-child(4) .head img {
    width: 133px;
}
.section3 .card .item:nth-child(5) .head img {
    width: 117px;
}
.section3 .card .item:nth-child(6) .head img {
    width: 125px;
}

.section4 {
    padding: 83px 0 90px;
}

.section4 h2 {
    max-width: 463px;
    margin: 0 auto;
}
.section4 h2 + .catch {
    text-align: center;
    margin-top: 20px;
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--black, #333);
}
.section4 .catch + .info {
    text-align: center;
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--black, #333);
}
.section4 .info + .caption {
    margin-top: 6px;
}

.section4 .col {
    margin-top: 20px;
    padding: 50px 90px;
    border-radius: 8px;
    background: var(--bg-red);
}

.section4 .col h3 {
    max-width: 291px;
    margin: 0 auto;
}
.section4 .col .info {
    text-align: center;
    margin-top: 20px;
    color: var(--black, #333);
    font-size: 1.375rem;
    font-weight: 700;
}
.section4 .col .flex {
    margin-top: 17px;
    display: grid;
    grid-template-columns: repeat(6,1fr);
    gap: 8px;
}
.section4 .col .sub-tt {
    max-width: 680px;
    margin: 32px auto 0;
}
.section4 .col .sub-tt + .text {
    text-align: center;
    margin-top: 9px;
    letter-spacing: 0.8px;
    font-size: 20px;
    font-weight: 500;
    color: var(--black);
}
.section4 .col .price {
    margin-top: 8px;
    max-width: 386px;
    margin: 0 auto;
}
.section4 .col .price_2 {
    margin-top: 8px;
    max-width: 427px;
    margin: 0 auto;
}

.section4 .col .line {
    margin-top: 30px;
    gap: 11px;
    display: flex;
    justify-content: center;
    align-items: center;
}
.section4 .col .line > .img {
    width: 287px;
}
.section4 .col .line > :not(.img) {
    width: 32px;
}

.section5 h2 {
    max-width: 469px;
    margin: 0 auto;
}

.section5 .cover-text {
    z-index: 10;
    position: relative;
    margin-top: -2px;
    padding: 21px 90px;
    color:var(--white);
    text-align: center;
    font-size: 1.5rem;
    font-weight: 600;
    border-radius: 8.505px;
    background: #333D60;
}

.section5 .col {
    margin-top: 30px;
    padding: 62px;
    background: var(--bg-gray);
}
.section5 .col h3 {
    padding: 9px 10px;
    text-align: center;
    color: var(--color-red);
    font-size: 1.5rem;
    font-weight: 700;
    border-top: 3px solid var(--color-red);
    border-bottom: 3px solid var(--color-red);
}

.section5 .catch {
    text-align: center;
    margin-top: 17px;
    font-size: 1.5rem;
    font-weight: 500;
    color: var(--black);
}
.section5 img {
    max-width: 435px;
    margin: 54px auto 0;
    display: block;
}

.section5 .set .ttl {
    margin-top: 30px;
    color: var(--color-red);
    font-size: 1.5rem;
    font-weight: 700;
}
.section5 .set .text {
    margin-top: 5px;
    color: var(--black);
    font-size: 1.25rem;
}
.section6 {
    padding-top: 60px;
}
.section6 h2 {
    padding: 9px 10px;
    text-align: center;
    color: var(--color-red);
    font-size: 1.5rem;
    font-weight: 700;
    border-top: 3px solid var(--color-red);
    border-bottom: 3px solid var(--color-red);
}

.section6 .set {
    margin-top: 30px;
}
.section6 .set .ttl {
    color: var(--color-red);
    font-size: 1.125rem;
    font-weight: 700;
}
.section6 .set .text {
    margin-top: 6px;
    color: var(--black);
    font-size: 1.125rem;
}
.section6 .set .text + .text {
    margin-top: 30px;
}

/*------------------------------
    thanks-main
------------------------------*/
.thanks-main .kv-top {
    height: 50px;
    background: var(--black);
}
.thanks-main .kv-top .wrap {
    text-align: center;
    position: relative;
    padding: 0 10px;
    max-width: 700px;
    margin: 0 auto;
    height: 50px;
    display: flex;
    justify-content: center;
    align-items: center;
}
.thanks-main .kv-top .wrap .text {
    font-size: 1.3125rem;
    font-weight: 900;
    color: var(--white);
}
.thanks-main .kv-top .wrap .obj-l {
    position: absolute;
    bottom: -9px;
    left: 10px;
    max-width: 67px;
}
.thanks-main .kv-top .wrap .obj-r {
    position: absolute;
    bottom: -11px;
    right: 10px;
    max-width: 72px;
}
.thanks-main .kv {
    background:#FFE687;
}

.thanks-main .section1 {
    padding-bottom: 27px;
}

.thanks-main .section1 .box_2 {
    margin-top: 9px;
    padding: 35px 70px 50px;
    position: relative;
    border-radius: 7.5px;
    border: 4.5px solid var(--color-red);
    background: var(--white);
}

.thanks-main .section1 .box_2 .text_step_img {
    max-width: 101px;
    position: absolute;
    left: -3.5px;
    top: -3.5px;
}

.thanks-main .section1 .box_2 .text {
    width: fit-content;
    margin: 0 auto;
    color: var(--black, #333);
    font-size: 1.75rem;
    font-weight: 700;
}

.thanks-main .section1 .box_2 .col {
    padding: 30px 35px;
    margin-top: 30px;
    border-radius: 7px;
    background: #FFFADA;
}
.thanks-main .section1 .box_2 .col .line {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 17px;
}
.thanks-main .section1 .box_2 .col .line div {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 17px;
}
.thanks-main .section1 .box_2 .col-1 .line .text_img {
    max-width: 357px;
}
.thanks-main .section1 .box_2 .col-1 .line .price_img {
    max-width: 237px;
}
.thanks-main .section1 .box_2 .col-1 .thanks_btn {
    margin: 25px auto 0;
    max-width: 454px;
    display: block;
}
.thanks-main .section1 .box_2 .col-2 .line .text_img {
    max-width: 200px;
}
.thanks-main .section1 .box_2 .col-2 .line .price_img {
    max-width: 205px;
}
.thanks-main .section1 .box_2 .col-2 .thanks_btn {
    max-width: 200px;
}
.thanks-main .section4 {
    padding-top: 0;
    padding-bottom: 30px;
}
.thanks-main .section4 .inner > .text-link_black {
    color: var(--black);
    text-align: center;
    font-size: 1.5rem;
    text-align: center;
    display: block;
}
.thanks-main .section4 .col {
    margin-top: 38px;
}

.thanks-main .section4 .col .sub-tt {
    margin-top: 0;
}

.thanks-main .section4 .col h3:not(.sub-tt) {
    margin-top: 28px;
    max-width: 268px;
}
.thanks-main .section4 .col-2 h3:not(.sub-tt) {
    max-width: 200px;
}
.thanks-main .section4 .caption {
    margin-top: 10px;
}
.thanks-main + .footer .inner > img {
    max-width: 446px;
    margin: 0 auto;
}

@media (min-width: 768px) {
    .is-Pc {
        display: inline;
    }

    .is-Sp {
        display: none;
    }
}


/*------------------------------
    SP
------------------------------*/

@media (max-width: 767px) {

    .inner {
        padding: var(--sp-contents-padding);
    }

    .inner-s {
        padding: var(--sp-contents-padding);
    }
    .container {
        padding: 0;
    }
    .header {
        height: 50px;
    }
    .header img {
        width: 34vw;
    }

    .caption .item > span {
        font-size: 2.6vw;
    }

    .follower-button {
        max-width: 90%;
    }
    .buttons .btn {
        max-width: 90%;
    }
    .secondary-btn {
        max-width: 53vw;
    }
    .section1 {
        padding-bottom: 20px;
    }

    .section1 .catch {
        font-size: 5vw;
    }
    .section1 .catch > span {
        font-size: 5.8vw;
    }
    .section1 .catch + .img {
        margin-top: 15px;
    }
    .section1 .img + .text {
        font-size: 3.7vw;
    }
    .section2 .vis img {
        margin-top: -58px;
    }
    .section2 .col1 hgroup {
        margin-top: -60px;
        margin-left: -20px;
        width: 100vw;
    }
    .section2 .col1 hgroup picture {
        height: 120px;
    }
    .section2 .col1 .column .icon {
        width: 27px;
        height: 27px;
    }
    .section2 .col1 .column .text {
        font-size: 4.9vw;
    }

    .section2 .col2 .catch {
        max-width: 70%;
    }
    .section2 .col2 .buttons > p {
        font-size: 5.6vw;
    }
    .section2 .col1-wrap {
        margin-bottom: 40px;
    }
    .section2 .col1-wrap::after {
        width: 40vw;
        height: 50px;
        bottom: -50px;
    }

    .section3 {
        padding-bottom: 30px;
        overflow: hidden;
    }

    .section3 h2 {
        margin-left: -30px;
        width: 107vw;
    }
    .section3 h2 + p {
        font-size: 4.9vw;
    }
    .section3 .line p {
        font-size: 6.9vw;
    }
    .section3 .line img {
        width: 41%;
    }
    .section3 .line + .text {
        font-size: 4.2vw;
    }
    .section3 .cover {
        margin: 39px auto 0;
        padding: 17px;
    }
    .section3 .cover > .catch {
        font-size: 5vw;
    }
    .section3 .cover > .catch > em {
        font-size: 4.2vw;
    }
    .section3 .cover > img {
        max-width: 70%;
    }
    .section3 .cover > .text {
        font-size: 4.2vw;
    }
    .section3 .card {
        width: 100%;
        grid-template-columns: repeat(1, 1fr);
    }
    .section4 {
        padding: 35px 0;
    }
    .section4 h2 {
        max-width: 82%;
    }
    .section4 h2 + .catch {
        font-size: 5vw;
    }

    .section4 .catch + .info {
        font-size: 4.2vw;
    }

    .section4 .col {
        padding: 40px 20px;
    }
    .section4 .col .flex {
        grid-template-columns: repeat(3, 1fr);
        gap: 10px;
    }
    .section4 .col h3 {
        max-width: 52vw;
    }
    .section4 .col .info {
        font-size: 4.2vw;
    }
    .section4 .col .sub-tt + .text {
        text-align: left;
        font-size: 3.7vw;
    }
    .section4 .col .price {
        max-width: 68vw;
    }
    .section4 .col .line {
        flex-direction: column;
    }
    .section4 .col .line > .img {
        width: 53vw;
    }
    .section4 .col .line > :not(.img) {
        width: 17px;
    }
    .section4 .col .price_2 {
        max-width: 75vw;
    }
    .section5 h2 {
        max-width: 79vw;
    }
    .section5 img {
        margin-top: 35px;
    }
    .section5 .cover-text {
        padding-left: 30px;
        padding-right: 30px;
        font-size: 4.2vw;
    }
    .section5 .col {
        margin-top: 20px;
        padding: 20px;
    }
    .section5 .col h3 {
        padding: 5px 10px;
        font-size: 4.8vw;
    }
    .section5 .catch {
        font-size: 4.2vw;
    }
    .section5 .catch + img {
        max-width: 90%;
    }
    .section5 .set .ttl {
        font-size: 4.2vw;
    }
    .section5 .set .text {
        font-size: 3.7vw;
    }
    .section6 h2 {
        font-size: 4.8vw;
    }
    .section6 .set .ttl {
        font-size: 3.2vw;
    }
    .section6 .set .text {
        font-size: 3.2vw;
    }
    .footer .footer-link a {
        font-size: 3.2vw;
    }
    .copy {
        font-size: 2.4vw;
    }

    .thanks-main .kv-top .wrap .text {
        font-size: 4vw;
    }
    .thanks-main .kv-top .wrap .obj-l {
        max-width: 12.8vw;
        bottom: -7px;
        left: 25px;
    }
    .thanks-main .kv-top .wrap .obj-r {
        max-width: 13.7vw;
        right: 25px;
        bottom: -9px;
    }
    .thanks-main .section1 .box_2 {
        padding: 15px 23px;
        border: 3.5px solid var(--color-red);
    }
    .thanks-main .section1 .box_2 .text_step_img {
        max-width: 18vw;
    }
    .thanks-main .section1 .box_2 .text {
        text-align: center;
        font-size: 4.5vw;
    }
    .thanks-main .section1 .box_2 .col {
        margin-top: 13px;
        padding: 9px 14px;
    }
    .thanks-main .section1 .box_2 .col-1 .line {
        gap: 9px;
    }
    .thanks-main .section1 .box_2 .col-1 .line .text_img {
        max-width: 35.8vw;
    }
    .thanks-main .section1 .box_2 .col-1 .line .price_img {
        max-width: 31.8vw;
    }
    .thanks-main .section1 .box_2 .col-1 .thanks_btn {
        margin-top: 8px;
    }
    .thanks-main .section1 .box_2 .col .line div {
        flex-direction: column;
        align-items: flex-start;
        gap: 0;
    }
    .thanks-main .section1 .box_2 .col-2 .line .text_img {
        max-width: 26.6vw;
    }
    .thanks-main .section1 .box_2 .col-2 .line .price_img {
        max-width: 36.5vw;
    }
    .thanks-main .section1 .box_2 .col-2 .thanks_btn {
        max-width: 29.4vw;
    }
    .thanks-main .section4 .inner > .text-link_black {
        font-size: 3.2vw;
    }
    .thanks-main .section4 .col {
        padding: 25px 20px;
        margin-top: 18px;
    }
    .thanks-main .section4 .col h3:not(.sub-tt) {
        margin-top: 8px;
        max-width: 46.5vw;
    }
    .thanks-main .section4 .col h3:not(.sub-tt) {
        max-width: 34.5vw;
    }
    .thanks-main + .footer .inner > img {
        max-width: 79.3vw;
    }
    

    .is-Sp {
        display: inline;
    }
    .is-Pc {
        display: none;
    }
}

.tight-txt{
	font-feature-settings: "palt";
}
