.main-content {
    color: #2e3c83;
    letter-spacing: 0.1em;
    overflow: hidden;
}
/* .general-section:last-child .inner{
    padding: 80px 0 0 0;
} */
.img-wrapper {
    height: fit-content;
}
.annotation{
    text-align: justify;
}
.caption{
    text-shadow: 2px 2px 5px rgba(0, 0, 0, 0.4);
}
.no-shadow{
    text-shadow: none;
}
.voice-img-fit{
    width: 100%;
    height: auto;
}
.voice-area {
    background: url(../images/voice/voice-back.webp) no-repeat top center;
    background-size: cover;
    position: relative;
    overflow: hidden;
    padding: 120px 0 0;
}
.voice-lead{
    font-size: clamp(2.2rem, 2.2vw, 2.8rem);
    line-height: 2;
    letter-spacing: .15em;
}
@media screen and (max-width: 767px){
    .voice-lead{
        font-size: 1.8rem;
        line-height: 2;
        letter-spacing: .15em;
    }
    .voice-area {
        padding: 80px 0 0;
    }
}
.voice-link{
    gap: clamp(12px,1.2vw,20px);
}

.voice-item{
    width: calc(25% - clamp(12px,1.2vw,20px)*3/4);
}
.voice-item-link-grid{
    display: grid;
    grid-template-columns: 50% 1fr;
    grid-template-rows: 30% repeat(2,auto);
    background: #cfdfee;
}

.voice-item-ttl{
    grid-column: 1 / 3;
    grid-row: 1 / 2;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding-left: 16px;
    position: relative;
    z-index: 2;
   
}
.voice-item-lead{
    grid-column: 1 / 3;
    grid-row: 2 / 3;
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding-left: clamp(12px,1.2vw,16px);
    gap: 6px;
    
}
.voice-item-image{
    grid-column: 2/3;
    grid-row: 1/3;
}
.voice-item-link{
    grid-column: 1/3;
    grid-row: 3/4;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    
}
@media screen and (max-width: 1060px){
    .voice-link{
        display: grid !important;
        grid-template-columns: repeat(2,1fr);
        margin-top: 0px;
        gap: 24px;
    }
    .voice-item{
        width: 100%;
    }
}

@media screen and (max-width: 767px){
    .voice-link{
        display: flex !important;
        flex-direction: column;
        margin-top: 0px;
        gap: 24px;
    }
    .voice-item{
        width: 100%;
    }

}
/* リンク */
.voice-item-link-in{
    position: relative;
    z-index: 2;
    color: #fff;
    text-align: center;
    padding: 16px 0;
}
.voice-item-link-in::before{
    content: "";
    background: url(../images/voice/img-voice-backbtn.webp) no-repeat center / cover;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 50%;
    right: 0%;
    translate:0% -50%;
    z-index: -1;
    
}
.voice-item-link-in::after{
    content: "";
    mask: url(../images/voice/arw-vioce-link.svg) no-repeat center / contain;
    width: 50px;
    height: 18px;
    position: absolute;
    top: 50%;
    right: 20px;
    background-color: #fff;
    translate:0% -50%;
    transition: .5s;
}
.voice-item-link-grid:hover .voice-item-link-in::after{
    content: "";
    mask: url(../images/voice/arw-vioce-link.svg) no-repeat center / contain;
    width: 50px;
    height: 18px;
    position: absolute;
    top: 50%;
    right: 10px;
    background-color: #fff;
    translate:0% -50%;
    transition: .5s;
}
/* リンクリード */
.voice-item-lead-in{
    box-decoration-break: clone;	
	-webkit-box-decoration-break: clone;
	display: inline;
	padding: 0px 12px;
	line-height: 2;
	background-color: #ffffff;
    width: fit-content;
    font-size: clamp(1.2rem,1.3vw,1.5rem);
}
/* リンクタイトル */
.large-txt{
    font-size: 2.2rem;
}
.voice-item-number{
    border-bottom: 1px solid #2e3c83;
    width: fit-content;
    margin-bottom:8px;
    padding-bottom: 4px;
}

.voice-section .inner{
    border-bottom: 1px solid #183688;
}
.voice-section:last-child .inner{
    border-bottom: none;
}
/* voice 共通 */
.c-voice-ttl{
    gap: clamp(30px,4vw,60px);
    align-items: center;
}
.c-voice-ttl-lead{
    width: 35%;
}
.c-voice-image{
    width: calc(65% - clamp(30px,4vw,60px));
}

.voice-title-lead-first{
    font-size: 3.2rem;
    margin-bottom: 20px;
    color: #b0d8e2;
    letter-spacing: .2em;
}
.voice-title-lead-first .large{
    font-size: 5rem;
}
.voice-title-lead-txt{
    font-size: clamp(1.6rem,2.2vw,2.8rem);
    line-height: 1.6;
    letter-spacing: .15em;
}
@media screen and (max-width: 767px){
    .c-voice-ttl{
        flex-direction: column-reverse;
        gap: 24px;
    }
    .c-voice-ttl-lead{
        width: 100%;
    }
    .c-voice-image{
        width: 100vw;
        margin-left: calc(50% - 50vw);
        
    }
    .voice-title-lead-first{
        font-size: 2.4rem;
        margin-bottom: 20px;
    }
    .voice-title-lead-first .large{
        font-size: 3.6rem;
    }
    .voice-title-lead-txt{
        font-size: 1.4em;
        line-height: 1.6;
        letter-spacing: .02em;
    }
    .voice-section .inner{
        border-bottom: none;
    }
    .voice-section:last-child .inner{
        border-bottom: none;
    }
}

/* レビュー */

.voice-reveiw{
    display: grid;
    grid-template-columns: 22% 1fr;
    grid-template-rows: 20% 1fr;
    gap: 24px;
    margin: 80px 0;
    background: #fff;
    padding: 20px;
}
.voice-reveiw-image{
    grid-column: 1/2;
    grid-row: 1/3;
}
.voice-reveiw-ttl{
    grid-column: 2/3;
    grid-row: 1/2;
    height: fit-content;
    text-align: center;
}
.voice-reveiw-txt{
    grid-column: 2/3;
    grid-row: 2/3;
    letter-spacing: .02em;
    line-height: 1.8;
    font-size: clamp(1.4rem,1.5vw,1.7rem);
}
.voice-reveiw-txt .yellow{
    color: #968746;
}
.voice-reveiw-ttl-in{
    font-size: clamp(1.6rem,1.7vw,1.8rem);
    padding: 8px 24px 6px 24px;
}
.voice-reveiw-ttl{
    gap: 16px;
}
.voice-reveiw-ttl-in:first-child{
    background: #183688;
    color: #fff;
}
.voice-reveiw-ttl-in:nth-child(2){
    border-top: 1px solid #183688;
    border-bottom: 1px solid #183688;
}
@media screen and (max-width: 767px){
    .voice-reveiw{
        display: flex;
        flex-direction: column;
        gap: 24px;
        margin: 36px 0 40px;
        padding: 20px;
    }
    .voice-reveiw-ttl-in{
        width: calc(50% - 8px);
        font-size: 1.3rem;
        padding: 8px 4px 6px 4px;
    }
    .voice-reveiw-txt{
        font-size: 1.4rem;
    }
}

.voice-gallery{
    gap: clamp(30px,4vw,60px);
}
.voice-gallery-in{
    width: calc(50% - clamp(30px,4vw,60px)/2);
}
@media screen and (max-width: 767px){
    .voice-gallery{
        flex-direction: column;
        gap: 24px;
    }
    .voice-gallery-in{
        width: 100%
    }
}

/* voice02 */
.voice02 .c-voice-ttl{
    flex-direction: row-reverse;
}
.voice-goods{
    display: grid;
    grid-template-columns: repeat(2,calc(22% - 14px)) 1fr;
    gap:30px clamp(20px,2vw,30px); 
}
.voice-goods-item{
    display: grid;
    grid-template-rows: subgrid; /* ここでSubgridを使用 */
    grid-row: span 3; /* 4行分のスペースを占めるように調整 */
    gap: 16px; /* カード間の隙間も親要素を継承しているので上書き */

}
.voice-goods-item-title{
    text-align: center;
    font-size: clamp(1.6rem,1.6vw,2rem);
}
.voice-goods-item-txt{
    text-align: center;
    font-size: 1.4rem;
}
@media screen and (max-width: 880px){
    .voice-goods{
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        grid-template-rows: repeat(2, auto);
        gap:32px 20px;
        width: 80%;
        margin: 0 auto;
    }
    .voice-goods-item:last-child{
        grid-column: 1/3;
    }
}
@media screen and (max-width: 767px){
    .voice-goods{
        width: 100%;
        gap:16px;
    }
    .voice-goods-item-title{
        text-align: center;
        font-size: 1.4rem;
    }
    .voice-goods-item-txt{
        text-align: center;
        font-size: 1rem;
    }
}
/* voice03 */
.voice-store{
    gap: 30px;
    text-align: center;
}
.voice-store-item{
   
}
.voice-store-item{
    width: calc(33.33% - 60px/3);
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.voice-store-item-title{
    font-size: 2rem;
}
.voice-store-item-txt{
    font-size: 1.4rem;
}
.voice-store-item-txt span{ 
    margin: 0 2px;
}
.voice-store-item-txt .large{
    font-size: 2.2rem;
    display: inline-block;
    transform-origin: bottom;
}
.voice-store-item-txt .short{
    font-size: 1.2rem;
    display: inline-block;
    transform-origin: bottom;
}
@media screen and (max-width: 767px){
    .voice-store-item{
        flex-direction: column;
    }
    .voice-store-item{
        width: 100%;
        display: flex;
        flex-direction: column;
        gap: 12px;
    }
    .voice-store-item-title{
        font-size: 1.6rem;
    }
    .voice-store-item-txt{
        font-size: 1.4rem;
    }
    .voice-store-item-txt .short{
        font-size: 1rem;
        display: inline-block;
        transform-origin: bottom;
    }
}
/* voice04 */
.voice04 .c-voice-ttl{
    flex-direction: row-reverse;
}
.voice-station{
    display: grid;
    grid-template-columns: repeat(2,1fr);
    /* grid-template-rows: 35% 40%; */
    grid-template-rows: repeat(2,auto);
    gap:0 30px
}
.voice-station-title{
    grid-column: 1/2;
    grid-row: 1/2;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding-left: 24px;
}
.voice-station-title-in{
    font-size: clamp(2rem,2.4vw,3rem);
    letter-spacing: .15em;
}
.voice-station-title-in .large{
    font-size: clamp(3.2rem,3.4vw,4.2rem);
    display: inline-block;
}
.voice-station-title-in .large-number{
    font-size: clamp(4.2rem,4.3vw,5rem);
    color: #938545;
    display: inline-block;
}
.voice-station-title-in .small{
    font-size: clamp(1.3rem,1.3vw,1.4rem);
    display: inline-block;
}
.voice-station-map{
    grid-column: 2/3;
    grid-row: 1/3;
    width: fit-content;
}
.voice-station-map img{
    /* height: 100%; */
}
.voice-station-diagramWrap{
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
}
.voice-station-diagram{
    grid-column: 1/2;
    grid-row: 2/3;
    background: #cfdfee;
    padding: 20px 0 20px 20px;
    height: fit-content;
}
.voice-station-diagram .small{
    font-size: 1.2rem;
    padding: 8px 0 8px 3px;
}
.voice-station-diagram-min .large{
    font-size: clamp(2rem,2vw,2.4rem);
    display: inline-block;
}
.voice-station-diagram-min .small{
    scale: 1;
    transform-origin: bottom;
    display: inline-block;
}
.voice-station-diagram-txt{
    font-size: 1.6rem;
    margin-bottom: 16px;
}
.voice-station table{
    table-layout: fixed;
}
.voice-station tbody{
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.voice-station th{
    
    padding: 8px clamp(24px,2.6vw,36px) 0px clamp(24px,2.6vw,36px);
    position: relative;
    display: table-cell;
    z-index: 1;
    color: #fff;
    font-size: clamp(1.6rem,1.7vw,1.8rem);
    font-weight: 600;
}
.voice-station th::before{
    content: "";
    background: url(../images/voice/img-voice-table-back.png) no-repeat center / cover;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 50%;
    right: 0%;
    translate:0% -50%;
    z-index: -1;
}
.voice-station td{
    display: table-cell;
    padding: 8px 0 8px 12px;
}
.voice-station-diagram-caption{
    font-size: 1.2rem;
    margin-top: 8px;
}
@media screen and (max-width: 890px){
    .voice-station{
        display: flex;
        flex-direction: column;
        gap:30px;
        width: 90%;
        margin: 0 auto;
    }
}
@media screen and (max-width: 767px){
    .voice-station-title{
        padding-left: 0px;
    }
    .voice-station-title-in{
        font-size: 2rem;
        text-align: center;
        line-height: 1.4;
    }
    .voice-station-title-in .large{
        font-size: 3rem;
        display: inline-block;
    }
    .voice-station-title-in .large-number{
        font-size: 3.2rem;
        color: #938545;
        display: inline-block;
    }
    .voice-station-title-in .small{
        font-size: 1.2rem;
        display: inline-block;
    }

    .voice-station-diagram{
        padding: 12px 0 12px 12px;
    }
    .voice-station{
        display: flex;
        flex-direction: column;
        gap:30px;
        width: 100%;
    }
    .voice-station-diagram-txt{
        font-size: 1.4rem;
    }
    .voice-station th{
        padding: 6px 20px 10px 20px;
        font-size: 1.5rem;
    }
    .voice-station td{
        display: table-cell;
        padding: 8px 0 8px 6px;
    }
    .voice-station-diagram .small{
        font-size: 1rem;
        padding: 0 0 0 2px;
    }
    .voice-station-diagram-min .large{
        font-size: 1.8rem;
        display: inline-block;
    }
    .voice-station-diagram-min .small{
        scale: 1;
        transform-origin: bottom;
        display: inline-block;
    }
}
@media screen and (max-width: 767px){
    .voice02 .c-voice-ttl,.voice03 .c-voice-ttl ,.voice04 .c-voice-ttl{
        flex-direction: column-reverse;
    }
}