/* メイン画像エリアの高さを一定にしてサムネ行の上下ブレを防止 */
.hero-frame{
    aspect-ratio: 16 / 9; /* 必要なら 4/3 や 1/1 に変更可 */
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background: #fff;
    border-radius: .5rem;
}
.hero-frame > img{
    max-width: 100%;
    max-height: 100%;
    object-fit: contain; /* 余白はレターボックス化 */
    display: block;
}
/* Lightbox (main image zoom) */
.lightbox-overlay{
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.9);
    display: none; /* toggled by .open */
    align-items: center;
    justify-content: center;
    z-index: 1060; /* above cards/nav */
    padding: 2rem;
}
.lightbox-overlay.open{ display: flex; }
.lightbox-content{ position: relative; max-width: 90vw; max-height: 90vh; }
.lightbox-content img{ max-width: 100%; max-height: 100%; object-fit: contain; display: block; }
.lightbox-close{
    position: absolute; top: -.75rem; right: -.75rem;
    border: 0; background: #fff; color: #000; border-radius: 999px; width: 36px; height: 36px;
    display: flex; align-items: center; justify-content: center; cursor: pointer;
    box-shadow: 0 2px 8px rgba(0,0,0,.4);
}
.device-title{
    margin-bottom:.5rem;
    font-size:1.75rem;
    font-weight:700;
    color:#212529;
}
.device-summary{ color:#6c757d; line-height:1.5; }

/* Reviews (評判) table-like layout */
.reviews-list {
    list-style: none;
    padding-left: 0;
    margin: 0;
}
.reviews-list li {
    padding: 0.5rem 0.25rem;
    border-bottom: 1px dotted #ced4da; /* dotted line per row */
    line-height: 1.5;
}
.reviews-list li:last-child {
    border-bottom: none;
}

/* Pros / Cons table-like layout */
.pc-list {
    list-style: none;
    padding-left: 0;
    margin: 0;
}
.pc-list li {
    display: flex;
    align-items: flex-start;
    gap: .5rem;
    padding: 0.45rem 0.25rem;
    border-bottom: 1px dotted #ced4da;
    line-height: 1.5;
}
.pc-list li:last-child { border-bottom: none; }
.pc-list .icon {
    width: 1.25rem;
    flex: 0 0 1.25rem;
    text-align: center;
    font-weight: 700;
}
.pc-list.pros .icon { color: #198754; }   /* green */
.pc-list.cons .icon { color: #dc3545; }   /* red */

/* X (Twitter) embeds */
.x-embeds .twitter-tweet {
    margin: 0 auto;
}
.x-embeds .twitter-tweet + .twitter-tweet {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px dotted #ced4da;
}
.x-embeds .x-embed-hint {
    font-size: .875rem;
    color: #6c757d;
}
.device-summary{ color:#6c757d; line-height:1.6; }

/* Title summary box (under device name) */
.device-summary-box{
    border: 1px solid #e9ecef;
    background: #f8f9fa;
    border-radius: .5rem;
    padding: .75rem .9rem;
}
.device-summary-box .device-summary{ margin: 0; }
