/*===== PAGE: PARTY =====*/

/* Shadow Effects */
.shadow {
    position: relative;
}

.shadow:before,
.shadow:before {
    transform: rotate(-3deg);
    left: 24px;
}

.shadow:after {
    transform: rotate(3deg);
    right: 24px;
}

.shadow * {
    position: relative;
    z-index: 1;
}

/* Party Link Section */
.link_party {
    background-color: #ffe9e4;
    background-image: none;
}

.link_party .cardBlockWrap {
    width: 100%;
    max-width: 1225px;
    padding: 0 20px;
    margin: 55px auto 0;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 15px;
}

.link_party .cardBlock {
    float: none;
    display: flex;
    flex-direction: column;
    background: #ffffff;
    overflow: hidden;
    height: 100%;
    margin: 0;
}

.link_party .cardBlock:hover {
    transform: translateY(-8px);
    box-shadow: 0 20px 45px rgba(0, 0, 0, 0.12);
}

.link_party .cardBlock_col5 {
    width: 100%;
    padding: 0;
    box-sizing: border-box;
}

.link_party .cardBlockImage {
    position: relative;
    width: 100%;
    overflow: hidden;
    aspect-ratio: 4 / 3;
}

.link_party .cardBlockImage .imageZoom,
.link_party .cardBlockImage .imageZoom a {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    display: block;
}

.link_party .cardBlockImage img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s ease;
}

.link_party .cardBlock_text {
    padding: 20px 0px 28px;
    background-color: #ffffff;
}

.link_party .cardBlock_ttl {
    font-size: 22px;
    letter-spacing: 0.06em;
    color: #1d1d1d;
}

.link_party .cardBlock_ttl .eng {
    font-weight: 600;
}

.link_party .cardBlock_ttl_komidasi {
    font-size: 13px;
    color: #5aa0d6;
    letter-spacing: 0.08em;
}


/* Card Block Styles */
.cardBlockImage img {
    width: 100%;
    display: block;
}

.cardBlock_text {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    position: relative;
}

.cardBlock_ttl {
    font-size: 32px;
    line-height: 0.8;
    margin-bottom: 12px;
    letter-spacing: 1px;
    text-align: center;
}

.cardBlock_ttl_komidasi {
    font-size: 15px;
}

/* Our Mind Block */
.ourMindBlock {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 21px;
}

.ourMindBlock .col {
    width: 100%;
    margin-right: 0;
    float: none;
    text-align: center;
}

.ourMindBlock img {
    display: block;
    margin: 0 auto;
}

.ourMindImg {
    width: 100%;
    height: 231px;
    position: relative;
    overflow: hidden;
}

.ourMindImg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ourMindTitle {
    padding: 10px 0;
    font-size: 20px;
    letter-spacing: 0;
}

.ourMindTitle + p {
    letter-spacing: 0;
}


/* Cote d'Azur Gallery Layout */
.cote_d_azurBlock .gallery .row2,
.cote_d_azurBlock .gallery .row3 {
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: 23px;
}

.cote_d_azurBlock .gallery .row2 .col,
.cote_d_azurBlock .gallery .row3 .col {
    width: 100%;
    margin-right: 0;
    float: none;
}

.cote_d_azurBlock .gallery .row1 {
    display: block;
}

.cote_d_azurBlock .gallery .row1 > a {
    display: block;
    width: 100%;
}

/* Cotswolds Gallery Layout */
.cotswoldsBlock .gallery .row2,
.cotswoldsBlock .gallery .row3 {
    display: grid;
    grid-auto-rows: auto;
    gap: 21px;
}

.cotswoldsBlock .gallery .row2 {
    grid-template-columns: 2fr 1fr;
}

.cotswoldsBlock .gallery .row3 {
    grid-template-columns: 1fr 2fr;
}

.cotswoldsBlock .gallery .row2 .col,
.cotswoldsBlock .gallery .row3 .col {
    width: 100%;
    margin-right: 0;
    float: none;
}

.cotswoldsBlock .gallery .row1 {
    display: block;
}

.cotswoldsBlock .gallery .row1 > a {
    display: block;
    width: 100%;
}

.cotswoldsBlock .gallery .row2 .left793 {
    width: 100%;
    margin-right: 0;
    float: none;
}

/* Seine Gallery Layout */
.seineBlock .gallery .row2 {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 21px;
}

.seineBlock .gallery .row2 .col {
    width: 100%;
    margin-right: 0;
    float: none;
}

.seineBlock .gallery .row1 {
    display: block;
}

.seineBlock .gallery .row1 > a {
    display: block;
    width: 100%;
}

/* Riviera Gallery Layout */
.rivieraBlock .gallery .row2 {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 21px;
}

.rivieraBlock .gallery .row2 .col {
    width: 100%;
    margin-right: 0;
    float: none;
}

.rivieraBlock .gallery .row1 {
    display: block;
}

.rivieraBlock .gallery .row1 > a {
    display: block;
    width: 100%;
}

/* Banquet Room Gallery Layout */
.banquet_roomBlock .gallery .row2 {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 21px;
}

.banquet_roomBlock .gallery .row2 .col {
    width: 100%;
    margin-right: 0;
    float: none;
}

.banquet_roomBlock .gallery .row1 {
    display: block;
}

.banquet_roomBlock .gallery .row1 > a {
    display: block;
    width: 100%;
}

/* Gallery Common Styles */
.gallery .row1,
.gallery .row2,
.gallery .row3 {
    margin-bottom: 21px;
}

.gallery .row1:last-child,
.gallery .row2:last-child,
.gallery .row3:last-child {
    margin-bottom: 0;
}

/* Keep gallery row2/row3 images at consistent height */
.gallery .row2,
.gallery .row3 {
    grid-auto-rows: clamp(200px, 26vw, 320px);
    align-items: stretch;
}

.gallery .row2 .col,
.gallery .row3 .col {
    height: 100%;
    margin-bottom: 20px;
}

.gallery .row2 a,
.gallery .row3 a {
    display: block;
    width: 100%;
    height: 100%;
}

.gallery .row2 img,
.gallery .row3 img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.gallery .col {
    width: 100%;
}

.gallery .col.mr21 {
    margin-right: 0;
}

.gallery img {
    width: 100%;
    height: auto;
    display: block;
}

/* Image Caption */
p.cap {
    font-size: 13px;
    letter-spacing: 0.2px;
    margin-top: 3px;
}

/* Image Transition Effect */
.trans {
    opacity: 1;
    transition: opacity 0.3s ease;
}

.trans:hover {
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=80)";
    filter: alpha(opacity=80);
    -moz-opacity: .8;
    -khtml-opacity: .8;
    opacity: .8;
}

/* Border Styles */
.bdGreen {
    background: url(../images/icon/bg_border01.png) 50% 0 no-repeat;
}

.bdTriangle {
    background: url(../images/icon/bg_border02.png) 50% 0 no-repeat;
}

.bdDarkGreen {
    background: url(../images/icon/bg_border03.png) 50% 0 no-repeat;
}

/* Color Utilities */
.f_green {
    color: #9acccd;
}

.f_blue {
    color: #5aa0d6;
}


/* Responsive: 1000px, 800px, 600px, 400px */
@media (max-width: 1000px) {
    .link_party .cardBlockWrap {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .ourMindBlock {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 800px) {
    .link_party .cardBlockWrap {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 14px;
    }

    .ourMindBlock {
        grid-template-columns: 1fr;
        gap: 18px;
    }
}

@media (max-width: 600px) {
    .link_party .cardBlockWrap {
        grid-template-columns: 1fr;
        margin: 20px auto 0;
    }

    .link_party .cardBlock {
        min-height: auto;
    }

    .ourMindImg {
        height: auto;
    }

    /* Gallery rows: single column on mobile */
    .gallery .row2,
    .gallery .row3 {
        grid-template-columns: 1fr !important;
        grid-auto-rows: auto;
    }

    .cote_d_azurBlock .gallery .row2,
    .cote_d_azurBlock .gallery .row3,
    .cotswoldsBlock .gallery .row2,
    .cotswoldsBlock .gallery .row3,
    .seineBlock .gallery .row2,
    .rivieraBlock .gallery .row2,
    .banquet_roomBlock .gallery .row2 {
        grid-template-columns: 1fr !important;
    }

    .gallery .row2 .col,
    .gallery .row3 .col {
        margin-bottom: 10px;
    }

    .gallery .row2 .col:last-child,
    .gallery .row3 .col:last-child {
        margin-bottom: 0;
    }

@media (max-width: 400px) {
    .link_party .cardBlock_ttl {
        font-size: 20px;
    }

    .link_party .cardBlock_ttl_komidasi {
        font-size: 12px;
    }
}
