/* ---------------------------------------------
   Base・リセット
--------------------------------------------- */
html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  overflow-x: hidden;
  box-sizing: border-box;
  background: url(../img/bg.png) center/cover no-repeat fixed;
  font-family: "Yuji Syuku", serif;
  font-weight: 400;
  font-style: normal;
  line-height: 1.875;
  color: #171717;
  font-size: 4.2666666667cqw;
}

.site-wrap {
  width: 750px;
  max-width: 100%;
  margin: 0 auto;
  container-type: inline-size;
  container-name: site;
  background-color: #fff;
}

:where(*, *::before, *::after) {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  font: inherit;
}

:where(ul, ol) {
  list-style: none;
}

:where(img) {
  display: block;
  max-inline-size: 100%;
  block-size: auto;
  pointer-events: none;
}

:where(hgroup, time) {
  display: block;
}

:where(html) {
  -webkit-text-size-adjust: none;
  text-size-adjust: none;
}

:where(html) {
  scroll-padding: 1.5625rem;
}

:where(a) {
  text-decoration: none;
  color: inherit;
}

:where(a) {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

:where(button) {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background: rgba(0, 0, 0, 0);
  border: none;
  border-radius: 0;
  font: inherit;
  outline: none;
  color: inherit;
  cursor: pointer;
}

.menu-open {
  overflow: hidden !important;
}

/* ---------------------------------------------
   ユーティリティ
--------------------------------------------- */
.font-michroma {
  font-family: "Michroma", serif;
}

:where(img) {
  width: 100%;
}

/* レスポンシブ表示切り替え（SP: 0-750px） */
.sp-only {
  display: block;
}

.pc-only {
  display: none;
}

/* ---------------------------------------------
   セクションタイトル・レイアウト
--------------------------------------------- */
/* Hero背景画像 */
.hero-background {
  background: url(../img/hero-samurai.webp?v=2) no-repeat center 0 #edecea;
  background-size: 465.6cqw;
  position: relative;
  overflow: hidden;
}

/* セクションタイトル中央配置 */
.section-title-centered {
  position: relative;
  display: flex;
  justify-content: center;
  align-content: center;
  overflow: hidden;
}

.section-title-centered .text {
  position: relative;
  padding: 0;
  margin: 0;
  height: 13.3333333333cqw;
}

.section-title-centered span {
  position: absolute;
  text-align: center;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 100cqw;
}

/* ---------------------------------------------
   Header
--------------------------------------------- */
.header {
  position: relative;
  z-index: 100;
}

.header .header-inner {
  background: #edecea;
}
.header .header-logo img {
  filter: none;
}

.header-logo {
  width: 29.8666666667cqw;
  position: absolute;
  top: 5.3333333333cqw;
  left: 9.8666666667cqw;
}

.header-logo img {
  transition: filter 0.3s;
}

.header-nav-toggle {
  width: 14.9333333333cqw;
  height: 14.9333333333cqw;
  position: fixed;
  top: 0;
  right: 6.4cqw;
  z-index: 2;
  cursor: pointer;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
.header-nav-toggle span {
  display: block;
  width: 10.6666666667cqw;
  position: absolute;
  transition: all 0.3s;
}
.header-nav-toggle span:nth-child(1) {
  top: 5.3333333333cqw;
  left: 2.1333333333cqw;
}
.header-nav-toggle span:nth-child(2) {
  bottom: 5.3333333333cqw;
  right: 2.1333333333cqw;
  transform: scaleX(-1);
}

.header-nav-list {
  padding-bottom: 5.3333333333cqw;
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 8cqw;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100dvh;
  font-size: 5.3333333333cqw;
  text-align: center;
  line-height: 1.65;
  background: url(../img/header-nav-bg-sp.webp) 0 0/100% no-repeat #edecea;
}

@media (hover: hover) and (pointer: fine) {
  .header-nav-item a:hover {
  color: #a30707;
}
}
.header-contact {
  overflow: hidden;
}

.header-contact {
  width: 34.1333333333cqw;
  height: 16.5333333333cqw;
  position: fixed;
  bottom: 0;
  right: -2.6666666667cqw;
  border-radius: 16.5333333333cqw 16.5333333333cqw 0 0;
}

.header-contact a {
  display: block;
}

.header.menu-open .header-logo {
  position: fixed;
  z-index: 2;
}

.header.menu-open .header-nav-toggle span:nth-child(1) {
  top: 6.8cqw;
  transform: rotate(-135deg);
}
.header.menu-open .header-nav-toggle span:nth-child(2) {
  bottom: 6.8cqw;
  transform: scaleX(-1) rotate(-135deg);
}

.header.menu-open .header-nav-list {
  display: flex;
}

/* ---------------------------------------------
   Footer
--------------------------------------------- */
.footer {
  position: relative;
}

.footer {
  margin: 5.3333333333cqw 5.3333333333cqw 27.2cqw;
}

.footer-wrap {
  display: flex;
  justify-content: space-between;
  margin-block: 0.875rem 2rem;
}

.footer-wrap {
  flex-direction: column-reverse;
  margin-block: 15cqw 5cqw;
}

.footer-company {
  padding-right: 10rem;
}

.footer-company {
  padding-right: 0;
}

.footer-company-item {
  font-size: 0.875rem;
}

.footer-company-item {
  font-size: 0.75rem;
}

.footer-copyright {
  position: relative;
  text-align: center;
}

.footer-copyright {
  padding-left: 0;
  font-size: 2.6666666667cqw;
}

.footer-copyright-icon {
  position: static;
  vertical-align: middle;
}

.footer-copyright-icon {
  font-size: 1em;
  vertical-align: middle;
}

/* ---------------------------------------------
   Hero
--------------------------------------------- */
.hero {
  position: relative;
  overflow: hidden;
  background: #edecea;
}
.hero::before {
  content: "";
  width: 100%;
  position: absolute;
  left: 0;
  z-index: 2;
  background: linear-gradient(rgba(0, 0, 0, 0) 0%, #000 100%);
}
.hero .hero-samurai {
  opacity: 1;
}

.hero .hero-samurai {
  background-position-y: -10.6666666667cqw;
}

.hero .hero-inner {
  opacity: 1;
}

.hero {
  height: 388cqw;
}
.hero::before {
  height: 143.4666666667cqw;
  top: 109.3333333333cqw;
}

.hero-samurai {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: url(../img/hero-samurai.webp?v=2) center 0 no-repeat #edecea;
  transform: scale(1);
  transform-origin: top center;
}

.hero-samurai {
  background-position-y: -10.6666666667cqw;
  background-size: 465.6cqw;
}

.hero-ink01,
.hero-ink02 {
  position: absolute;
}
.hero-ink01 {
  background: url(../img/hero-ink01.png) 0 0/100% no-repeat;
}

.hero-ink01 {
  width: 170.6666666667cqw;
  height: 191.2cqw;
  top: -4.5333333333cqw;
  right: calc(50% - 1.6cqw);
}

.hero-ink02 {
  background: url(../img/hero-ink02.png) 0 0/100% no-repeat;
}

.hero-ink02 {
  width: 125.8666666667cqw;
  height: 116.2666666667cqw;
  top: 19.2cqw;
  left: calc(50% + 1.6cqw);
}

.hero-inner {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.hero-text01,
.hero-text02 {
  position: absolute;
  opacity: 1;
}

.hero-text01 {
  width: 37.0666666667cqw;
  top: 22.9333333333cqw;
  left: 12.5333333333cqw;
}

.hero-text02 {
  width: 25.6cqw;
  top: 21.3333333333cqw;
  right: 12.5333333333cqw;
}

.hero-marquee {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  position: absolute;
  top: 0;
  color: #fff;
  background: #7b0505;
}

.hero-marquee {
  gap: 2.6666666667cqw;
  width: 6.4cqw;
  height: 337.0666666667cqw;
  font-size: 3.7333333333cqw;
}

.hero-marquee-left {
  left: 0;
}
.hero-marquee-right {
  right: 0;
}
.hero-marquee img {
  margin-inline: auto;
}

.hero-marquee img {
  width: 3.7333333333cqw;
}

/* ---------------------------------------------
   Reasons（選ばれる理由）
--------------------------------------------- */
.reasons {
  position: relative!important;
  z-index: 2;
  color: #fff;
}

.reasons {
  margin-top: -209.8666666667cqw;
}

.reasons-area01,
.reasons-area02 {
  position: relative;
  overflow: hidden;
}
.reasons-area01 {
  overflow: hidden;
  text-align: center;
}

.reasons-area01 {
  padding-block: 12cqw 54.6666666667cqw;
}

.reasons-area01 img {
  margin-inline: auto;
}
.reasons-area01-bg {
  overflow: hidden;
  position: absolute;
  top: 0;
  left: calc(50% - 50cqw);
  width: 100cqw;
  height: 100%;
  border-radius: 0;
  transition:
  width 0.3s,
  height 0.3s,
  bottom 0.3s,
  left 0.3s,
  border-radius 0.3s;
}
.reasons-area01-bg-samurai,
.reasons-area01-bg-01,
.reasons-area01-bg-02 {
  position: absolute;
  top: 0;
  transition:
  border-radius 0.3s,
  opacity 0.3s,
  background-position-y 0.3s;
}

.reasons-area01-bg-samurai,
.reasons-area01-bg-01,
.reasons-area01-bg-02 {
  width: 158.6666666667cqw;
  height: 317.3333333333cqw;
  left: calc(50% - 79.3333333333cqw);
  border-radius: 320cqw 320cqw 0 0;
}

.reasons-area01-bg-samurai {
  opacity: 0;
  background: url(../img/reasons-samurai.webp) center 0 no-repeat;
}

.reasons-area01-bg-samurai {
  background-position-y: -64cqw;
  background-size: 465.6cqw;
}

.reasons-area01-bg-01 {
  z-index: -1;
  background-color: #a30707;
}
.reasons-area01-bg-02 {
  background: linear-gradient(#bf1515 0%, #fca75f 100%);
  opacity: 0.85;
}
.reasons-area01 .reasons-area01-bg {
  position: absolute;
  top: 0;
  left: calc(50% - 50cqw);
  width: 100cqw;
  height: 100%;
  bottom: auto;
}
.reasons-area01 .reasons-area01-bg-samurai,
.reasons-area01 .reasons-area01-bg-01,
.reasons-area01 .reasons-area01-bg-02 {
  border-radius: 0;
}
.reasons-area01 .reasons-area01-bg-samurai {
  opacity: 1;
}

.reasons-area01 .reasons-area01-bg-samurai {
  background-position-y: -46.6666666667cqw;
}

.reasons-area01 .reasons-area01-bg-01,
.reasons-area01 .reasons-area01-bg-02 {
  height: 100%;
}
.reasons-area01 .reasons-area01-inner {
  opacity: 1;
}
.reasons-area01-inner {
  position: relative;
  z-index: 2;
  transition: opacity 0.3s;
}

.reasons-area01 .section-title {
  margin-bottom: 14.9333333333cqw;
}
.reasons-area01 .section-title img {
  width: 34.9333333333cqw;
}

.reasons-area01-text01,
.reasons-area01-text03 {
  font-size: 3.6cqw;
}
.reasons-area01-text03 span {
  white-space: nowrap;
}

.reasons-area01-text02 {
  margin-block: 5.3333333333cqw;
}
.reasons-area01-text02 img {
  width: 84.2666666667cqw;
}

.reasons-area01-img01 {
  margin-top: 14.9333333333cqw;
}
.reasons-area01-img01 img {
  width: 73.3333333333cqw;
}

.reasons-area01-img01 img {
  transform: scale(0);
  opacity: 0;
  transition:
  transform 0.3s,
  opacity 0.3s;
}
.reasons-area01-img01 img {
  transform: scale(1);
  opacity: 1;
}
.reasons-area02 {
  position: relative!important;
  z-index: 2;
  background: url(../img/service-roof.webp) center 0 no-repeat;
}
.reasons-area02::before {
  content: "";
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  z-index: -1;
  background: #000;
}

.reasons-area02 {
  margin-top: -17.3333333333cqw;
  padding-bottom: 17.3333333333cqw;
  background-size: 266.6666666667cqw;
}
.reasons-area02::before {
  top: 70.3333333333cqw;
}

/* ---------------------------------------------
   Service（提供サービス）
--------------------------------------------- */
.service {
  color: #fff;
  padding: 40px 0 120px 0;
}
.service__padding {
  padding: 0 20px;
}
.service__inner {
  max-width: 1200px;
  margin: 0 auto;
}
.service__list {
  display: flex;
  flex-wrap: wrap;
  gap: 74px 40px;
  margin-bottom: 50px;
  justify-content: center;
}

.service__item {
  position: relative;
}

.service__label {
  position: absolute;
  top: -36px;
  left: -5px;
  width: 84px;
}

.service__card {
  background: #272727;
  border-radius: 12px;
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 20px;
  height: 100%;
  font-size: 0.875rem;
  max-width: 370px;

}

.service__list--bottom .service__card {
  max-width: 770px;
  width: auto;
  height: auto;
  flex-direction: inherit;
  letter-spacing: -0.05rem;
  justify-content: space-between;
 


}
.service__list--bottom .service__card img {
  flex-shrink: 0; 
  width: 302px;
  height: auto;
  object-fit: cover;
}

.service__list--bottom .service__card .service__caption {
  flex: 1;             
  }  

.service__list--bottom .service__caption {
  text-align: left;
}
.service__list--bottom .service__title {
  justify-content: left;
}
.service__list--bottom .service__points {
  text-align: left;
}
.service__thumb {
  display: block;
  width: 100%;
  border-radius: 8px;
  overflow: hidden;
}

.service__thumb img {
  width: 100%;
  height: auto;
  display: block;
}

.service__caption {
  flex: 1;
  text-align: center;
}

.service__title {
  font-size: 1.25rem;
  line-height: 1.4;
  font-weight: 700;
  margin-bottom:1.125rem;
  display: flex;

  align-items: flex-start; 
  justify-content: center;
  flex-wrap: wrap; 
  span {
  display: flex;
}
img {
  width: 70px;
  height: auto;
  flex-shrink: 0;
  padding-right: 5px;
  object-fit: contain;
}
}

.service__points {
  display: inline-block;
  text-align: left; 
  margin: 0 auto;  
  line-height: 1.5;
  letter-spacing: -0.05rem;
}

.service__points li {
  text-indent: -1em;
  padding-left: 1em;
}
.service__points li:not(:last-of-type) {
  margin-bottom: 0.5em;
}

.service__catch {
  text-align: center;
  margin-bottom: 50px;
}

.service__catch-sub {
  font-size: 3.125rem;
}

.service__catch-main {
  font-size: 5rem;
  line-height: 1.5;
}



.service__item-cta {
  margin: 0 auto;
  
}
.cta__btn {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1rem;
  width: 220px;
  height: auto;
  font-size: 1.25rem;
  line-height: 1.2;
  background-color: #BE2020;
  padding: 10px 16px;
  border-radius: 10px;
}
.cta__btn:hover {
  opacity: 0.8;
}

.cta__btn span {
  font-size: 0.75rem;
}

.service {
  padding: 80px 0;
}

.service__list {
  grid-template-columns: 1fr;
  gap: 64px;
  margin-bottom: 50px;
}

.service__card {
  padding: 24px 16px;
  max-width: 650px;
}
.service__list--bottom .service__card {
  flex-direction: column;
  max-width: 650px;
  img {
  width: 618px;
}
}
.service__list--bottom .service__caption {
  text-align: center;
}
.service__list--bottom .service__title {
  justify-content: center;
}
.service__list--bottom .service__points {
  display: inline-block; 
  text-align: left;
  margin: 0 auto;
}

.service__title {
  font-size: 1rem;
}

.service__points {
  font-size: 0.825rem;
}
.service__catch {
  margin-bottom: 50px;
}
.service__catch-sub {
  font-size: 6cqw;
  line-height: 1.8;
  white-space: nowrap;
}

.service__catch-main {
  font-size: 12cqw;
  line-height: 1.3;
}

.service .section-title-group {
  text-align: center;
}

.service .section-title-group {
  margin-bottom: 22cqw;
}

.service .section-title {
  line-height: 1;
  transform: translateY(100px);
  opacity: 0;
  transition:
  transform 0.3s,
  opacity 0.3s;
}
.service .section-title {
  transform: translateY(0);
  opacity: 1;
}

.service .section-lead {
  text-align: center;
  font-size: 1.25rem;
  line-height: 2;
}

.service .section-title {
  font-size: 13.3333333333cqw;
  margin-bottom: 30px;
  padding-top: 40cqw;
}
.service .section-lead {
  font-size: 4cqw;
}

.reasons-area02-item01,
.reasons-area02-item02 {
  position: relative;
}
.reasons-area02-item01 .bg-text,
.reasons-area02-item02 .bg-text {
  position: absolute;
  background-position: 0 0;
  background-repeat: no-repeat;
  background-size: 100%;
}

.reasons-area02-item01 .bg-text,
.reasons-area02-item02 .bg-text {
  transform: scale(0);
  opacity: 0;
  transition:
  transform 0.3s,
  opacity 0.3s;
}
.reasons-area02-item01 .bg-text,
.reasons-area02-item02 .bg-text {
  transform: scale(1);
  opacity: 1;
}

 
.reasons-area02-item01:before,
.reasons-area02-item02:before {
  content: "";
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
  background: url(../img/reasons-area02-bg.png) center 28cqw no-repeat;
  background-size: 73.3333333333cqw;
}

.reasons-area02-item01-title,
.reasons-area02-item02-title {
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: 100%;
  writing-mode: vertical-rl;
  text-orientation: upright;
}

.reasons-area02-item01-title,
.reasons-area02-item02-title {
  margin-bottom: 21.3333333333cqw;
  font-size: 5.3333333333cqw;
  letter-spacing: 0.25em;
  line-height: 1.5;
}

.reasons-area02-item01-list,
.reasons-area02-item02-list {
  position: relative;
  z-index: 2;
}

.reasons-area02-item01-list,
.reasons-area02-item02-list {
  margin-inline: auto;
  display: flex;
  flex-wrap: wrap;
  row-gap: 10.6666666667cqw;
  width: 96cqw;
}

.reasons-area02-item01-list-item,
.reasons-area02-item02-list-item {
  text-align: center;
  line-height: 1.5;
  background-position: center 0;
  background-repeat: no-repeat;
  transform: translateY(100px);
  opacity: 0;
  transition:
  transform 0.5s,
  opacity 0.5s;
}
.reasons-area02-item01-list-item,
.reasons-area02-item02-list-item {
  transform: translateY(0);
  opacity: 1;
}

.reasons-area02-item01-list-item,
.reasons-area02-item02-list-item {
  width: 48cqw;
  background-position-y: -2.6666666667cqw;
  background-size: 49.3333333333cqw;
}
.reasons-area02-item01-list-item:nth-child(even),
.reasons-area02-item02-list-item:nth-child(even) {
  transition-delay: 0.1s;
}

.reasons-area02-item01-list-item-img,
.reasons-area02-item02-list-item-img {
  display: flex;
  align-items: center;
  height: 44.2666666667cqw;
}

.reasons-area02-item01-list-item img,
.reasons-area02-item02-list-item img {
  margin-inline: auto;
}

.reasons-area02-item01-list-item img,
.reasons-area02-item02-list-item img {
  width: 44cqw;
}

.reasons-area02-item01-list-item-title,
.reasons-area02-item02-list-item-title {
  margin-block: 0.75rem;
  font-size: 4.8cqw;
}

.reasons-area02-item01-list-item-text,
.reasons-area02-item02-list-item-text {
  font-size: 3.2cqw;
}

.reasons-area02-item01 .bg-text {
  background-image: url(../img/reasons-area02-item01-bg-text.png);
}

.reasons-area02-item01 {
  margin-block: 0;
}
.reasons-area02-item01 .bg-text {
  width: 97.3333333333cqw;
  height: 53.8666666667cqw;
  top: 29.3333333333cqw;
  left: 0;
}
.reasons-area02-item02 {
  display: none;
}

.reasons-area02-item01-title {
  color: #e3c192;
}

.reasons-area02-item01-list-item:nth-child(1) {
  background-image: url(../img/reasons-area02-item-bg01-01.svg?v=2);
}
.reasons-area02-item01-list-item:nth-child(2) {
  background-image: url(../img/reasons-area02-item-bg01-02.svg?v=2);
}
.reasons-area02-item01-list-item:nth-child(3) {
  background-image: url(../img/reasons-area02-item-bg01-03.svg?v=2);
}
.reasons-area02-item01-list-item:nth-child(4) {
  background-image: url(../img/reasons-area02-item-bg01-04.svg?v=2);
}
.reasons-area02-item02 .bg-text {
  background-image: url(../img/reasons-area02-item02-bg-text.png);
}

.reasons-area02-item02 {
  margin-bottom: 37.3333333333cqw;
}
.reasons-area02-item02 .bg-text {
  width: 102.9333333333cqw;
  height: 54.4cqw;
  top: 18.6666666667cqw;
  left: -3.4666666667cqw;
}

.reasons-area02-item02-title {
  opacity: 1;
}

.reasons-area02-item02-list-item:nth-child(1) {
  background-image: url(../img/reasons-area02-item-bg02-01.svg?v=2);
}
.reasons-area02-item02-list-item:nth-child(2) {
  background-image: url(../img/reasons-area02-item-bg02-02.svg?v=2);
}
.reasons-area02-item02-list-item:nth-child(3) {
  background-image: url(../img/reasons-area02-item-bg02-03.svg?v=2);
}
.reasons-area02-item02-list-item:nth-child(4) {
  background-image: url(../img/reasons-area02-item-bg02-04.svg?v=2);
}
.reasons-area02-samurai {
  position: absolute;
  z-index: 2;
}

.reasons-area02-samurai {
  display: none;
}

.reasons-area02-samurai img {
  transform: translateY(100px);
  opacity: 0;
  transition:
  transform 0.3s,
  opacity 0.3s;
}
.reasons-area02-samurai img {
  transform: translateY(0);
  opacity: 1;
}

/* ---------------------------------------------
   Reasons area02 雲・背景
--------------------------------------------- */
.reasons-area02-bg-cloud-item {
  position: absolute;
  z-index: -1;
  background-position: 0 0;
  background-repeat: no-repeat;
  background-size: 100%;
}
.reasons-area02-bg-cloud-01 {
  background-image: url(../img/reasons-area02-bg-cloud01.webp);
}
.reasons-area02-bg-cloud-02 {
  background-image: url(../img/reasons-area02-bg-cloud02.webp);
}
.reasons-area02-bg-cloud-03 {
  background-image: url(../img/reasons-area02-bg-cloud03.webp);
}
.reasons-area02-bg-cloud-04 {
  background-image: url(../img/reasons-area02-bg-cloud-side01.png);
}
.reasons-area02-bg-cloud-05 {
  background-image: url(../img/reasons-area02-bg-cloud-side02.png);
}

.reasons-area02-bg-cloud-01 {
  display: none;
}
.reasons-area02-bg-cloud-02 {
  display: none;
}
.reasons-area02-bg-cloud-03 {
  display: none;
}
.reasons-area02-bg-cloud-04 {
  display: none;
}
.reasons-area02-bg-cloud-05 {
  display: none;
}

.reasons-area02-bg-cloud-side-item {
  position: absolute;
}

.reasons-area02-bg-cloud-side-item-inner {
  width: 100%;
  height: 100%;
  position: absolute;
  inset: 0;
  background-position: 0 0;
  background-repeat: no-repeat;
  background-size: 100%;
}

.reasons-area02-bg-cloud-side-01-inner {
  background-image: url(../img/reasons-area02-bg-cloud-side01.png);
}

.reasons-area02-bg-cloud-side-01 {
  display: none;
}

.reasons-area02-bg-cloud-side-02 {
  width: 100px;
  height: 100px;
  top: 0;
  right: 0;
}
.reasons-area02-bg-cloud-side-02-inner {
  background-image: url(../img/reasons-area02-bg-cloud-side02.png);
}

.reasons-area02-bg-cloud-side-02 {
  width: 252cqw;
  height: 120.2666666667cqw;
  top: 49.8666666667cqw;
  left: 17.6cqw;
}

/* ---------------------------------------------
   Record（実績数字）
--------------------------------------------- */
.record {
  overflow: hidden;
  position: relative;
  z-index: 2;
  background: url(../img/record-roof.webp) center 0 no-repeat;
}

.record::before {
  content: "";
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  z-index: -1;
  background: #FEF8EF;
}

.record {
  margin-top: -36.333333cqw;
  padding-top: 41.3333333333cqw;
  background-size: 266.666667cqw;
}
.record::before {
  top: 76.3333333333cqw;
}

.record .section-title-group {
  text-align: center;
}

.record .section-title-group {
  margin-bottom: 13.3333333333cqw;
}

.record .section-title {
  line-height: 1;
  transform: translateY(100px);
  opacity: 0;
  transition:
  transform 0.3s,
  opacity 0.3s;
}
.record .section-title {
  transform: translateY(0);
  opacity: 1;
}

.record .section-title {
  font-size: 13.3333333333cqw;
  padding-top: 16cqw;
}

.record-lead {
  text-align: center;
}

.record-lead-group {
  margin-bottom: 2.125rem;
  display: flex;
  flex-direction: column;
  align-items: center;

}
.record-lead {
  font-size: 0.875rem;
}
.record-lead__badge {
  font-size: 0.875rem;
  color: #fff;
  background-color: #000;
  padding: 2px 8px;
  margin-top: 8px;
  display: flex;
  justify-content: center;
  align-items: center;
  line-height: 1.2;
}


.record__list {
  font-size: 1.25rem;
}

.record__list-padding {
  padding: 0 28px;

}

.record__list-inner {
  max-width: 640px;
  background-color: #fff;
  margin: 0 auto;
  padding: 32px 12px;

}
.record__list {
  margin-bottom: 400px;
  font-size: 0.75rem;
}

.record__item {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 1rem;
  text-align: left;
  line-height: 1.2;
  padding: 0 16px;

}

.record__item-group:not(:last-child)::after {
  content: '';
  display: block;
  width: 100%;
  height: 1px;
  background-color: #E3E3E3;
  margin-bottom: 18px;
  margin-top: 18px; 
}
.record__label {
  line-height: 1;
  font-size: 0.75rem;
  color: #fff;
  background-color: #E3C192;
  padding: 4px 10px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.record__item {
  gap: 0.375rem;
  padding: 0 24px;
}
.record__label {
  font-size: 0.5rem;
  padding: 2px 4px;
  white-space: nowrap;
}
.record__item-group:not(:last-child)::after {
  margin-bottom: 14px;
  margin-top: 14px;
}

/* ---------------------------------------------
   Cases（実績・事例）
--------------------------------------------- */
.cases-roof {
  overflow: hidden;
  position: relative;
  z-index: 2;
  background: url(../img/cases-roof.webp) center 0 no-repeat;
}
.cases-roof::before {
  content: "";
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  z-index: -1;
  background: #fff;
}

.cases-roof {
  margin-top: -270px;
  padding-top: 41.3333333333cqw;
  background-size: 266.6666666667cqw;
}
.cases-roof::before {
  top: 41.3333333333cqw;
}

.cases-wrapper {
  position: relative;
  z-index: 2;
}

.cases-wrapper {
  margin-block: 25.3333333333cqw 6.6666666667cqw;
  height: 265.6cqw;
}

.cases .section-title-group {
  line-height: 1;
}

.cases .section-title-group {
  transform: translateY(-17cqw);
}

.cases .section-title {
  text-align: center;
  opacity: 0;
  transition:
  transform 0.3s,
  opacity 0.3s;
}

.cases .section-title {
  transform: translateY(calc(238cqw + 100px));
}
.cases .section-title {
  transform: translateY(238cqw);
}

.cases .section-title {
  opacity: 1;
}

.cases .section-title {
  padding-right: 2.6666666667cqw;
  font-size: 8.5333333333cqw;
}

.cases .section-title-text {
  background-image: url(../img/cases-title-text-illust.webp);
  background-repeat: no-repeat;
}

.cases .section-title-text {
  margin-inline: auto;
  margin-bottom: 4cqw;
  width: 64cqw;
  height: 52.2666666667cqw;
  background-position: right bottom;
  background-size: 21.8666666667cqw;
}
.cases .section-title-text img {
  margin-inline: auto;
  width: 31.4666666667cqw;
}

.cases-list-item {
  display: flex;
  flex-direction: column;
  justify-content: center;
  position: absolute;
  writing-mode: vertical-rl;
  letter-spacing: 0.075em;
  line-height: 1.5;
  color: #fff;
  background-position: 0 0;
  background-repeat: no-repeat;
  background-size: 100%;
  opacity: 0;
  transform: translateY(100px);
  transition:
  opacity 0.3s,
  transform 0.3s;
}
.cases-list-item {
  opacity: 1;
  transform: translateY(0);
}

.cases-list-item {
  padding-top: 14.1333333333cqw;
  width: 33.3333333333cqw;
  font-size: 5.3333333333cqw;
  background-image: url(../img/cases-item-frame-sp.svg);
}

.cases-list-item::before {
  content: "";
  position: absolute;
  background-position: 0 0;
  background-repeat: no-repeat;
  background-size: contain;
}

.cases-list-item:nth-of-type(odd) {
  height: 90.6666666667cqw;
  left: 10.6666666667cqw;
}

.cases-list-item:nth-of-type(even) {
  height: 74.6666666667cqw;
  right: 10.6666666667cqw;
}

.cases-list-item:nth-of-type(1) {
  transition-delay: 0;
}
.cases-list-item:nth-of-type(1)::before {
  background-image: url(../img/cases-item-illust01.webp);
}
.cases-list-item:nth-of-type(2) {
  transition-delay: 0.1s;
}
.cases-list-item:nth-of-type(2)::before {
  background-image: url(../img/cases-item-illust02.webp);
}
.cases-list-item:nth-of-type(3) {
  transition-delay: 0.2s;
}
.cases-list-item:nth-of-type(3)::before {
  background-image: url(../img/cases-item-illust03.webp);
}
.cases-list-item:nth-of-type(4) {
  transition-delay: 0.3s;
}
.cases-list-item:nth-of-type(4)::before {
  background-image: url(../img/cases-item-illust04.webp);
}

.cases-list-item:nth-of-type(1) {
  top: 33.0666666667cqw;
}
.cases-list-item:nth-of-type(1)::before {
  width: 8cqw;
  height: 23.2cqw;
  left: -2.6666666667cqw;
  bottom: -9.8666666667cqw;
}
.cases-list-item:nth-of-type(2) {
  top: 84.2666666667cqw;
}
.cases-list-item:nth-of-type(2)::before {
  width: 12.5333333333cqw;
  height: 23.2cqw;
  left: -5.8666666667cqw;
  bottom: -9.0666666667cqw;
}
.cases-list-item:nth-of-type(3) {
  top: 137.8666666667cqw;
}
.cases-list-item:nth-of-type(3)::before {
  width: 11.4666666667cqw;
  height: 23.7333333333cqw;
  left: -7.4666666667cqw;
  bottom: -5.3333333333cqw;
}
.cases-list-item:nth-of-type(4) {
  top: 175.2cqw;
}
.cases-list-item:nth-of-type(4)::before {
  width: 18.1333333333cqw;
  height: 24.2666666667cqw;
  left: -4.2666666667cqw;
  bottom: -16cqw;
}

.cases-list-item span:nth-of-type(1) {
  position: relative;
  z-index: 2;
}
.cases-list-item span:nth-of-type(2) {
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
}

.cases-list-item span:nth-of-type(2) {
  bottom: 2.6666666667cqw;
}
.cases-list-item span:nth-of-type(2) img {
  height: 28.8cqw;
}
.message {
  overflow: hidden;
  position: relative;
  z-index: 2;
  color: #fff;
  background-color: #000000;
}

/* ---------------------------------------------
   Message（メッセージ）
--------------------------------------------- */
.message {
  padding: 10.6666666667cqw 5.3333333333cqw 6.4cqw;
  border-radius: 0 0 10.6666666667cqw 10.6666666667cqw;
}

.message::before {
  content: "";
  width: 100%;
  position: absolute;
  bottom: 0;
  left: 0;
  background: #6fbbd8;
}

.message::before {
  height: 172cqw;
}

.message-inner {
  position: relative;
  z-index: 2;
}

.message-inner {
  padding-top: 102.9333333333cqw;
}

.message-title {
  width: 21.3333333333cqw;
  position: absolute;
  top: 0;
  left: 50.6666666667cqw;
}

.message-lead {
  margin-bottom: 8.5333333333cqw;
}

.message-text {
  margin-bottom: 8.5333333333cqw;
}

.message-profile {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: flex-end;
  text-align: right;
}

.message-profile-sign {
  margin-top: 2.1333333333cqw;
}
.message-profile-sign img {
  width: 46.9333333333cqw;
}

.message-samurai {
  position: absolute;
}

.message-samurai {
  width: 66.6666666667cqw;
  height: 77.8666666667cqw;
  top: 33.0666666667cqw;
  left: 41.8666666667cqw;
}

.message-samurai img {
  transform: translateY(100px);
  opacity: 0;
  transition:
  transform 0.3s,
  opacity 0.3s;
}
.message-samurai img {
  transform: translateY(0);
  opacity: 1;
}
.message-bg-cloud-item {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
  background-repeat: no-repeat;
}
.message-bg-cloud-01 {
  background-image: url(../img/message-bg-cloud01.webp);
}

.message-bg-cloud-01 {
  background-position: 41.3333333333cqw 57.8666666667cqw;
  background-size: 119.4666666667cqw;
}

.message-bg-cloud-02 {
  background-image: url(../img/message-bg-cloud02.webp);
}

.message-bg-cloud-02 {
  background-position: -80cqw 45.8666666667cqw;
  background-size: 139.7333333333cqw;
}

.message-bg-mountain {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
  background-image: url(../img/message-bg-mountain.webp?v=3);
  background-repeat: no-repeat;
}

.message-bg-mountain {
  background-position: -82.6666666667cqw 34.6666666667cqw;
  background-size: 297.0666666667cqw;
}

.news {
  background-color: #000000;
  color: #fff;
  display: grid;
  position: relative;
  z-index: 2;
}
.contact {
  position: relative;
  z-index: 2;
}

/* ---------------------------------------------
   Contact（お問い合わせ・GET IN TOUCH）
--------------------------------------------- */
.contact {
  margin-top: 18.6666666667cqw;
  margin-inline: 5.3333333333cqw;
}

.contact .section-title-group {
  margin-bottom: 8.5333333333cqw;
}

.contact .section-title-text {
  margin-bottom: 3.2cqw;
}
.contact .section-title-text img {
  width: 56cqw;
}

.contact .section-title {
  line-height: 1;
  transform: translateY(100px);
  opacity: 0;
  transition:
  transform 0.3s,
  opacity 0.3s;
}
.contact .section-title {
  transform: translateY(0);
  opacity: 1;
}

.contact .section-title {
  font-size: 8.5333333333cqw;
}

header.menu-open .header-nav-item a {
  color: inherit;
}

/* ---------------------------------------------
   FAQ（よくあるご質問）
--------------------------------------------- */
.faq {
  overflow: hidden;
  position: relative;
  z-index: 2;
  background: url(../img/faq-roof.webp) center 0 no-repeat;
}
.faq::before {
  content: "";
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  z-index: -1;
  background: #fff;
}

.faq {
  margin-top: 0;
  padding-top: 24cqw;
  background-size: 266.6666666667cqw;
}
.faq::before {
  top: 24cqw;
}

.faq .section-title {
  text-align: center;
  transform: translateY(100px);
  opacity: 0;
  transition:
  transform 0.3s,
  opacity 0.3s;
}
.faq .section-title {
  transform: translateY(0);
  opacity: 1;
}

.faq .section-title {
  font-size: 16cqw;
}

.faq {
  background-color: #fff;
  small {
  font-size: 2.5rem;
}
.section-lead {
  font-size: 2.5rem;
  text-align: center;
  margin-bottom: 100px;
}
}

.faq .section-lead {
  font-size: 1.25rem;
  margin-bottom: 52px;
}


.faq .faq__padding {
  margin-top: 150px;
  margin-bottom: 9.375rem;
  padding: 0 40px;
}

.faq .faq__padding {
  margin-top: 0;
  padding: 0 20px;
  margin-bottom: 5.625rem;
}

.faq .faq__inner {
  max-width: 1000px;
  margin: 0 auto;
}

.faq .faq__inner {
  max-width: 100%;
}

.faq .c-card-wrap {
  padding-left: 0;
  padding-right: 0;
}
.faq .faq__content {
  box-shadow: none;
  margin-top: 0;
}
.faq .faq__content .faq__label {
  margin-bottom: 55px;
}
.faq__group {
  margin-bottom: 74px;
}
.faq__category {
  font-size: 1.25rem;
  margin-bottom: 26px;
}

.accordion {
  width: 100%;
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1;
}

.accordion {
  font-size: 1.375rem;
}
.faq__group {
  margin-bottom: 26px;
}
.faq__category {
  font-size: 1rem;
  margin-bottom: 20px;
}

.accordion__item {
  background-color: #272727;
  overflow: hidden;
  transition: all 0.3s ease;
}
.accordion__item:not(:last-child){
  margin-bottom: 30px;

}

.accordion__item:not(:last-child){
  margin-bottom: 20px;

}

.accordion__question {
  display: flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
  padding: 10px 20px;
  position: relative;
}
.accordion__q {
  display: inline-block;
  font-size: 0.875rem;
  color: #ffffff;
  background-color: #393939;
  border-radius: 50%;
  width: 32px;
  height: 32px;
  text-align: center;
  line-height: 30px;
  margin-right: 0.875rem;
  flex-shrink: 0;
}

.accordion__question {
  padding: 6px 10px;
}
.accordion__q {
  width: 25px;
  height: 25px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.625rem;
  margin-right: 0.5rem;
}

.accordion__question-text {
  font-size: 1.125rem;
  color: #ffffff;
  line-height: 1.5;
  flex: 1;
  letter-spacing: -0.01rem;
}

.accordion__question-text {
  font-size: 0.875rem;
}

.accordion__icon {
  position: relative;
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  margin-left: 1.125rem;
}

.accordion__icon {
  width: 14px;
  height: 14px;
}

.accordion__icon::before, .accordion__icon::after {
  content: "";
  position: absolute;
  background-color: #ffffff;
  transition: 0.3s;
}
.accordion__icon::before {
  width: 18px;
  height: 1px;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
}

.accordion__icon::before {
  width: 14px;
  height: 1px;
}

.accordion__icon::after {
  width: 1px;
  height: 18px;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
}

.accordion__icon::after {
  height: 14px;
  width: 1px;
}


.accordion__answer {
  background-color: #ffffff;
  display: none;
  padding: 20px;
  outline: none;
}

.accordion__answer {
  padding: 20px 10px;
}

.accordion__answer:focus {
  outline: none;
}
.accordion__a {
  display: inline-block;
  font-size: 0.875rem;
  color: #ffffff;
  background-color: #E3C192;
  border-radius: 50%;
  width: 32px;
  height: 32px;
  text-align: center;
  line-height: 30px;
  margin-right: 0.875rem;
  flex-shrink: 0;
}

.accordion__a {
  width: 25px;
  height: 25px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.625rem;
  margin-right: 0.5rem;
}

.accordion__answer-text {
  display: inline;
  font-size: 0.875rem;

}
.accordion__answer-text-list {
  font-size: 0.875rem;
  text-indent: -1em;
  padding-left: 1em;
}

.accordion__answer-text {
  font-size: 0.75rem;
}
.accordion__answer-text-list {
  font-size: 0.75rem;
}

.accordion__item.is-open .accordion__answer {
  display: flex;
  line-height: 1.8;
}
.accordion__item.is-open .accordion__icon::after {
  transform: translateX(-50%) rotate(90deg);
  opacity: 0;
}
.slick-dots {
  text-align: center;
  margin-top: 2cqw;
  padding: 0;
  list-style: none;
}
.slick-arrow {
  width: 9.4666666667cqw;
  margin-bottom: -1.3333333333cqw;
}
.slick-dots li {
  display: inline-block;
  margin: 0 1.3333333333cqw;
  font-size: 0;
}
.slick-dots li button {
  width: 2cqw;
  height: 2cqw;
  padding: 0;
  border: none;
  border-radius: 50%;
  background-color: #c3c3c3;
  text-indent: -9999px;
  cursor: pointer;
}
.slick-dots li.slick-active button {
  background-color: #000000;
}
.slider-ui {
  margin-top: 16cqw;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-transform: translateY(-13.3333333333cqw);
  transform: translateY(-13.3333333333cqw);
}
.slider-ui .slick-dots {
  margin: 0 5.3333333333cqw;
}
.slick-disabled {
  visibility: hidden;
}
h1.section-title,
h2.section-title {
  white-space: nowrap;
  padding-top: 10cqw;
  font-size: 11.3333333333cqw;
}
section p.section-title-text {
  text-align: center;
  font-size: 6.6666666667cqw;
}
section p.caption {
  font-size: 4cqw;
  line-height: 1.6666666667;
}
section p.caption.size-mid {
  font-size: 6.6666666667cqw;
  line-height: 1.6;
}
section h2.t2 {
  color: #c7a577;
  text-align: center;
  line-height: 1;
}
section h2.t2 p.section-title-sub {
  font-size: 4.6666666667cqw;
}
section h2.t2 p.section-title-main {
  font-size: 6.6666666667cqw;
  margin-top: 4cqw;
}
.case-slider {
  padding-top: 26.6666666667cqw;
  padding-bottom: 16cqw;
  margin-bottom: 12cqw;
}
div.casestudy-inner {
  background-color: #fff;
}
div.casestudy-inner h2.section-title.font-michroma.section-title-centered {
  padding-top: 0;
}
div.casestudy-inner h2.section-title.font-michroma.section-title-centered div.text span {
  font-size: 8.6666666667cqw;
}
div.casestudy-inner ol.group-case-study.slider {
  margin: 8cqw auto 0;
  width: 89.2cqw;
}
div.casestudy-inner div.box-content.box-content-casestudy-note {
  margin: -29.3333333333cqw auto 0;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
  -ms-flex-pack: justify;
  justify-content: space-between;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  width: 100%;
  position: relative;
  z-index: 3;
  pointer-events: none;
}
div.casestudy-inner div.box-content.box-content-casestudy-note img.img-about-02.img-about-02-1 {
  -webkit-box-ordinal-group: 2;
  -webkit-order: 1;
  -ms-flex-order: 1;
  order: 1;
  width: 16.2666666667cqw;
  height: auto;
  margin-left: 4cqw;
}
div.casestudy-inner div.box-content.box-content-casestudy-note img.img-about-02.img-about-02-2 {
  -webkit-box-ordinal-group: 3;
  -webkit-order: 2;
  -ms-flex-order: 2;
  order: 2;
  width: 9.3333333333cqw;
  height: auto;
  margin-right: 7.3333333333cqw;
}
div.casestudy-inner div.box-content.box-content-casestudy-note ul.note {
  -webkit-box-ordinal-group: 4;
  -webkit-order: 3;
  -ms-flex-order: 3;
  order: 3;
  font-size: 1.8666666667cqw;
  line-height: 1.4285714286;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
  -webkit-box-pack: start;
  -webkit-justify-content: flex-start;
  -ms-flex-pack: start;
  justify-content: flex-start;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  padding: 4cqw 5.3333333333cqw 0;
}
div.casestudy-inner div.box-content.box-content-casestudy-note ul.note li {
  width: 89.3333333333cqw;
}
div.casestudy-inner div.box-content.box-content-casestudy-note ul.note li::before {
  content: "※ ";
  margin-right: 0.5em;
  color: inherit;
}
div.casestudy-inner div.box-content.box-content-casestudy-note ul.note li:nth-last-child(2)::before {
  content: "※1 ";
}
div.casestudy-inner div.box-content.box-content-casestudy-note ul.note li:last-child::before {
  content: "※2 ";
}
div.casestudy-inner div.box-content.box-content-casestudy-strengths h2 p.section-title-text {
  margin-top: 13.3333333333cqw;
}
div.casestudy-inner div.box-content.box-content-casestudy-strengths div.box-chart {
  margin: 4cqw auto 0;
  width: 90.9333333333cqw;
}
div.casestudy-inner div.box-content.box-content-casestudy-strengths img.img-casestudy {
  width: 21.6cqw;
  margin-top: 8cqw;
  margin-left: 5.3333333333cqw;
}

/* ---------------------------------------------
   PC (751px以上)
--------------------------------------------- */
@media (min-width: 751px) {
  /* レスポンシブ表示切り替え（PC: 751px以上） */
  .sp-only {
    display: none;
  }

  .pc-only {
    display: block;
  }

  /* ---------------------------------------------
     レイアウト・ヘッダー・フッター
  --------------------------------------------- */
  .site-wrap {
    font-size: 56.25%;
  }

  body {
    font-size: 3.2cqw;
  }
  .header-nav-toggle {
    right: calc((100vw - 750px) / 2 + 6.4 * 7.5px);
  }

  .header-contact {
    right: calc((100vw - 750px) / 2 + 8px);
  }

  .header.menu-open .header-logo {
    left: calc((100vw - 750px) / 2 + 9.8666666667 * 7.5px);
  }

  .header-nav-list {
    font-size: 4.2cqw;
    left: 50%;
    margin-left: -375px;
    width: 750px;
    max-width: 100%;
    box-sizing: border-box;
  }

  .footer-copyright {
    font-size: 1.8cqw;
  }

  .footer-wrap {
    justify-content: center;
  }

  .footer-company {
    text-align: center;
  }

  .footer-company-item {
    font-size: 0.75rem;
  }
  /* ---------------------------------------------
     Contact（PC）
  --------------------------------------------- */
  .contact {
    text-align: center;
    width: 100%;
    max-width: 750px;
    margin-left: auto;
    margin-right: auto;
    margin-inline: 0;
    padding-inline: 5.3333333333cqw;
    box-sizing: border-box;
  }

  .contact .section-title-group {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    max-width: 100%;
    margin-inline: 0;
    padding-inline: 0;
    box-sizing: border-box;
  }

  .contact .section-title-group .section-title {
    align-self: stretch;
    box-sizing: border-box;
    max-width: 100%;
  }

  .contact .section-title-text img {
    margin-left: auto;
    margin-right: auto;
  }

  .contact .section-title {
    font-size: 2.5rem;
    display: block;
    width: 100%;
    max-width: 100%;
    text-align: center;
    opacity: 1;
    transform: none;
    color: #000;
    overflow: visible;
    margin-left: 0;
    margin-right: 0;
    padding-left: 0;
    padding-right: 0;
    box-sizing: border-box;
  }
  .contact .section-title.section-title-centered {
    overflow: visible;
    display: block;
    max-width: 100%;
  }
  .contact .section-title.section-title-centered .text {
    height: auto;
    min-height: 3rem;
    display: block;
    width: 100%;
    max-width: 100%;
    text-align: center;
    overflow: visible;
    position: relative;
    box-sizing: border-box;
    margin-inline: 0;
    padding-inline: 0;
  }
  .contact .section-title.section-title-centered .text span {
    font-size: 2.5rem;
    position: static;
    width: auto;
    max-width: 100%;
    text-align: center;
    color: #000;
    visibility: visible;
    margin-left: 0;
    margin-right: 0;
    left: auto;
    right: auto;
    box-sizing: border-box;
  }
  .contact .form {
    margin-left: auto;
    margin-right: auto;
    max-width: 100%;
    overflow-x: auto;
  }
  /* ---------------------------------------------
     FAQ・スライダー（PC）
  --------------------------------------------- */
  .faq .section-title {
    font-size: 11.5cqw;
  }
  .faq .section-lead {
    font-size: 1.25rem;
  }
  .faq small {
    font-size: 1.75rem;
  }
  .faq .faq__category {
    font-size: 1.35rem;
  }
  .accordion {
    font-size: 1.35rem;
  }
  .accordion__question-text {
    font-size: 1.1rem;
  }
  .accordion__answer-text,
  .accordion__answer-text-list {
    font-size: 1rem;
  }
  .case-slider {
    padding-top: 12cqw;
    padding-bottom: 12cqw;
    margin-bottom: 10cqw;
  }
  div.casestudy-inner ol.group-case-study.slider {
    width: 72cqw;
  }
  /* ---------------------------------------------
     Reasons / Service / Record（PC）
  --------------------------------------------- */
  .reasons-area01 .section-title img,
  .reasons-area01-text01,
  .reasons-area01-text03 {
    font-size: 3cqw;
  }
  .reasons-area01-text02 {
    font-size: inherit;
  }
  .service .section-title {
    font-size: 9.5cqw;
  }
  .service .section-lead {
    font-size: 3.4cqw;
  }
  .service__catch-sub {
    font-size: 3.6cqw;
  }
  .service__catch-main {
    font-size: 4.8cqw;
  }
  .record .section-title {
    font-size: 8cqw;
  }
  .record .section-title-group {
    margin-bottom: 4cqw;
  }
  .record-lead {
    font-size: 2.8cqw;
  }
  .record__list {
    font-size: 0.95rem;
  }
  .record__list-padding {
    padding: 0 12px;
  }
  .record__list-inner {
    padding: 24px 10px;
  }
  .record__item {
    padding: 0 12px;
  }
  .record__label {
    font-size: 0.8rem;
  }
  /* ---------------------------------------------
     Cases（PC）
  --------------------------------------------- */
  .cases-roof {
    margin-top: -20vw;
    padding-top: 20cqw;
  }
  .cases .section-title {
    font-size: 5.5cqw;
  }
  .cases .section-title-group {
    transform: none;
    order: 0;
    margin-block: 0.5cqw 1.5cqw;
    width: 100%;
  }
  .cases .section-title-text {
    width: auto;
    height: auto;
    margin-bottom: 0;
  }
  .cases .section-title-text img {
    width: 24cqw;
    display: block;
    margin-inline: auto;
  }
  .cases-wrapper {
    height: auto;
    margin-block: 2cqw 6cqw;
    display: flex;
    flex-direction: column;
    align-items: center;
  }
  .cases-list {
    order: 1;
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: center;
    align-items: center;
    gap: 0 2cqw;
    position: relative;
    width: 100%;
    max-width: 100%;
    margin-top: 4cqw;
    padding-inline: 2cqw;
    box-sizing: border-box;
  }
  .cases-list-item {
    position: relative;
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    flex: 1 1 0;
    width: 0;
    min-width: 0;
    height: 48cqw;
    min-height: 48cqw;
    left: auto;
    right: auto;
    top: auto;
    padding: 5cqw 4cqw;
    font-size: 2.8cqw;
    background-image: url(../img/cases-item-frame-sp.svg);
    background-size: 100% 100%;
    background-position: 0 0;
    background-repeat: no-repeat;
    box-sizing: border-box;
  }
  .cases-list-item:nth-of-type(odd) {
    height: 62.6666666667cqw;
    min-height: 62.6666666667cqw;
    margin-top: 6cqw;
    left: auto;
    right: auto;
  }
  .cases-list-item:nth-of-type(even) {
    margin-top: -6cqw;
    left: auto;
    right: auto;
  }
  .cases-list-item:nth-of-type(1),
  .cases-list-item:nth-of-type(2),
  .cases-list-item:nth-of-type(3),
  .cases-list-item:nth-of-type(4) {
    top: auto;
    left: auto;
    right: auto;
  }
  .cases-list-item::before {
    position: absolute;
    z-index: 1;
  }
  .cases-list-item span:nth-of-type(1) {
    position: relative;
    z-index: 2;
    flex: 0 1 auto;
    min-height: 0;
    margin-bottom: 2cqw;
    padding-inline: 2cqw 0;
    text-align: start;
    font-size: 3.5cqw;
  }
  .cases-list-item span:nth-of-type(2) {
    position: relative;
    flex-shrink: 0;
    left: auto;
    transform: none;
    margin-top: 0;
    display: flex;
    justify-content: center;
    align-items: center;
  }
  .cases-list-item:nth-of-type(1) span:nth-of-type(2) {
    bottom: -1cqw;
  }
  .cases-list-item:nth-of-type(2) span:nth-of-type(2) {
    bottom: -8cqw;
  }
  .cases-list-item:nth-of-type(3) span:nth-of-type(2) {
    bottom: -5cqw;
  }
  .cases-list-item:nth-of-type(4) span:nth-of-type(2) {
    bottom: -6cqw;
  }
  .cases-list-item:nth-of-type(1)::before {
    width: 6.8cqw;
    height: 19.72cqw;
    left: -2.6666666667cqw;
    bottom: -6cqw;
  }
  .cases-list-item:nth-of-type(2)::before {
    width: 10.65cqw;
    height: 19.72cqw;
    left: -5.8666666667cqw;
    bottom: -6cqw;
  }
  .cases-list-item:nth-of-type(3)::before {
    width: 9.75cqw;
    height: 20.17cqw;
    left: -7.4666666667cqw;
    bottom: -6cqw;
  }
  .cases-list-item:nth-of-type(4)::before {
    width: 15.41cqw;
    height: 20.63cqw;
    left: -4.2666666667cqw;
    bottom: -6cqw;
    z-index: 3;
  }
  .cases-list-item span:nth-of-type(2) img {
    height: 18cqw;
    max-height: 160px;
    width: auto;
    display: block;
  }
  /* ---------------------------------------------
     Message（PC）
  --------------------------------------------- */
  .message-lead,
  .message-text {
    font-size: 3.2cqw;
    line-height: 1.8;
  }
  div.casestudy-inner h2.section-title.font-michroma.section-title-centered div.text span {
    font-size: 5.5cqw;
  }
  .service__list--top {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 2rem 2.5rem;
    justify-items: stretch;
    align-items: stretch;
    max-width: 720px;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 50px;
  }
  .service__list--top .service__item {
    width: 100%;
    min-width: 0;
    display: flex;
    flex-direction: column;
  }
  .service__list--top .service__card {
    max-width: none;
    flex: 1;
  }
  .service__list--bottom .service__title br.sp,
  .service__list--bottom .service__points br.sp {
    display: none;
  }
  .service__list--top .service__title br.pc {
    display: block;
  }
  }


