@charset "utf-8";

/* --- パーティレポート一覧 (archive) --- */

.areaGallery.inner {
    padding: 68px 0 87px;
}

.areaGallery .listGallery.party-report-list {
    position: relative;
    max-width: 815px;
    height: 935px; /* ★初期の固定の高さ */
    overflow: hidden;
    margin: 0 auto;
    padding: 0;
    transition: all 0.3s linear;
}

.areaGallery .listGallery.party-report-list.show {
    height: auto; /* 高さを自動にして全部表示 */
}

/* 下部を隠すグラデーション */
.areaGallery .listGallery.party-report-list:before {
    content: "";
    position: absolute;
    background: url(../images/gallery/hidden-bg.png) no-repeat;
    width: 100%;
    height: 143px;
    bottom: 0;
    left: 0;
    z-index: 10;
}
.areaGallery .listGallery.party-report-list.show:before {
    display: none;
}

/* clearfix (float解除用) */
.areaGallery .listGallery.party-report-list::after {
    content: "";
    display: block;
    clear: both;
}

/* archive 項目 <li> */
.report-item {
    float: left;
    width: 32.3333%;
    margin: 0 3px 3px 0;
    list-style: none;
}
.report-item:nth-child(3n) {
    margin-right: 0;
}

.report-item a {
    display: block;
    text-decoration: none;
    color: #333;
    transition: opacity 0.3s;
}
.report-item a:hover {
    opacity: 0.7;
}

.report-item-image {
    width: 100%;
    aspect-ratio: 4 / 3;
    overflow: hidden;
}
.report-item-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.report-item-text {
    padding: 10px 5px;
}

/* ★ archive タイトルのアンダーライン */
.report-item-title {
    font-size: 14px;
    font-weight: bold;
    line-height: 1.4;
    padding-bottom: 8px;
    margin: 0 0 8px 0;
}

.report-item-name {
    font-size: 15px;
    margin: 0;
    text-align: center;
}

.report-item-name::before {
    content: "";
    display: block;
    width: 100px;
    margin: 0 auto;
    border-bottom: 1px solid #a40066;
}

/* View all ボタン */
.areaGallery .viewAll {
    text-align: center;
    margin-top: -1px;
    position: relative;
    z-index: 99;
}
.areaGallery .viewAll a {
    display: inline-block;
    text-align: center;
    font-size: 16px;
    color: #fff;
    background: #333333;
    width: 350px;
    padding: 7px 8px 9px 33px;
    border-radius: 3px;
}
.areaGallery .viewAll a .arrow {
    margin-left: 12px;
}

/* --- パーティレポート詳細 (single) --- */

.party-report-single .inner {
    max-width: 960px;
    margin-left: auto;
    margin-right: auto;
    padding: 0 20px;
}

/* 1. ヘッダー */
.report-header {
    padding: 40px 0 30px;
    text-align: center;
}
.report-header .page-sub-title {
    font-size: 16px;
}
.report-title {
    font-size: 22px;
    margin-bottom: 10px;
}
.report-couple-name {
    font-size: 20px;
}

/* 2. メタ情報バー */
.report-meta {
    display: flex;
    justify-content: center;
    gap: 1px;
    list-style: none;
    margin: 0 10px 40px 10px;
    max-width: 960px;
    border: 1px solid #189A6F;
}
.report-meta li {
    flex: 1; /* 3分割 */
    padding: 10px 10px;
    font-size: 16px;
    text-align: center;
    background-color: #fff;
}
.report-meta li span {
    font-size: 16px;
    color: #189A6F;
    padding-right: 10px
}

/* アイキャッチ画像 */
.report-featured-image {
    margin-bottom: 40px;
    text-align: center;
}
.report-featured-image img {
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
    object-fit: cover;
}

/* 3. 上部3枚ギャラリー */
.report-top-gallery {
    margin-bottom: 40px;
}
.report-top-gallery .clearfix::after {
    content: ""; display: block; clear: both;
}
.report-top-gallery ul {
    padding: 0; list-style: none;
    display: flex;
    gap: 10px;
}
.report-top-gallery li.top-gallery-item {
    width: 33.333%;
    margin: 0;
}
.report-top-gallery li img {
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    display: block;
    transition: opacity 0.3s;
}

/* 4. イントロ文 */
.report-intro {
    padding-bottom: 40px;
}
.report-intro .intro-text {
    font-size: 16px;
    line-height: 1.8;
    padding: 30px 140px;
    margin: 30px 0;
    text-align: center;
    background: #f8f8f8;
}

/* 5. メイン本文 */
.report-content-body {
    padding-bottom: 40px;
}
.party-report-single .report-text {
    font-size: 14px;
    line-height: 1.8;
    padding: 30px 140px;
    margin: 30px 0;
    text-align: left;
    background: #f8f8f8;
}

/* 6. 残りのギャラリー (3列グリッド) */
.areaGallery .listGallery.party-report-gallery {
    max-width: 815px;
    margin: 0 auto 40px;
    padding: 0;
    list-style: none;
    height: auto;
    overflow: visible;
}
.areaGallery .listGallery.party-report-gallery::after {
    content: "";
    display: block;
    clear: both;
}
.areaGallery .listGallery.party-report-gallery:before {
    display: none;
}
.areaGallery .listGallery.party-report-gallery li {
    float: left;
    width: 32.3333%;
    margin: 0 3px 3px 0;
    list-style: none;
    aspect-ratio: 1 / 1; /* ★正方形 */
    overflow: hidden;
}
.areaGallery .listGallery.party-report-gallery li:nth-child(3n) {
    margin-right: 0;
}
.areaGallery .listGallery.party-report-gallery li a {
    display: block;
    height: 100%;
}
.areaGallery .listGallery.party-report-gallery li img {
    width: 100%;
    height: 100%; /* ★ 1/1 の li に合わせる */
    object-fit: cover;
    display: block;
    transition: opacity 0.3s;
}
.areaGallery .listGallery.party-report-gallery li a:hover img {
    opacity: 0.7;
}

/* --- タイトル「」 --- */
.single-party_report .report-header .report-title::before {
    content: "「";
    margin-right: 0.1em;
}
.single-party_report .report-header .report-title::after {
    content: "」";
    margin-left: 0.1em;
}
.post-type-archive-party_report .report-item-title::before {
    content: "「";
    margin-right: 0.1em;
}
.post-type-archive-party_report .report-item-title::after {
    content: "」";
    margin-left: 0.1em;
}

/* --- archive New バッジ --- */
.report-item {
    position: relative; /* 子要素の new-badge を相対配置にするため */
}

.report-item::before{
    content: "";
    top: 0;
    left: 0;
    border-bottom: 3em solid transparent;
    border-left: 3em solid #a40066; 
    position: absolute;
    z-index: 10;
}

/* リボン先の三角 */
.report-item::after {
    content: "New!";
    top: 7px;
    left: 0;
    transform: rotate(-45deg);
    color: #fff;
    position: absolute;
    z-index: 10;
    font-size: .8em;
    font-weight: 700;
    /* ホバー時のチラつき対策 */
    -webkit-font-smoothing: antialiased; 
}

/* --- レスポンシブ (768px以下) --- */
@media (max-width: 768px) {
    .areaGallery.inner {
        padding: 40px 20px 102px 20px;
    }
    /* (archive) list */
    .areaGallery .listGallery.party-report-list {
        width: 100%;
        height: 450px;
        display: grid;
        grid-template-columns: repeat(2, 1fr); /* 2カラム */
        gap: 10px; /* ★アイテム間の余白 */
    }
    .areaGallery .listGallery.party-report-list.show {
        height: auto;
    }
    .report-item {
        width: 100%;
    }
    .report-item:nth-child(2n) {
    }
    .report-item:nth-child(3n) {
    }
    .report-item-text { padding: 5px; }
    .report-item-title { font-size: 13px; }
    .report-item-name { font-size: 11px; }

    /* (archive) viewAll */
    .areaGallery .viewAll {
        margin-top: -26px;
    }
    .areaGallery .viewAll a {
        width: 160px;
        padding-left: 36px;
    }
    
    /* (single) header */
    .report-title {
        font-size: 22px;
    }
    .report-couple-name {
        font-size: 18px;
    }
    
    /* (single) meta */
    .report-meta {
        gap: 1px;
        margin: 30px 10px 40px 10px;
    }
    
    /* (single) top gallery */
    .report-top-gallery ul {
        display: flex;
        justify-content: space-around;
        gap: 5px;
    }
    
    .report-meta li {
        font-size: 14px;
        padding: 2px 10px;
    }
    
    .report-meta li span {
        font-size: 14px;
    }
    
    .report-top-gallery li.top-gallery-item {
    }
    
    .report-meta li span {
        display: block; /* ラベル(Season)をブロック要素に */
    }
    
    /* (single) intro */
    .report-intro { padding-bottom: 30px; }
    .report-intro .intro-text { 
        font-size: 15px; 
        text-align: left;
        padding: 20px; /* SPのpadding */
        margin: 20px 0;
    }
    
    /* (single) text */
    .party-report-single .report-text {
        font-size: 14px;
        text-align: left;
        padding: 20px; /* SPのpadding */
        margin: 20px 0;
    }
    
    /* (single) featured image */
    .report-featured-image {
        margin-bottom: 30px;
    }

    /* (single) bottom gallery */
    .areaGallery .listGallery.party-report-gallery {
        max-width: 100%;
    }
    .areaGallery .listGallery.party-report-gallery li {
        width: calc((100% / 3) - 0.4% );
        margin: 0 0.5% 0.6% 0;
    }
    .areaGallery .listGallery.party-report-gallery li:nth-child(3n) {
        margin-right: 0.5%;
    }
    .areaGallery .listGallery.party-report-gallery li:nth-child(3n+3) {
        margin-right: 0;
    }
}