/* =========================================================
   Base Layout & Updatability Settings
========================================================= */
.obon-wrap,
.obon-wrap *,
.obon-wrap *::before,
.obon-wrap *::after {
    box-sizing: border-box;
}

.obon-wrap {
    width: 100%;
    max-width: 1000px;
    margin: 0 auto;
    font-family: "Hiragino Kaku Gothic ProN", "Meiryo", sans-serif;
    color: #333333;
    line-height: 1.6;
}
.obon-wrap img {
    width: 100%;
    height: auto;
    vertical-align: bottom;
}

/* PC/SPそれぞれの改行制御 */
.obon-br-sp {
    display: none;
}
.obon-br-pc {
    display: inline;
}

/* カラー指定 */
.obon-text-red {
    color: #e74c3c;
}

/* =========================================================
   Lead Area
========================================================= */
.obon-lead {
    background-color: #eef6fc;
    padding: 40px 20px;
    text-align: center;
    margin-top: 40px;
    margin-bottom: 0;
}
.obon-lead_title {
    font-size: 26px;
    font-weight: 600;
    color: #333333;
    margin-bottom: 25px;
    font-family: "Noto Serif JP", "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
}
.obon-lead_text {
    font-size: 16px;
    margin-bottom: 30px;
    text-align: center;
}

/* =========================================================
   CTA Button (高更新性設計)
========================================================= */
.obon-cta {
    text-align: center;
    margin-top: 30px;
}
.obon-cta_btn {
    display: inline-block;
    position: relative;
    background-color: #3da1b9;
    color: #ffffff;
    font-size: 18px;
    font-weight: bold;
    text-decoration: none;
    text-align: center;
    width: 50%; /* PC版も%指定に統一。ここで幅を調整できます */
    padding: 16px 40px;
    border-radius: 4px;
    transition: opacity .3s;
    line-height: 1.5;
}
.obon-cta_btn:hover {
    opacity: .8;
}
.obon-cta_btn::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 20px;
    width: 8px;
    height: 8px;
    border-top: 2px solid #ffffff;
    border-right: 2px solid #ffffff;
    transform: translateY(-50%) rotate(45deg);
}
.obon-cta_btn-purple {
    background-color: #8c82b4;
}
.obon-cta_note {
    font-size: 14px;
    color: #666666;
    margin-top: 15px;
}

/* =========================================================
   Sections (自動マージン制御)
========================================================= */
.obon-section {
    padding: 40px 20px;
    border-bottom: 2px solid #3da1b9;
    text-align: center;
}
.obon-section_bg-blue {
    background-color: #eef6fc;
    margin: 60px 0;
    border-bottom: none;
}
.obon-section_bg-blue + .obon-section {
    border-top: 2px solid #3da1b9;
}

.obon-section_title {
    font-size: 21px;
    font-weight: bold;
    color: #3da1b9;
    margin-bottom: 16px;
    line-height: 1.5;
}
.obon-section_lead {
    font-size: 16px;
    margin: 0 auto 15px;
    text-align: center;
    display: block;
    max-width: 840px;
}
.obon-section_lead + .obon-item-list,
.obon-section_lead + .obon-point {
    margin-top: 40px;
}

/* =========================================================
   White Box (コンテンツB用白背景ラッパー)
========================================================= */
.obon-white-box {
    background-color: #ffffff;
    padding: 40px;
    margin: 0 auto 40px;
    max-width: 880px; 
}
.obon-white-box .obon-section_lead {
    margin: 0 auto 15px;
    max-width: 100%;
}
.obon-white-box .obon-point {
    margin-bottom: 0;
}

/* =========================================================
   Point List (dl)
========================================================= */
.obon-point {
    text-align: left;
    max-width: 800px;
    margin: 0 auto 40px;
}
.obon-point_title {
    font-size: 16px;
    font-weight: bold;
    color: #3da1b9;
    margin-top: 15px;
}
.obon-point_title:first-child {
    margin-top: 0;
}
.obon-point_desc {
    font-size: 16px;
    margin: 5px 0 0 0;
}

/* =========================================================
   Product List (Flexbox)
========================================================= */
.obon-item-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 30px;
    list-style: none;
    padding: 0;
    margin: 0 auto;
    max-width: 900px;
}
.obon-item-list_item {
    width: calc(33.333% - 20px);
    text-align: left;
}
.obon-item-list_link {
    display: block;
    text-decoration: none;
    color: #333333;
    transition: opacity .3s;
}
.obon-item-list_link:hover {
    opacity: .7;
}
.obon-item-list_name {
    font-size: 14px;
    margin: 15px 0 5px 0;
}

/* =========================================================
   Brand Gallery (コンテンツD)
========================================================= */
.obon-brand {
    padding: 60px 20px;
    background-color: #eeeaf8;
    text-align: center;
    margin-top: 60px;
}
.obon-brand_title {
    font-size: 21px;
    font-weight: bold;
    color: #8c82b4;
    margin-bottom: 25px;
}
.obon-brand_lead {
    font-size: 16px;
    margin: 0 auto 15px;
    text-align: center;
    display: block;
}
.obon-brand_lead + .obon-brand-gallery {
    margin-top: 40px;
}
.obon-brand-gallery {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 20px;
    margin: 0 auto 40px;
    max-width: 900px;
}
.obon-brand-gallery_item {
    width: calc(33.333% - 14px);
    margin: 0;
}
.obon-brand-gallery_caption {
    font-size: 13px;
    text-align: left;
    margin-top: 10px;
    color: #333333;
}

/* =========================================================
   Responsive (SP - 幅可変サイズ & レイアウト最適化)
========================================================= */
@media screen and (max-width: 767px) {
    .obon-br-sp { display: inline; }
    .obon-br-pc { display: none; }
    
    /* 可変タイポグラフィ */
    .obon-lead_title { font-size: clamp(20px, 5vw, 24px); }
    .obon-section_title, 
    .obon-brand_title { font-size: clamp(19px, 5vw, 21px); }
    .obon-cta_btn { font-size: clamp(16px, 4.35vw, 18px); }
    
    .obon-lead_text,
    .obon-section_lead,
    .obon-brand_lead,
    .obon-point_title,
    .obon-point_desc { font-size: clamp(15px, 4.1vw, 18px); }
    
    .obon-item-list_name { font-size: clamp(14px, 3.84vw, 16px); }
    .obon-brand-gallery_caption { font-size: clamp(15px, 4.1vw, 18px); }
    .obon-cta_note { font-size: clamp(14px, 3.84vw, 16px); }
    
    .obon-lead_text,
    .obon-section_lead,
    .obon-brand_lead {
        text-align: left;
        display: block;
    }
    
    .obon-cta_btn {
        width: 75%; /* スマホ版の幅調整 */
        padding-left: 20px;
        padding-right: 35px;
    }
    
    .obon-lead {
        padding: 32px 15px; 
        margin-top: 40px;
        margin-bottom: 0;
    }
    
    .obon-section { padding: 32px 15px; }
    .obon-section_bg-blue { margin: 40px 0; }

    .obon-section_lead + .obon-item-list,
    .obon-section_lead + .obon-point,
    .obon-brand_lead + .obon-brand-gallery {
        margin-top: 30px;
    }

    .obon-white-box {
        padding: 30px 15px;
        margin-bottom: 30px;
    }
    
    .obon-brand {
        padding: 32px 15px;
        margin-top: 40px;
    }
    
    .obon-item-list,
    .obon-brand-gallery { gap: 30px; }
    
    .obon-item-list_item,
    .obon-brand-gallery_item { width: 100%; }
}