.section {
    max-width: 960px;
    margin: 0 auto;
    padding: 10px;
    text-align: left;
}
.image {
    display: block;
    margin: 20px auto;
    max-width: 100%;
    width: 80%;
    height: auto;
}
.image-row-narrow {
    width: 80%;
    margin: 0 auto;
}
.lead {
    font-size: 16px;
    text-align: center;
    margin: 10px 0;
}
.text-block {
    font-size: 16px;
    text-align: left;
}
.copy {
    font-size: 20px;
    font-weight: bold;
    text-align: center;
    margin-bottom: 0px;
}
.headline {
    font-size: 22px;
    font-weight: bold;
    padding: 5px 0;
    color: #000;
    text-align: center;
}
.bg-green { background-color: rgba(109, 170, 62, 0.2); }
.bg-orange { background-color: rgba(243, 170, 19, 0.2); }
.bg-pink { background-color: rgba(221, 162, 163, 0.2); }
.set-wrapper {
    display: flex;
    flex-direction: column;
    gap: 40px;
}
.set {
    text-align: center;
}
.image-row {
    display: flex;
    justify-content: center;
    gap: 0;
}
.image-row a {
    width: calc(100% / 3);
    display: block;
}
.image-row a img {
    width: 100%;
    height: auto;
    display: block;
    object-fit: contain;
    margin: 0;
}
.image-row-dessert {
    display: flex;
    justify-content: center;
    gap: 0 !important;
}
.image-row-dessert a {
    display: block;
    width: calc(100% / 3);
}
.image-row-dessert a img {
    display: block;
    object-fit: contain;
    width: 100%;
    margin: 0;
}
.button {
    display: block;
    width: fit-content;
    margin: 40px auto 0;
    padding: 12px 32px;
    background-color: #0c336c;
    color: #fff;
    text-decoration: none;
    font-weight: bold;
    border-radius: 4px;
}
.button:visited {
    color: #fff; /* リンク訪問後も白字に固定 */
    background-color: #0c336c; /* 背景色も同じにしておくと安心 */
}
.h3-icon {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    font-weight: bold;
    font-size: 18px;
    margin: 50px 0 10px;
}
.h3-icon img {
    height: 60px;
    width: auto;
    flex-shrink: 0;
    margin-right: 10px;
}
.h3-green { color: #6daa3e; }
.h3-orange { color: #f3aa13; }
.h3-pink { color: #dba2a3; }
.pair-wrapper {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 40px;
    margin: 40px 0;
}
.pair-block {
    width: 280px;
    text-align: center;
}
.pair-block a {
    display: block;
}
.pair-block a img {
    width: 100%;
    height: auto;
    display: block;
}
.pair-block img {
    width: 100%;
    height: auto;
    display: block;
}
/* PCサイズ（幅769px以上）の設定 */
@media (min-width: 769px) {
    .image-row-dessert img {
        width: calc(100% / 3) !important;
    }
    .soiree-image {
        width: 70%;
        display: block;
        margin: 20px auto;
        max-width: 100%;
    }
}
/* スマホサイズ（幅768px以下）の設定 */
@media (max-width: 768px) {
    /* 1・24・49番パート画像の横幅を100%に */
    .section > a > img.image,
    .section > img.image {
        width: 100% !important;
        max-width: 100% !important;
        height: auto;
        display: block;
    }
    /* pair-wrapper内の画像も横スクロールに */
    .pair-wrapper {
        flex-wrap: nowrap;
        overflow-x: auto;
        gap: 20px;
        padding-bottom: 10px;
    }
    .pair-block {
        flex: 0 0 auto;
        width: 280px;
    }
    .image-row,
    .image-row-dessert {
        flex-direction: row;
    }
}