.p-header nav { flex: 1; }
/* News hero now fully matches the unified .p-lower-header (Solutions/Company) style on
   both PC and SP -- all page-specific overrides removed below. */
.news-listing { max-width: 1580px; margin-right: auto; }
.news-listing__intro { max-width: 1370px; margin: 0 auto 32px; }
.news-listing__intro h2, .news-related h2 { margin-bottom: 12px; font-size: clamp(24px, 3vw, 34px); font-weight: 500; }
.news-listing__intro p { line-height: 1.8; }
.news-categories { display: flex; flex-wrap: wrap; gap: 10px; max-width: 1370px; margin: 0 auto 42px; }
.news-categories a { display: inline-flex; align-items: center; min-height: 40px; padding: 8px 18px; border: 1px solid #dfe2e7; border-radius: 999px; background: #fff; transition: color .2s, background .2s, border-color .2s; }
.news-categories a:hover, .news-categories a[aria-current="page"] { border-color: #f18d00; color: #fff; background: #f18d00; }
.news-list { max-width: 1370px; }
.news-list > li { margin-bottom: 32px; }
.news-list > li:last-child { margin-bottom: 0; }
.news-card-link { display: block; color: inherit; text-decoration: none; }
.news-card { min-height: 220px; margin: 0; border: 1px solid var(--bg-g); border-radius: 15px; box-shadow: 9px 12px 8px 0 rgb(0 0 0 / 30%); transition: transform .2s, box-shadow .2s; }
.news-card-link:hover .news-card { box-shadow: 9px 12px 8px 0 rgb(0 0 0 / 30%); }
.news-card__image { flex: 0 0 40%; width: 40%; min-height: 220px; aspect-ratio: 16 / 9; background: #f2f4f7; }
.news-card__image img { display: block; width: 100%; height: 100%; object-fit: cover; }
.news-card__body { box-sizing: border-box; flex: 1; width: auto; padding: clamp(20px, 3vw, 40px); }
.news-card__body .o-newsCard__info--text { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-height: 1.6; font-size: 16px; }
.news-card__excerpt { display: -webkit-box; overflow: hidden; margin-top: 12px; color: #707782; line-height: 1.7; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.news-card__categories { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 22px; }
.news-result-count, .news-filter-note { max-width: 1370px; margin: 24px auto 0; color: #707782; text-align: right; }
.news-filter-note { margin-top: 0; margin-bottom: 24px; text-align: left; }
.news-filter-note a { margin-left: 12px; color: #c76f00; text-decoration: underline; }
.news-empty { max-width: 1370px; }
.news-pagination { margin-top: 64px; }
.p-newspage__page.news-pagination {
  display: flex;
  justify-content: center;
  max-width: 100%;
}
.p-newspage__page.news-pagination ul {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 12px;
}
.p-newspage__page.news-pagination li {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  min-height: 36px;
}
.p-newspage__page.news-pagination li a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  min-height: 36px;
  color: var(--color-sub);
  font-size: 16px;
  text-decoration: none;
}
.p-newspage__page.news-pagination li[aria-current="page"] a {
  color: #f18d00;
  font-weight: 700;
}
.p-newspage__page.news-pagination li.prev a,
.p-newspage__page.news-pagination li.next a {
  width: 40px;
  height: 40px;
  min-width: 40px;
  min-height: 40px;
  border: 1px solid var(--color-sub);
  border-radius: 50%;
}
.p-newspage__page.news-pagination li.prev a::before,
.p-newspage__page.news-pagination li.next a::before {
  content: none;
}
.p-newspage__page.news-pagination li.prev svg,
.p-newspage__page.news-pagination li.next svg {
  width: 14px;
  height: 14px;
}
.p-newspage__page.news-pagination li.prev svg path,
.p-newspage__page.news-pagination li.next svg path {
  stroke: currentColor;
}
@media (max-width: 767px) {
  .news-categories {
    flex-wrap: nowrap;
    max-width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    margin-bottom: 28px;
    padding-bottom: 4px;
    scrollbar-width: none;
    -ms-overflow-style: none;
    -webkit-overflow-scrolling: touch;
  }
  .news-categories::-webkit-scrollbar { display: none; }
  .news-categories a { flex: 0 0 auto; white-space: nowrap; }
  .news-pagination { margin-top: 44px; }
  .p-newspage__page.news-pagination li.prev a,
  .p-newspage__page.news-pagination li.next a {
    width: 36px;
    height: 36px;
    min-width: 36px;
    min-height: 36px;
  }
  .p-newspage__page.news-pagination li.prev svg,
  .p-newspage__page.news-pagination li.next svg {
    width: 12px;
    height: 12px;
  }
}
.news-article__content { max-width: 1500px; }
.news-article__content .p-newsdetail__wrap { max-width: 1050px; }
.news-article__tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 28px; }
.news-article__tags li { width: auto !important; padding: 6px 12px; border-radius: 999px; background: #f2f3f6; }
.news-article__tags a { color: #555; text-decoration: none; }
.news-article__thumbnail { margin: 0 auto 36px; text-align: center; }
.news-article__thumbnail img { max-width: 100%; max-height: 600px; object-fit: contain; }
.news-article__body { line-height: 1.9; overflow-wrap: anywhere; }
.news-article__body img, .news-article__body video { max-width: 100%; height: auto; }
.news-article__body table { display: block; max-width: 100%; overflow-x: auto; }
.news-like { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin: 48px 0; }
.news-like__button { display: inline-flex; align-items: center; gap: 8px; padding: 12px 20px; border: 1px solid #f18d00; border-radius: 999px; color: #c76f00; background: #fff; cursor: pointer; }
.news-like__button:hover:not(:disabled) { color: #fff; background: #f18d00; }
.news-like__button:disabled { cursor: default; opacity: .72; }
.news-like__message { color: #707782; font-size: 14px; }
.news-article__navigation { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 20px; padding-top: 28px; border-top: 1px solid #e3e5e9; }
.news-article__navigation > a:not(.news-article__all) { display: grid; gap: 8px; min-width: 0; }
.news-article__navigation > a:last-child { text-align: right; }
.news-article__navigation span { color: #707782; font-size: 13px; }
.news-article__navigation strong { overflow: hidden; font-weight: 500; text-overflow: ellipsis; white-space: nowrap; }
.news-article__all { color: #c76f00; white-space: nowrap; }
.news-related { padding-top: 40px; padding-bottom: 100px; }
.news-related .p-news__list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.news-related .p-news__list > li { width: 100%; min-width: 0; }
.news-related .o-newsCard__img { overflow: hidden; aspect-ratio: 1.6; background: #f2f4f7; }
.news-related .o-newsCard__img img { width: 100%; height: 100%; object-fit: cover; }
.news-related .p-home-image-placeholder { display: block; min-height: 160px; }
@media (max-width: 930px) { .news-card { flex-direction: column; } .news-card__image { flex-basis: auto; width: 100%; min-height: 0; } }
@media (max-width: 767px) { .news-listing { padding-inline: 20px; } .news-listing__intro { margin-bottom: 24px; } .news-categories { margin-bottom: 28px; } .news-card { min-height: 0; } .news-card__body { padding: 20px; } .news-card__categories { margin-top: 14px; } .news-pagination { margin-top: 44px; } .news-article__content { padding-inline: 20px; } .news-article__navigation { grid-template-columns: 1fr 1fr; } .news-article__all { grid-column: 1 / -1; grid-row: 1; text-align: center; } .news-related { padding: 32px 20px 64px; } .news-related .p-news__list { grid-template-columns: 1fr; gap: 20px; } }

.works-page { width: 100%; max-width: 1750px; margin: 80px 0 80px auto; padding: 80px; border-radius: 60px 0 0 60px; clip-path: inset(0 round 60px 0 0 60px); }
.works-detail { width: min(100% - 48px, 1420px); margin: 56px auto 96px; padding: clamp(28px, 5vw, 72px); border-radius: 40px 0 40px 0; box-shadow: 0 16px 48px rgb(25 38 71 / 8%); }
.works-filters { margin: 32px 0 56px; }
.works-filters .c-sort-condition__box { gap: 48px; padding: 24px clamp(24px, 7vw, 120px); }
.works-filters .c-sort-condition { min-width: 0; }
.works-filters .c-sort-condition dd { margin: 0; }
.works-filters select { box-sizing: border-box; width: 100%; min-width: 0; min-height: 44px; padding: 10px 36px 10px 18px; color: #30343c; background: #fff; border: 1px solid #f18d00; border-radius: 24px; }
.works-filters__submit { flex: 0 0 auto; align-self: flex-end; min-height: 44px; padding: 10px 24px; border: 0; border-radius: 24px; color: #fff; background: #f18d00; cursor: pointer; }
.works-grid { width: 100%; gap: 110px 24px; margin: 0 auto 130px; }
.works-card-title { font-size: clamp(15px, 1.7vw, 19px); line-height: 1.6; }
.works-card-title a:hover, .works-detail-back a:hover { color: #f18d00; }
.works-card-summary { color: #626773; line-height: 1.8; }
.works-pagination { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 10px; margin: 48px auto 0; }
.works-pagination a, .works-pagination span { display: grid; min-width: 42px; min-height: 42px; place-items: center; padding: 8px 12px; border: 1px solid #d9dde4; border-radius: 50%; }
.works-pagination [aria-current="page"] { color: #fff; background: #f18d00; border-color: #f18d00; }
.works-detail-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 16px; color: #737782; }
.works-detail-meta > span { padding: 6px 16px; color: #14779b; border: 1px solid currentColor; border-radius: 20px; }
.works-detail-image { margin: 36px 0; text-align: center; }
.works-detail-image img { max-width: 100%; max-height: 720px; object-fit: contain; border-radius: 16px; }
.works-detail-body, .information-detail-body { color: #30343c; font-size: 17px; line-height: 2; }
.works-detail-body img { max-width: 100%; height: auto; }
.works-detail-spec { display: grid; grid-template-columns: minmax(140px, 1fr) 3fr; gap: 16px; padding: 20px 0; margin: 32px 0; border-block: 1px solid #e2e4ea; }
.works-related { width: min(100% - 48px, 1420px); margin: 0 auto 96px; }
.works-related > h2 { margin-bottom: 36px; font-size: clamp(24px, 4vw, 36px); }
.works-related > h2 span { margin-left: 12px; font-size: 16px; font-weight: 400; }
.works-detail-back { margin-top: 56px; text-align: center; }
.information-list .p-info__box { padding-right: 32px; }
.information-list .p-info__ttl { align-items: center; gap: 20px; }
.information-list .p-info--date { flex: 0 0 180px; }
.information-list .p-info__contents { display: block; white-space: pre-line; }
.information-detail .p-info__box { border-bottom: 0; }
.information-detail .p-info--date { display: block; }
.information-outbound { margin-top: 36px; }
.information-outbound a { color: #e98600; text-decoration: underline; text-underline-offset: 4px; }
@media (max-width: 767px) {
  .works-page { margin: 80px 0 80px auto; padding: 80px 24px; }
  .works-detail { width: calc(100% - 32px); margin: 28px auto 64px; padding: 28px 20px; border-radius: 24px 0; }
  .works-filters { margin: 24px 0 36px; }
  .works-filters .c-sort-condition__box { gap: 24px; padding: 24px; }
  .works-grid { gap: 72px; margin-bottom: 72px; }
  .works-detail-spec { grid-template-columns: 1fr; gap: 6px; }
  .works-related { width: calc(100% - 32px); margin-bottom: 64px; }
  .information-list .p-info__box { padding-right: 0; }
  .information-list .p-info__ttl { align-items: flex-start; gap: 4px; }
  .information-list .p-info--date { flex-basis: auto; }
}
.p-header nav ul { display: flex; align-items: center; justify-content: flex-end; gap: clamp(12px, 2vw, 36px); }
.p-header nav a { font-size: clamp(11px, 1vw, 14px); letter-spacing: .06em; }
@media screen and (min-width: 1025px) {
  .p-header nav a {
    font-size: clamp(14px, 1.05vw, 16px);
    font-weight: 600;
  }
}
.p-headerBtn__openbtn { border: 0; }
.p-emergency { position: relative; z-index: 12; padding: 12px 5%; color: #783d00; background: #fff3dd; }
.p-emergency__inner { display: flex; align-items: center; justify-content: center; gap: 20px; max-width: 1280px; margin: 0 auto; }
.p-emergency__label { flex: none; color: #d55b00; }
.p-emergency ul { display: flex; flex-wrap: wrap; gap: 8px 24px; }
.p-emergency a { text-decoration: underline; text-underline-offset: 3px; }
.p-breadcrumbs { max-width: 1580px; margin: 0 auto; padding: 16px 24px; font-size: 13px; }
.p-breadcrumbs ol { display: flex; flex-wrap: wrap; gap: 8px; }
.p-breadcrumbs li + li::before { content: "/"; margin-right: 8px; color: #999; }
.p-info__con--list dl a { display: grid; grid-template-columns: 110px 1fr; gap: 16px; }
.p-info__con--list dt { color: #f18d00; }
.p-home-empty { padding: 24px 0; color: #777; text-align: center; }
.p-home-image-placeholder { display: block; width: 100%; min-height: 180px; background: linear-gradient(135deg, #edf0f3, #dfe4ea); }
.p-home-news { padding: 50px 0; background: #fff; }
.p-home-news .p-news__list { display: flex; flex-wrap: wrap; gap: 80px 3.5%; margin-top: 80px; }
.p-home-news .p-news__list > li { display: flex; width: 31%; min-width: 0; flex-direction: column; }
.p-home-news .o-newsCard { height: 100%; margin: 10px 0 0; border: 1px solid var(--bg-g); border-radius: 15px; background-color: #fff; box-shadow: 9px 12px 8px 0 rgb(0 0 0 / 30%); }
.p-home-news .p-news__list > li .o-newsCard__info { padding-bottom: 24px; }
.p-home-news .o-newsCard:focus-visible { outline: 3px solid var(--color-main); outline-offset: 4px; }
.p-home-news .o-newsCard__img { overflow: hidden; aspect-ratio: 16 / 9; background: #f2f4f7; }
.p-home-news .o-newsCard__img img { display: block; width: 100%; height: 100%; max-height: none; object-fit: cover; object-position: center; }
.p-home-news .p-home-image-placeholder { height: 100%; min-height: 0; aspect-ratio: 16 / 9; background: linear-gradient(135deg, #edf0f3, #dfe4ea); }
.p-home-news .p-news__btn, .p-home-works .p-news__btn { margin-top: 40px; }
.p-home-works { padding: 50px 0 100px; background: #f2f3f6; }
.p-home-works__list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.p-home-works__list a { display: grid; grid-template-columns: 1fr auto; gap: 12px; height: 100%; padding: 14px; background: #fff; border-radius: 14px; box-shadow: 0 8px 24px rgb(25 38 71 / 8%); }
.p-home-works__list img, .p-home-works__list .p-home-image-placeholder { grid-column: 1 / -1; width: 100%; aspect-ratio: 1.55; object-fit: cover; border-radius: 8px; }
.p-home-works__arrow { color: #f18d00; }
.p-home-news .l-contents, .p-home-works .l-contents { padding-inline: 25px; }
.p-home-html__block { max-width: 1280px; margin: 0 auto; padding: 24px; }
.p-home-html__block img { max-width: 100%; height: auto; }
.p-home-cta { padding: 80px 24px; background: #e9edf3; }
.p-home-cta__inner { max-width: 1000px; margin: 0 auto; text-align: center; }
.p-home-cta__inner > p { margin-bottom: 32px; font-size: clamp(17px, 2vw, 24px); line-height: 1.9; }
.p-home-proposal { margin-top: 48px; }
.p-home-proposal .o-btn__w-n { max-width: 360px; margin-inline: auto; }
@media (min-width: 768px) {
  .p-regional-tour__bg-area { max-width: 1200px; margin-inline: auto; background-size: contain; }
  .p-service-cards__badge { font-size: 18px; }
}
.p-regional-tour__bg-area { transform: translateY(15px); }
.p-regional-tour { padding-bottom: 50px; }
.p-home-platform-slogan {
  margin: 0;
  padding: 16px 24px 0;
  color: #2e3192;
  font-size: clamp(20px, 2.4vw, 30px);
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
}
@media (max-width: 767px) {
  .p-home-platform-slogan {
    padding-top: 0;
    padding-bottom: 54px;
  }
}
.p-product-portal-flow {
  display: flow-root;
  background-color: #f4f5f7;
}
@media (min-width: 601px) {
  .p-product-portal-flow .p-banner__bg {
    padding-top: 50px;
    background-image: linear-gradient(to bottom, #f4f5f7 100px, #fff 100px);
  }
}
.p-stampry-rally {
  padding-bottom: 50px;
  border-top: 1px solid #e5e7eb;
  background: #fff;
}
.p-service-cards { margin-top: -40px; }
.p-service-cards__item {
  display: flex;
  flex-direction: column;
}
.p-service-cards__item > .p-example__more {
  margin-top: auto;
}
.p-service-cards .p-example__more {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: 104px;
  min-width: 104px;
  height: 34px;
  margin-top: 20px;
  padding: 6px 18px;
  border: 1px solid #F57C00;
  border-radius: 4px;
  color: #F57C00;
  font-size: 13px;
  line-height: 1;
  text-align: center;
  text-decoration: none;
}
.p-service-cards__item > .p-example__more {
  align-self: center;
}
.p-service-cards__logo--lingup {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
  max-width: 152px;
  margin-top: 31px;
  background-color: transparent;
}
.p-service-cards__logo--lingup .p-service-cards__lingup-icon {
  width: 48px;
  height: 48px;
  object-fit: contain;
}
.p-service-cards__logo--lingup .p-service-cards__lingup-text {
  width: 132px;
}
.p-service-cards__actions {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin-top: 20px;
}
.p-service-cards__actions .p-example__more {
  margin-top: 0;
}
.sp-only { display: none; }
.p-home-cta .o-btn__list { display: flex; flex-wrap: wrap; justify-content: center; gap: 16px; }
.p-home-stampry {
  margin-top: 0;
  padding: 96px 24px 64px;
  background: #f2f3f6;
  border-top-left-radius: 64px;
}
.p-home-stampry__heading {
  width: min(900px, 92%);
  margin: 0 auto 48px;
}
.p-home-stampry__heading img {
  display: block;
  width: 100%;
  height: auto;
}
.p-home-stampry__panel {
  display: grid;
  grid-template-columns: minmax(240px, 0.8fr) minmax(0, 1.6fr);
  align-items: center;
  gap: 48px;
  width: min(1200px, 100%);
  min-height: 400px;
  padding: 32px 48px;
  margin: 0 auto;
  background: #fff;
  border-radius: 48px;
  box-shadow: 15px 20px 25px rgb(0 0 0 / 15%);
}
.p-home-stampry__copy {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
}
.p-home-stampry__title {
  align-self: flex-start;
  margin: 0;
  color: #1cb8ce;
  font-size: 28px;
  font-weight: 500;
}
.p-home-stampry__title::before {
  content: "";
  display: inline-block;
  width: 4px;
  height: 28px;
  margin-right: 12px;
  background: #1cb8ce;
  vertical-align: -5px;
}
.p-home-stampry__logo {
  display: block;
  width: min(100%, 320px);
  height: auto;
}
.p-home-stampry__phone {
  display: block;
  width: 100%;
}
.p-home-stampry__phone img {
  display: block;
  width: 100%;
  max-height: 420px;
  object-fit: contain;
}
.p-home-stampry__buttons {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 16px;
  margin-top: 32px;
}
.p-home-stampry__buttons > a {
  max-width: 320px;
  margin: 0;
}
@media (max-width: 767px) {
  .p-home-stampry {
    padding: 56px 16px 40px;
    border-top-left-radius: 32px;
  }
  .p-home-stampry__heading {
    width: 100%;
    margin-bottom: 24px;
  }
  .p-home-stampry__panel {
    grid-template-columns: 1fr;
    gap: 16px;
    min-height: 0;
    padding: 24px 16px;
    border-radius: 28px;
  }
  .p-home-stampry__title {
    align-self: center;
    font-size: 22px;
  }
  .p-home-stampry__title::before {
    height: 22px;
  }
  .p-home-stampry__logo {
    width: min(100%, 220px);
  }
  .p-home-stampry__phone {
    max-width: 360px;
    margin: auto;
  }
  .p-home-stampry__buttons {
    flex-direction: column;
    align-items: center;
  }
  .p-banner__bg .splide:not(.is-initialized) .splide__track {
    overflow-x: auto !important;
    overflow-y: hidden !important;
    overscroll-behavior-x: contain;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x mandatory;
  }
  .p-banner__bg .splide:not(.is-initialized) .splide__track::-webkit-scrollbar {
    display: none;
  }
  .p-banner__bg .splide:not(.is-initialized) ul.p-banner__list.splide__list {
    display: flex !important;
    flex-wrap: nowrap !important;
    justify-content: flex-start !important;
    gap: 12px !important;
    transform: none !important;
    width: 100%;
    padding: 0 16px 12px;
  }
  .p-banner__bg .splide:not(.is-initialized) li.p-banner__item.splide__slide {
    flex: 0 0 85% !important;
    width: 85% !important;
    margin: 0;
    scroll-snap-align: start;
  }
}
.c-hero__slide-text {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 5;
  display: flex;
  align-items: center;
  width: 100%;
  height: 100%;
  padding: 0 6% 0 16%;
  pointer-events: none;
}
.c-hero__slide-text-inner {
  margin: 0;
  max-width: 46em;
  color: #333;
  font-family: "Noto Sans JP", sans-serif;
  font-size: clamp(28px, 3.2vw, 52px);
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.04em;
  text-align: left;
  text-shadow: 1px 1px 4px rgba(255, 255, 255, 0.7);
}
.c-hero__slide-text > * {
  max-width: 46em;
  color: #333;
  font-family: "Noto Sans JP", sans-serif;
  font-size: clamp(28px, 3.2vw, 52px);
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.04em;
  text-shadow: 1px 1px 4px rgba(255, 255, 255, 0.7);
}
.hero-copy {
  width: min(52vw, 680px);
  max-width: 46em;
  color: #333;
  font-family: "Noto Sans JP", sans-serif;
  text-align: left;
  text-shadow: 1px 1px 4px rgba(255, 255, 255, 0.7);
}
.hero-copy__main {
  margin: 0;
  font-size: clamp(28px, 3.2vw, 52px);
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.04em;
}
.hero-copy__main .hero-marker {
  background: linear-gradient(transparent 70%, rgb(255, 100, 30) 70%);
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}
.hero-copy__sub {
  margin: 16px 0 0;
  font-size: clamp(16px, 1.5vw, 24px);
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.03em;
}
@media (max-width: 767px) {
  .sp-only { display: inline; }
  .c-hero__slide-text {
    align-items: flex-start;
    justify-content: center;
    padding: calc(clamp(68px, 9vh, 104px) + 25px) 20px 0;
    text-align: center;
  }
  .c-hero__slide-text-inner {
    max-width: 100%;
    font-size: clamp(22px, 8.3vw, 34px);
    text-align: center;
  }
  .c-hero__slide-text > * {
    max-width: 100%;
    font-size: clamp(22px, 8.3vw, 34px);
    text-align: center;
  }
  .hero-copy {
    width: 100%;
    max-width: 100%;
    text-align: center;
  }
  .hero-copy__main {
    font-size: clamp(22px, 8.3vw, 34px);
    text-align: center;
  }
  .hero-copy__sub {
    margin-top: 10px;
    font-size: clamp(14px, 3.9vw, 18px);
    text-align: center;
  }
  .c-hero__slide-text-inner,
  .c-hero__slide-text > *,
  .hero-copy {
    color: #333;
    text-shadow: 1px 1px 4px rgba(255, 255, 255, 0.7);
  }
}
.u-visually-hidden { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }
.p-header .p-header__logo img { display: block; }
.p-humbergerBtn__openbtn { background: transparent; }
.p-header nav ul li { flex: none; }
@media (max-width: 1024px) {
  .p-header nav ul { gap: 12px; }
  .p-home-works__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .p-header nav { display: none; }
  .p-emergency__inner { align-items: flex-start; flex-direction: column; gap: 6px; }
  .p-emergency ul { display: block; }
  .p-emergency li + li { margin-top: 6px; }
  .p-info__con--list dl a { grid-template-columns: 1fr; gap: 4px; }
  .p-home-news, .p-home-works { padding: 64px 0; }
  .p-home-works__list { grid-template-columns: 1fr; gap: 16px; }
  .p-home-cta { padding: 56px 20px; }
  .p-home-cta .o-btn__list { flex-direction: column; align-items: center; }
}
@media (max-width: 600px) {
  .p-home-news .p-news__list { flex-direction: column; gap: 48px; margin-top: 48px; }
  .p-home-news .p-news__list > li { width: 100%; }
}
@media (max-width: 600px) {
  .works-page { margin-top: 24px; padding-top: 72px; }
  .works-filters .c-sort-condition__box { align-items: stretch; flex-direction: column; gap: 20px; }
  .works-filters__submit { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
.p-banner {
  margin-top: 0;
  padding-top: 0;
}
.p-banner__bg {
  padding-top: 0;
}

/* Lower-page hero (.p-lower-header): unified Company-style height/title/ring across ALL lower
   pages (Solutions, Works, News, Company, Recruit, Contact, Privacy, Security, PR, etc.) on PC
   (>600px). On SP (<=600px), all pages now also share the same unscoped base .p-lower-header
   rules in style.css (page-specific SP overrides have been removed). */
@media screen and (min-width: 601px) {
  .p-lower-header { min-height: 305px; }
  .p-lower-header--bg .logo-b { width: auto; height: 305px; }
  .p-lower-header__title { font-size: clamp(52px, 8.667vw, 100px); }
  .p-lower-header--bg .ring {
    width: 446px;
    height: 230px;
    top: 20%;
    right: auto;
    margin-right: 0;
    left: calc(3% + 571px);
  }
}
@media screen and (min-width: 1581px) {
  .p-lower-header--bg .ring { left: calc(53% - 235px); }
}
