.site-richtext img,
.site-richtext video {
    max-width: 100%;
    height: auto;
}
.site-richtext {
    overflow-wrap: anywhere;
    overflow-x: auto;
}
#bodyer.case-page { background: #f8f9f7; }
#bodyer.case-page .pz_main { padding: 0 0 80px; background: transparent; }
.case-intro { padding: 56px 0 64px; text-align: left; }
.case-intro > p { margin: 0 0 16px; color: #2854a2; font-size: 14px; letter-spacing: 2px; }
.case-intro h1 { margin: 0 0 22px; color: #20252d; font-size: clamp(32px, 3.4vw, 52px); font-weight: 600; }
.case-intro .case-intro-description { color: #737980; font-size: 16px; line-height: 1.8; letter-spacing: 0; }
.case-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 56px 72px; padding-bottom: 70px; }
.case-item:nth-child(even) { transform: translateY(48px); }
.case-card { display: block; color: #20252d; }
.case-cover { position: relative; overflow: hidden; aspect-ratio: 4 / 3; border-radius: 20px; background: #eaf0f5; display: flex; align-items: center; justify-content: center; }
.case-cover > img { width: 100%; height: 100%; object-fit: cover; transition: transform 600ms ease; }
.case-cover > span:not(.case-open) { color: #2854a2; font-size: 20px; }
.case-open { position: absolute; right: 22px; bottom: 22px; display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 50%; background: #fff; color: #2854a2; font-size: 24px; opacity: 0; transform: translateY(8px); transition: opacity 250ms ease, transform 250ms ease; }
.case-caption { padding: 24px 0 0; text-align: left; }
.case-caption h2 { margin: 0 0 12px; font-size: 22px; line-height: 1.5; font-weight: 600; }
.case-caption p { margin: 0; color: #737980; font-size: 14px; line-height: 1.8; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.case-card:hover { color: #2854a2; }
.case-card:hover .case-cover > img { transform: scale(1.04); }
.case-card:hover .case-open,
.case-card:focus-visible .case-open { opacity: 1; transform: translateY(0); }
.case-card:focus-visible { outline: 2px solid #2854a2; outline-offset: 6px; }
@media (max-width: 980px) {
    .case-grid { gap: 36px 28px; }
    .case-caption h2 { font-size: 19px; }
}
@media (max-width: 767px) {
    .case-intro { padding: 36px 0 28px; }
    .case-grid { grid-template-columns: 1fr; gap: 32px; padding-bottom: 32px; }
    .case-item:nth-child(even) { transform: none; }
    .case-cover { border-radius: 14px; }
    .case-open { opacity: 1; transform: none; }
    .case-caption { padding-top: 18px; }
}
@media (prefers-reduced-motion: reduce) {
    .case-cover > img, .case-open { transition: none; }
    .case-card:hover .case-cover > img { transform: none; }
}
#bodyer .banner-nav p {
    flex-wrap: wrap;
    overflow-wrap: anywhere;
}
.service-detail {
    width: calc(100% - 48px);
    max-width: 1000px;
    padding-right: 0;
    padding-left: 0;
}
.service-detail-icon {
    margin-bottom: 24px;
    color: #2854a2;
    font-size: 64px;
    text-align: center;
}
.service-detail-description {
    white-space: pre-line;
    line-height: 1.9;
}
