@charset "UTF-8";
/* ==========================================================================
   PHOENIX NIGHT  booths.css
   企業出店ブース紹介セクション（template-parts/booths.php）専用。main.css の後に読み込みます。
   PC: 768px〜 / SP: 〜767px
   ========================================================================== */

.pn-booths {
    --pn-booth-red: #c30d23;
    --pn-booth-border: #555;
    padding-top: 0; /* 直前のイベント情報の下余白が大きいため */
}

.pn-booths .pn-container {
    max-width: calc(1000px + var(--pn-gutter) * 2);
}

.pn-booths .pn-heading {
    margin-bottom: clamp(36px, 3.4vw, 64px);
}

.pn-booths .pn-heading::after {
    width: min(220px, 60%);
    height: 3px;
}

/* ==========================================================================
   ブースカード
   ========================================================================== */
.pn-boothcards {
    display: grid;
    gap: 24px;
}

.pn-boothcard {
    display: grid;
    grid-template-columns: clamp(180px, 24%, 240px) minmax(0, 1fr);
    overflow: hidden;
    border: 2px solid var(--pn-booth-border);
    border-radius: 12px;
    background: var(--pn-white);
    scroll-margin-top: 40px;
}

/* 写真は正方形。説明文が長くカードが高くなったときは上下に余白が出ます */
.pn-boothcard__photo {
    position: relative;
    align-self: stretch;
    aspect-ratio: 1;
    overflow: hidden;
    background: #f2f2f2;
}

/* 正方形でない画像の余白は、同じ画像をぼかして埋める */
.pn-boothcard__photo::before {
    content: '';
    position: absolute;
    inset: -20px;
    background: var(--photo) center / cover no-repeat;
    filter: blur(14px) brightness(0.95);
}

/* 画像は切り取らず、必ず全体を表示する */
.pn-boothcard__photo img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.pn-boothcard__noimage {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    color: #999;
    font-size: 12px;
    letter-spacing: 0.1em;
}

.pn-boothcard__body {
    padding: 12px 24px 16px 18px;
    letter-spacing: 0.05em;
}

/* ラベル */
.pn-boothcard__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 10px;
    margin-bottom: 6px;
}

.pn-boothcard__type,
.pn-boothcard__tag {
    min-width: 6em;
    padding: 0.15em 1.2em;
    border-radius: 2em;
    background: var(--tag, var(--pn-booth-red));
    color: var(--pn-white);
    font-size: 12px;
    line-height: 1.4;
    text-align: center;
    white-space: nowrap;
}

.pn-boothcard__type {
    min-width: 17em;
}

/* テキスト */
.pn-boothcard__company {
    font-size: 12px;
    line-height: 1.5;
}

.pn-boothcard__title {
    font-size: clamp(20px, 1.6vw, 24px);
    font-weight: 400;
    line-height: 1.35;
}

.pn-boothcard__product {
    margin-top: 0.1em;
    color: var(--pn-booth-red);
    font-size: 15px;
    line-height: 1.45;
}

.pn-boothcard__desc {
    margin-top: 1.2em;
    font-size: 12px;
    line-height: 1.6;
}

.pn-boothcard__desc p + p {
    margin-top: 0.9em;
}

/* ==========================================================================
   SP
   ========================================================================== */
@media (max-width: 767px) {
    .pn-boothcards {
        gap: 20px;
    }

    .pn-boothcard {
        grid-template-columns: 1fr;
        border-radius: 14px;
    }

    .pn-boothcard__photo {
        aspect-ratio: auto;
    }

    /* スマートフォンでは画像の縦横比のまま表示 */
    .pn-boothcard__photo img {
        position: relative; /* ぼかし背景より手前に表示 */
        display: block;
        height: auto;
    }

    .pn-boothcard__photo:has(.pn-boothcard__noimage) {
        aspect-ratio: 10 / 9;
    }

    .pn-boothcard__body {
        padding: 14px 14px 18px;
    }

    /* ブース種別はスマートフォンでは表示しない（デザインに合わせて） */
    .pn-boothcard__type {
        display: none;
    }

    .pn-boothcard__type,
    .pn-boothcard__tag {
        min-width: 0;
        padding-inline: 1em;
        font-size: 11px;
    }

    .pn-boothcard__title {
        font-size: 19px;
    }

    .pn-boothcard__product {
        margin-top: 0.4em;
        font-size: 14px;
    }

    .pn-boothcard__desc {
        margin-top: 0.8em;
        font-size: 13px;
    }
}
