/* リセットCSS */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

.fadeIn {
    opacity: 0;
    transform: translateY(5px);
    transition:
    transform 0.5s ease-in,
    opacity 0.5s ease-in;
}

.fadeIn.active {
    opacity: 1;
    transform: translateY(0);
}

div#outer {
    max-width: unset;
}

html {
    scroll-behavior: smooth;
}

/* 基本設定 */
body {
    font-family: 'Noto Sans JP', sans-serif;
line-height: 1.8;
    overflow-x: hidden;
}

img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.contents {
    width: 100vw;
    overflow-x: hidden;
}

.pc {
    display: block;
}

.sp {
    display: none;
}

/* セクション共通 */
section {
    width: 100%;
    overflow-x: hidden;
}

/* ヒーローセクション */
.hero {
    background-image: url('../images/fv.png');
    background-size: cover;
    background-position: center;
    width: 100vw;
    height: 44.583vw;
    position: relative;
}

/* アバウトセクション */
.about {
    background-color: #831419;
    width: 100vw;
    padding: 7.639vw 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2.778vw;
    position: relative;
}

.about__bg01 {
    position: absolute;
    top: 8.763vw;
    right: 3.646vw;
    width: 23.125vw;
    height: 9.678vw;
    background-image: url('../images/about-bg01.png');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.about__bg02 {
    position: absolute;
    top: 2.867vw;
    right: 12.786vw;
    width: 18.019vw;
    height: 15.929vw;
    background-image: url('../images/about-bg02.png');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;   
}

.about__row {
    width: 77.569vw;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
}

.about__text-wrap {
    width: 41.736vw;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2.222vw;
}

.about__title {
    color: white;
    margin: 0;
    padding: 0;
    font-family: 'Zen Old Mincho', serif;
    font-size: 2.778vw;
    font-weight: 400;
    line-height: 1.2;
    letter-spacing: 0.085em;
    text-align: center;
}

.about__title span {
    font-size: 5.556vw;
}

.about__text-bar {
    width: 35.85vw;
    height: 2.603vw;
    background-image: url('../images/about-bar.png');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.about__text {
     color: white;
    font-family: 'Yu Gothic', sans-serif;
    font-size: 1.389vw;
    font-weight: 500;
    line-height: 1.6;
    letter-spacing: 0.085em;
}

.about__image-wrap {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2.778vw;
    margin-top: 21.961vw;
}

.about__image {
    width: 29.167vw;
    height: 12.778vw;
}

.about__image:nth-child(2) {
    margin-left: 3.889vw;
}

.o_btn {
    width: 31.25vw;
    height: 4.167vw;
    color: white;
    background-color: #333;
    display: inline-block;
    font-size: 1.667vw;
    font-weight: 400;
    line-height: 1.4;
    letter-spacing: 0.08em;
    position: relative;
    text-decoration: none;
    border-radius: 0.556vw;
    position: relative;
    margin: 0 auto;
    display: flex;
    justify-content: center;
    align-items: center;
}

.feature {
    color: #333;
    width: 100vw;
    padding: 6.944vw 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2.778vw;
    position: relative;
    background-image: url('../images/feature-bg.png');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    position: relative;
}

.feature__bg01 {
    position: absolute;
    top: 0;
    right: 0;
    width: 27.153vw;
    height: 26.806vw;
    background-image: url('../images/feature-bg01.png');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.feature__bg02 {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 20.729vw;
    height: 20.347vw;
    background-image: url('../images/feature-bg02.png');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.feature__title {
    color: black;
    margin: 0;
    padding: 0;
    font-family: 'Zen Old Mincho', serif;
    font-size: 3.472vw;
    font-weight: 400;
    line-height: 1;
    letter-spacing: 0;
    text-align: center;
    width: fit-content;
    position: relative;
}

.feature__title::before {
    content: 'Product';
    position: absolute;
    top: -1.875vw;
    left: 0;
    font-family: 'Yu Gothic', sans-serif;
    font-size: 1.25vw;
    font-weight: 500;
    line-height: 1;
    letter-spacing: 0;
    text-align: center;
    width: 100%;
}

.feature__row {
    width: 77.583vw;
    display: flex;
    justify-content: space-between;
}

.feature__image {
    margin-top: 1.111vw;
    width: 24.306vw;
    height: 18.316vw;
    transform: rotate(-8deg);
}

.feature__info-row {
    margin-top: 2.083vw;
    width: 72.361vw;
    display: flex;
    align-items: center;
    gap: 2.778vw;
}

.feature__info-text-content {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
}

.feature__info-text-wrap {
    width: 27.778vw;
    width: fit-content;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 1.111vw;
}

.feature__info-delivery {
    font-family: 'Yu Gothic', sans-serif;
    font-size: 1.25vw;
    font-weight: 500;
    line-height: 1;
    letter-spacing: 0;
    text-align: center;
    width: 100%;
    border: 1px solid #333;
    width: fit-content;
    padding: 0.278vw 1.389vw;
    border-radius: 4px;
}

.feature__info-text {
    font-family: 'Zen Old Mincho', serif;
    font-size: 1.944vw;
    font-weight: 500;
    line-height: 1;
    letter-spacing: 0;
    width: 100%;
}

.feature__info-price-row {
    display: flex;
    align-items: flex-end;
    gap: 0.556vw;
}

.feature__info-shipping {
    font-family: 'Yu Gothic', sans-serif;
    font-size: 1.944vw;
    font-weight: bold;
    line-height: 1;
    letter-spacing: 0;
    width: 3.889vw;
}

.feature__info-price {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 4.167vw;
    font-weight: 400;
    line-height: 1;
    letter-spacing: 0;
    text-align: center;
    width: 13.889vw;
}

.feature__info-price-unit {
    font-family: 'Yu Gothic', sans-serif;
    font-size: 1.528vw;
    font-weight: 500;
    line-height: 1;
    letter-spacing: 0;
    width: 8.472vw;
}

.feature__info-unit {
    width: 11.111vw;
    height: 10.972vw;
    border: 2px solid #333;
    display: flex;
    justify-content: center;
    align-items: center;
}

.feature__info-unit-box {
    width: 10vw;
    height: 9.861vw;
    background-color: #333;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 1.528vw 1.389vw;
}

.feature__info-unit-text {
    color: white;
    font-size: 1.111vw;
    font-weight: 500;
    line-height: 1;
    letter-spacing: 0;
}

.feature__info-unit-number {
    font-family: 'Noto Sans JP', sans-serif;
    color: white;
    font-size: 4.167vw;
    font-weight: 400;
    line-height: 1;
    letter-spacing: 0;
}


.first {
    width: 100vw;
    background-color: #C73938;
    padding: 8.819vw 0 6.944vw;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2.778vw;
    position: relative;
}

.first__bg01 {
    position: absolute;
    top: 4.236vw;
    right: 0;
    width: 35.281vw;
    height: 12.292vw;
    background-image: url('../images/first-bg01.png');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.first__bg02 {
    position: absolute;
    top: 8.819vw;
    right: 0;
    width: 21.951vw;
    height: 15.47vw;
    background-image: url('../images/first-bg02.png');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}   

.first__bg03 {
    position: absolute;
    bottom: 4.306vw;
    left: 0;
    width: 25.742vw;
    height: 12.292vw;
    background-image: url('../images/first-bg03.png');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}   

.first__title {
     color: white;
    margin: 0;
    padding: 0;
    font-family: 'Zen Old Mincho', serif;
    font-size: 3.472vw;
    font-weight: 400;
    line-height: 1;
    letter-spacing: 0;
    text-align: center;
    position: relative;
}

.first__title::before {
    color: white;
    content: 'First';
    position: absolute;
    top: -1.875vw;
    left: 0;
    font-family: 'Yu Gothic', sans-serif;
    font-size: 1.25vw;
    font-weight: 500;
    width: 100%;
    text-align: center;
}

.first__row {
    width: 68.125vw;
    margin: 0 auto;;
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 1.389vw;
    margin-bottom: 1.389vw;
}

.first__person {
    width: 29.236vw;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.first__person-image {
    width: 25.313vw;
    height: 25.231vw;
}

.first__person-text {
    color: #333;
    width: 100%;
    background-color: white;
    font-family: 'Yu Gothic', sans-serif;
    font-size: 1.25vw;
    font-weight: 400;
    line-height: 1.6;
    letter-spacing: 0;
    padding: 0.556vw 1.389vw;
}

.first__image {
    width: 36.111vw;
    height: 27.212vw;
}

.first__text {
    color: white;
    font-family: 'Yu Gothic', sans-serif;
    font-size: 2.222vw;
    font-weight: 400;
    line-height: 1.6;
    letter-spacing: 0.085em;
    text-align: center;
    width: 100%;
}

.first__item-row {
    width: 44.583vw;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    row-gap: 1.667vw;
}

.first__item {
    width: 13.75vw;
    height: 20.833vw;
    height: fit-content;
    background-color: white;
}

.first__item-name {
    color: white;
    background-color: #BF8D0B;
    padding: 0.556vw 0;
    text-align: center;
    font-family: 'Zen Old Mincho', serif;
    font-size: 1.111vw;
    font-weight: 400;
    line-height: 1.2;
    letter-spacing: -0.02em;
}

.first__item-image {
    width: 13.75vw;
    height: 13.889vw;
}

.first__item-text {
    color: #333;
    font-family: 'Yu Gothic', sans-serif;
    font-size: 0.972vw;
    font-weight: 400;
    line-height: 1.2;
    letter-spacing: -0.04em;
    padding: 0.799vw 0.278vw;
}


.second {
    width: 100vw;
    padding: 8.819vw 0 6.944vw;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2.778vw;
    position: relative;
    background-image: url('../images/second-bg.png');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.second__bg01 {
    position: absolute;
    top: 10.024vw;
    right: 9.387vw;
    width: 14.074vw;
    height: 10.672vw;
    background-image: url('../images/second-bg01.png');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.second__bg02 {
    position: absolute;
    top: 4.21vw;
    right: 14.443vw;
    width: 18.216vw;
    height: 16.104vw;
    background-image: url('../images/second-bg02.png');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}   

.second__title {
    color: #333;
    margin: 0;
    padding: 0;
    font-family: 'Zen Old Mincho', serif;
    font-size: 3.472vw;
    font-weight: 400;
    line-height: 1;
    letter-spacing: 0;
    text-align: center;
    position: relative;
}

.second__title::before {
    color: #333;
    content: 'Second';
    position: absolute;
    top: -1.875vw;
    left: 0;
    font-family: 'Yu Gothic', sans-serif;
    font-size: 1.25vw;
    font-weight: 500;
    width: 100%;
    text-align: center;
}

.second__row {
    width: 68.125vw;
    margin: 0 auto;;
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 1.389vw;
    margin-bottom: 1.389vw;
}

.second__person {
    width: 29.236vw;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.second__person-image {
    width: 25.313vw;
    height: 25.231vw;
}

.second__person-text {
    color: #333;
    width: 100%;
    background-color: white;
    font-family: 'Yu Gothic', sans-serif;
    font-size: 1.25vw;
    font-weight: 400;
    line-height: 1.6;
    letter-spacing: 0;
    padding: 0.556vw 1.389vw;
}

.second__image {
    width: 36.111vw;
    height: 27.212vw;
}

.second__text {
    color: #333;
    font-family: 'Yu Gothic', sans-serif;
    font-size: 2.222vw;
    font-weight: 400;
    line-height: 1.6;
    letter-spacing: 0.085em;
    text-align: center;
    width: 100%;
}

.second__item-row {
    width: 44.583vw;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    row-gap: 1.667vw;
}

.second__item {
    width: 13.75vw;
    height: 20.833vw;
    height: fit-content;
    background-color: white;
}

.second__item-name {
    color: white;
    background-color: #C43030;
    padding: 0.556vw 0;
    text-align: center;
    font-family: 'Zen Old Mincho', serif;
    font-size: 1.111vw;
    font-weight: 400;
    line-height: 1.2;
    letter-spacing: -0.02em;
}

.second__item-image {
    width: 13.75vw;
    height: 13.889vw;
}

.second__item-text {
    color: #333;
    font-family: 'Yu Gothic', sans-serif;
    font-size: 0.972vw;
    font-weight: 400;
    line-height: 1.2;
    letter-spacing: -0.04em;
    padding: 0.799vw 0.278vw;
}


.third {
    width: 100vw;
    background-color: #C73938;
    padding: 8.819vw 0 6.944vw;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2.778vw;
    position: relative;
}

.third__bg01 {
    position: absolute;
    top: 8.588vw;
    left: 0;
    width: 28.593vw;
    height: 12.292vw;
    background-image: url('../images/third-bg01.png');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.third__bg02 {
    position: absolute;
    top: 5.64vw;
    left: 3.256vw;
    width: 13.962vw;
    height: 11.36vw;
    background-image: url('../images/third-bg02.png');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.third__title {
    color: white;
    margin: 0;
    padding: 0;
    font-family: 'Zen Old Mincho', serif;
    font-size: 3.472vw;
    font-weight: 400;
    line-height: 1;
    letter-spacing: 0;
    text-align: center;
    position: relative;
}

.third__title::before {
    color: white;
    content: 'Third';
    position: absolute;
    top: -1.875vw;
    left: 0;
    font-family: 'Yu Gothic', sans-serif;
    font-size: 1.25vw;
    font-weight: 500;
    width: 100%;
    text-align: center;
}

.third__row {
    width: 68.125vw;
    margin: 0 auto;;
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 1.389vw;
    margin-bottom: 1.389vw;
}

.third__person {
    width: 29.236vw;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.third__person-image {
    width: 25.313vw;
    height: 25.231vw;
}

.third__person-text {
    color: #333;
    width: 100%;
    background-color: white;
    font-family: 'Yu Gothic', sans-serif;
    font-size: 1.25vw;
    font-weight: 400;
    line-height: 1.6;
    letter-spacing: 0;
    padding: 0.556vw 1.389vw;
}

.third__image {
    width: 36.111vw;
    height: 27.212vw;
}

.third__text {
    color: white;
    font-family: 'Yu Gothic', sans-serif;
    font-size: 2.222vw;
    font-weight: 400;
    line-height: 1.6;
    letter-spacing: 0.085em;
    text-align: center;
    width: 100%;
}

.third__item-row {
    width: 45.833vw;
    display: flex;
    flex-wrap: wrap;
    gap: 1.667vw;
    row-gap: 1.667vw;
}

.third__item {
    width: 100%;
    height: 20.833vw;
    height: fit-content;
    background-color: white;
}

.third__item-name {
    color: white;
    background-color: #BF8D0B;
    padding: 0.556vw 0;
    text-align: center;
    font-family: 'Zen Old Mincho', serif;
    font-size: 1.111vw;
    font-weight: 400;
    line-height: 1.2;
    letter-spacing: -0.02em;
}

.third__item-image {
    width: 100%;
    height: 18.889vw;
}

.third__item-text {
    color: #333;
    font-family: 'Yu Gothic', sans-serif;
    font-size: 0.972vw;
    font-weight: 400;
    line-height: 1.2;
    letter-spacing: -0.04em;
    padding: 0.799vw 0.278vw;
}

.other {
    width: 100vw;
    padding: 8.333vw 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3.472vw;
    background-color: #6D0808;
    position: relative;
}

.other__bg01 {
    position: absolute;
    top: 0;
    right: 0;
    width: 22.882vw;
    height: 22.5vw;
    background-image: url('../images/other-bg01.png');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.other__bg02 {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 20.903vw;
    height: 19.826vw;
    background-image: url('../images/other-bg02.png');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.other__row1 {
    width: 77.639vw;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-bottom: 3.472vw;
    position: relative;
}

.other__row1::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;          /* 1px 下げたい場合は -1px など調整 */
    height: 0.139vw;        /* 線の太さ */
    background: repeating-linear-gradient(
      90deg,
      #fff 0 14px,       /* ダッシュの長さ */
      transparent 14px 24px  /* 14〜24px の部分が隙間 */
    );
}

.other__item-wrap {
    width: fit-content;
    display: flex;
    flex-direction: column;
    gap: 2.778vw;
}

.other__item {
    display: flex;
    gap: 1.111vw;
}

.other__item-content {
    width: fit-content;
    display: flex;
    flex-direction: column;
    gap: 0.694vw;
}

.other__item-delivery {
    color: white;
    font-size: 1.25vw;
    font-weight: 500;
    line-height: 1;
    letter-spacing: 0;
    padding: 0.278vw 1.389vw;
    width: fit-content;
    border: 1px solid white;
    border-radius: 0.278vw;
}

.other__item-name {
    color: white;
    font-family: 'Zen Old Mincho', serif;
    font-size: 1.944vw;
    font-weight: 500;
    line-height: 1.4;
    letter-spacing: 0;
}

.other__item-price-row {
    display: flex;
    align-items: flex-end;
    gap: 0.556vw;
}

.other__item-price {
    color: white;
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 4.167vw;
    font-weight: 400;
    line-height: 1;
    letter-spacing: 0;
}

.other__item-price-unit {
     color: white;
    font-family: 'Yu Gothic', sans-serif;
    font-size: 1.667vw;
    font-weight: 500;
    line-height: 1;
    letter-spacing: 0;
}

.other__item-unit-wrapper {
    width: 11.111vw;
    height: 11.086vw;
    display: flex;
    justify-content: center;
    align-items: center;
    border: 1px solid white;
}

.other__item-unit {
    width: 10vw;
    height: 9.975vw;
    background-color: white;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.other__item-unit-text {
    color: #6D0808;
    font-size: 1.111vw;
    font-weight: 500;
    line-height: 1;
    letter-spacing: 0;
}

.other__item-unit-number {
    color: #6D0808;
    font-size: 4.167vw;
    font-weight: 400;
    line-height: 1;
    letter-spacing: 0;
}

.other__item-btn {
    background-color: #BF8D0B;
}

.other__row1-image-row {
    width: 43.124vw;
    display: flex;
}

.other__row1-image {
    width: 21.561vw;
    height: 15.908vw;
}

.other__row2 {
    width: 77.639vw;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.other__item-wrap2 {
    width: fit-content;
    display: flex;
    flex-direction: column;
    gap: 2.778vw;
}

.other__row2-image-row {
    width: 100%;
    display: flex;
}

.other__row2-image {
    width: 16.667vw;
    height: 12.5vw;
}

.other__present {
    width: 22.083vw;
    height: 33.056vw;
    border-radius: 0.278vw;
    background-color: white;
    padding: 1.667vw;
    display: flex;
    flex-direction: column;
    gap: 2.944vw;
}

.other__present-text-wrap {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 0.556vw;
}

.other__present-cource {
    width: fit-content;
    padding: 0.417vw 1.389vw;
    font-size: 1.25vw;
    font-weight: 400;
    line-height: 1;
    letter-spacing: 0;
    background-color: #333;
    color: white;
    border-radius: 0.278vw;
}

.other__present-text {
    color: #333;
    width: 16.806vw;
    font-size: 1.389vw;
    font-weight: 400;
    line-height: 1.6;
    letter-spacing: 0;
}

.other__present-text span {
    font-size: 2.5vw;
    font-weight: bold;
}

.other__present-image {
    width: 18.753vw;
    height: 15.736vw;
    border-radius: 0.556vw;
    overflow: hidden;
}

/* レスポンシブデザイン */
@media (max-width: 780px) {
       
    .pc {
        display: none;
    }

    .sp {
        display: block;
    }

    .contents {
        width: 100vw;
    }

    /* セクション共通 */
    section {
        width: 100%;
        overflow-x: hidden;
    }

    /* ヒーローセクション */
    .hero {
        background-image: url('../images/sp-fv.png');
        background-size: cover;
        background-position: center;
        width: 100vw;
        height: 160vw;
    }

    /* アバウトセクション */
    .about {
        width: 100vw;
        padding: 10.667vw 0 26vw;
        display: flex;
        flex-direction: column;
        gap: 16vw;
    }

    .about__bg01 {
        width: 44.4vw;
        height: 18.583vw;
        position: absolute;
        top: unset;
        bottom: 7vw;
        right: -10.667vw;
    }

    .about__bg02 {
        width: 34.596vw;
        height: 30.584vw;
        position: absolute;
        top: unset;
        bottom: 7vw;
        right: 5.333vw;
    }

    .about__row {
        width: 93.333vw;
        display: flex;
        flex-direction: column;
        gap: 10.667vw;
        align-items: center;
    }

    .about__text-wrap {
        width: 100%;
        display: flex;
        flex-direction: column;
        gap: 10.667vw;
    }

    .about__title {
        font-size: 6.933vw;
    }

    .about__title span {
        font-size: 10.667vw;
    }

    .about__text-bar {
        width: 68.832vw;
        height: 4.999vw;
    }

    .about__text {
        width: 69.099vw;
        font-size: 4.267vw;
    }

    .about__image-wrap {
        margin-top: 8vw;
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 6.4vw;
    }

    .about__image {
        width: 93.333vw;
        height: 40.889vw;
    }

    .about__image:nth-child(2) {
        margin-left: 0;
    }

    .o_btn {
        width: 85.333vw;
        height: 21.867vw;
        font-size: 6.4vw;
        position: relative;
        border-radius: 4.267vw;
        margin: 0 auto;
    }

    .o_btn::after {
        content: '';
        width: 6.4vw;
        height: 6.4vw;
        position: absolute;
        top: 7.733vw;
        right: 21.333vw;
    }

    .feature {
        width: 100vw;
        padding: 37.333vw 0;
        display: flex;
        flex-direction: column;
        gap: 21.333vw;  
        position: relative;
    }

    .feature__bg01 {
        position: absolute;
        top: 0;
        right: 0;
        width: 37.333vw;
        height: 36.856vw;
    }

    .feature__bg02 {
        position: absolute;
        bottom: 0;
        left: 0;
        width: 79.6vw;
        height: 78.133vw;

        width: 37.333vw;
        height: 36.645vw;
    }

    .feature__title {
        margin: 0;
        padding: 0;
        font-size: 6.4vw;
        position: relative;
    }

    .feature__title::before {
        position: absolute;
        top: -7.2vw;
        left: 0;
        font-size: 4.8vw;
    }

    .feature__row {
        width: 93.333vw;
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        align-items: center;
        gap: 10.667vw;
    }

    .feature__image {
        margin-top: 4.267vw;
        width: 53.333vw;
        height: 40.189vw;
    }

    .feature__info-row {
        margin-top: 0;
        width: 80vw;
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 10.667vw;
    }

    .feature__info-text-content {
        width: 100%;
        margin: 0 auto;
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        justify-content: space-between;
        gap: 8vw;
    }

    .feature__info-text-wrap {
        width: 100%;
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 4.267vw;
    }

    .feature__info-delivery {
        font-size: 4.8vw;
        width: fit-content;
        padding: 1.067vw 5.333vw;
    }

    .feature__info-text {
        font-size: 7.467vw;
    }

    .feature__info-price-row {
        display: flex;
        align-items: flex-end;
        gap: 2.133vw;
    }

    .feature__info-shipping {
        font-size: 5.333vw;
        width: 10.667vw;
    }

    .feature__info-price {
        font-size: 11.733vw;
        width: unset;
    }

    .feature__info-price-unit {
        font-size: 4.8vw;
        width: 32.533vw;
    }

    .feature__info-unit {
        width: 42.667vw;
        height: 42.133vw;
    }

    .feature__info-unit-box {
        width: 38.4vw;
        height: 37.867vw;
        padding: 5.867vw 5.333vw;
    }

    .feature__info-unit-text {
        font-size: 4.267vw;
    }

    .feature__info-unit-number {
        font-size: 16vw;
    }

    .first {
        width: 100vw;
        padding: 58.667vw 0 53.333vw;
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 10.667vw;
        position: relative;
    }

    .first__bg01 {
        position: absolute;
        top: 8vw;
        right: 0;
        width: 69.333vw;
        height: 24.155vw;
    }

    .first__bg02 {
        position: absolute;
        top: 16vw;
        right: 0;
        width: 53.333vw;
        height: 37.587vw;
    }   

    .first__bg03 {
        position: absolute;
        bottom: 8vw;
        left: 0;
        width: 69.333vw;
        height: 33.107vw;
    }   

    .first__title {
        font-size: 10.667vw;
    }

    .first__title::before {
        top: -7.2vw;
        left: 0;
        font-size: 4.8vw;
    }

    .first__row {
        width: 93.333vw;
        margin: 0 auto;;
        display: flex;
        flex-direction: column-reverse;
        justify-content: space-between;
        align-items: center;
        margin-top: 0;
        margin-bottom: 0;
        gap: 13.333vw;
    }

    .first__person {
        width: 100%;
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    .first__person-image {
        width: 78.717vw;
        height: 78.463vw;
    }

    .first__person-text {
        width: 100%;
        font-size: 3.73vw;
        padding: 2.133vw 5.333vw;
    }

    .first__image {
        width: 80vw;
        height: 60.285vw;
    }

    .first__text {
        width: 93.333vw;
        margin: 0 auto;
        text-align: left;
        font-size: 5.333vw;
    }

    .first__item-row {
        width: 93.333vw;
        margin: 0 auto;
        display: flex;
        flex-wrap: wrap;
        row-gap: 6.4vw;
    }

    .first__item {
        width: 43.467vw;
        height: fit-content;
    }

    .first__item-name {
        padding: 2.133vw 0;
        font-size: 4.267vw;
    }

    .first__item-image {
        width: 43.467vw;
        height: 43.904vw;
    }

    .first__item-text {
        font-size: 3.733vw;
        padding: 3.067vw 1.067vw;
    }

    .second {
        width: 100vw;
        padding: 58.667vw 0 14vw;
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 10.667vw;
        position: relative;
    }

    .second__bg01 {
        position: absolute;
        top: 16vw;
        right: 0;
        width: 53.333vw;
        height: 40.437vw;
    }

    .second__bg02 {
        position: absolute;
        top: 8vw;
        right: 21.333vw;
        width: 53.333vw;
        height: 47.149vw;
    }   

    .second__title {
        font-size: 10.667vw;
    }

    .second__title::before {
        top: -7.2vw;
        left: 0;
        font-size: 4.8vw;
    }

    .second__row {
        width: 93.333vw;
        margin: 0 auto;;
        display: flex;
        flex-direction: column-reverse;
        justify-content: space-between;
        align-items: center;
        margin-top: 0;
        margin-bottom: 0;
        gap: 13.333vw;
    }

    .second__person {
        width: 100%;
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    .second__person-image {
        width: 78.717vw;
        height: 78.463vw;
    }

    .second__person-text {
        width: 100%;
        font-size: 3.73vw;
        padding: 2.133vw 5.333vw;
    }

    .second__image {
        width: 80vw;
        height: 60.285vw;
    }

    .second__text {
        width: 93.333vw;
        margin: 0 auto;
        text-align: left;
        font-size: 5.333vw;
    }

    .second__item-row {
        width: 93.333vw;
        margin: 0 auto;
        display: flex;
        flex-wrap: wrap;
        row-gap: 6.4vw;
    }

    .second__item {
        width: 43.467vw;
        height: fit-content;
    }

    .second__item-name {
        padding: 2.133vw 0;
        font-size: 4.267vw;
    }

    .second__item-image {
        width: 43.467vw;
        height: 43.904vw;
    }

    .second__item-text {
        font-size: 3.733vw;
        padding: 3.067vw 1.067vw;
    }


    .third {
        width: 100vw;
        padding: 58.667vw 0 20vw;
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 10.667vw;
        position: relative;
    }

    .third__bg01 {
        position: absolute;
        top: 21.333vw;
        left: 0;
        width: 69.333vw;
        height: 24.155vw;
    }

    .third__bg02 {
        position: absolute;
        top: 8vw;
        left: 8vw;
        width: 37.333vw;
        height: 30.373vw;
    } 

    .third__title {
        font-size: 10.667vw;
    }

    .third__title::before {
        top: -7.2vw;
        left: 0;
        font-size: 4.8vw;
    }

    .third__row {
        width: 93.333vw;
        margin: 0 auto;;
        display: flex;
        flex-direction: column-reverse;
        justify-content: space-between;
        align-items: center;
        margin-top: 0;
        margin-bottom: 0;
        gap: 13.333vw;
    }

    .third__person {
        width: 100%;
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    .third__person-image {
        width: 78.717vw;
        height: 78.463vw;
    }

    .third__person-text {
        width: 100%;
        font-size: 3.73vw;
        padding: 2.133vw 5.333vw;
    }

    .third__image {
        width: 80vw;
        height: 60.285vw;
    }

    .third__text {
        width: 93.333vw;
        margin: 0 auto;
        text-align: left;
        font-size: 5.333vw;
    }

    .third__item-row {
        width: 93.333vw;
        margin: 0 auto;
        display: flex;
        flex-wrap: wrap;
        gap: 6.4vw;
        row-gap: 6.4vw;
    }

    .third__item {
        width: 100%;
        height: fit-content;
    }

    .third__item-name {
        padding: 2.133vw 1.067vw;
        font-size: 4.267vw;
        text-align: left;
    }

    .third__item-image {
        width: 100%;
        height: 38.46vw;
    }

    .third__item-text {
        font-size: 3.733vw;
        padding: 3.067vw 1.067vw;
    }

    .other {
        margin: 0 auto;
        width: 100%;
        gap: 16vw;
        padding: 37.333vw 0;
    }

    .other__bg01 {
        width: 37.333vw;
        height: 36.709vw;
    }

    .other__bg02 {
        width: 37.333vw;
        height: 35.411vw;
    }

    .other__row1 {
        width: 93.333vw;
        margin: 0 auto;
        display: flex;
        flex-direction: column-reverse;
        justify-content: space-between;
        align-items: center;
        padding-bottom: 13.333vw;
        position: relative;
        gap: 10.667vw;
    }

    .other__row1::after {
        content: "";
        position: absolute;
        left: 0;
        right: 0;
        bottom: 0;          /* 1px 下げたい場合は -1px など調整 */
        height: 0.533vw;        /* 線の太さ */
        background: repeating-linear-gradient(
          90deg,
          #fff 0 14px,       /* ダッシュの長さ */
          transparent 14px 24px  /* 14〜24px の部分が隙間 */
        );
    }

    .other__item-wrap {
        width: 100%;
        display: flex;
        flex-direction: column;
        gap: 10.667vw;
    }

    .other__item {
        display: flex;
        gap: 4.267vw;
    }

    .other__item-content {
        width: fit-content;
        display: flex;
        flex-direction: column;
        gap: 2.667vw;
    }

    .other__item-delivery {
        color: white;
        font-size: 4.8vw;
        font-weight: 500;
        line-height: 1;
        letter-spacing: 0;
        padding: 1.067vw 5.333vw;
        width: fit-content;
        border: 1px solid white;
        border-radius: 1.067vw;
    }

    .other__item-name {
        font-size: 5.333vw;
        font-weight: 500;
        line-height: 1;
        letter-spacing: 0;
    }

    .other__item-price-row {
        display: flex;
        align-items: flex-start;
        flex-direction: column;
        gap: 5.333vw;
    }

    .other__item-price {
        font-size: 13.333vw;
    }

    .other__item-price-unit {
        font-size: 4.8vw;
    }

    .other__item-unit-wrapper {
        width: 37.333vw;
        height: 37.333vw;
    }

    .other__item-unit {
        width: 32.8vw;
        height: 32.8vw;
    }

    .other__item-unit-text {
        font-size: 4.267vw;
    }

    .other__item-unit-number {
        font-size: 16vw;
    }

    .other__row1-image-row {
        width: 165.595vw;
        display: flex;
        width: 93.333vw;
    }

    .other__row1-image {
        width: 46.667vw;
        height: 34.429vw;
    }

    .other__row2 {
        width: 93.333vw;
        margin: 0 auto;
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        align-items: center;
        gap: 10.667vw;
    }

    .other__item-wrap2 {
        width: 100%;
        display: flex;
        flex-direction: column;
        gap: 10.667vw;
    }

    .other__row2-image-row {
        width: 100%;
        display: flex;
    }

    .other__row2-image {
        width: 31.112vw;
        height: 23.333vw;
    }

    .other__present {
        width: 84.8vw;
        height: 126.933vw;
        border-radius: 1.067vw;
        padding: 6.4vw;
        display: flex;
        flex-direction: column;
        gap: 11.307vw;
    }

    .other__present-text-wrap {
        width: 100%;
        gap: 2.133vw;
    }

    .other__present-cource {
        padding: 1.6vw 5.333vw;
        font-size: 4.8vw;
        border-radius: 1.067vw;
    }

    .other__present-text {
        width: 64.533vw;
        font-size: 5.333vw;
    }

    .other__present-text span {
        font-size: 9.6vw;
    }

    .other__present-image {
        width: 72.011vw;
        height: 60.427vw;
        border-radius: 2.133vw;
    }
}
