@charset "UTF-8";

/* ==========================================================================
   Voice Section Style (PDF Design Match)
   ========================================================================== */

#voice-section {
    width: 100%;
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 20px 80px;
    font-family: 'Zen Maru Gothic', sans-serif;
}

/* メインタイトル */
.voice-main-title {
    text-align: center;
    color: #4097B6;
    font-family: 'RocknRoll One', sans-serif;
    font-size: clamp(22px, 4vw + 11px, 60px);
    font-weight: normal;
    margin-top: clamp(10px, 8vw, 30px);
    margin-bottom: clamp(20px, 8vw, 30px);
    letter-spacing: 0.05em;
}

/* ストライプフレーム */
.strip-frame {
    max-width: 1100px;
    width: 100%;
    background: repeating-linear-gradient(45deg, var(--color-stripe-1), var(--color-stripe-1) 4px, var(--color-stripe-2) 0px, var(--color-stripe-2) 7px);
        padding: 50px 30px;
}

.voice3, .voice9 {
    position: relative;
    bottom: -34px;
    left: 2vw;
}

/* 6番目の外枠コンテナ */
.voice6-img-wrap {
    display: flex;
    flex-direction: column; 
    align-items: flex-end; 
    margin-top: -40px;   
}

/* 画像を包むディブ */
.voice6 {
    margin-bottom: 0 !important; 
    line-height: 0;            
}

/* 画像自体の設定 */
.voice6 img {
    display: block;         
    width: auto;
    max-width: 100%;
    margin-left: auto;          
    margin-bottom: -27px;
}

/* 画像の直後にくるカード */
.voice6-img-wrap .voice-card {
    margin-top: 0 !important; 
    width: 100%;               
}
.voice6-img-wrap .voice-inner {
    padding-top: 20px; 
}

.img-wrap {
    margin-top: -75px;
}

/* 吹き出しのコンテナ */
.voice-grid {
    display: flex;
    flex-direction: column;
    gap: 40px;
}

/* 吹き出しカードの基本スタイル */
.voice-card {
    position: relative;
    background: #fcffff;
    border-radius: 30px;
    padding: 30px 40px;
    max-width: 85%;
    filter: drop-shadow(0 4px 10px rgba(64, 151, 182, 0.15));
    border: none;
}

/* 吹き出しのしっぽ（共通） */
.voice-card::after {
    content: "";
    position: absolute;
    bottom: -20px; /* 下側に配置 */
    width: 0;
    height: 0;
    border-style: solid;
}

/* 奇数番目の吹き出し：左側に寄せて、左側にしっぽ */
.voice-card:nth-child(odd) {
    align-self: flex-start;
}
.voice-card:nth-child(odd)::after {
    left: 40px;
    border-width: 25px 25px 0 0;
    border-color: #fcffff transparent transparent transparent;
}

/* 偶数番目の吹き出し：右側に寄せて、右側にしっぽ */
.voice-card:nth-child(even) {
    align-self: flex-end;
}
.voice-card:nth-child(even)::after {
    right: 40px;
    border-width: 25px 0 0 25px;
    border-color: #fcffff transparent transparent transparent;
}

/* テキストのスタイル */
.voice-inner p {
    font-size: clamp(15px, 0.9rem + 0.3vw, 17px);
    line-height: 1.8;
    color: #29313D;;
    margin: 0;
    font-weight: 500;
}

/* 注釈 */
.voice-note {
    text-align: right;
    font-size: 16px;
    font-weight: 600;
    color: #666;
    margin-top: 45px;
}

/* お問い合わせLINE */
.line-section {
    margin: 40px 0 30px;
}
.line-title {
    font-family: "RocknRoll One", sans-serif;
    font-size: clamp(15px, 0.21rem + 3.2vw, 18px);
    margin-bottom: 20px;
}
.line-title span {
    color: #06C755;
    text-decoration: underline;
}
.line-content {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 15px;
}
.line-illust {
    width: 100px;
    height: auto;
}
.line-icon {
    width: 60px;
    height: auto;
    transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.line-icon:hover {
    transform: scale(1.1);
}

/* CTAボタン*/
.cta-btn {
    background: #BCDBD9;
    box-shadow: 0 3px 0 #9cbdbb;
}


/* ==========================================================================
   Responsive (Smartphone)
   ========================================================================== */

@media screen and (max-width: 767px) {
    .voice-strip-frame {
        padding: 40px 20px;
        border-radius: 25px;
    }
    
    .voice-card {
        max-width: 92%;
        padding: 20px 25px;
    }

    /* スマホでも交互配置を維持しつつ、余白を調整 */
    .voice-card:nth-child(odd)::after {
        left: 30px;
    }
    .voice-card:nth-child(even)::after {
        right: 30px;
    }

    .voice-inner p {
        font-size: 15px;
    }
}

@media (max-width: 430px) {
    div#voice-section {
    padding: 0;
    }
    .strip-frame {
    background: repeating-linear-gradient(45deg, var(--color-stripe-1), var(--color-stripe-1) 2px, var(--color-stripe-2) 0px, var(--color-stripe-2) 4px);
    padding: 30px 10px;
    }
    p.voice-note {
    text-align: center;
    }

}