@charset "UTF-8";


/*------------------------------
 トップページ
------------------------------*/


/* TOP - FV */

.top-fv {
  position: relative;
  min-height: 660px;
  height: 100svh;
  overflow: hidden;
  background: #fff;
  isolation: isolate;
}

.top-hero-loading-active .top-fv {
  z-index: 10000;
}

.top-hero-loading-active .header-wrapper {
  opacity: 0;
  transition: opacity 0.55s ease;
}

.top-hero-loading-active.top-hero-loading-fading .top-fv {
  z-index: auto;
}

.top-hero-loading-active.top-hero-loading-fading .header-wrapper {
  opacity: 1;
}

.top-fv-loading {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: grid;
  place-items: center;
  padding: 16px;
  background: #fff;
  opacity: 1;
  visibility: visible;
  transition: opacity 0.7s ease-out, visibility 0s linear 0.7s;
}

.top-hero-loading-active,
.top-hero-loading-active body {
  height: 100%;
  overflow: hidden;
  overscroll-behavior: none;
}

.top-hero-loading-skip .top-fv-loading {
  display: none;
}

.top-hero-loading-skip .top-fv-stage,
.top-hero-loading-skip .top-fv-logos {
  transition: none;
}

.top-hero-loading-skip .header-wrapper {
  transition: none;
}

.top-fv.is-loading-complete .top-fv-loading {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.top-fv-loading-heading {
  width: 100%;
  margin-bottom: 0 !important;
  color: #242424;
  font-size: 2.25rem !important;
  opacity: 0;
}

.top-hero-loading-active .top-fv-loading-heading {
  animation: top-fv-loading-heading-fade-in 1.4s ease-out 0.1s forwards;
}

@keyframes top-fv-loading-heading-fade-in {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

.top-fv-stage {
  position: absolute;
  inset: 0;
  z-index: 1;
  opacity: 0;
  cursor: grab;
  touch-action: pan-y;
  transition: opacity 0.55s ease;
}

.top-fv-stage:active {
  cursor: grabbing;
}

.top-fv-stage canvas {
  display: block;
  width: 100%;
  height: 100%;
}

.top-fv-logos {
  position: absolute;
  z-index: 2;
  top: 83%;
  left: 50%;
  width: min(240px, 42vw);
  opacity: 0;
  transform: translate(-50%, -50%);
  pointer-events: none;
  transition: opacity 0.55s ease;
}

.top-fv.is-ready .top-fv-stage,
.top-fv.is-ready .top-fv-logos {
  opacity: 1;
}

.top-fv-logo {
  position: absolute;
  top: 50%;
  left: 50%;
  display: block;
  width: var(--top-fv-logo-width, 100%);
  height: var(--top-fv-logo-height, auto);
  max-height: 130px;
  opacity: 0;
  visibility: hidden;
  transform: translate(-50%, -50%);
  object-fit: contain;
}

.top-fv-logo.is-active {
  opacity: 1;
  visibility: visible;
}

.top-fv-logo[data-hero-logo="heavywall"] {
  --top-fv-logo-width: 100%;
}

.top-fv-logo[data-hero-logo="hip"] {
  --top-fv-logo-width: 86%;
}

.top-fv-logo[data-hero-logo="epane"] {
  --top-fv-logo-width: 72%;
}

.top-fv-logo[data-hero-logo="rakuty"] {
  --top-fv-logo-width: 80%;
}

.top-fv-logo[data-hero-logo="rakutys"] {
  --top-fv-logo-width: 100%;
}

@media screen and (max-width: 575px) {
  .top-fv-logos {
    top: 83%;
    width: min(220px, 60vw);
  }

  .top-fv-logo[data-hero-logo="hip"] {
    --top-fv-logo-width: 96%;
  }

  .top-fv-logo[data-hero-logo="epane"] {
    --top-fv-logo-width: 86%;
  }

  .top-fv-logo[data-hero-logo="rakuty"] {
    --top-fv-logo-width: 74%;
  }

  .top-fv-logo[data-hero-logo="rakutys"] {
    --top-fv-logo-width: 96%;
  }
}

.top-topics {
  width: calc(100% - 12px);
  max-width: 620px;
}

.top-topics-slider {
  position: relative;
}

.top-topic {
  border-top: 1px solid var(--main-blue);
  border-bottom: 1px solid var(--main-blue);
  border-right: 1px solid var(--main-blue);
  border-top-right-radius: 10px;
  border-bottom-right-radius: 10px;
  padding: 18px 12px 14px;
}

.top-topic-title {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}

.top-column-card-title {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}

.top-topics-pagination.swiper-pagination {
  right: -12px;
  bottom: -31px;
  left: auto;
  width: auto;
  line-height: 1;
}

.top-topics-pagination .swiper-pagination-bullet {
  position: relative;
  width: 24px;
  height: 24px;
  margin: 0 !important;
  background: transparent;
  opacity: 1;
}

.top-topics-pagination .swiper-pagination-bullet::before {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #D9D9D9;
  content: "";
  transform: translate(-50%, -50%);
}

.top-topics-pagination .swiper-pagination-bullet-active::before {
  background: var(--main-blue);
}

@media screen and (min-width: 380px) {
  .top-fv-loading-heading {
    font-size: 2rem !important
  }
}

@media screen and (min-width: 576px) {
  .top-fv-logos {
    width: min(300px, 30vw);
  }

  .top-fv-loading-heading {
    white-space: nowrap;
  }

  .top-topic {
    padding-left: 30px;
  }
}

@media screen and (min-width: 768px) {
  .top-topic {
    padding-left: 36px;
  }
}

@media screen and (min-width: 992px) {
  .top-fv-logos {
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    transform: none;
  }

  .top-fv-logo[data-hero-logo="hip"] {
    --top-fv-logo-width: 100%;
  }

  .top-fv-logo[data-hero-logo="epane"] {
    --top-fv-logo-width: 78%;
  }

  .top-fv-logo[data-hero-logo="rakuty"] {
    --top-fv-logo-width: 80%;
  }

  .top-fv-logo[data-hero-logo="rakutys"] {
    --top-fv-logo-width: 110%;
  }

  .top-fv-loading-heading {
    font-size: 3rem !important;
  }

  .top-topic {
    padding-left: 28px;
  }
}

@media screen and (min-width: 1200px) {
  .top-topic {
    padding-left: 42px;
  }
}

@media screen and (min-width: 1400px) {
  .top-fv-loading-heading {
    font-size: 3.5rem !important;
  }

  .top-fv-logo[data-hero-logo="heavywall"] {
    --top-fv-logo-width: 184px;
    --top-fv-logo-height: 39px;
  }

  .top-fv-logo[data-hero-logo="hip"] {
    --top-fv-logo-width: 155px;
    --top-fv-logo-height: 64px;
  }

  .top-fv-logo[data-hero-logo="epane"] {
    --top-fv-logo-width: 176px;
    --top-fv-logo-height: 47px;
  }

  .top-fv-logo[data-hero-logo="rakuty"] {
    --top-fv-logo-width: 145px;
    --top-fv-logo-height: 104px;
  }

  .top-fv-logo[data-hero-logo="rakutys"] {
    --top-fv-logo-width: 171px;
    --top-fv-logo-height: 67px;
  }

  .top-topic {
    padding-left: 52px;
  }
}

/* TOP - ABOUT / PRODUCT */

.diagonal-section-top, .diagonal-section-bottom {
  --slant: 50px;

  position: relative;
  padding: calc(var(--slant) + 70px) 0;
  overflow: hidden;
  isolation: isolate;
}

.diagonal-section-top::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;

  clip-path: polygon(
          0 var(--slant),
          100% 0,
          100% calc(100% - var(--slant)),
          0 100%
  );
}

.diagonal-section-bottom::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;

  clip-path: polygon(
          0 var(--slant),
          100% 0,
          100% 100%,
          0 100%
  );
}

.diagonal-section-blue::before {
  background: linear-gradient(
          to top right,
          var(--main-navy) 0%,
          #8e8e8e 100%
  );
}

.diagonal-section-gray::before {
  background: linear-gradient(
          to top right,
          #222 0%,
          #565656 100%
  );
}

.diagonal-section-frame {
  position: relative;
  width: min(100%, 1700px);
  margin-inline: auto;
  color: #fff;
}

.top-product-link-text {
  position: relative;
  display: inline-flex;
  align-items: center;
}

.top-product-link-text::after {
  content: "";
  display: inline-block;
  flex: 0 0 21px;
  width: 21px;
  height: 21px;
  margin-left: 16px;
  border-radius: 50%;
  background: #fff;
  transform: translateY(1px);
}

.top-product-link-text::before {
  content: "";
  position: absolute;
  top: 50%;
  right: 8px;
  width: 7px;
  height: 7px;
  border-top: 2px solid var(--main-blue);
  border-right: 2px solid var(--main-blue);
  transform: translateY(calc(-50% + 1px)) rotate(45deg);
  z-index: 1;
}

.top-about-content {
  padding-inline: 5%;
}

.top-about-image-wrapper {
  width: 100%;
  margin-bottom: 80px;
}

.top-about-image-inner {
  position: relative;
  width: 100%;
  margin-inline: auto;
  aspect-ratio: 390 / 447;
}

.top-about-image-inner figure,
.top-about-image-inner picture,
.top-about-image-inner div{
  position: absolute;
  display: block;
  margin-bottom: 0;
}

.top-about-image01 {
  top: calc(0 / 447 * 100%);
  left: calc(0 / 390 * 100%);
  width: calc(338 / 390 * 100%);
  height: calc(225 / 447 * 100%);
}

.top-about-image02 {
  bottom: calc(0 / 447 * 100%);
  right: calc(0 / 390 * 100%);
  width: calc(273 / 390 * 100%);
  height: calc(182 / 447 * 100%);
}

.diagonal-section-bottom {
  margin-top: calc((var(--slant) *-1) + 17px);
}

.heading-line {
  display: flex;
  align-items: center;
  gap: 24px;
  width: 100%;
  text-align: center;
}

@media screen and (min-width: 992px) {
  .heading-line {
    gap: 38px;
  }
}

.heading-line::before,
.heading-line::after {
  content: "";
  flex: 1;
  height: 1px;
  background-color: currentColor;
}

.heading-line span {
  flex-shrink: 0;
}

.top-product-wrapper {
  width: 100%;
}

.top-product-inner {
  position: relative;
  width: 100%;
  margin-inline: auto;
  aspect-ratio: 334 / 427;
}

.top-product-inner figure,
.top-product-inner picture {
  position: absolute;
  display: block;
  margin-bottom: 0;
}

.top-product-inner a {
  position: absolute;
}

.top-product-house {
  top: calc(49 / 427 * 100%);
  left: calc(20 / 334 * 100%);
  width: calc(286 / 334 * 100%);
  height: calc(274 / 427 * 100%);
}

.top-product-arrow01 {
  top: calc(12 / 427 * 100%);
  left: calc(88 / 334 * 100%);
  width: calc(64 / 334 * 100%);
  height: calc(86 / 427 * 100%);
}

.top-product-arrow02 {
  bottom: calc(65 / 427 * 100%);
  right: calc(61 / 334 * 100%);
  width: calc(36 / 334 * 100%);
  height: calc(195 / 427 * 100%);
}

.top-product-arrow03 {
  bottom: calc(74 / 427 * 100%);
  left: calc(100 / 334 * 100%);
  width: calc(119 / 334 * 100%);
  height: calc(224 / 427 * 100%);
}

.top-product-roof {
  top: calc(0 / 427 * 100%);
  left: calc(160 / 334 * 100%);
}

.top-product-wall {
  top: calc(370 / 427 * 100%);
  left: calc(245 / 334 * 100%);
}

.top-product-floor-ceiling {
  top: calc(342 / 427 * 100%);
  right: calc(242 / 334 * 100%);
}

@media screen and (min-width: 992px) {
  .diagonal-section-top {
    --slant: 140px;
    padding: 200px 0;
  }

  .diagonal-section-bottom {
    --slant: 140px;
    padding: 125px 0 80px;
  }

  .top-about-image-wrapper {
    width: calc(598 / 720 * 100%);
    max-width: 598px;
    margin-bottom: 0;
  }

  .top-about-content {
    max-width: 520px;
    padding-inline: 0 24px;
  }

  .top-about-image-inner {
    aspect-ratio: 598 / 727;
  }

  .top-about-image01 {
    top: calc(0 / 727 * 100%);
    left: calc(0 / 598 * 100%);
    width: calc(537 / 598 * 100%);
    height: calc(358 / 727 * 100%);
  }

  .top-about-image02 {
    bottom: calc(0 / 727 * 100%);
    right: calc(0 / 598 * 100%);
    width: calc(433 / 598 * 100%);
    height: calc(289 / 727 * 100%);
  }

  .top-product-inner {
    aspect-ratio: 1043 / 511;
  }

  .top-product-house {
    top: calc(0 / 511 * 100%);
    left: calc(285 / 1043 * 100%);
    width: calc(502 / 1043 * 100%);
    height: calc(479 / 511 * 100%);
  }

  .top-product-arrow01 {
    top: calc(56 / 511 * 100%);
    left: calc(77 / 1043 * 100%);
    width: calc(334 / 1043 * 100%);
    height: calc(60 / 511 * 100%);
  }

  .top-product-arrow02 {
    bottom: unset;
    top: calc(215 / 511 * 100%);
    right: calc(176 / 1043 * 100%);
    width: calc(196 / 1043 * 100%);
    height: calc(36 / 511 * 100%);
  }

  .top-product-arrow03 {
    bottom: calc(90 / 511 * 100%);
    left: calc(243 / 1043 * 100%);
    width: calc(367 / 1043 * 100%);
    height: calc(286 / 511 * 100%);
  }

  .top-product-roof {
    top: calc(42 / 511 * 100%);
    left: calc(0 / 1043 * 100%);

  }

  .top-product-wall {
    top: calc(209 / 485 * 100%);
    left: calc(920 / 1074 * 100%);
  }

  .top-product-floor-ceiling {
    top: calc(372 / 485 * 100%);
    right: calc(781 / 1074 * 100%);
  }
}

/* TOP - COLUMN */

.single-column-category{
  font-family: var(--bs-font-sans-serif);
  padding: 6px 18px;
}

.column-pickup-card {
  --bs-gutter-y: 24px;
  color: #222 !important;
}

.column-pickup-description {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 4;
  overflow: hidden;
}

.column-pickup-thumb {
  overflow: hidden;
  aspect-ratio: 306 / 203;
  background-color: #eee;
}

.column-pickup-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.column-archive-list {
  --bs-gutter-y: 40px;
}

.column-archive-card {
  color: #222 !important;
}

.single-column-main-image {
  overflow: hidden;
  background-color: #eee;
}

.single-column-summary {
  color: #222;
}

.single-column-toc {
  padding: 32px 24px;
  background-color: #f3f3f3;
}

.single-column-toc-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding-left: 0;
  margin-bottom: 0;
  list-style: none;
}

.single-column-toc-list a {
  display: flex;
  gap: 0.5em;
}

.single-column-toc-list a {
  color: var(--main-blue) !important;
}

.single-column-body {
  display: grid;
  gap: 56px;
}

.single-column-section {
  scroll-margin-top: 120px;
}

.single-column-related-swiper .swiper-slide {
  width: min(306px, calc(100vw - 48px));
  height: auto;
}

.single-column-related-slider {
  position: relative;
  margin-bottom: 40px;
}

.single-column-related-pagination.swiper-pagination {
  position: static;
  margin-top: 32px;
  line-height: 1;
}

.single-column-related-pagination .swiper-pagination-bullet {
  width: 6px;
  height: 6px;
  margin: 0 8px !important;
  border: 1px solid #ABABAB;
  background-color: transparent;
  opacity: 1;
}

.single-column-related-pagination .swiper-pagination-bullet-active {
  background-color: #ABABAB;
}

.single-column-related-nav {
  position: absolute;
  top: 32%;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border: 0;
  border-radius: 50%;
  background-color: var(--main-blue);
  color: #fff;
  transform: translateY(-50%);
}

.single-column-related-nav::before {
  content: "";
  width: 9px;
  height: 9px;
  border-top: 1.5px solid currentColor;
  border-right: 1.5px solid currentColor;
}

.single-column-related-nav-prev {
  left: 0;
}

.single-column-related-nav-prev::before {
  transform: translateX(25%) rotate(-135deg);
}

.single-column-related-nav-next {
  right: 0;
}

.single-column-related-nav-next::before {
  transform: translateX(-25%) rotate(45deg);
}

.single-column-related-nav.swiper-button-disabled {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

@media screen and (min-width: 992px) {
  .column-pickup-description {
    -webkit-line-clamp: 3;
  }

  .column-pickup-card {
    --bs-gutter-x: 60px;
    --bs-gutter-y: 0;
  }

  .single-column-toc {
    padding: 40px 64px;
  }

  .column-archive-list {
    --bs-gutter-x: 80px;
  }

  .single-column-body {
    gap: 72px;
  }
}

@media screen and (min-width: 1200px) {
  .single-column-related-swiper {
    overflow: visible;
  }

  .single-column-related-slider {
    margin-bottom: 50px;
  }

  .single-column-related-list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 56px 80px;
  }

  .single-column-related-swiper .swiper-slide {
    width: auto;
  }

  .single-column-related-swiper .swiper-wrapper {
    transform: none !important;
  }

  .single-column-related-pagination,
  .single-column-related-nav {
    display: none;
  }
}


/*------------------------------
 私たちについてページ
------------------------------*/


/* ABOUT - FV */

.about-fv-copy-col {
  position: relative;
  z-index: 2;
}

.about-fv-visual-col {
  position: relative;
  z-index: 1;
}

.about-fv-visual {
  position: relative;
  width: 125.64vw;
  aspect-ratio: 1226 / 673;
  margin-left: 50%;
  transform: translateX(-50%);
}

.about-fv-products {
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 100%;
  height: 100%;
  transform: translateX(-50%);
}

.about-fv-product {
  position: absolute;
  bottom: 0;
  left: var(--about-fv-x);
  display: block;
  width: var(--about-fv-size);
  height: auto;
  aspect-ratio: 1 / 1;
  object-fit: contain;
  opacity: var(--about-fv-opacity);
  z-index: var(--about-fv-z);
  transition:
    left 800ms ease,
    width 800ms ease,
    opacity 800ms ease;
  will-change: left, width, opacity;
}

.about-fv-product.is-left {
  --about-fv-x: 7.01%;
  --about-fv-size: 35.97%;
  --about-fv-opacity: 0.6;
  --about-fv-z: 1;
}

.about-fv-product.is-center {
  --about-fv-x: 25.29%;
  --about-fv-size: 54.89%;
  --about-fv-opacity: 1;
  --about-fv-z: 3;
}

.about-fv-product.is-right {
  --about-fv-x: 58.81%;
  --about-fv-size: 41.19%;
  --about-fv-opacity: 0.6;
  --about-fv-z: 2;
}

@media (prefers-reduced-motion: reduce) {
  .about-fv-product {
    transition: none;
  }
}

@media (min-width: 992px) {
  .about-fv-copy-col .common-fv-text {
    max-width: unset;
  }

  .about-fv-visual {
    width: 1008px;
  }

  .about-fv-visual {
    margin-bottom: 0;
    margin-left: var(--about-fv-visual-ml, clamp(-400px, calc(61.54px - 38.46vw), -320px));
    transform: none;
  }

  .about-fv-product.is-left {
    --about-fv-x: 71px;
    --about-fv-size: 362px;
  }

  .about-fv-product.is-center {
    --about-fv-x: 255px;
    --about-fv-size: 553px;
  }

  .about-fv-product.is-right {
    --about-fv-x: 593px;
    --about-fv-size: 415px;
  }
}

@media (min-width: 1200px) {
  .about-fv-visual {
    margin-left: var(--about-fv-visual-ml, clamp(-400px, calc(118.5vw - 1822px), -163px));
  }

  .is-scroll-fv-development .common-fv-text {
    margin-bottom: 80px !important;
  }
}

@media (min-width: 1200px) and (max-width: 1399.98px) and (max-height: 820px) {
  .about-fv-visual-col,
  .development-fv-visual-col {
    align-self: flex-end;
  }

  .development-fv .development-fv-copy-col {
    flex: 0 0 662px;
    width: 662px;
    max-width: 662px;
  }

  .development-fv .page-title .h1-common {
    white-space: nowrap;
  }

  .development-fv .common-fv-text {
    margin-bottom: 80px !important;
  }

  .development-fv .common-fv-text br.d-lg-block {
    display: none !important;
  }

  .development-fv .development-fv-visual-col {
    width: 50%;
  }
}

/* ABOUT - production */

.about-production {
  position: relative;
  overflow: hidden;
  background: #fff;
  color: #fff;
  isolation: isolate;
}

.about-production-hero {
  position: relative;
  z-index: 1;
  width: 100%;
  aspect-ratio: 390 / 400;
  overflow: hidden;
  background: #fff;
}

.about-production-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: rgba(16, 21, 28, 0.42);
  clip-path: inset(0 var(--about-production-mask, 0%));
  transition: clip-path 120ms linear;
  pointer-events: none;
}

.about-production-hero-media,
.about-production-hero-picture,
.about-production-hero-img {
  display: block;
  width: 100%;
}

.about-production-hero-media {
  height: 100%;
  overflow: hidden;
  clip-path: inset(0 var(--about-production-mask, 0%));
  transition: clip-path 120ms linear;
  will-change: clip-path;
}

.about-production-hero-picture {
  height: calc(100% + 56px);
  margin-top: -28px;
  will-change: transform;
}

.about-production-hero-img {
  height: 100%;
  object-fit: cover;
  object-position: center top;
  transform: scale(var(--about-production-scale, 1));
  transition: transform 120ms linear;
  will-change: transform;
}

.about-production-title-wrap {
  position: absolute;
  z-index: 2;
  inset: 0;
  width: min(100%, 1440px);
  margin: 0 auto;
  pointer-events: none;
}

.about-production-title {
  position: absolute;
  left: 18px;
  bottom: 40px;
  margin: 0;
  font-size: clamp(28px, 8.53vw, 36px);
  font-weight: 400;
  line-height: 1.75;
  letter-spacing: 0.16em;
  color: #fff;
  text-shadow: 0 2px 16px rgba(0, 0, 0, 0.24);
  opacity: 0;
  transform: translateY(18px);
  transition:
    opacity 1000ms ease,
    transform 1000ms cubic-bezier(0.22, 1, 0.36, 1);
  will-change: opacity, transform;
}

.about-production-title.is-show {
  opacity: 1;
  transform: translateY(0);
}

.about-production-title span {
  display: block;
}

.about-production-bg {
  position: relative;
  z-index: 2;
  margin-top: -20px;
}

.about-production-bg::before {
  content: "";
  position: absolute;
  top: 20px;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 0;
  background: linear-gradient(
          to top right,
          var(--main-navy) 0%,
          #8e8e8e 100%
  );
  opacity: 0;
  transition: opacity 900ms ease;
  pointer-events: none;
}

.about-production.is-bg-visible .about-production-bg::before {
  opacity: 1;
}

.about-production-message {
  position: relative;
  z-index: 1;
  min-height: 900px;
  padding: 0 12px;
}

.about-production-gallery {
  position: relative;
  z-index: 1;
  width: min(100%, 1440px);
  height: 608px;
  margin: 0 auto;
}

.about-production-photo {
  position: absolute;
  z-index: 1;
  display: block;
  margin: 0;
  opacity: 0;
  transform: translateY(24px);
  transition:
    opacity 620ms ease,
    transform 620ms cubic-bezier(0.22, 1, 0.36, 1);
  will-change: opacity, transform;
}

.about-production-photo.is-show {
  opacity: 1;
  transform: translateY(0);
}

.about-production-photo-parallax,
.about-production-photo img {
  display: block;
  width: 100%;
  height: 100%;
}

.about-production-photo-parallax {
  overflow: hidden;
}

.about-production-photo img {
  object-fit: cover;
}

.about-production-photo.is-photo-01 {
  top: 224px;
  left: 0;
  width: min(61.54vw, 240px);
  aspect-ratio: 240 / 160;
}

.about-production-photo.is-photo-02 {
  top: 448px;
  left: 50%;
  width: min(61.54vw, 240px);
  aspect-ratio: 240 / 160;
  transform: translate(-50%, 24px);
}

.about-production-photo.is-photo-02.is-show {
  transform: translate(-50%, 0);
}

.about-production-photo.is-photo-03 {
  top: 0;
  right: 0;
  width: min(61.54vw, 240px);
  aspect-ratio: 240 / 160;
}

.about-production-lead {
  position: relative;
  z-index: 2;
  margin: 42px 0 0;
}

.about-production-system {
  position: relative;
  z-index: 1;
  color: #f6e1e6;
}

.about-production-system-inner {
  position: relative;
  width: 100%;
}

.about-production-system-content {
  position: relative;
  min-height: 770px;
}

.about-production-system-copy {
  position: relative;
  z-index: 2;
  width: 100%;
}

.about-production-map {
  position: relative;
  z-index: 1;
  width: min(100%, 516px);
  aspect-ratio: 381 / 458;
  margin: 0 auto;
}

.about-production-map-bg,
.about-production-map-label,
.about-production-map-label img {
  display: block;
}

.about-production-map-bg {
  width: 96.06%;
  height: auto;
}

.about-production-map-label {
  position: absolute;
  z-index: 3;
  pointer-events: none;
}

.about-production-map-label img {
  width: 100%;
  height: auto;
}

.about-production-map-label.is-hokkaido {
  top: 13.52%;
  right: 0;
  width: 34.12%;
}

.about-production-map-label.is-tohoku {
  top: 28.38%;
  right: 8.66%;
  width: 30.45%;
}

.about-production-map-label.is-nakanihon {
  top: 41.70%;
  right: 3.94%;
  width: 41.47%;
}

.about-production-map-label.is-nishinihon {
  right: 27.03%;
  bottom: 10.70%;
  width: 33.60%;
}

.about-production-map-label.is-kyusyu {
  bottom: 0;
  left: 7.09%;
  width: 29.40%;
}

.about-production-map-pin {
  position: absolute;
  z-index: 4;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #fff;
  transform: translate(-50%, -50%);
}

.about-production-map-pin::before,
.about-production-map-pin::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #fff;
  transform: translate(-50%, -50%) scale(0.2);
  animation: about-map-pin-pulse 1.8s ease-out infinite;
}

.about-production-map-pin::after {
  animation-delay: 0.9s;
}

.about-production-map-pin.is-hokkaido {
  top: 13.75%;
  left: 66.04%;
}

.about-production-map-pin.is-tohoku {
  top: 28.38%;
  left: 60.99%;
}

.about-production-map-pin.is-nakanihon {
  top: 41.70%;
  left: 54.69%;
}

.about-production-map-pin.is-nishinihon {
  top: 43.45%;
  left: 39.48%;
}

.about-production-map-pin.is-kyusyu {
  top: 48.69%;
  left: 7.22%;
}

.about-production-system-link {
  display: flex;
  width: fit-content;
  margin: 0 auto;
}

.about-production-system-action {
  position: relative;
  z-index: 2;
}

@keyframes about-map-pin-pulse {
  0% {
    opacity: 0;
    transform: translate(-50%, -50%) scale(0.2);
  }

  18% {
    opacity: 0.7;
  }

  80% {
    opacity: 0;
    transform: translate(-50%, -50%) scale(1.2);
  }

  100% {
    opacity: 0;
    transform: translate(-50%, -50%) scale(1);
  }
}

@media (prefers-reduced-motion: reduce) {
  .about-production-hero,
  .about-production-bg::before,
  .about-production-hero::after,
  .about-production-hero-media,
  .about-production-hero-picture,
  .about-production-hero-img,
  .about-production-title,
  .about-production-photo {
    transition: none;
  }

  .about-production-map-pin::before,
  .about-production-map-pin::after {
    animation: none;
  }

  .about-production-title,
  .about-production-photo {
    opacity: 1;
    transform: none;
  }

  .about-production-bg::before {
    opacity: 1;
  }

  .about-production-photo.is-photo-02 {
    transform: translateX(-50%);
  }
}

@media (min-width: 992px) {
  .about-production-hero {
    aspect-ratio: 1440 / 700;
  }

  .about-production-hero::after {
    background: rgba(16, 21, 28, 0.44);
  }

  .about-production-hero-picture {
    height: calc(100% + 90px);
    margin-top: -45px;
  }

  .about-production-hero-img {
    object-position: center center;
  }

  .about-production-title {
    left: clamp(42px, 5.21vw, 80px);
    bottom: clamp(56px, 7.29vw, 112px);
    font-size: clamp(31px, 2.64vw, 38px);
    line-height: 1.8;
    letter-spacing: 0.18em;
  }

  .about-production-bg {
    margin-top: -17px;
  }

  .about-production-bg::before {
    top: 17px;
  }

  .about-production-message {
    min-height: clamp(660px, 48.61vw, 700px);
    padding: 0;
  }

  .about-production-gallery {
    height: 464px;
  }

  .about-production-photo.is-photo-01,
  .about-production-photo.is-photo-02,
  .about-production-photo.is-photo-03 {
    width: 321px;
    aspect-ratio: 321 / 214;
  }

  .about-production-photo.is-photo-01 {
    top: 110px;
    left: clamp(0px, 40.63vw - 403.10px, 182px);
  }

  .about-production-photo.is-photo-02 {
    top: 250px;
    left: calc(50% + 14px);
    transform: translate(-50%, 24px);
  }

  .about-production-photo.is-photo-02.is-show {
    transform: translate(-50%, 0);
  }

  .about-production-photo.is-photo-03 {
    top: 0;
    right: clamp(0px, 40.63vw - 403.10px, 182px);
  }

  .about-production-lead {
    margin-top: clamp(40px, 4.17vw, 60px);
  }

  .about-production-system-content {
    width: 100%;
    min-height: auto;
  }

  .about-production-system-copy {
    width: min(100%, 570px);
  }

  .about-production-map {
    width: min(100%, 940px);
    aspect-ratio: 940 / 776;
  }

  .about-production-map-bg {
    width: 100%;
  }

  .about-production-map-label.is-hokkaido {
    top: 20.10%;
    right: 11.28%;
    width: 20.64%;
  }

  .about-production-map-label.is-tohoku {
    top: 43.17%;
    right: 18.30%;
    width: 18.72%;
  }

  .about-production-map-label.is-nakanihon {
    top: 62.89%;
    right: 22.98%;
    width: 20.64%;
  }

  .about-production-map-label.is-nishinihon {
    bottom: 17.53%;
    left: 40.64%;
    width: 20.64%;
  }

  .about-production-map-label.is-kyusyu {
    bottom: 0;
    left: 8.72%;
    width: 18.72%;
  }

  .about-production-map-pin {
    width: 12px;
    height: 12px;
  }

  .about-production-map-pin::before,
  .about-production-map-pin::after {
    width: 26px;
    height: 26px;
  }

  .about-production-map-pin.is-hokkaido {
    top: 20.10%;
    left: 68.19%;
  }

  .about-production-map-pin.is-tohoku {
    top: 43.17%;
    left: 63.09%;
  }

  .about-production-map-pin.is-nakanihon {
    top: 63.73%;
    left: 56.38%;
  }

  .about-production-map-pin.is-nishinihon {
    top: 67.48%;
    left: 40.74%;
  }

  .about-production-map-pin.is-kyusyu {
    top: 74.74%;
    left: 8.83%;
  }
}

@media (min-width: 1200px) {
  .about-production-system-content {
    min-height: 780px;
  }

  .about-production-system-copy {
    width: min(57.26%, 616px);
  }

  .about-production-map {
    position: absolute;
    top: 78px;
    right: 0;
    margin: 0;
  }
}

@media (min-width: 1400px) {
  .about-production-map {
    top: 0;
  }
}

/* ABOUT - 3D model */

.about-sv-rakuty {
  position: relative;
  display: flex;
  justify-content: center;
  width: 100%;
}

.about-sv-rakuty-stage {
  width: min(100%, 350px);
  aspect-ratio: 1 / 1.2;
}

.about-sv-rakuty-stage canvas {
  display: block;
  width: 100%;
  height: 100%;
  opacity: 0;
  filter: drop-shadow(0 18px 24px rgba(0, 0, 0, 0.16));
  transition: opacity 0.3s ease;
}

.about-sv-rakuty.is-3d-ready .about-sv-rakuty-stage canvas {
  opacity: 1;
}

.about-seismic-gap {
  gap: 40px 30px;
}

@media (min-width: 1200px) {
  .gx-xl-90 {
    --bs-gutter-x: 90px;
  }
}

/* ABOUT - staff */

.about-staff-section {
  overflow: hidden;
}

.about-staff-gallery {
  position: relative;
}

.about-staff-list {
  position: relative;
  width: 100%;
  aspect-ratio: 366 / 406;
  transform: none !important;
}

.about-staff-item {
  position: absolute;
  width: calc(171 / 366 * 100%);
}

.about-staff-thumb {
  margin-bottom: 0;
}

.about-staff-thumb img {
  display: block;
  width: 100%;
  height: auto;
}

.about-staff-item.is-staff-01 {
  top: calc(32 / 406 * 100%);
  left: 0;
}

.about-staff-item.is-staff-02 {
  top: 0;
  right: 0;
}

.about-staff-item.is-staff-03 {
  bottom: 0;
  left: 0;
}

.about-staff-item.is-staff-04 {
  top: calc(203 / 406 * 100%);
  right: 0;
}

@media (min-width: 992px) {
  .about-staff-list {
    aspect-ratio: 926 / 652;
  }

  .about-staff-item {
    width: calc(248 / 926 * 100%);
    height: calc(248 / 652 * 100%);
  }

  .about-staff-item.is-staff-01 {
    top: calc(124 / 652 * 100%);
    left: calc(0 / 926 * 100%);
  }

  .about-staff-item.is-staff-02 {
    top: calc(0 / 652 * 100%);
    right: auto;
    left: calc(349 / 926 * 100%);
  }

  .about-staff-item.is-staff-03 {
    left: auto;
    bottom: calc(0 / 652 * 100%);
    right: calc(349 / 926 * 100%);
  }

  .about-staff-item.is-staff-04 {
    top: auto;
    bottom: calc(124 / 652 * 100%);
    right: calc(0 / 926 * 100%);
  }
}

@media (min-width: 1400px) {
  .about-staff-list {
    aspect-ratio: 1295 / 372;
  }

  .about-staff-item {
    width: calc(248 / 1295 * 100%);
    height: calc(248 / 372 * 100%);
  }

  .about-staff-item.is-staff-01 {
    top: calc(50 / 372 * 100%);
    left: calc(0 / 1295 * 100%);
  }

  .about-staff-item.is-staff-02 {
    top: calc(0 / 372 * 100%);
    left: calc(349 / 1295 * 100%);
  }

  .about-staff-item.is-staff-03 {
    bottom: calc(0 / 372 * 100%);
    right: calc(349 / 1295 * 100%);
  }

  .about-staff-item.is-staff-04 {
    bottom: calc(107 / 372 * 100%);
    right: calc(0 / 1295 * 100%);
  }
}


/*------------------------------
 製品開発についてページ
------------------------------*/


.development-fv-inner {
  position: relative;
  width: 100%;
  aspect-ratio: 366 / 565;
}

.development-fv-inner figure {
  position: absolute;
  display: block;
}

.development-fv-img01 {
  top: calc(0 / 565 * 100%);
  left: calc(0 / 366 * 100%);
  width: calc(171 / 366 * 100%);
  height: calc(170 / 565 * 100%);
}

.development-fv-img02 {
  top: calc(103 / 565 * 100%);
  right: calc(0 / 366 * 100%);
  width: calc(170 / 366 * 100%);
  height: calc(256 / 565 * 100%);
}

.development-fv-img03 {
  top: calc(390 / 565 * 100%);
  left: calc(52 / 366 * 100%);
  width: calc(262 / 366 * 100%);
  height: calc(175 / 565 * 100%);
}

@media (min-width: 992px) {
  .development-fv .common-fv-container > .row.align-items-lg-end {
    position: relative;
  }

  .development-fv .development-fv-copy-col {
    position: relative;
    z-index: 2;
  }

  .development-fv .page-title .h1-common {
    white-space: nowrap;
  }

  .development-fv .development-fv-visual-col {
    position: absolute;
    right: 0;
    bottom: 0;
    z-index: 1;
    width: 50%;
    pointer-events: none;
  }

  .development-fv-inner {
    aspect-ratio: 626 / 512;
  }

  .development-fv-img01 {
    top: calc(0 / 512 * 100%);
    left: calc(110 / 626 * 100%);
    width: calc(230 / 626 * 100%);
    height: calc(229 / 512 * 100%);
  }

  .development-fv-img02 {
    top: calc(114 / 512 * 100%);
    right: calc(0 / 626 * 100%);
    width: calc(230 / 626 * 100%);
    height: calc(345 / 512 * 100%);
  }

  .development-fv-img03 {
    top: calc(285 / 512 * 100%);
    left: calc(0 / 626 * 100%);
    width: calc(340 / 626 * 100%);
    height: calc(227 / 512 * 100%);
  }
}

@media (min-width: 1200px) {
  .development-fv-wrapper {
    margin-top: -120px;
  }

  .is-scroll-fv-development .development-fv-visual-col {
    top: 200px;
    bottom: 100px;
  }

  .is-scroll-fv-development .development-fv-wrapper {
    width: auto !important;
    height: 100%;
    aspect-ratio: 626 / 512;
    margin-top: 0;
    margin-left: auto;
  }

  .is-scroll-fv-development .development-fv-inner {
    height: 100%;
  }
}

@media (min-width: 1200px) and (max-width: 1399.98px) and (max-height: 820px) {
  .development-fv .development-fv-wrapper {
    margin-top: 0;
  }
}

/* 製品開発 - scroll animation */

.development-anim {
  position: relative;
  background: #000;
}

.development-anim-panel {
  position: relative;
  min-height: 100dvh;
}

.development-anim-bg {
  position: sticky;
  top: 0;
  height: 100dvh;
  overflow: hidden;
}

.development-anim-bg::after {
  position: absolute;
  inset: 0;
  content: "";
  background: rgba(0, 0, 0, 0.38);
}

.development-anim-copy-wrap {
  position: relative;
  z-index: 1;
  margin-top: -100dvh;
  padding-top: 72dvh;
  padding-bottom: 40dvh;
}

.development-anim-copy-track {
  min-height: 120dvh;
}

.development-anim-copy-sticky {
  position: sticky;
  top: 60dvh;
}

@media (min-width: 410px) {
  .development-anim-heading-nowrap {
    white-space: nowrap;
  }
}

.development-anim.is-animated .development-anim-bg,
.development-anim.is-animated .development-anim-copy {
  opacity: 0;
}

@media (min-width: 768px) {
  .development-anim-copy-wrap {
    padding-bottom: 60dvh;
  }
}

@media (min-width: 992px) {
  .development-anim-panel {
    height: 100dvh;
    overflow: hidden;
  }

  .development-anim-bg {
    position: absolute;
    inset: 0;
    height: 100%;
  }

  .development-anim-copy-wrap {
    position: absolute;
    inset: 0;
    margin-top: 0;
    padding: 0;
  }

  .development-anim-copy-wrap > .container,
  .development-anim-copy-wrap .row,
  .development-anim-copy-track {
    height: 100%;
  }

  .development-anim-copy-track {
    display: flex;
    align-items: flex-end;
    min-height: 0;
    padding-bottom: 50px;
  }

  .development-anim-copy-sticky {
    position: static;
    width: 100%;
  }

  .development-anim-copy {
    max-height: calc(100dvh - 182px);
    overflow-y: auto;
    overscroll-behavior: contain;
  }
}

/* 製品開発 - contact banner */

.development-contact-banner {
  display: block;
  background-image: url("../images/development/contact_banner_bg_sp.jpg");
  background-size: cover;
  background-position: center bottom;
  background-repeat: no-repeat;
  color: #fff !important;
}

.development-contact-content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  height: 100%;
  padding: 64px 0;
}

.development-contact-arrow {
  width: 45px;
  aspect-ratio: 1;
  border-radius: 50%;
  background: #fff;
  position: relative;
  flex: 0 0 auto;
  align-self: flex-end;
}

.development-contact-arrow::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 9px;
  height: 9px;
  border-top: 2px solid var(--main-blue);
  border-right: 2px solid var(--main-blue);
  transform: translate(-65%, -50%) rotate(45deg);
}

@media (min-width: 992px) {
  .development-contact-banner {
    background-image: url("../images/development/contact_banner_bg_pc.jpg");
    background-position: center;
  }

  .development-contact-content {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 40px;
    padding: 118px 0;
  }

  .development-contact-arrow {
    width: 90px;
    align-self: center;
  }

  .development-contact-arrow::after {
    width: 18px;
    height: 18px;
  }
}


/*------------------------------
 製品一覧・製品詳細共通ページ
------------------------------*/


/*FV*/

.products-single-fv {
  position: relative;
  overflow: hidden;
  background-color: var(--light-gray-f3);
}

.products-single-fv-copy-col {
  z-index: 2;
}

.products-single-fv-category {
  padding: 5px 8px;
  border: 1px solid var(--common-black);
  text-indent: 0.2em;
}

.products-single-fv-link {
  position: relative;
}

.products-single-fv-link::after {
  content: "";
  display: inline-block;
  flex: 0 0 21px;
  width: 21px;
  height: 21px;
  margin-left: 16px;
  border-radius: 50%;
  background: var(--main-blue);
  transform: translateY(1px);
}

.products-single-fv-link::before {
  content: "";
  position: absolute;
  top: 50%;
  right: 8px;
  width: 7px;
  height: 7px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  transform: translateY(calc(-50% + 1px)) rotate(45deg);
  z-index: 1;
}

.products-single-fv-visual {
  width: min(94vw, 366px);
}

@media (min-width: 992px) {
  .products-single-fv-visual {
    width: 100%;
  }

  .products-single-fv-image {
    width: 100%;
  }
}

@media (min-width: 1400px) {
  .products-single-fv-visual-col {
    margin-left: -8.33% !important;
  }
}

/*FVロゴ調整*/

.products-single-fv-logo--asqboard {
  width: 100%;
  max-width: 305px;
}

@media (min-width: 1200px) {
  .products-single-fv-logo--asqboard {
    max-width: 361px;
  }
}

/*FV以降*/

.products-single-heading {
  margin-bottom: 40px;
}

/*モーダル*/

.products-single-common-modal-button {
  background: linear-gradient(90deg, #0F6EB3 27%, #65A6D5 60%, #FFFFFF 100%);
  min-height: 74px;
  padding: 22px 50px;
  border-radius: 10px;
}

.products-single-common-modal-button-icon {
  position: relative;
  display: block;
  flex: 0 0 21px;
  width: 21px;
  height: 21px;
  border-radius: 50%;
  background-color: #fff;
}

.products-single-common-modal-button-icon::before,
.products-single-common-modal-button-icon::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 11px;
  height: 1.5px;
  background-color: var(--main-blue);
  transform: translate(-50%, -50%);
}

.products-single-common-modal-button-icon::after {
  transform: translate(-50%, -50%) rotate(90deg);
}

.products-single-common-modal .modal-dialog {
  width: calc(100% - 24px);
  max-width: none;
  margin-top: 160px;
  margin-right: auto;
  margin-bottom: 24px;
  margin-left: auto;
}

.products-single-common-modal .modal-content {
  position: relative;
  min-height: 320px;
  padding: 80px 12px 50px;
  border: 0;
  border-radius: 0;
}

.products-single-common-modal .modal-body {
  padding: 0;
}

.heavywall-modal-grid {
  display: grid;
  grid-template-columns: minmax(0, 314px);
  justify-content: center;
  gap: 40px;
  margin: 0;
}

.heavywall-modal-grid-col {
  width: 100%;
  padding: 0;
}

.heavywall-modal-card {
  min-height: 937px;
}

.heavywall-modal-card-number {
  display: inline-flex;
  flex: 0 0 30px;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  color: #fff;
  font-weight: 500;
  line-height: 1;
  background-color: var(--common-black);
  text-indent: 0.2em;
}

.heavywall-modal-card-number > span {
  transform: translateY(-1px);
}

.heavywall-modal-arrow {
  --arrow-angle: 47deg;

  position: relative;
  width: 26px;
  height: 14px;
  margin-right: auto;
  margin-left: auto;
}

.heavywall-modal-arrow::before,
.heavywall-modal-arrow::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 18px;
  height: 2px;
  background-color: var(--common-black);
  transform-origin: left center;
}

.heavywall-modal-arrow::before {
  transform: rotate(calc(-180deg + var(--arrow-angle)));
}

.heavywall-modal-arrow::after {
  transform: rotate(calc(-1 * var(--arrow-angle)));
}

.heavywall-modal-arrow-blue::before,
.heavywall-modal-arrow-blue::after {
  background-color: var(--main-blue);
}

.text-indent-200{
  text-indent: 0.2em;
}

.products-single-common-modal-close {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 1;
  width: 60px;
  height: 60px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background-color: var(--main-blue);
}

.products-single-common-modal-close span::before,
.products-single-common-modal-close span::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 31px;
  height: 4px;
  background-color: #fff;
  transform: translate(-50%, -50%) rotate(45deg);
}

.products-single-common-modal-close span::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}

.products-single-common-modal-bottom-close {
  align-self: center;
  text-decoration-line: underline;
  text-underline-offset: 4px;
  padding: 0;
  border: 0;
}

.heavywall-conparison-video {
  width: 100%;
  aspect-ratio: 778 / 442;
}

.heavywall-order-row {
  --bs-gutter-y: 40px;
}

.heavywall-panel-table-wrap {
  width: 100%;
  max-width: 100%;
  margin-top: -20px;
  margin-bottom: -12px;
  padding: 20px 0 12px !important;
  overflow-x: auto;
  overflow-y: hidden !important;
  -webkit-overflow-scrolling: touch;
}

.heavywall-panel-table-wrap .scroll-hint-icon {
  top: calc(50% - 47px);
}

.heavywall-panel-table {
  width: 100%;
  min-width: 926px;
  border-collapse: collapse;
  table-layout: fixed;
}

.heavywall-panel-table td {
  width: 20%;
  height: 64px;
  border: 1px solid #9babb2;
  text-align: center;
  vertical-align: middle;
  white-space: normal;
}

.products-spec-table-wrap {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  overflow-y: hidden !important;
  -webkit-overflow-scrolling: touch;
}

.products-spec-table {
  width: 100%;
  min-width: 926px;
  border-collapse: collapse;
  table-layout: fixed;
}

.products-spec-table-label-col {
  width: 184px;
}

.products-spec-table th,
.products-spec-table td {
  padding: 6px 24px;
  border: 1px solid #99A9B0;
  vertical-align: middle;
}

.products-spec-table th {
  padding-left: 48px;
  background-color: #f3f3f3;
  text-align: left;
  font-weight: 400;
}

.heavywall-construction-video {
  display: block;
  width: 100%;
  height: auto;
  border: 1px solid #aaa;
  border-radius: 16px;
  background-color: #fff;
  box-shadow: 0 2px 4px rgb(0 0 0 / 20%);
}

@media (min-width: 576px) {
  .products-single-common-modal .modal-dialog {
    max-width: 516px;
  }
}

@media (min-width: 768px) {
  .products-single-common-modal .modal-dialog {
    max-width: 698px;
  }
}

@media (min-width: 992px) {
  .products-single-heading {
    margin-bottom: 24px;
  }

  .products-single-common-modal .modal-content {
    min-height: 600px;
    padding: 44px 12px 100px;
  }

  .products-single-common-modal .modal-dialog {
    max-width: 906px;
    margin-top: 200px;
  }

  .products-single-common-modal-close {
    top: -30px;
    right: -30px;
  }

  .heavywall-overview-image {
    --bs-gutter-x: 0;
    grid-template-columns: minmax(0, 441fr) minmax(0, 595fr);
    column-gap: 40px;
    display: grid;
    margin-inline: 0;
  }

  .heavywall-overview-image > [class*="col-"] {
    width: 100%;
    max-width: none;
    padding-inline: 0;
  }

  .heavywall-order-row {
    --bs-gutter-y: 56px;
  }

}

@media (min-width: 1200px) {
  .products-single-common-modal .modal-dialog {
    max-width: 1086px;
  }

  .heavywall-modal-grid {
    grid-template-columns: repeat(3, minmax(0, 314px));
  }

  .heavywall-modal-card {
    height: 100%;
  }
}

@media (min-width: 1400px) {
  .products-single-common-modal .modal-dialog {
    max-width: 1266px;
  }
}


.common-btn-blue {
  background-color: var(--main-blue);
  color: #fff !important;
}

.common-btn-blue::after {
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
}


/*------------------------------
 イーパネQページ
------------------------------*/

.products-single-fv-logo--epane {
  width: 100%;
  max-width: 303px;
}

@media (min-width: 1200px) {
  .products-single-fv-logo--epane {
    max-width: 414px;
  }
}

.epane-feature-image-wrap {
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.epane-feature-1-item {
  padding: 24px 0;
  background-color: #ebebeb;
  flex: 1;
  width: 100%;
  text-align: center;
  overflow: hidden;
}

.epane-feature-1-item .scroll-hint-icon {
  margin-top: -50px;
}

.epane-feature-2-item {
  padding: 24px;
  background-color: #ebebeb;
  flex: 1;
  width: 100%;
  aspect-ratio: 122 / 119;
  text-align: center;
}

.epane-feature-1-image {
  width: 100%;
  min-width: 610px;
  padding: 0 24px 8px 24px;
}

.epane-feature-2-image {
  width: 100%;
  max-width: 84%;
  margin: 0 auto;
}

.epane-feature-item-title {
  font-size: 1.25rem;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.2em;
}

@media (min-width: 992px) {
  .epane-feature-image-wrap {
    flex-direction: row;
  }

  .epane-feature-1-item {
    padding: 24px;
    flex: 1.5;
    width: 100%;
    aspect-ratio: 51 / 29;
  }

  .epane-feature-2-item {
    flex: 1;
    width: 100%;
    aspect-ratio: 106 / 87;
  }

  .epane-feature-1-image {
    width: 100%;
    min-width: 100%;
    padding: 0;
  }

  .epane-feature-2-image {
    max-width: 71%;
  }
}

.epane-spec-image-wrap {
  display: flex;
  flex-direction: column;
  gap: 65px;
}

.epane-spec-image-item {
  flex: 1;
}

.epane-spec-image {
  width: 100%;
  max-width: 240px;
  margin: 0 auto;
}

@media (min-width: 992px) {
  .epane-spec-image-wrap {
    flex-direction: row;
    gap: 9%;
  }

  .epane-spec-image {
    max-width: 100%;
  }
}


/*------------------------------
 ラクティー（壁用）ページ
------------------------------*/

.rakuty-sup {
  margin-left: 0.75rem;
  vertical-align: super;
}

.products-single-fv-logo--rakuty {
  width: 100%;
  max-width: 275px;
}

@media (min-width: 1200px) {
  .products-single-fv-logo--rakuty {
    max-width: 190px;
  }
}


.rakuty-parts-list-table-wrap {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  overflow-y: hidden !important;
  -webkit-overflow-scrolling: touch;
}

.rakuty-parts-list-table {
  border-collapse: collapse;
  table-layout: fixed;
}

.rakuty-parts-list-table-label-col {
  width: 184px;
}

.rakuty-parts-list-table th,
.rakuty-parts-list-table td {
  padding: 6px 24px;
  border: 1px solid #99A9B0;
  vertical-align: middle;
}

.rakuty-parts-list-table th {
  padding: 20px 8px;
  background-color: #f3f3f3;
  text-align: center;
  font-weight: 400;
  line-height: 1.5;
}

.rakuty-parts-list-table th .th-inner {
  display: inline-block;
  text-align: left;
}

.rakuty-table-width {
  width: 716px;
  min-width: 716px;
}

.rakutys-table-width {
  width: 442px;
  min-width: 442px;
}

.rakutyf-table-width {
  width: 442px;
  min-width: 442px;
}


/*------------------------------
 ラクティー（床用）ページ
------------------------------*/

.products-single-fv-logo--rakutyf {
  width: 100%;
  max-width: 275px;
}

@media (min-width: 1200px) {
  .products-single-fv-logo--rakutyf {
    max-width: 190px;
  }
}


/*------------------------------
 ラクティーシルバーページ
------------------------------*/

.products-single-fv-logo--rakutys {
  width: 100%;
  max-width: 298px;
}

@media (min-width: 1200px) {
  .products-single-fv-logo--rakutys {
    max-width: 345px;
  }
}

.h3-overview-rakutys {
  font-size: 1.5rem !important;
  line-height: 1.5 !important;
  letter-spacing: 0.1em !important;
}

@media screen and (min-width: 992px) {
  .h3-overview-rakutys {
    font-size: 2rem !important;
    letter-spacing: 0.2em !important;
  }
}


/*------------------------------
 ラクティーGpページ
------------------------------*/

.products-single-fv-logo--rakutyg {
  width: 100%;
  max-width: 290px;
}

@media (min-width: 1200px) {
  .products-single-fv-logo--rakutyg {
    max-width: 290px;
  }
}

.rakutyg-feature-text-wrap {
  width: 100%;
  max-width: 100%;
}

@media screen and (min-width: 992px) {
  .rakutyg-feature-text-wrap {
    max-width: 526px;
  }
}


/*------------------------------
 HIPルーフページ
------------------------------*/


.products-single-fv-logo--hip {
  width: 100%;
  max-width: 275px;
}

@media (min-width: 1200px) {
  .products-single-fv-logo--hip {
    max-width: 306px;
  }
}

.hip-procedure-slider-frame {
  max-width: 794px;
  padding-top: 32px;
  margin-inline: auto;
}

.hip-procedure-slider-body {
  position: relative;
  padding: 0 17px;
}

.hip-procedure-nav {
  position: absolute;
  top: 50%;
  z-index: 2;
  width: 43px;
  height: 43px;
  padding: 0;
  border: none;
  border-radius: 50%;
  background-color: var(--main-blue);
  transform: translateY(-50%);
  transition: 0.4s ease;
}

.hip-procedure-nav:hover {
  opacity: 0.6;
}

.hip-procedure-nav::before {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 8px;
  height: 8px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  content: "";
}

.hip-procedure-nav-prev {
  left: 0;
}

.hip-procedure-nav-prev::before {
  transform: translate(-35%, -50%) rotate(-135deg);
}

.hip-procedure-nav-next {
  right: 0;
}

.hip-procedure-nav-next::before {
  transform: translate(-65%, -50%) rotate(45deg);
}

.hip-procedure-pagination.swiper-pagination {
  position: static;
  display: flex;
  justify-content: center;
  align-items: center;
  margin-top: 32px;
  line-height: 1;
}

.hip-procedure-pagination .swiper-pagination-bullet {
  width: 7px;
  height: 7px;
  margin: 0 8px !important;
  background-color: #a8a8a8;
  opacity: 1;
}

.hip-procedure-pagination .swiper-pagination-bullet-active {
  background-color: var(--main-blue);
}

@media (max-width: 389px) {
  .hip-procedure-slider-frame {
    overflow-x: clip;
  }
}

@media (min-width: 992px) {
  .hip-procedure-nav {
    width: 58px;
    height: 58px;
  }

  .hip-procedure-nav::before {
    width: 11px;
    height: 11px;
  }

  .hip-procedure-nav-prev {
    left: -65px;
  }

  .hip-procedure-nav-next {
    right: -65px;
  }

  .hip-procedure-pagination .swiper-pagination-bullet {
    margin: 0 13px !important;
  }
}


/*------------------------------
 リプラスボードページ
------------------------------*/


.products-single-fv-logo--replus {
  width: 100%;
  max-width: 290px;
}

@media (min-width: 1200px) {
  .products-single-fv-logo--replus {
    max-width: 391px;
  }
}

.replus-feature-graphs {
  display: flex;
  flex-direction: column;
  gap: 40px;
}

@media (min-width: 576px) {
  .replus-feature-graph picture {
    display: flex;
    justify-content: center;
    background-color: #f3f3f3;
  }

  .replus-feature-graph picture img {
    max-width: 60%;
  }
}

.replus-lineup-nav {
  display: flex;
  flex-direction: column;
  gap: 24px;
  padding-inline: 20px;
}

.replus-lineup-anchor {
  min-width: 200px;
  gap: 12px;
  padding-inline: 24px;
}

.replus-lineup-anchor span {
  min-width: 0;
}

.replus-lineup-anchor::after {
  position: static;
  top: auto;
  right: auto;
  margin-top: -3px;
  transform: rotate(135deg);
}

.replus-lineup-group {
  scroll-margin-top: 129px;
}

.replus-lineup-group + .replus-lineup-group {
  position: relative;
  margin-top: 70px;
  padding-top: 70px;
}

.replus-lineup-group + .replus-lineup-group::before {
  content: "";
  position: absolute;
  top: 0;
  width: calc(100% - var(--bs-gutter-x, 1.5rem));
  height: 1px;
  background-color: #A0A0A0;
}

@media (min-width: 992px) {
  .replus-lineup-group + .replus-lineup-group::before {
    left: calc(100% / 12 + var(--bs-gutter-x, 1.5rem) * 0.5);
    width: calc(100% / 12 * 10 - var(--bs-gutter-x, 1.5rem));
  }

  .replus-feature-graph picture {
    display: block;
  }

  .replus-feature-graph picture img {
    max-width: unset;
  }
}

.replus-lineup-subhead {
  position: relative;
  padding-left: 24px;
}

.replus-lineup-subhead::before {
  content: "";
  position: absolute;
  top: 0.6em;
  left: 0;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background-color: var(--main-blue);
}

.replus-lineup-visual {
  display: flex;
  align-items: center;
  justify-content: center;
}

@media (min-width: 992px) {
  .replus-lineup-visual {
    justify-content: flex-end;
  }

  .replus-lineup-group .products-single-heading {
    margin-bottom: 40px;
  }

  .replus-lineup-visual-gap95 img {
    width: 100%;
    max-width: 455px;
  }
}

.replus-board-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  line-height: 1.5;
}

.replus-board-table th,
.replus-board-table td {
  border: 1px solid #99a9b0;
  font-weight: 400;
  text-align: center;
  vertical-align: middle;
  height: 51px;
  padding: 0;
}

.replus-board-table th {
  width: 96px;
  background-color: var(--light-gray-f3);
}

@media (min-width: 1400px) {
  .replus-board-table th,
  .replus-board-table td {
    height: 75px;
    padding: 13px 15px;
  }

  .replus-board-table th {
    width: 139px;
  }
}

.replus-case-slider-frame {
  position: relative;
  max-width: 760px;
  margin-inline: auto;
  padding: 0 12px;
}

.replus-case-nav {
  position: absolute;
  top: 32%;
  z-index: 2;
  width: 43px;
  height: 43px;
  padding: 0;
  border: none;
  border-radius: 50%;
  background-color: var(--main-blue);
  transform: translateY(-50%);
  transition: 0.4s ease;
}

.replus-case-nav:hover {
  opacity: 0.6;
}

.replus-case-nav::before {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 8px;
  height: 8px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  content: "";
}

.replus-case-nav-prev {
  left: 0;
}

.replus-case-nav-prev::before {
  transform: translate(-35%, -50%) rotate(-135deg);
}

.replus-case-nav-next {
  right: 0;
}

.replus-case-nav-next::before {
  transform: translate(-65%, -50%) rotate(45deg);
}

.replus-case-pagination.swiper-pagination {
  position: static;
  margin-top: 24px;
  line-height: 1;
}

.replus-case-pagination .swiper-pagination-bullet {
  width: 7px;
  height: 7px;
  margin: 0 13px !important;
  background-color: #a8a8a8;
  opacity: 1;
}

.replus-case-pagination .swiper-pagination-bullet-active {
  background-color: var(--main-blue);
}

@media (max-width: 360px) {
  .replus-case-slider-frame {
    overflow-x: clip;
  }
}

@media (min-width: 768px) {
  .replus-case-nav {
    top: 42%;
  }
}

@media (min-width: 992px) {
  .replus-feature-graphs {
    flex-direction: row;
    align-items: stretch;
    gap: 24px;
  }

  .replus-feature-graphs > .replus-feature-graph:first-child {
    flex: 636 1 0;
  }

  .replus-feature-graphs > .replus-feature-graph:last-child {
    flex: 416 1 0;
  }

  .replus-lineup-nav {
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    gap: 32px 80px;
    max-width: 820px;
    margin-inline: auto;
    padding-inline: 0;
  }

  .replus-lineup-group + .replus-lineup-group {
    margin-top: 70px;
    padding-top: 60px;
  }

  .replus-lineup-wrapper {
    max-width: 100%;
  }

  .replus-lineup-wrapper-full {
    max-width: 100%;
  }

  .replus-case-slider-frame {
    padding: 0;
  }

  .replus-case-nav {
    width: 58px;
    height: 58px;
  }

  .replus-case-nav::before {
    width: 11px;
    height: 11px;
  }

  .replus-case-nav-prev {
    left: -80px;
  }

  .replus-case-nav-next {
    right: -80px;
  }
}


/*------------------------------
 ASQボードページ
------------------------------*/

.asqboard-info-block {
  position: relative;
  margin-top: 40px;
  padding-top: 40px;
}

.asqboard-info-block::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 1px;
  background: linear-gradient(90deg, #565656 0%, #222222 100%);
  transform: scaleY(0.5);
  transform-origin: top;
}

@media (min-width: 992px) {
  .asqboard-info-block {
    margin-top: 56px;
    padding-top: 56px;
  }
}

.asqboard-sup {
  vertical-align: super;
}


/*------------------------------
 ウッドトラスページ
------------------------------*/


.woodtruss-case {
  padding: 40px 12px;
}

.woodtruss-case-heading {
  margin-right: -0.2em;
}

.woodtruss-case picture {
  display: block;
}

@media (min-width: 992px) {
  .woodtruss-feature-visual {
    max-width: 420px;
    margin-left: auto;
  }

  .woodtruss-case {
    padding: 60px 34px;
  }

  .woodtruss-case-photo {
    max-width: 418px;
    margin-left: auto;
  }
}


/*------------------------------
 FPパネルページ
------------------------------*/


.panel-stat-list {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  padding: 0;
  margin: 0;
  list-style: none;
}

.panel-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 242px;
  max-width: 100%;
  padding-bottom: 17px;
  aspect-ratio: 1;
  border-radius: 50%;
  color: #fff;
  text-align: center;
}

.panel-stat-value {
  margin-top: 7px;
}

@media (min-width: 576px) {
  .panel-stat-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 242px));
    justify-content: center;
  }
}

@media (min-width: 992px) {
  .panel-stat-list {
    display: flex;
    flex-direction: row;
    gap: 36px;
  }

  .panel-stat {
    flex: 1 1 0;
    width: auto;
  }
}

@media (min-width: 992px) and (max-width: 1199px) {
  .panel-stat-list {
    gap: 20px;
  }

  .panel-stat {
    padding-bottom: 12px;
  }

  .panel-stat .ofs-5 {
    font-size: 0.75rem !important;
  }

  .panel-stat .ofs-53 {
    font-size: 3rem !important;
  }

  .panel-stat .ofs-13 {
    font-size: 1.125rem !important;
  }
}

.panel-ls-trim {
  margin-right: -0.2em;
}

.panel-movie {
  width: 100%;
  max-width: 883px;
  aspect-ratio: 883 / 492;
}

.panel-movie iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}

.panel-network {
  background-color: #ededed;
}

.panel-merit-list {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  padding: 0;
  margin: 0;
  list-style: none;
}

.panel-merit {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
}

.panel-merit-icon {
  width: 104px;
  height: 104px;
  object-fit: contain;
  object-position: bottom;
}

@media (min-width: 576px) {
  .panel-merit-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 200px));
    justify-content: center;
    column-gap: 8px;
  }
}

@media (min-width: 768px) {
  .panel-merit-list {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    column-gap: 16px;
  }
}

@media (min-width: 992px) {
  .panel-merit-icon {
    width: 107px;
    height: 107px;
  }
}

@media (min-width: 992px) {
  .panel-merit-list {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    justify-content: center;
    gap: 50px;
  }

  .panel-merit {
    flex: 0 1 auto;
  }
}

.panel-group-banner {
  display: block;
  max-width: 952px;
  margin-inline: auto;
  background-image: url("../images/products/panel/banner_02_sp.png");
  background-size: cover;
  background-position: center bottom;
  background-repeat: no-repeat;
  aspect-ratio: 366 / 457;
  color: #fff !important;
}

.panel-group-banner-inner {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 48px;
  height: 100%;
  padding: 0 24px;
}

.panel-group-banner-arrow {
  position: relative;
  flex: 0 0 auto;
  align-self: flex-end;
  width: 45px;
  aspect-ratio: 1;
  border-radius: 50%;
  background: #fff;
}

.panel-group-banner-arrow::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 9px;
  height: 9px;
  border-top: 2px solid var(--main-blue);
  border-right: 2px solid var(--main-blue);
  transform: translate(-65%, -50%) rotate(45deg);
}

@media (max-width: 360px) {
  .panel-group-banner {
    aspect-ratio: auto;
  }

  .panel-group-banner-heading {
    font-size: clamp(1.25rem, 7.5vw, 1.75rem) !important;
  }

  .panel-group-banner-heading span {
    display: block;
    white-space: nowrap;
  }

  .panel-group-banner-inner {
    height: auto;
    gap: 32px;
    padding-top: 40px;
    padding-bottom: 40px;
  }
}

@media (min-width: 992px) {
  .panel-group-banner {
    background-image: url("../images/products/panel/banner_01.png");
    background-position: center;
    aspect-ratio: 952 / 383;
  }

  .panel-group-banner-inner {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 40px;
    padding: 0 64px;
  }

  .panel-group-banner-arrow {
    width: 90px;
    align-self: center;
  }

  .panel-group-banner-arrow::after {
    width: 18px;
    height: 18px;
  }
}


/*------------------------------
 課題解決事例 一覧ページ
------------------------------*/


.case-filter {
  display: grid;
  gap: 32px;
}

.case-list {
  --bs-gutter-y: 64px;
}

.case-card-thumb,
.case-detail-main-image {
  overflow: hidden;
}

.case-card-thumb {
  position: relative;
}

.case-card-thumb img {
  aspect-ratio: 526 / 318;
  height: auto;
  object-fit: cover;
}

.case-detail-main-image img {
  aspect-ratio: 366 / 220;
  height: auto;
  object-fit: cover;
}

.case-card-voice {
  position: absolute;
  right: 8px;
  bottom: 8px;
  z-index: 1;
  display: block;
  width: 72px;
  aspect-ratio: 1;
  overflow: hidden;
  border: 2px solid #fff;
  border-radius: 50rem;
}

.case-card-voice img {
  width: 100%;
  height: 100%;
  aspect-ratio: 1;
  object-fit: cover;
  object-position: center;
}

.case-card-category {
  display: inline-flex;
  background-color: var(--main-blue);
  color: #fff;
}

.case-card-title {
  margin: 12px 0 8px;
}

@media screen and (min-width: 992px) {
  .case-list {
    --bs-gutter-x: 24px;
    --bs-gutter-y: 32px;
  }

  .case-card-voice {
    right: 10px;
    bottom: 10px;
    width: 103px;
  }

  .case-detail-main-image img {
    aspect-ratio: 1076 / 496;
  }
}


/*------------------------------
 課題解決事例 詳細ページ
------------------------------*/

.case-voice-construction-image {
  width: calc(100% - 64px);
  aspect-ratio: 1;
  object-fit: cover;
  border-radius: 4px;
  margin: 0 32px;
}

.case-voice-construction-wrapper {
  padding: 32px 0;
  --bs-gutter-x: 16px;
}

.case-voice-construction-url {
  max-width: 100%;
  overflow-wrap: anywhere;
}

.case-concerns-head {
  background: linear-gradient(80deg, #16537a 0%, #227db8 100%);
  border-top-left-radius: 20px;
  border-top-right-radius: 20px;
}

.case-solutions-head {
  background: linear-gradient(80deg, #C68815 0%, #E5B105 100%);
  border-top-left-radius: 20px;
  border-top-right-radius: 20px;
}

.case-gray-body {
  border-bottom-left-radius: 20px;
  border-bottom-right-radius: 20px;
  background-color: var(--light-gray-f3);
}

.case-item-list:not(:first-of-type) {
  padding-top: 24px;
}

.case-itemized-ttl {
  position: relative;
  padding-left: 24px;
}

.case-itemized-ttl::before {
  position: absolute;
  top: 0.8em;
  left: 7px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background-color: currentColor;
  content: "";
  transform: translateY(-50%);
}

.case-voice-points-slider-frame {
  position: relative;
  container-type: inline-size;
  width: calc(100% - 24px);
  margin-inline: auto;
}

.case-voice-points-slider {
  overflow: hidden;
}

.case-voice-point-image {
  overflow: hidden;
  aspect-ratio: 342 / 370;
}

.case-voice-point-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.case-voice-points-nav {
  position: absolute;
  top: 54.0936cqi;
  z-index: 2;
  width: 43px;
  height: 43px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background-color: #fff;
  border: 1px solid var(--main-blue);
  transform: translateY(-50%);
}

.case-voice-points-nav.swiper-button-disabled,
.case-voice-points-nav.swiper-button-lock,
.case-voice-points-pagination.swiper-pagination-lock {
  display: none;
}

.case-voice-points-nav::before {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 8px;
  height: 8px;
  border-top: 2px solid var(--main-green);
  border-right: 2px solid var(--main-green);
  content: "";
}

.case-voice-points-nav-prev {
  left: -12px;
}

.case-voice-points-nav-prev::before {
  transform: translate(-35%, -50%) rotate(-135deg);
}

.case-voice-points-nav-next {
  right: -12px;
}

.case-voice-points-nav-next::before {
  transform: translate(-65%, -50%) rotate(45deg);
}

.case-voice-points-pagination.swiper-pagination {
  position: static;
  margin-top: 24px;
  line-height: 1;
}

.case-voice-points-pagination .swiper-pagination-bullet {
  width: 7px;
  height: 7px;
  margin: 0 13px !important;
  background-color: #a8a8a8;
  opacity: 1;
}

.case-voice-points-pagination .swiper-pagination-bullet-active {
  background-color: var(--main-blue);
}

.case-voice-story-item:not(:first-of-type) {
  padding-top: 64px;
}

.case-voice-story-item-q::before {
  content: "Q. ";
}

.case-voice-story-item-a a {
  color: #fff !important;
}

.case-voice-story-item-image {
  display: block;
  width: 100%;
  padding-top: 40px;
}

.case-voice-used-product-item:not(:first-of-type) {
  padding-top: 40px;
}

.case-voice-used-product-image {
  overflow: hidden;
}

.case-voice-used-product-image img {
  aspect-ratio: 366 / 469;
  object-fit: cover;
}

.case-voice-used-product-body {
  padding-top: 16px;
}

.case-proposal-example-item:not(:first-of-type) {
  padding-top: 64px;
}

.case-proposal-example-image {
  display: block;
  width: 100%;
  padding-top: 40px;
}

@media screen and (min-width: 768px) {
  .case-voice-used-product-body {
    padding-top: 0;
    padding-left: 32px;
  }

  .case-voice-points-nav {
    width: 58px;
    height: 58px;
  }

  .case-voice-points-nav::before {
    width: 11px;
    height: 11px;
  }

  .case-voice-points-nav-prev {
    left: -29px;
  }

  .case-voice-points-nav-next {
    right: -29px;
  }
}

@media screen and (min-width: 992px) {
  .case-voice-construction-wrapper {
    --bs-gutter-x: 56px;
  }

  .case-voice-construction-image {
    width: 100%;
    max-width: 196px;
    margin: 0;
  }

  .case-voice-used-product-item:not(:first-of-type) {
    padding-top: 56px;
  }

  .case-voice-used-product-body {
    padding-left: 48px;
  }

  .case-voice-points-slider-frame {
    width: min(100%, 856px);
  }

  .case-voice-point-image {
    aspect-ratio: 856 / 571;
  }

  .case-voice-points-nav {
    top: 33.3528cqi;
  }

  .case-voice-points-nav-prev {
    left: -80px;
  }

  .case-voice-points-nav-next {
    right: -80px;
  }

  .case-voice-story-item:not(:first-of-type) {
    padding-top: 56px;
  }

  .case-proposal-example-item:not(:first-of-type) {
    padding-top: 76px;
  }
}

@media screen and (min-width: 1200px) {
  .case-voice-points-nav-prev {
    left: -110px;
  }

  .case-voice-points-nav-next {
    right: -110px;
  }
}


/*------------------------------
 サポート共通
------------------------------*/

:root {
    --fv-blue: #DEF1F8;
    --border-gray: #99A9B0;
    --border-gray-tab: #A0A0A0;
    --title-black: #1e1e1e;
    --support-bg-gray: #EDEDED;
    --support-mirai-emphasis: #DE1818;
    --support-mirai-bg: #E9E9E9;
    --support-mirai-bg-light: #F5F5F5;
}

.ops-4 {
    /* 30px */
    padding-left: 1.875rem !important;
}

.lh-180pct {
    line-height: 180% !important;
}

.border-gray-tab {
    border-color: var(--border-gray-tab)!important;
}

.flex-fill-even {
    flex: 1 1 0;
}

.common-btn-black {
    border-color: var(--common-black);
    color: var(--common-black) !important;
}

.common-btn-black::after {
    border-color: var(--common-black);
}

.link-contact-banner {
    padding: 3.9375rem .825rem;
    background: url('../images/common/contact_banner_bg_sp.jpg') no-repeat 50% 100% / 100% auto;
    background-color: var(--main-blue);
    display: block;
}

.link-contact-banner::after {
    content: "";
    margin: .375rem .6875rem 0 auto;
    background-image: url('../images/common/icon_contact_arrow.svg');
    background-size: contain;
    background-repeat: no-repeat;
    display: block;
    width: 44px;
    height: 44px;
}

.list-dots-cover {
    padding-inline: .5rem;
}

.list-dots {
    margin-bottom: 0;
    font-size: 1.5rem;
    line-height: 1.5;
    letter-spacing: .1em;
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.list-dots li {
    padding-left: 1.9rem;
    text-indent: -1.9rem;
    vertical-align: middle;
}

.list-dots li::before {
    content: "";
    margin-top: -5px;
    margin-right: .75em;
    background: var(--main-blue);
    border-radius: 100%;
    vertical-align: middle;
    display: inline-block;
    width: .875rem;
    height: .875rem;
}

.list-dots--thin li  {
    padding-left: 1.35rem;
    text-indent: -1.35rem;
}

.list-dots--thin li::before {
    margin-right: .5rem;
}

.list-dots .text-indent-attention-base {
    padding-top: 0.5rem;
}

.support-item-list {
    display: flex;
    flex-direction: column;
    gap: 2.5rem;
}

.support-item {
    margin-bottom: 0;
    padding-bottom: 2.5rem;
    border-bottom: 1px solid var(--border-gray);
}

.support-bg-gray {
    background: var(--support-bg-gray);
}

@media (min-width: 992px) {
    .link-contact-banner {
        padding-inline: 110px;
        background-image: url('../images/common/contact_banner_bg.jpg');
        background-position: 100% 50%;
        background-size: auto 100%;
        display: flex;
        justify-content: space-between;
        align-items: center;
        height: 437px;
}

    .link-contact-banner::after {
        margin: 0;
        width: 90px;
        height: 90px;
    }

    .text-indent-attention-note {
        text-indent: -2.1em;
        padding-left: 2.1em;
    }

    .text-indent-attention {
        text-indent: -1.5em;
        padding-left: 1.5em;
    }

    .text-indent-attention-base {
        text-indent: -1em;
        padding-left: 1em;
    }

    .list-dots-cover {
        padding-inline: 4.375rem;
    }

    .list-dots li,
    .list-dots--thin li {
        text-indent: -1.9rem;
    }

    .support-item-list {
        gap: 3.5rem;
    }

    .support-item {
        padding-bottom: 3.5rem;
    }
}


/*------------------------------
 サポートTOPページ
------------------------------*/

.support-index-fv {
    background: url("../images/support/index/support_index_fv_sp.jpg") no-repeat 50% 100% / cover;
    position: relative;
}

.support-index-fv::after {
    content: "";
    background: linear-gradient(
            to top right,
            var(--main-navy) 0%,
            #8e8e8e 100%
    );
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    pointer-events: none;
    mix-blend-mode: multiply;
}

.support-index-fv-container {
    position: relative;
}

@media (min-width: 992px) {
    .support-index-fv {
        background-image: url("../images/support/index/support_index_fv.jpg");
    }
}


/*------------------------------
 施工マニュアル・価格表ページ
------------------------------*/


.manual-tabs {
  display: flex;
  justify-content: center;
  width: 100vw;
  margin-left: calc(50% - 50vw);
}

.manual-tab {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 50%;
  max-width: 370px;
  height: 70px;
  color: #A0A0A0 !important;
  border: 2px solid #A0A0A0;
  border-bottom: 0;
  border-radius: 8px 8px 0 0;
  transition: 0.4s ease;
}

.manual-tab.selected {
  color: #fff !important;
  border-color: var(--main-navy);
  background-color: var(--main-navy);
}

.manual-tab:not(.selected):hover {
  background-color: rgba(15,110, 179, 0.2);
}

.manual-panels {
  width: 100vw;
  margin-left: calc(50% - 50vw);
}

.manual-panel {
  background-color: #EDEDED;
}

.manual-panel > :last-child {
  margin-bottom: 0;
}

.support-manual-card img{
  aspect-ratio: 250 / 320;
  object-fit: contain;
  object-position: center;
}

.manual-panel#price-panel {
  padding-top: 64px;
  padding-bottom: 64px;
}

.price-panel-grid {
  display: grid;
  gap: 64px;
}

.price-panel-card {
  padding: 40px 26px;
}

.price-panel-card div {
  width: 100%;
  padding: 0 20px;
}

.price-panel-card div figure {
  max-width: 400px;
  min-height: 216px;
}

.price-panel-card div figure img {
  width: 27.5%;
  min-width: 92px;
  aspect-ratio: 92 / 130;
  box-shadow: 3px 4px 12px 0 rgba(0, 0, 0, 0.25);
}

.price-panel-thumb01,
.price-panel-thumb02 {
  display: flex;
  justify-content: center;
  align-items: center;
}

.price-panel-thumb02 img:first-child {
  transform: translate(12px, -12px);
}

.price-panel-thumb02 img:nth-child(2) {
  transform: translate(-12px, 12px);
}

.price-list-dl-btn {
  width: 100%;
  max-width: 238px;
  min-height: 56px;
}

.manual-banner {
  display: block;
  background-image: url("../images/support/manual/manual_banner_bg_sp.jpg");
  background-size: cover;
  background-position: center bottom;
  background-repeat: no-repeat;
  color: #fff !important;
}

.manual-banner-content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  height: 100%;
  padding: 64px 0;
}

@media (min-width: 992px) {
  .manual-tabs {
    gap: 24px;
    width: 100%;
    max-width: 764px;
    margin-right: auto;
    margin-left: auto;
  }

  main .manual-tab {
    flex: 1 1 370px;
  }

  .manual-panels {
    width: 100%;
    margin-left: 0;
  }

  .manual-panel#price-panel {
    padding-top: 82px;
    padding-bottom: 120px;
  }

  .price-panel-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 40px 24px;
  }

  .price-panel-card {
    height: 100%;
  }

  .price-panel-card div figure img {
    width: 33.1%;
    max-width: 110px;
  }

  .price-panel-thumb02 {
    gap: 12px;
  }

  .price-panel-thumb02 img:first-child {
    transform: unset;
  }

  .price-panel-thumb02 img:nth-child(2) {
    transform: unset;
  }

  .price-list-dl-btn {
    max-width: 320px;
  }

  .manual-banner {
    background-image: url("../images/support/manual/manual_banner_bg_pc.jpg");
    background-position: center;
  }

  .manual-banner-content {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 40px;
    padding: 118px 0;
  }

}


/*------------------------------
 断熱等級別製品組み合わせページ
------------------------------*/

.support-grade-fv {
    background: url("../images/support/grade/support_grade_fv_sp.jpg") no-repeat 100% 0 / cover;
}

.support-grade-fv .common-fv-text {
    margin-bottom: 16.44rem;
}

.h3-support-grade {
    font-size: 1.5rem;
    line-height: 1.5;
    letter-spacing: 0.1em;
}

.support-grade-table-wrap {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch;
}

.support-grade-table {
    width: 100%;
    min-width: 926px;
    border-collapse: collapse;
    table-layout: fixed;
}

.support-grade-table-label-col {
    width: 268px;
}

.support-grade-table.support-grade-table--col7 .support-grade-table-label-col {
    width: 169px;
}

.support-grade-table th,
.support-grade-table td {
    padding-block: .3rem;
    border: 1px solid var(--border-gray);
    vertical-align: middle;
    text-align: center;
    font-weight: 400;
}

.support-grade-table thead th {
    background-color: var(--main-blue);
    color: var(--bs-body-bg);
}

.support-grade-table .support-grade-table-th-2line {
    line-height: 1.4;
}

.support-grade-table tbody th {
    padding-left: 1.875rem;
    text-align: left;
    white-space: nowrap;
}

.support-grade-table tbody tr:nth-child(even) th,
.support-grade-table tbody tr:nth-child(even) td {
    background: var(--light-gray-f3);
}

.support-grade-table.support-grade-table--col7 tbody th {
    padding-left: 3.5rem;
}


.support-grade-guidline-table-wrap {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch;
}

.support-grade-guidline-table {
    width: 100%;
    min-width: 926px;
    border-collapse: collapse;
    table-layout: fixed;
}

.support-grade-guidline-table-label-col {
    width: 169px;
}

.support-grade-guidline-table th,
.support-grade-guidline-table td {
    padding: 6px 24px;
    border: 1px solid var(--border-gray);
    vertical-align: middle;
}

.support-grade-guidline-table th {
    padding-left: 48px;
    background-color: var(--light-gray-f3);
    text-align: left;
    font-weight: 400;
}

@media (min-width: 992px) {
    .support-grade-fv {
        background-image: url("../images/support/grade/support_grade_fv.jpg");
    }
}


/*------------------------------
 防耐火資料ダウンロードページ
------------------------------*/

.support-fireproof-table-wrap {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch;
}

.support-fireproof-table {
    width: 100%;
    min-width: 738px;
    border-collapse: collapse;
}

.support-fireproof-table .form-check-input {
    border-radius: .14em;
    border-color: #8E8E8E;
}

.support-fireproof-checkbox-cell {
    cursor: pointer;
}

.support-fireproof-table th,
.support-fireproof-table td {
    padding: .43rem .3rem;
    border: 1px solid var(--border-gray);
    vertical-align: middle;
    text-align: center;
    font-weight: 400;
    font-size: 0.625rem;
    letter-spacing: .1em;
    line-height: 1.4;
}

.support-fireproof-table thead th {
    padding-block: .3rem;
    background-color: var(--main-blue);
    color: var(--bs-body-bg);
}

@media (min-width: 992px) {
    .support-fireproof-table th,
    .support-fireproof-table td {
        padding-block: .7rem;
        font-size: 0.75rem;
    }

    .support-fireproof-table thead th {
        padding-block: .6rem;
    }
}

@media (max-width: 992px), (min-width: 1400px) {
    .support-fireproof-table {
        width: 100%;
        min-width: 738px;
        border-collapse: collapse;
        table-layout: fixed;
    }

    .support-fireproof-table th,
    .support-fireproof-table td {
        padding-inline: 0;
        white-space: nowrap;
    }

    .support-grade-table-col01 {
        width: calc(105 / 1076 * 100%);
    }

    .support-grade-table-col02 {
        width: calc(56 / 1076 * 100%);
    }

    .support-grade-table-col03 {
        width: calc(160 / 1076 * 100%);
    }

    .support-grade-table-col04 {
        width: calc(83 / 1076 * 100%);
    }

    .support-grade-table-col05 {
        width: calc(135 / 1076 * 100%);
    }

    .support-grade-table-col06 {
        width: calc(90 / 1076 * 100%);
    }

    .support-grade-table-col07 {
        width: 169px;
        width: calc(169 / 1076 * 100%);
    }

    .support-grade-table-col08 {
        width: calc(163 / 1076 * 100%);
    }

    .support-grade-table-col09 {
        width: calc(105 / 1076 * 100%);
    }
}

@media (min-width: 1400px) {
    .support-fireproof-table th,
    .support-fireproof-table td {
        font-size: 0.875rem;
    }
}


/*------------------------------
 「FPの家」グループ加盟についてページ
------------------------------*/


.support-membership-fv {
  background-image: url("../images/support/membership/support_membership_fv_sp.jpg");
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
}

.support-membership-fv-desc {
  max-width: 500px;
}

.fpnoie_logo {
  max-width: 210px;
}

.panel-merit-list.membership-merit-list {
  row-gap: 24px !important;
}

.bg-light-gray-ed {
  background-color: #ededed;
}

.factory-tour-banner {
  display: block;
  background-image: url("../images/support/membership/factory_tour_banner_bg_sp.jpg");
  background-size: cover;
  background-position: center bottom;
  background-repeat: no-repeat;
  color: #fff !important;
}

.factory-tour-banner-content,
.apply-contact-banner-content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  height: 100%;
  padding: 64px 0;
}

.partner-voices-slider-section {
  overflow: hidden;
}

.partner-voices-slider-frame {
  position: relative;
  width: min(calc(100% - 64px), 1800px);
  margin-inline: auto;
  margin-bottom: 32px;
}

.partner-voices-slider {
  overflow: hidden;
}

.partner-voices-slider .swiper-slide {
  width: 100%;
  height: auto;
}

.partner-voices-slider-card {
  height: 100%;
  background-color: #fff;
}

.partner-voices-slider-card-thumb {
  overflow: hidden;
  aspect-ratio: 330 / 206;
  margin-bottom: 0;
}

.partner-voices-slider-card-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.partner-voices-slider-card-body {
  padding: 32px 24px;
}

.partner-voices-slider-nav {
  position: absolute;
  top: calc((100vw - 64px) * 206 / 330 / 2);
  z-index: 2;
  width: 48px;
  height: 48px;
  border: 0;
  border-radius: 50%;
  background-color: #fff;
  transform: translateY(-50%);
}

.partner-voices-slider-nav.swiper-button-disabled {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.partner-voices-slider-nav::before {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 8px;
  height: 8px;
  border-top: 2px solid var(--main-green);
  border-right: 2px solid var(--main-green);
  content: "";
}

.partner-voices-slider-nav-prev {
  left: -20px;
}

.partner-voices-slider-nav-prev::before {
  transform: translate(-35%, -50%) rotate(-135deg);
}

.partner-voices-slider-nav-next {
  right: -20px;
}

.partner-voices-slider-nav-next::before {
  transform: translate(-65%, -50%) rotate(45deg);
}

.partner-voices-slider-pagination.swiper-pagination {
  position: static;
  line-height: 1;
}

.partner-voices-slider-pagination .swiper-pagination-bullet {
  width: 6.5px;
  height: 6.5px;
  margin: 0 13px !important;
  background: #a8a8a8;
  opacity: 1;
}

.partner-voices-slider-pagination .swiper-pagination-bullet-active {
  background: #fff;
}

.support-membership-flow-bg {
  display: block;
  padding: 200px 0 40px;
  background-image: url("../images/support/membership/support_membership_flow_sp.jpg");
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  color: #fff !important;
}

.support-membership-process {
  --bs-gutter-y: 32px;
}

.apply-contact-banner {
  display: block;
  background-image: url("../images/support/membership/apply_contact_banner_bg_sp.jpg");
  background-position: center bottom;
  background-size: cover;
  background-repeat: no-repeat;
  color: #fff !important;
}

.apply-contact-arrow::after {
  border-top: 2px solid #2f965a;
  border-right: 2px solid #2f965a;
}

@media (min-width: 768px) {
  .partner-voices-slider-frame {
    width: min(calc(100% - 72px), 1800px);
  }

  .partner-voices-slider .swiper-slide {
    width: 490px;
  }

  .partner-voices-slider-card {
    opacity: 0.6;
    transform: scale(0.86);
    transition: opacity 0.4s ease, transform 0.4s ease;
  }

  .partner-voices-slider .swiper-slide-active .partner-voices-slider-card {
    opacity: 1;
    transform: scale(1);
  }

  .partner-voices-slider-nav {
    top: 365px;
    width: 58px;
    height: 58px;
  }

  .partner-voices-slider-nav::before {
    width: 10px;
    height: 10px;
  }

  .partner-voices-slider-nav-prev {
    left: calc(50% - 490px / 2 - 97px);
  }

  .partner-voices-slider-nav-next {
    right: calc(50% - 490px / 2 - 97px);
  }

  .support-membership-flow-bg {
    padding: 386px 0 100px;
    background-image: url("../images/support/membership/support_membership_flow_pc.jpg");
  }
}

@media (min-width: 992px) {
  .support-membership-fv {
    background-image: url("../images/support/membership/support_membership_fv_pc.jpg");
  }

  .support-membership-factory-tour-row {
    --bs-gutter-x: 24px;
  }

  .factory-tour-banner {
    background-image: url("../images/support/membership/factory_tour_banner_bg_pc.jpg");
    background-position: center;
  }

  .factory-tour-banner-content,
  .apply-contact-banner-content {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 40px;
    padding: 70px 0;
  }

  .partner-voices-slider-frame {
    width: min(100%, 1800px);
  }

  .partner-voices-slider-card-body {
    padding: 40px;
  }

  .support-membership-process {
    --bs-gutter-y: 26px;
  }

  .support-membership-process > div > div {
    min-height: 220px;
  }

  .support-membership-process > div > div > div {
    flex-grow: 1;
  }

  .faq-list-content {
    padding-left: 64px;
  }

  .apply-contact-banner {
    background-image: url("../images/support/membership/apply_contact_banner_bg_pc.jpg");
    background-position: center;
  }
}

@media (min-width: 1200px) {
  .support-membership-factory-tour-row {
    --bs-gutter-x: 70px;
  }

  .support-membership-process > div > div {
    min-height: unset;
  }
}


/*------------------------------
 補助金・制度情報ページ
------------------------------*/

.support-subsidy-fv-inner {
    position: relative;
    width: 100%;
    aspect-ratio: 366 / 565;
}

.support-subsidy-fv-inner figure {
    position: absolute;
    display: block;
}

.support-subsidy-fv-img01 {
    top: calc(0 / 565 * 100%);
    left: calc(0 / 366 * 100%);
    width: calc(171 / 366 * 100%);
    height: calc(170 / 565 * 100%);
}

.support-subsidy-fv-img02 {
    top: calc(86 / 565 * 100%);
    right: calc(0 / 366 * 100%);
    width: calc(170 / 366 * 100%);
    height: calc(256 / 565 * 100%);
}

.support-subsidy-fv-img03 {
    top: calc(370 / 565 * 100%);
    left: calc(62 / 366 * 100%);
    width: calc(240 / 366 * 100%);
    height: calc(160 / 565 * 100%);
}

.support-subsidy-title {
    margin-bottom: 2.5rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--color-sample);
    color: var(--title-black);
    font-size: 1.75rem !important;
}

@media (min-width: 1200px) and (max-width: 1399px) and (max-height: 820px) {
    .support-subsidy-fv-visual-col {
        align-self: flex-end;
    }

    .support-subsidy-fv .support-subsidy-fv-wrapper {
        margin-bottom: 80px;
    }

    .support-subsidy-fv .support-subsidy-fv-copy-col {
        flex: 0 0 662px;
        width: 662px;
        max-width: 662px;
    }

    .support-subsidy-fv .page-title .h1-common {
        white-space: nowrap;
    }

    .support-subsidy-fv .common-fv-text {
        margin-bottom: 80px !important;
    }

    .support-subsidy-fv .common-fv-text br.d-lg-block {
        display: none !important;
    }

    .support-subsidy-fv .support-subsidy-fv-visual-col {
        width: 50%;
    }
}

@media (min-width: 992px) {
    .support-subsidy-fv .common-fv-container > .row.align-items-lg-end {
        position: relative;
    }

    .support-subsidy-fv .support-subsidy-fv-copy-col {
        position: relative;
        z-index: 2;
    }

    .support-subsidy-fv .page-title .h1-common {
        white-space: nowrap;
    }

    .support-subsidy-fv .support-subsidy-fv-visual-col {
        position: absolute;
        right: 0;
        bottom: 0;
        z-index: 1;
        width: 50%;
        pointer-events: none;
    }

    .support-subsidy-fv-inner {
        aspect-ratio: 626 / 512;
    }

    .support-subsidy-fv-img01 {
        top: calc(0 / 512 * 100%);
        left: calc(115 / 626 * 100%);
        width: calc(230 / 626 * 100%);
        height: calc(230 / 512 * 100%);
    }

    .support-subsidy-fv-img02 {
        top: calc(114 / 512 * 100%);
        right: calc(0 / 626 * 100%);
        width: calc(230 / 626 * 100%);
        height: calc(345 / 512 * 100%);
    }

    .support-subsidy-fv-img03 {
        top: calc(285 / 512 * 100%);
        left: calc(5 / 626 * 100%);
        width: calc(340 / 626 * 100%);
        height: calc(226 / 512 * 100%);
    }

    .support-subsidy-title {
        margin-bottom: 3.5rem;
        font-size: 2rem !important;
    }
}

@media (min-width: 1200px) {
    .support-subsidy-fv-wrapper {
        margin-bottom: -100px;
    }

    .is-scroll-fv-subsidy .support-subsidy-fv-visual-col {
        top: 176px;
        bottom: 100px;
    }

    .is-scroll-fv-subsidy .support-subsidy-fv-wrapper {
        width: auto !important;
        height: 100%;
        aspect-ratio: 626 / 512;
        margin-bottom: 0;
        margin-left: auto;
    }

    .is-scroll-fv-subsidy .support-subsidy-fv-inner {
        height: 100%;
    }
}

@media (min-width: 1200px) and (max-width: 1399px) and (max-height: 820px) {
    .support-subsidy-fv-wrapper {
        margin-bottom: 0;
    }
}


@media (min-width: 1200px) {
    .support-subsidy-fv-copy-col .common-fv-text {
        max-width: 410px;
    }
}
@media (min-width: 1400px) {
    .support-subsidy-fv-copy-col .common-fv-text {
        max-width: 410px;
    }
}


/*------------------------------
 みらいエコ住宅2026事業ページ
------------------------------*/

.support-mirai-fv {
    background: url("../images/support/subsidy/mirai-eco/support_mirai_fv_sp.jpg") no-repeat 50% 100% / cover;
}

@media (min-width: 992px) {
    .support-mirai-fv {
        background-image: url("../images/support/subsidy/mirai-eco/support_mirai_fv.jpg");
    }
}

.w-fpmark {
    width: 4.375rem;
}

.support-mirai-anchor {
    gap: 2rem;
}

@media (min-width: 576px) and (max-width: 991.98px) {
    .support-mirai-condition-list {
        padding-inline: 2rem;
    }
}

#newly,
#renovate {
    scroll-margin-top: 129px;
}

@media (min-width: 768px) and (max-width: 1199.98px) {
    #newly,
    #renovate {
        scroll-margin-top: 160px;
    }
}

.support-mirai-anchor-btn {
    box-sizing: border-box;
    width: 100%;
    padding: 1.5625rem 0;
    font-size: 1.125rem !important;
    line-height: 1.6 !important;
}

.page-template-page-support-subsidy-mirai-eco {
    overflow-x: clip;
}

.support-mirai-anchor-btn::after {
    transform: translateY(-50%) rotate(135deg);
    right: 38px;
    width: 14px;
    height: 14px;
}

@media (min-width: 992px) {
    .support-mirai-anchor-btn {
        width: 26rem;
    }
}

.support-mirai-work-tabs {
    display: flex;
    justify-content: center;
}

.support-mirai-work-tab {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 50%;
    max-width: 370px;
    height: 70px;
    color: var(--border-gray-tab) !important;
    border: 2px solid var(--border-gray-tab);
    border-bottom: 0;
    border-radius: 12px 12px 0 0;
    transition: 0.4s ease;
}

.support-mirai-work-tab.selected {
    color: var(--bs-body-bg) !important;
    border-color: var(--main-navy);
    background-color: var(--main-navy);
}

.support-mirai-work-tab:not(.selected):hover {
    background-color: rgba(15,110, 179, 0.2);
}

.support-mirai-work-panel {
    margin-left: calc(50% - 50vw);
    padding: 4rem .75rem;
    background-color: var(--support-bg-gray);
    width: 100vw;
}

.support-mirai-work-panel > :last-child {
    margin-bottom: 0;
}

@media (min-width: 576px) {
    .support-mirai-work-panel > .container {
        padding-inline: 0;
    }
}

@media (min-width: 992px) {
    .support-mirai-work-tabs {
        gap: 1rem;
    }

    .support-mirai-work-panel {
        padding: 5rem 10%;
        width: 100%;
        margin-left: 0;
    }
}

.color-mirai-emphasis {
    color: var(--support-mirai-emphasis);
}

.support-mirai-subsidy-area {
    padding: 2.5rem 1.25rem;
    border: 1px solid var(--border-gray);
    background: var(--bs-body-bg);
}

.support-mirai-subsidy-area ol {
    counter-reset: numbered-item;
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    padding-left: 0;
}

.support-mirai-subsidy-area li {
    counter-increment: numbered-item;
    font-size: 1.5rem;
    line-height: 1.5;
    display: flex;
    flex-direction: column;
}

.support-mirai-subsidy-area li::before {
    content: counter(numbered-item, decimal-leading-zero);
    flex: 0 0 auto;
    color: var(--main-blue);
    display: block;
}

@media (min-width: 992px) {
    .support-mirai-subsidy-area {
        padding: 2.5rem 3.56rem;
    }

    .support-mirai-subsidy-area li {
        flex-direction: row;
        align-items: baseline;
        gap: 1rem;
    }
}

.support-mirai-formula {
    text-align: center;
    font-size: .8125rem;
    line-height: 1.5;
    gap: 1.5rem;
}

.support-mirai-formula__rhs {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 1rem;
}

.support-mirai-formula__operator {
    font-size: 1.1rem;
}

.support-mirai-formula__fraction {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
}

.support-mirai-formula__fraction-num {
    padding-inline: .75rem;
    padding-bottom: .375rem;
    border-bottom: 1px solid var(--common-black);
}

.support-mirai-formula__fraction-den {
    padding-inline: .75rem;
    padding-top: .375rem;
}

.support-mirai-formula__unit {
    white-space: nowrap;
}

@media (min-width: 992px) {
    .support-mirai-formula {
        font-size: 1.25rem;
        gap: 0;
    }

    .support-mirai-formula__rhs {
        gap: 0;
    }

    .support-mirai-formula__fraction {
        margin-left: .625rem;
    }

    .support-mirai-formula__fraction-num {
        padding-inline: 1.25rem;
        padding-bottom: 1rem;
    }

    .support-mirai-formula__fraction-den {
        padding-inline: 1.25rem;
        padding-top: 1rem;
    }
}

.subsidy-logo-list {
    padding-inline: 2rem;
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
}

.subsidy-logo {
    margin-bottom: 0;
    height: 6rem;
}

.subsidy-logo--small {
    height: 4.625rem;
}

@media (min-width: 576px) {
    .subsidy-logo--small {
        height: 6rem;
    }
}

.subsidy-logo:nth-child(2) {
    margin-right: 1.375rem;
}

.subsidy-logo:last-child {
    margin-right: 0;
}

.subsidy-logo img {
    width: auto;
    height: 100%;
}

.subsidy-logo-list--reform {
    display: grid;
    grid-template-columns: repeat(2, max-content);
    justify-content: center;
}

.subsidy-logo-list--reform .subsidy-logo {
    margin-right: 0;
    justify-self: center;
}

@media (min-width: 1400px) {
    .subsidy-logo-list {
        padding-inline: 0;
    }

    .subsidy-logo-list--reform {
        grid-template-columns: repeat(4, max-content);
    }
}

.replus-column-left,
.replus-column-right {
    width: 100%;
}

.replus-column-left {
    margin-bottom: 2.5rem;
}

.replus-logo {
    width: 91.25%;
}

@media (min-width: 992px) {
    .replus-column-left {
        width: 46.46%;
    }

    .replus-column-right {
        width: 48.88%;
    }

    .replus-logo {
        margin: auto;
        width: 76%;
    }
}

.support-mirai-lineup01 {
    margin: auto;
    max-width: 461px;
}

.support-mirai-lineup02 {
    margin: auto;
    max-width: 524px;
}

.support-mirai-lineup03 {
    margin: auto;
    max-width: 525px;
}

.support-mirai-lineup04 {
    margin: auto;
    max-width: 491px;
}

.support-mirai-lineup05 {
    margin: auto;
    max-width: 439px;
}

.support-mirai-products-list {
    margin-bottom: 40px !important;
}

@media (min-width: 992px) {
    .support-mirai-products-list {
        margin-bottom: 56px !important;
    }
}

@media (max-width: 991px) {
    .dl-btn-mirai {
        padding-inline: 1.25rem;
    }
}

/* ----- table ----- */
.support-mirai-table-wrap {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch;
}

.support-mirai-table {
    width: 100%;
    min-width: 926px;
    border-collapse: collapse;
    table-layout: fixed;
}

.support-mirai-table th,
.support-mirai-table td {
    padding-block: .6rem;
    border: 1px solid var(--border-gray);
    vertical-align: middle;
    text-align: center;
    font-weight: 400;
    letter-spacing: 0.1em;
}

.support-mirai-table thead th {
    background-color: var(--support-mirai-bg);
}
.bg-support-mirai-th {
    background-color: var(--support-mirai-bg) !important;
}

.support-mirai-table tbody th {
    background-color: var(--support-mirai-bg-light);
}

.support-mirai-table ol,
.support-mirai-table ul {
    margin-bottom: 0;
    padding-left: 0;
}

.support-mirai-table li {
    text-indent: -1em;
    padding-left: 1em;
}

.support-mirai-table .text-vertical {
    writing-mode: vertical-rl;
    text-orientation: mixed;
    display: inline-block;
    white-space: nowrap;
    letter-spacing: 0.3em;
}

.support-mirai-table .text-combine {
    padding-bottom: 0.5em;
    text-combine-upright: all;
    letter-spacing: normal;
    line-height: 1;
}

/* ----- table-newly ----- */
.support-mirai-table-newly-label-col {
    width: 184px;
}

.support-mirai-table-newly-build-col {
    width: 171px;
}

.support-mirai-table-newly-subsidy-col {
    width: 219px;
}

.support-mirai-table-newly thead th {
    padding-block: 1.2rem;
    line-height: 1.5;
}

.support-mirai-table-newly tbody td {
    padding: 1.5rem 1.875rem;
}

.support-mirai-table-newly .support-mirai-table-newly-td-subsidy {
    padding-block: .5rem;
    line-height: 1.3;
}

/* ----- table-requirement ----- */
.support-mirai-table-requirement {
    min-width: 854px;
    background: var(--bs-body-bg);
}
.support-mirai-table-requirement .support-mirai-table-requirement-head th {
    padding-block: 1.25rem;
    height: 5.25rem;
    background: var(--support-mirai-bg);
}

.support-mirai-table-requirement td {
    padding-inline: .625rem;
}

.support-mirai-table-requirement th,
.support-mirai-table-requirement td {
    font-size: .875rem;
    line-height: 1.5;
}

.support-mirai-table-requirement .text-vertical {
    display: block;
    width: max-content;
    margin-right: auto;
    margin-left: auto;
}

.support-mirai-table-requirement .text-vertical sup {
    padding-top: 0.5em;
    padding-bottom: 0;
    vertical-align: baseline;
    font-size: inherit;
}

.support-mirai-table-requirement--01-label-col01 {
    width: 54px;
}

.support-mirai-table-requirement--01-label-col02 {
    width: 54px;
}

.support-mirai-table-requirement--01-label-col03 {
    width: 94px;
}

.support-mirai-table-requirement--02-label-col01 {
    width: 72px;
}

.support-mirai-table-requirement--02-label-col02 {
    width: 72px;
}

.support-mirai-table-requirement--02-label-col03 {
    width: 126px;
}

.support-mirai-table-requirement-before-plus {
    position: relative;
}

.support-mirai-table-requirement-before-plus::before {
    content: "＋";
    color: var(--main-blue);
    font-size: 2rem;
    line-height: 1.5;
    position: absolute;
    left: calc(-1.03rem);
    top: 50%;
    transform: translateY(-50%);
}

/* ----- table-requirement ----- */
.support-mirai-table-subsidy {
    min-width: 854px;
    background: var(--bs-body-bg);
}

.support-mirai-table-subsidy-label-col {
    width: 157px;
}

.support-mirai-table-subsidy th,
.support-mirai-table-subsidy td {
    padding-block: 1.25rem;
    font-size: .875rem;
    line-height: 1.5;
}

/* ----- table-insulation ----- */
.support-mirai-table-insulation {
    table-layout: fixed;
    width: 100%;
    min-width: 1px;
}

.support-mirai-table-insulation-label-col01 {
    width: 12.6%;
}

.support-mirai-table-insulation-label-col02 {
    width: 20%;
}

.support-mirai-table-insulation-label-col03 {
    width: 30%;
}

.support-mirai-table-insulation th,
.support-mirai-table-insulation td {
    padding-block: 1rem;
    line-height: 1.5;
}

.support-mirai-table-insulation th {
    height: 83px;
}

@media (min-width: 992px) {
    .support-mirai-table-insulation th,
    .support-mirai-table-insulation td {
        padding-block: 1.25rem;
    }

    .support-mirai-table-insulation th {
        height: auto;
    }
}

@media (min-width: 1400px) {
    .support-mirai-table-insulation-label-col01 {
        width: 68px;
    }

    .support-mirai-table-insulation-label-col02 {
        width: 103px;
    }

    .support-mirai-table-insulation-label-col03 {
        width: 158px;
    }
}

/* ----- table-lineup ----- */
.support-mirai-table-lineup th,
.support-mirai-table-lineup td {
    padding-block: 1.25rem;
    line-height: 1.5;
}

.support-mirai-table-lineup-label-col {
    width: 218px;
}

.support-mirai-table-lineup-label-col-first {
    width: 214px;
}

.support-mirai-table-lineup-thin-col {
    width: 100px;
}

.support-mirai-table-lineup-dimension-col {
    width: 203px;
}

.support-mirai-table-lineup-volume-col {
    width: 110px;
}


/*------------------------------
 申請サポートページ
------------------------------*/

.support-application-fv {
    background: url("../images/support/application/support_application_fv_sp.jpg") no-repeat 50% 100% / cover;
}

@media (min-width: 992px) {
    .support-application-fv {
        background-image: url("../images/support/application/support_application_fv.jpg");
    }
}


/*------------------------------
 よくあるご質問ページ
------------------------------*/

.faq-ttl {
  color: #1E1E1E;
}

.faq-category-grid {
  grid-template-columns: minmax(0, 1fr);
  padding: 18px;
  row-gap: 24px;
}

.faq-category-link::before {
  content: "";
  position: absolute;
  top: 50%;
  right: 11px;
  z-index: 1;
  width: 6px;
  height: 6px;
  border-top: 1px solid #fff;
  border-right: 1px solid #fff;
  transform: translateY(-50%) rotate(45deg);
}

.faq-category-link::after {
  content: "";
  flex: 0 0 27px;
  height: 27px;
  border-radius: 50%;
  background-color: var(--main-blue);
}

.faq-category-main-link {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 51px;
  padding: 0 56px;
  background-color: var(--main-blue);
  border-radius: 4px;
  color: #fff!important;
  font-size: 1rem;
  text-align: center;
  text-decoration: none;
  transition: opacity 0.4s ease;
}

.faq-category-main-link::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 28px;
  width: 10px;
  height: 10px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  transform: translateY(-50%) rotate(45deg);
}

.faq-category-main-link:hover {
  color: #fff;
  opacity: 0.7;
}

.faq-list {
  display: grid;
  gap: 40px;
}

.faq-detail-content > :last-child {
  margin-bottom: 0;
}

.faq-detail-content a {
  color: var(--main-blue)!important;
  text-decoration: underline;
}

.faq-detail-contact {
  width: 100%;
  max-width: 413px;
  height: 70px;
  border-radius: 4px;
}

@media (min-width: 992px) {
  .faq-category-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding: 20px 32px;
    column-gap: 48px;
  }

  .faq-category-main-link {
    min-height: 70px;
    font-size: 1.125rem;
  }

  .faq-list {
    gap: 56px;
  }

  .faq-list-title {
    position: relative;
    padding-left: 64px;
  }

  .faq-list-title > [aria-hidden="true"] {
    position: absolute;
    top: -16px;
    left: 0;
  }

  .faq-list-categories {
    padding-left: 64px;
  }

}

@media (min-width: 1200px) {
  .faq-category-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (min-width: 1400px) {
  .faq-category-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}


/*------------------------------
 会社概要ページ
------------------------------*/


.company-fv {
  background-image: url("../images/company/company_bg_sp.jpg");
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
}

.company-slogan-wrapper {
  padding-left: 0;
  padding-right: 0;
}

.company-table-row {
  display: grid;
  row-gap: 8px;
  padding: 16px 12px;
  border-bottom: 1px solid var(--common-black);
}

.company-table-head,
.company-table-data {
  margin: 0;
  font-weight: 500;
  color: var(--common-black);
}

.company-officer-row {
  line-height: 1.5;
}

.company-officer-row dt,
.company-officer-row dd {
  display: inline;
  font-weight: 500;
  margin: 0;
}

.company-officer-row dt::after {
  content: "";
  display: inline-block;
  width: 0.5em;
}

.list-disc li{
  list-style-type: disc;
}

.company-office-group {
  border-bottom: 1px solid var(--common-black);
}

.company-office-list {
  display: grid;
}

.company-office-column {
  display: grid;
}

.company-office-item {
  padding: 0 0 10px;
  border-bottom: 1px solid var(--common-black);
}

.company-office-item + .company-office-item {
  padding-top: 24px;
}

.company-office-column + .company-office-column .company-office-item:first-child {
  padding-top: 24px;
}

.company-office-column:last-child .company-office-item:last-child {
  border-bottom: 0;
}

.company-office-name {
  margin-bottom: 10px;
  font-size: 1.125rem !important;
  line-height: 2;
  letter-spacing: 0.1em;
  font-weight: 600;
}

.company-office-address {
  margin-bottom: 16px;
  letter-spacing: 0.1em;
}

.company-office-contact {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 16px;
  font-size: 0.875rem !important;
  margin-bottom: 0;
}

.logo-btn-wrapper{
  display: grid;
  grid-template-columns: repeat(auto-fit, 272px);
  justify-content: center;
  gap: 20px;
  margin-left: 0;
  margin-right: 0;
}

.logo-btn-wrapper > [class*="col"] {
  width: auto;
  max-width: none;
  padding-left: 0;
  padding-right: 0;
}

.logo-btn {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  max-width: 272px;
  min-height: 82px;
  border-radius: 5px;
  border: 1px solid var(--common-black);
  background-color: #fff;
  padding: 22px 54px;
  transition: 0.4s ease;
}

.logo-btn:hover {
  opacity: 0.6;
}

@media (min-width: 992px) {
  .company-fv {
    background-image: url("../images/company/company_bg_pc.jpg");
    background-position: center bottom;
  }

  .company-slogan-wrapper {
    padding-left: 12px;
    padding-right: 12px;
  }

  .company-table-row {
    grid-template-columns: 180px minmax(0, 1fr);
    align-items: center;
    column-gap: 32px;
    padding: 24px 16px;
  }

  .company-officer-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    column-gap: 48px;
    line-height: 2;
  }

  .company-officer-row dt,
  .company-officer-row dd {
    display: block;
  }

  .company-officer-row dt::after {
    content: "";
  }

  .company-officer-row dt {
    white-space: nowrap;
  }

  .company-office-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
    column-gap: 76px;
  }

  .company-office-item,
  .company-office-item + .company-office-item,
  .company-office-column + .company-office-column .company-office-item:first-child {
    padding: 0;
    border-bottom: 0;
  }

  .company-office-column {
    row-gap: 28px;
  }

  .company-office-name {
    margin-bottom: 0;
  }

  .company-office-address {
    font-size: 0.875rem !important;
    margin-bottom: 0;
  }

  .company-office-contact {
    column-gap: 32px;
  }
}


/*------------------------------
 採用情報ページ
------------------------------*/


.recruit-list {
  display: grid;
  row-gap: 80px;
}

.recruit-item-title {
  margin-bottom: 32px;
}

.recruit-table {
  display: grid;
  border-top: 1px solid var(--common-black);
}

@media screen and (min-width: 992px) {
  .recruit-item-title {
    margin-bottom: 24px;
  }
}


/*------------------------------
 プライバシーポリシーページ
------------------------------*/


.policy-body {
  display: grid;
  min-width: 0;
  row-gap: 40px;
}

.policy-row {
  min-width: 0;
  font-weight: normal;
}

.policy-row-title {
  padding-left: 1.2em;
  text-indent: -1.2em;
  margin-bottom: 16px;
}

.policy-text-list {
  display: grid;
  row-gap: 4px;
  padding-left: 0;
}

.policy-text-list li {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  column-gap: 0.2em;
}

.policy-text-list li::before {
  content: "・";
}

@media screen and (min-width: 992px) {
  .policy-body {
    row-gap: 64px;
  }
}


/*------------------------------
 クッキーポリシーページ
------------------------------*/


/* クッキーポリシー 外部リンク */

.cookie-external-link {
  text-decoration: underline;
  text-underline-offset: 3px;
  color: inherit;
}

.cookie-external-link svg {
  display: inline;
  vertical-align: -0.15em;
  margin-left: 3px;
}

/* クッキーポリシー テーブル */

.cookie-table-wrap {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.cookie-table {
  width: 100%;
  min-width: 720px;
  border-collapse: collapse;
  line-height: 1.8;
  color: #444;
}

.cookie-th,
.cookie-td {
  border: 1px solid #000;
  padding: 12px 16px;
  vertical-align: top;
  text-align: left;
  color: #333;
  font-weight: 400;
}

.cookie-th {
  white-space: nowrap;
  width: 36%;
  vertical-align: middle;
}

.cookie-td {
  width: 64%;
}

@media (min-width: 992px) {
  .cookie-table {
    min-width: 0;
  }

  .cookie-th,
  .cookie-td {
    padding: 16px 20px;
  }
}


/*------------------------------
 サイトマップページ
------------------------------*/


.sitemap-row {
  display: block;
  padding: 40px 0;
}

.sitemap-row:not(:last-child) {
  border-bottom: 1px solid #D7C6C6;
}

.sitemap-heading {
  margin-bottom: 40px;
  font-size: 1.5rem !important;
  font-weight: 400 !important;
  line-height: 1!important;
  letter-spacing: 0.1em!important;
}

.sitemap-links {
  display: block;
}

.sitemap-links ul {
  display: grid;
  row-gap: 24px;
  padding-left: 0;
  margin-bottom: 0!important;
}

.sitemap-links ul li {
  font-size: 1.125rem !important;
  font-weight: 400 !important;
  line-height: 1 !important;
  letter-spacing: 0 !important;

}

.sitemap-links ul + ul {
  margin-top: 24px;
}

.sitemap-links a {
  display: inline-block;
  color: #222 !important;
}

@media (min-width: 768px) {
  .sitemap-row {
    display: grid;
    grid-template-columns: 160px minmax(0, 1fr);
    column-gap: 70px;
  }

  .sitemap-heading {
    margin-bottom: 0;
  }

  .sitemap-links {
    display: grid;
    grid-template-columns: 200px;
    column-gap: 72px;
  }

  .sitemap-links-2col {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .sitemap-links-2col > ul {
    align-self: start;
  }

  .sitemap-links ul + ul {
    margin-top: 0;
  }
}

@media (min-width: 992px) {
  .sitemap-links-2col {
    grid-template-columns: repeat(2, 220px);
  }
}

@media (min-width: 1200px) {
  .sitemap-links-2col {
    grid-template-columns: 220px max-content;
  }
}


/*------------------------------
 サンクスページ
------------------------------*/


.manual-dl-list {
  display: grid;
  gap: 16px;
  max-width: 680px;
}

.manual-dl-list-item {
  min-width: 0;
}

.manual-dl-list-item a{
  position: relative;
  display: inline-flex!important;
  align-items: center!important;
  gap: 9px;
  max-width: 100%;
  padding-left: 21px;
  color: var(--main-blue)!important;
}

.manual-dl-list-item a span {
  flex: 0 1 auto;
  min-width: 0;
  overflow-wrap: anywhere;
  word-break: normal;
  font-family: var(--bs-font-sans-serif);
  font-weight: normal;
}

.manual-dl-list-item a::before {
  position: absolute;
  top: 1em;
  left: 0;
  content: "";
  width: 11px;
  height: 11px;
  border-radius: 50%;
  background-color: var(--main-blue);
  transform: translateY(-50%);
}

.manual-dl-list-item a::after {
  content: "";
  flex: 0 0 15px;
  width: 15px;
  height: 15px;
  background-image: url("../images/common/icon_dl_blue.svg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}

@media screen and (min-width: 576px) {
  .manual-dl-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 80px;
    row-gap: 8px;
  }
}

.manual-thanks-card {
  display: flex;
  flex-direction: column;
}

.manual-thanks-download {
  margin-top: 26px;
}

@media screen and (min-width: 576px) {
  .manual-thanks-text {
    min-height: 134px;
  }
}
