html,
body {
    overflow-x: hidden;
    max-width: 100%;
}

.topmainimage {
    width: 100%;
    overflow: hidden;
}

.topmainimage picture,
.topmainimage img {
    display: block;
    width: 100%;
}

.topic-card-img--about {
    background-image: url(/img/26about-80.jpg);
}

.topic-card-img--planner {
    background-image: url(https://rokusapo.com/upload//2023/01/03a.jpg);
}

.topic-card-img--cases {
    background-image: url(/img/26cases-80.jpg);
}

.section-project { width: 80%; margin: 5rem auto 0; }
.planner-carousel { position: relative; max-width: 85vw; margin: 0 auto; padding: 0 56px 5rem; box-sizing: border-box; }
.planner-carousel .listplan { width: 100%; margin: 0 auto 0%; padding: 3% 0 1%; list-style: none; display: flex; gap: 24px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; -webkit-overflow-scrolling: touch; scrollbar-width: none; -ms-overflow-style: none; }
.planner-carousel .listplan::-webkit-scrollbar { display: none; }
.planner-carousel .planner-carousel__item { flex: 0 0 calc((100% - 48px) / 3); scroll-snap-align: start; min-width: 0; list-style: none; }
.planner-carousel .planner-carousel__item > * { display: block; }
.planner-carousel .planner-carousel__card { display: grid; grid-template-columns: 8rem 1fr; gap: 20px; align-items: center; padding: 22px 24px; background: #fff; border-radius: 14px; text-decoration: none; color: inherit; border: 1px solid #f0f0f0; box-shadow: 0 6px 20px rgba(0,0,0,.06); transition: transform .18s ease, box-shadow .18s ease; height: 100%; min-height: 12rem; box-sizing: border-box; }
.planner-carousel .planner-carousel__card:hover { transform: translateY(-3px); box-shadow: 0 14px 32px rgba(0,0,0,.12); opacity: 1; }
.planner-carousel .planner-carousel__face { width: 8rem; height: 8rem; overflow: hidden; border-radius: 10px; background: #f5f5f5; flex: none; }
.planner-carousel .planner-carousel__face img { width: 100%; height: 100%; object-fit: cover; display: block; }
.planner-carousel .planner-carousel__text { min-width: 0; }
.planner-carousel .planner-carousel__name { font-size: clamp(0.94rem, 0.84rem + 0.35vw, 1.08rem); font-weight: 600; margin: 0 0 8px; color: #1a1a1a; letter-spacing: .02em; line-height: 1.35; }
.planner-carousel .planner-carousel__kana { display: block; font-size: clamp(0.7rem, 0.64rem + 0.16vw, 0.78rem); color: #888; font-weight: 500; margin-top: 4px; letter-spacing: .02em; }
.planner-carousel .planner-carousel__sub { font-size: clamp(0.76rem, 0.68rem + 0.25vw, 0.86rem); color: #555; line-height: 1.7; margin: 0; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.planner-carousel__btn { position: absolute; top: 50%; transform: translateY(-50%); width: 44px; height: 44px; border-radius: 50%; border: 1px solid #e5e5e5; background: #fff; color: #1a1a1a; font-size: 22px; font-weight: 400; line-height: 1; cursor: pointer; box-shadow: 0 4px 14px rgba(0,0,0,.1); z-index: 5; display: inline-flex; align-items: center; justify-content: center; transition: background .16s ease, color .16s ease, transform .16s ease, box-shadow .16s ease; }
.planner-carousel__btn:hover { background: #1a1a1a; color: #fff; border-color: #1a1a1a; box-shadow: 0 8px 22px rgba(0,0,0,.18); }
.planner-carousel__btn:active { transform: translateY(-50%) scale(.96); }
.planner-carousel__btn--prev { left: 4px; }
.planner-carousel__btn--next { right: 4px; }
.planner-carousel__btn:disabled { opacity: .35; cursor: not-allowed; pointer-events: none; }
.planner-carousel__cta { text-align: center; margin-top: 16px; }
.planner-carousel__more { display: inline-flex; align-items: center; gap: 10px; padding: 10px 22px; background: rgba(255,255,255,.92); color: #1a1a1a; text-decoration: none; font-size: clamp(0.78rem, 0.7rem + 0.3vw, 0.88rem); font-weight: 600; letter-spacing: .04em; border-radius: 999px; border: 1px solid rgba(255,255,255,.7); transition: transform .16s ease, background .16s ease, box-shadow .16s ease; }
.planner-carousel__more i { font-style: normal; transition: transform .16s ease; }
.planner-carousel__more:hover { background: #fff; transform: translateY(-1px); box-shadow: 0 10px 22px rgba(0,0,0,.12); opacity: 1; }
.planner-carousel__more:hover i { transform: translateX(4px); }

@media (max-width: 1100px) {
    .planner-carousel .planner-carousel__card { grid-template-columns: 7rem 1fr; gap: 18px; padding: 20px 22px; }
    .planner-carousel .planner-carousel__face { width: 7rem; height: 7rem; }
}

@media (max-width: 960px) {
    .planner-carousel { padding: 0 44px 4rem; max-width: 92vw; }
    .planner-carousel__item { flex: 0 0 calc((100% - 24px) / 2); }
}

@media (max-width: 780px) {
    .topmainimage { width: 100%; height: auto; overflow: auto; }
    .topmainimage img { width: 100%; height: auto; object-fit: cover; display: block; }
    .slide_topick { padding: 0 0 20px; margin: 0; }
    .slide_topick li { min-width: 65%; }
    .listplan,
    .contents-item-container,
    .about-box_flex,
    .planner-lead,
    .section-project,
    .area { overflow: hidden; }
    h2.topics.title2.topics.top { margin: 0 7.5% 4%; display: block; }
    div#topContentsGrid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
    .topics.title2::after { content: ""; position: absolute; left: 0; top: 45%; width: 15px; border-top: 4px solid #6cafc0; }
    #main h2,
    .topics.title2 { color: #000; position: relative; margin: 1% 0 4%; padding-left: 30px !important; font-size: 13px; font-weight: 600; letter-spacing: 1px; line-height: 1.2; }
    .top-contents-more { display: inline-flex; align-items: center; gap: 1.2rem; color: #111; text-decoration: none; font-size: 12px; font-weight: 600; }
    .top-contents-head { display: flex; align-items: center; justify-content: space-between; margin: 2rem 0 2rem 0; }
    .about-box_textbig.planner { margin: 3% 0 1%; text-align: center; font-size: 13px; }
    a.tag.bunya { border: 1px solid #c6c6c6 !important; margin-right: 0px; border-radius: 20px !important; padding: 4px 20px !important; font-size: 11px; letter-spacing: 1px; text-align: center; }
    .section-project .contents-text-container .title { font-size: 13px; line-height: 1.65; }
}

@media (max-width: 600px) {
    .planner-carousel { padding: 0 36px 3rem; max-width: 94vw; }
    .planner-carousel__track { gap: 16px; }
    .planner-carousel__item { flex: 0 0 100%; }
    .planner-carousel .planner-carousel__card { grid-template-columns: 6rem 1fr; gap: 14px; padding: 16px; }
    .planner-carousel .planner-carousel__face { width: 6rem; height: 6rem; }
    .planner-carousel__btn { width: 38px; height: 38px; font-size: 20px; }
    .planner-carousel__btn--prev { left: 0; }
    .planner-carousel__btn--next { right: 0; }
}
