@charset "UTF-8";

/* ========================================
  私たちができること（menu）
  body#menu 配下のみ
======================================== */



#menu {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/*
  スタッキング（menu）
  下: セクション背景・波 → blob → ナビ / 見出し / 本文
*/
#menu .ais-subpage__content {
  position: relative;
  z-index: auto; /* common-blob.css の z-index:1 を解除し、blob と中身を同じ土俵に */
}
#menu .ais-common-blob {
  z-index: 1;
}
#menu .ais-common-blob--01.pc {
  z-index: 1; /* common の 11 を解除（見出しより手前に出ないように） */
}
/*
  PC: homepage / maintenance / design のページ専用blobを使うため、
  同色の共通blob（.pc）を隠す。SPの共通blob（.sp）は別途下で調整。
*/
#menu .ais-common-blob--03.pc,
#menu .ais-common-blob--04.pc,
#menu .ais-common-blob--05.pc {
  display: none !important;
}
#menu .ais-bread,
#menu .main-title-box,
#menu .ais-mv__nav,
#menu .homepage__body > *,
#menu .maintenance__body > *,
#menu .design__body > *,
#menu .end-cnt__inner {
  position: relative;
  z-index: 2;
}

/* ページ内リンクのアンカー（レイアウトはずらさずスクロール位置だけ調整） */
#menu .c-anchor {
  display: block;
  height: 0;
  visibility: hidden;
  pointer-events: none;
}

/* ========================================
  @media screen and (min-width: 768px), print
======================================== */
@media screen and (min-width: 768px), print {
  #menu {

    /* ページ内リンクのアンカー */
    .c-anchor {
      padding-top: 40px;
      margin-top: -40px;
    }

    .main-title-box {
      margin-bottom: 116px;
    }

    /* 共通パーツ
    -------------------------------------*/
    .c-section-title {
      display: flex;
      justify-content: center;
      align-items: center;
      gap: 16px;
      margin-bottom: 33px;
      font-size: clamp(24px, 18.667px + 0.694vw, 32px); /* 768px ~ 1920px */
      font-weight: 500;
      line-height: calc(44 / 32);
      letter-spacing: 0.1em;
    }
    .c-section-title img {
      display: block;
      width: clamp(40px, 26.667px + 1.736vw, 60px); /* 768px ~ 1920px */
      height: auto;
    }


    /* メディアブロック（共通）
    -------------------------------------*/
    .c-media {
      display: flex;
      justify-content: center;
      align-items: center;
      margin-inline: auto;
    }
    .c-media--reverse {
      flex-direction: row-reverse;
    }
    .c-media__text-area {
      width: fit-content;
      min-width: 0;
    }
    .c-media__ttl {
      width: max-content;
      margin-bottom: 30px;
      font-size: clamp(22px, 9.077px + 1.683vw, 36px); /* 768px ~ 1600px */
      font-weight: 700;
      line-height: 1;
      letter-spacing: 0.1em;
    }
    .c-media__ttl span {
      display: inline-block;
      margin-bottom: 10px;
      padding: 10px;
      background-color: #fff;
    }
    .c-media__ttl .em {
      margin: 0;
      padding: 0;
      color: #ED6C00;
    }
    .c-media__desc-wrap {
      display: flex;
      flex-direction: column;
      gap: clamp(16px, 3.077px + 1.683vw, 30px); /* 768px ~ 1600px */
      max-width: 580px;
    }
    .c-media__desc {
      font-size: clamp(13px, 10.231px + 0.361vw, 16px); /* 768px ~ 1600px */
      font-weight: 400;
      line-height: calc(30 / 16);
      letter-spacing: 0;
      color: #000;
    }
    .c-media__desc span {
      font-size: clamp(15px, 10.385px + 0.601vw, 20px); /* 768px ~ 1600px */
      font-weight: 700;
      line-height: calc(30 / 20);
      color: #ED6C00;
    }
    .c-media__image-area {
      flex-shrink: 0;
      width: clamp(320px, -134.154px + 59.135vw, 812px); /* 768px ~ 1600px */
    }
    .c-media__image-area img {
      display: block;
      width: 100%;
      height: auto;
    }

    /* ais-mv__nav（トップ流用／通常フロー配置）
    -------------------------------------*/
    .ais-mv__nav {
      position: relative;
      left: auto;
      bottom: auto;
      transform: none;
      width: min(95%, 1600px);
      margin-inline: auto;
      border-radius: 40px;
      background: linear-gradient(95deg, #FDAC30 1.75%, #AECB85 100%);
      padding-block: 60px 70px;
      z-index: 2;
    }
    .ais-mv__nav::before {
      position: absolute;
      content: "";
      border-radius: 30px;
      border: 1px solid #FFF;
      inset: 10px;
      pointer-events: none;
    }
    .ais-mv__nav-ttl {
      color: #FFF;
      text-align: center;
      font-size: 30px;
      font-weight: 500;
      line-height: 1.8;
      letter-spacing: 0.08em;
      margin-bottom: 24px;
    }
    .ais-mv__nav-list {
      display: flex;
      align-items: stretch;
      gap: 0 40px;
      justify-content: center;
      position: relative;
      margin: 0;
      padding: 0;
      list-style: none;
    }
    .ais-mv__nav-item {
      display: flex;
      width: 340px;
      height: 90px;
      padding: 30px;
      gap: 9px;
      border-radius: 200px;
      background: #FFF;
      box-shadow: 0 4px 16px 0 rgba(61, 61, 61, 0.20);
      transition: opacity 0.2s ease, transform 0.2s ease;
      align-items: center;
      position: relative;
      color: inherit;
      text-decoration: none;
    }
    .ais-mv__nav-item::after {
      content: "";
      position: absolute;
      top: 50%;
      right: 15px;
      /* ページ内アンカー用に下向き */
      transform: translateY(-50%) rotate(90deg);
      background: url(../images/common/btn-arrow-b.svg) no-repeat center center / contain;
      width: 28px;
      height: 28px;
    }
    .ais-mv__nav-item:hover {
      opacity: 0.88;
      text-decoration: none;
      transform: translateY(-1px);
    }
    .ais-mv__nav-icon {
      display: block;
      width: 30px;
      height: 30px;
      line-height: 0;
      flex-shrink: 0;
    }
    .ais-mv__nav-icon img {
      display: block;
      width: 100%;
      height: auto;
    }
    .ais-mv__nav-txt {
      text-align: center;
      font-size: 20px;
      font-weight: 500;
      line-height: 1.1;
      letter-spacing: 0.1em;
    }


    /* homepage
    -------------------------------------*/
    .homepage {
      position: relative;
      margin-top: -166px; /* 1920カンプ。768〜1919は下のMQでvw化 */
    }
    .homepage__bg-wave {
      position: relative;
      z-index: 0; /* blob より背面 */
      line-height: 0;
    }
    .homepage__bg-wave img {
      display: block;
      width: 100%;
      height: auto;
    }
    .homepage__body {
      position: relative;
      background: #FFE6B7;
      margin-top: -1px; /* 波との隙間防止 */
      padding-bottom: 242px;
    }

    .homepage__media-wrap {
      position: relative;
      z-index: 2; /* 共通blobより前面。ページ専用blobのz-index:-1はこの中に閉じ込める */
      display: flex;
      flex-direction: column;
      gap: 60px;
      margin-bottom: 80px;
    }
    .homepage__media {
      gap: clamp(24px, -36.923px + 7.933vw, 90px); /* 768px ~ 1600px */
      width: min(95%, 1480px);
      transform: translateX(clamp(0px, -294.000px + 20.417vw, 98px)); /* 1440px ~ 1920px */
    }
    /* media-wrap 先頭に blob span があるため nth-child 不可 */
    .homepage__media.c-media--reverse {
      width: min(95%, 1515px);
      transform: translateX(clamp(-84px, 252.000px + -17.500vw, 0px)); /* 1440px ~ 1920px */
    }

    /* blob背景（PC） */
    .homepage__blob {
      position: absolute;
      z-index: -1;
      line-height: 0;
      pointer-events: none;
    }
    .homepage__blob svg {
      display: block;
      width: 100%;
      height: auto;
    }
    .homepage__blob--orange {
      top: 450px;
      left: -150px;
      width: 643px;
      aspect-ratio: 643 / 557;
    }
    .homepage__blob--green {
      top: 350px;
      right: -220px;
      width: 818px;
      aspect-ratio: 818 / 812;
    }
    .homepage__blob--blue {
      z-index: 1;
      bottom: -320px;
      left: -300px;
      width: 857px;
      aspect-ratio: 857 / 839;
    }

    .homepage__works-list {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: clamp(20px, 6.667px + 1.736vw, 40px); /* 768px ~ 1920px */
      width: min(95%, 1260px);
      margin-inline: auto;
      margin-bottom: 60px;
    }
    .homepage__works-item {
      display: flex;
      flex-direction: column;
      gap: 20px;
      min-width: 0;
    }
    .homepage__works-link {
      display: flex;
      flex-direction: column;
      gap: 20px;
      min-width: 0;
      color: inherit;
      text-decoration: none;
    }
    .homepage__works-link:hover {
      text-decoration: none;
      opacity: 0.85;
    }
    .homepage__works-image {
      width: 100%;
      height: auto;
      aspect-ratio: 394 / 260;
    }
    .homepage__works-image img {
      display: block;
      width: 100%;
      height: 100%;
      object-fit: cover;
    }
    .homepage__works-ttl {
      font-size: 17px;
      font-weight: 500;
      line-height: calc(34 / 17);
      letter-spacing: 0.1em;
    }

    .homepage__works-btn-list {
      display: flex;
      justify-content: center;
      gap: clamp(20px, 6.667px + 1.736vw, 40px);
      width: min(95%, 1260px);
      margin-inline: auto;
    }
    .homepage__works-btn-link {
      position: relative;
      display: flex;
      justify-content: center;
      align-items: center;
      width: clamp(350px, 223.333px + 16.493vw, 540px); /* 768px ~ 1920px */
      padding-block: clamp(24px, 17.333px + 0.868vw, 34px); /* 768px ~ 1920px */
      font-size: clamp(16px, 13.333px + 0.347vw, 20px); /* 768px ~ 1920px */
      font-weight: 500;
      line-height: calc(22 / 20);
      letter-spacing: 0.1em;
      border-radius: 999px;
      filter: drop-shadow(0 8px 16px rgba(61, 61, 61, 0.14));
    }
    .homepage__works-btn-link span {
      font-size: clamp(20px, 17.333px + 0.347vw, 24px); /* 768px ~ 1920px */
      line-height: calc(22 / 24);
    }
    .homepage__works-btn-link--works {
      background-color: #FFF;
    }
    .homepage__works-btn-link--flow {
      color: #FFF;
      background-color: #72C6C8;
    }
    .homepage__works-btn-link::after {
      content: "";
      position: absolute;
      top: 50%;
      right: clamp(16px, 0.000px + 2.083vw, 40px); /* 768px ~ 1920px */
      transform: translateY(-50%);
      width: 28px;
      height: auto;
      aspect-ratio: 1 / 1;
    }
    .homepage__works-btn-link--works::after {
      background: url(../images/menu/btn-arrow-black.svg) no-repeat center center / contain;
    }
    .homepage__works-btn-link--flow::after {
      background: url(../images/menu/btn-arrow-white.svg) no-repeat center center / contain;
    }


    /* maintenance
    -------------------------------------*/
    .maintenance {
      position: relative;
      margin-top: -140px;
    }
    .maintenance__bg-wave {
      position: relative;
      z-index: 0; /* またぎblob より背面（background層） */
      line-height: 0;
    }
    .maintenance__bg-wave img {
      display: block;
      width: 100%;
      height: auto;
    }
    .maintenance__bg-wave--btm {
      position: relative;
      z-index: 1;
      margin-top: -117px;
    }
    .maintenance__body {
      position: relative;
      margin-top: clamp(-156px, 32.333px + -9.809vw, -43px);/* 768px ~ 1920px */
      padding-bottom: clamp(0px, 200.000px + -10.417vw, 120px); /* 768px ~ 1920px */
      background: #FFEFCD;
    }
    .maintenance__btn-wrap {
      position: relative;
      z-index: 2; /* 下波より前面 */
    }
    .maintenance__ttl {
      margin-bottom: 62px;
    }
    .maintenance__lead {
      margin-bottom: 25px;
      font-size: clamp(20px, 17.333px + 0.347vw, 24px); /* 768px ~ 1920px */
      font-weight: 500;
      line-height: calc(38 / 24);
      letter-spacing: 0;
      text-align: center;
      color: #000;
    }
    .maintenance__list-block {
      position: relative;
      width: min(95%, 800px);
      margin-inline: auto;
      margin-bottom: clamp(36px, 8.667px + 3.559vw, 77px); /* 768px ~ 1920px */
    }
    .maintenance__list-wrap {
      position: relative;
      z-index: 1; /* 白背景を blob より前面に */
      padding-top: 60px;
      padding-bottom: 80px;
      padding-inline: clamp(80px, 33.333px + 6.076vw, 150px); /* 768px ~ 1920px */
      background-color: #fff;
      box-sizing: border-box;
    }
    .maintenance__blob {
      position: absolute;
      z-index: 0; /* 白枠より背面・人物より背面 */
      line-height: 0;
      pointer-events: none;
    }
    .maintenance__blob svg {
      display: block;
      width: 100%;
      height: auto;
    }
    /* ピンクblob：白いリスト箱の右下付近（仮位置） */
    .maintenance__blob--pink {
      right: -490px;
      bottom: -280px;
      width: 843px; /* SVG width 属性に合わせる */
      aspect-ratio: 843 / 790;
    }
    .maintenance__list-deco {
      position: absolute;
      z-index: 2; /* 白枠・blob より前面 */
      line-height: 0;
      pointer-events: none;
    }
    .maintenance__list-deco img {
      display: block;
      width: 100%;
      height: auto;
    }
    /* 女性：リスト箱の上辺・左端基準 */
    .maintenance__list-deco--top {
      left: 64px;
      bottom: 100%;
      width: 115px;
    }
    /* 男性：リスト箱の右下基準 */
    .maintenance__list-deco--btm {
      right: 39px;
      bottom: 0;
      width: 139px;
    }
    .maintenance__list {
      position: relative;
      display: flex;
      flex-direction: column;
      gap: 20px;
      margin: 0;
      padding: 0;
      list-style: none;
    }
    .maintenance__item {
      position: relative;
      padding-left: 62px;
      padding-bottom: 16px;
      font-size: 16px;
      font-weight: 500;
      line-height: calc(22 / 16);
      letter-spacing: 0;
      color: #000;
      border-bottom: 1px solid #D6D3D3;
    }
    .maintenance__item:last-child {
      border-bottom: none;
      padding-bottom: 0;
    }
    .maintenance__item::before {
      content: "";
      position: absolute;
      top: 0;
      left: 8px;
      width: 24px;
      height: auto;
      aspect-ratio: 1 / 1;
      background: url(../images/menu/maintenance-list-icon.svg) no-repeat center center / contain;
    }
    .maintenance__list-btm-msg {
      margin-bottom: 85px;
      font-size: clamp(20px, 17.333px + 0.347vw, 24px); /* 768px ~ 1920px */
      font-weight: 500;
      line-height: calc(38 / 24);
      letter-spacing: 0;
      text-align: center;
      color: #000;
    }

    .maintenance__media {
      gap: 1em;
      width: min(95%, 1480px);
      margin-bottom: 80px;
      transform: translateX(clamp(0px, -294.000px + 20.417vw, 98px)); /* 1440px ~ 1920px */
    }
    .maintenance__media-ttl {
      margin-top: 12px;
      margin-right: -28px;
    }
    .maintenance__media-desc span {
      font-size: 18px;
    }

    .c-btn-wrap {
      display: flex;
      justify-content: center;
      align-items: center;
      gap: 10px;
      width: min(60%, 648px);
      margin-inline: auto;
      background-color: #ED6C00;
      border-radius: 10px;
    }
    .c-btn-wrap .c-btn {
      font-size: clamp(24px, 18.667px + 0.694vw, 32px); /* 768px ~ 1920px */
      font-weight: 700;
      line-height: calc(40 / 32);
      letter-spacing: 0.02em;
      color: #fff;
      padding-block: clamp(24px, 16.667px + 0.955vw, 35px); /* 768px ~ 1920px */
    }
    .c-btn-wrap .c-btn img {
      width: clamp(28px, 20.000px + 1.042vw, 40px); /* 768px ~ 1920px */
      height: auto;
    }


    /* design
    -------------------------------------*/
    .design {
      position: relative;
    }
    .design__body {
      position: relative;
      background-color: #FEE8B8;
      margin-top: clamp(-130px, -96.667px + -1.736vw, -110px); /* 768px ~ 1920px */
      padding-top: clamp(200px, 173.333px + 3.472vw, 240px); /* 768px ~ 1920px */
    }
    .design__btn-wrap {
      position: relative;
      z-index: 2; /* 下波より前面 */
    }
    .design__ttl {
      font-size: 29px;
      margin-bottom: 20px;
    }

    .design__media {
      width: min(95%, 1472px);
      margin-bottom: 80px;
      gap: clamp(24px, -27.692px + 6.731vw, 80px); /* 768px ~ 1600px */
      transform: translateX(clamp(-87px, 261.000px + -18.125vw, 0px)); /* 1440px ~ 1920px */
    }
    .design__media-image-area {
      position: relative;
      z-index: 0; /* blob の z-index:-1 を写真エリアに閉じ込める */
    }
    .design__blob {
      position: absolute;
      z-index: -1; /* 写真より背面 */
      line-height: 0;
      pointer-events: none;
    }
    .design__blob svg {
      display: block;
      width: 100%;
      height: auto;
    }
    /* オレンジblob：写真の左〜背面（仮位置） */
    .design__blob--orange {
      top: -90px;
      left: -280px;
      width: 643px;
      aspect-ratio: 643 / 557;
    }
    .design__media-desc span {
      font-size: 18px;
    }

    .design__brochure {
      display: block;
      width: min(80%, 1121px);
      margin-inline: auto;
      margin-bottom: 80px;
      transform: translateX(clamp(-22px, 66.000px + -4.583vw, 0px)); /* 1440px ~ 1920px */
    }
    .design__brochure img {
      display: block;
      width: 100%;
      height: auto;
    }

    /* 下部の動く波 */
    .design__wave {
      position: relative;
      z-index: 1;
      width: 100%;
      margin-top: clamp(-60px, 40.000px + -5.208vw, 0px); /* 768px ~ 1920px */
      line-height: 0;
      overflow: hidden;
      pointer-events: none;
    }
    .design__wave-svg {
      display: block;
      width: 100%;
      height: auto;
    }
    .design__wave-static {
      display: none;
      width: 100%;
      height: auto;
    }
    @media (prefers-reduced-motion: reduce) {
      .design__wave-svg--motion {
        display: none;
      }
      .design__wave-static {
        display: block;
      }
    }


    /* end-cnt
    -------------------------------------*/
    .end-cnt__inner {
      padding-top: 94px;
      padding-bottom: clamp(172px, 98.667px + 9.549vw, 282px); /* 768px ~ 1920px */
    }
    .end-cnt__links {
      display: flex;
      justify-content: center;
      align-items: flex-end;
      gap: clamp(20px, 6.638px + 1.738vw, 40px); /*768px ~ 1920px */
      padding-inline: 40px;
    }
    .end-cnt__card {
      width: 520px;
      height: auto;
    }
    .end-cnt__card img {
      display: block;
      width: 100%;
      height: auto;
    }

  }
}

/* ========================================
  @media screen and (min-width: 768px) and (max-width: 1919px)
  1920カンプ基準の vw 化（位置関係を保つ要素・blob）
======================================== */
@media screen and (min-width: 768px) and (max-width: 1919px) {
  #menu {
    .ais-mv__nav {
      width: min(95%, 83.333vw);
      border-radius: 2.083vw;
      padding-block: 3.125vw 3.646vw;
    }
    .ais-mv__nav::before {
      border-radius: 1.563vw;
      inset: 0.521vw;
    }
    .ais-mv__nav-ttl {
      font-size: 1.563vw;
      margin-bottom: 1.25vw;
    }
    .ais-mv__nav-list {
      gap: 0 2.083vw;
    }
    .ais-mv__nav-item {
      width: 17.708vw;
      height: 4.688vw;
      padding: 1.563vw;
      gap: 0.521vw;
      border-radius: 10.417vw;
      box-shadow: 0 0.208vw 0.833vw 0 rgba(61, 61, 61, 0.20);
    }
    .ais-mv__nav-item::after {
      right: 0.781vw;
      width: 1.458vw;
      height: 1.458vw;
    }
    .ais-mv__nav-item:hover {
      transform: translateY(-0.052vw);
    }
    .ais-mv__nav-icon {
      width: 1.563vw;
      height: 1.563vw;
    }
    .ais-mv__nav-txt {
      font-size: clamp(0.625rem, 0.208rem + 0.87vw, 1.25rem);
    }

    .homepage {
      margin-top: -8.646vw; /* -166 / 1920 */
    }

    /* blob：位置・幅を 1920 基準 vw に */
    .homepage__blob--orange {
      top: 23.438vw; /* 450 / 1920 */
      left: -7.813vw; /* -150 / 1920 */
      width: 33.49vw; /* 643 / 1920 */
    }
    .homepage__blob--green {
      top: 18.229vw; /* 350 / 1920 */
      right: -11.458vw; /* -220 / 1920 */
      width: 42.604vw; /* 818 / 1920 */
    }
    .homepage__blob--blue {
      bottom: -16.667vw; /* -320 / 1920 */
      left: -15.625vw; /* -300 / 1920 */
      width: 44.635vw; /* 857 / 1920 */
    }

    .maintenance__blob--pink {
      right: -25.521vw; /* -490 / 1920 */
      bottom: -14.583vw; /* -280 / 1920 */
      width: 43.906vw; /* 843 / 1920 */
    }

    .design__blob--orange {
      top: -4.688vw; /* -90 / 1920 */
      left: -14.583vw; /* -280 / 1920 */
      width: 33.49vw; /* 643 / 1920 */
    }
  }
}

/* ========================================
  @media screen and (max-width: 767px)
======================================== */
@media screen and (max-width: 767px) {
  #menu {

    /* ページ内リンクのアンカー */
    .c-anchor {
      padding-top: 9.7vw;
      margin-top: -9.7vw;
    }

    .main-title-box {
      margin-bottom: 4.3vw;
    }

    /*
      共通blob（SP）
      色: 01黄 / 02青 / 03緑 / 04橙 / 05桃
      使えるものは位置だけ上書き。不要は none。
      ※05桃は共通を使わず、必要ならページ専用で補う。
    -------------------------------------*/
    & main.has-ais-common-blob .ais-common-blob--01.sp {
      top: -1vw;
      right: calc(-0.333vw - 0.3vw);
      width: 41.2vw;
    }
    & main.has-ais-common-blob .ais-common-blob--02.sp {
      top: 123vw;
    }
    & main.has-ais-common-blob .ais-common-blob--03.sp {
      top: 373vw;
    }
    & main.has-ais-common-blob .ais-common-blob--04.sp {
      top: 591vw;
    }
    & main.has-ais-common-blob .ais-common-blob--05.sp {
      display: none !important;
    }

    /* 共通パーツ
    -------------------------------------*/
    .c-section-title {
      display: flex;
      justify-content: center;
      align-items: center;
      gap: 2.7vw;
      margin-bottom: 6.3vw;
      font-size: 4.8vw;
      font-weight: 500;
      line-height: calc(30.8 / 20);
      letter-spacing: 0.1em;
    }
    .c-section-title img {
      display: block;
      width: 9.7vw;
      height: auto;
    }


    /* メディアブロック（共通）
    -------------------------------------*/
    .c-media {
      display: flex;
      flex-direction: column-reverse;
      justify-content: center;
      align-items: center;
      gap: 0;
      width: 100%;
      padding-inline: 8.9vw;
    }
    /* .c-media--reverse {
      flex-direction: column;
    } */
    .c-media__text-area {
      margin-top: -4.3vw;
    }
    .c-media__ttl {
      width: max-content;
      margin-bottom: 6.3vw;
      font-size: 4.8vw;
      font-weight: 700;
      line-height: 1;
      letter-spacing: 0.1em;
    }
    .c-media__ttl span {
      display: inline-block;
      margin-bottom: 1.4vw;
      padding: 1.4vw;
      background-color: #fff;
    }
    .c-media__ttl .em {
      margin: 0;
      padding: 0;
      color: #ED6C00;
    }
    .c-media__desc-wrap {
      display: flex;
      flex-direction: column;
      gap: 7.1vw;
      width: 100%;
    }
    .c-media__desc {
      font-size: 3.9vw;
      font-weight: 400;
      line-height: calc(30 / 16);
      letter-spacing: 0;
      line-break: strict;
      text-wrap: pretty;
      color: #000;
    }
    .c-media__desc span {
      font-size: 4.8vw;
      font-weight: 700;
      line-height: calc(30 / 20);
      color: #ED6C00;
    }
    .c-media__image-area {
      flex-shrink: 0;
      width: 100%;
    }
    .c-media__image-area img {
      display: block;
      width: 100%;
      height: auto;
    }

    /* ais-mv__nav（トップ流用／通常フロー配置）
    -------------------------------------*/
    .ais-mv__nav {
      position: relative;
      left: auto;
      bottom: auto;
      transform: none;
      width: min(95%, 82.13vw);
      margin-inline: auto;
      border-radius: 4.83vw;
      background: linear-gradient(95deg, #FDAC30 1.75%, #AECB85 100%);
      padding-block: 11.11vw;
      z-index: 2;
    }
    .ais-mv__nav::before {
      position: absolute;
      content: "";
      border-radius: 3.86vw;
      border: 0.2vw solid #FFF;
      inset: 2.90vw;
      pointer-events: none;
    }
    .ais-mv__nav-ttl {
      color: #FFF;
      text-align: center;
      font-size: 5.797vw;
      font-weight: 500;
      line-height: 1.5;
      letter-spacing: 0.08em;
      margin-bottom: 3.86vw;
    }
    .ais-mv__nav-list {
      display: grid;
      gap: 3.86vw;
      position: relative;
      margin: 0;
      padding: 0;
      list-style: none;
    }
    .ais-mv__nav-item {
      display: flex;
      width: 65.70vw;
      height: 17.39vw;
      padding: 5.80vw;
      gap: 1.72vw;
      border-radius: 38.65vw;
      background: #FFF;
      box-shadow: 0 0.8vw 3.1vw 0 rgba(61, 61, 61, 0.20);
      transition: opacity 0.2s ease, transform 0.2s ease;
      align-items: center;
      position: relative;
      margin-inline: auto;
      color: inherit;
      text-decoration: none;
    }
    .ais-mv__nav-item::after {
      content: "";
      position: absolute;
      top: 50%;
      right: 2.90vw;
      transform: translateY(-50%) rotate(90deg);
      background: url(../images/common/btn-arrow-b.svg) no-repeat center center / contain;
      width: 5.31vw;
      height: 5.31vw;
    }
    .ais-mv__nav-item:hover {
      opacity: 0.88;
      text-decoration: none;
      transform: translateY(-0.2vw);
    }
    .ais-mv__nav-icon {
      display: block;
      width: 5.80vw;
      height: 5.80vw;
      line-height: 0;
      flex-shrink: 0;
    }
    .ais-mv__nav-icon img {
      display: block;
      width: 100%;
      height: auto;
    }
    .ais-mv__nav-txt {
      text-align: center;
      font-size: 3.865vw;
      font-weight: 500;
      line-height: 1.1;
      letter-spacing: 0.1em;
    }

    /* homepage
    -------------------------------------*/
    .homepage {
      position: relative;
      margin-top: -104.8vw;
    }
    .homepage__bg-wave {
      position: relative;
      z-index: 0; /* blob より背面 */
      line-height: 0;
    }
    .homepage__bg-wave img {
      display: block;
      width: 100%;
      height: auto;
    }
    .homepage__body {
      position: relative;
      background: #FFE6B7;
      margin-top: -0.2vw; /* 波との隙間防止 */
      padding-bottom: 48.1vw;
      padding-top: 101.4vw;
    }

    .homepage__ttl {
      margin-top: 2.4vw;
    }

    .homepage__media-wrap {
      position: relative;
      /* 先頭の z-index:2 を活かし、共通blob（z-index:1）より前面に */
      display: flex;
      flex-direction: column;
      gap: 12.1vw;
      margin-bottom: 13.8vw;
    }
    .homepage__media {
      position: relative;
      z-index: 1; /* ページ専用blob（z-index:-1）より前面 */
    }

    /* ページ専用blob（SP）：共通で足りない分だけ */
    .homepage__blob,
    .maintenance__blob,
    .design__blob {
      position: absolute;
      z-index: -1;
      line-height: 0;
      pointer-events: none;
    }
    .homepage__blob svg,
    .maintenance__blob svg,
    .design__blob svg {
      display: block;
      width: 100%;
      height: auto;
    }
    /* 橙：1枚目メディア左〜背面（仮位置・カンプ見て調整） */
    .homepage__blob--orange {
      top: 0;
      left: -40vw;
      width: 90vw;
      aspect-ratio: 643 / 557;
    }

    .homepage__works-block {
      position: relative;
    }
    .homepage__works-list,
    .homepage__works-btn-list {
      position: relative;
      z-index: 1; /* 青blobより前面 */
    }
    /* 青：実績ボタン右（仮位置・カンプ見て調整） */
    .homepage__blob--blue {
      top: auto;
      right: 0;
      bottom: -28vw;
      left: auto;
      width: 56vw;
    }

    .homepage__works-list {
      display: grid;
      grid-template-columns: minmax(0, 1fr);
      gap: 7.2vw;
      width: 100%;
      margin-bottom: 9.7vw;
      padding-inline: 8.9vw;
    }
    .homepage__works-item {
      display: flex;
      flex-direction: column;
      gap: 4.8vw;
      min-width: 0;
    }
    .homepage__works-link {
      display: flex;
      flex-direction: column;
      gap: 4.8vw;
      min-width: 0;
      color: inherit;
      text-decoration: none;
    }
    .homepage__works-link:hover {
      text-decoration: none;
      opacity: 0.85;
    }
    .homepage__works-image {
      width: 100%;
      height: auto;
      aspect-ratio: 340 / 224;
    }
    .homepage__works-image img {
      display: block;
      width: 100%;
      height: 100%;
      object-fit: cover;
    }
    .homepage__works-ttl {
      font-size: 4.1vw;
      font-weight: 500;
      line-height: calc(34 / 17);
      letter-spacing: 0.1em;
    }

    .homepage__works-btn-list {
      display: flex;
      flex-direction: column;
      justify-content: center;
      gap: 4.8vw;
      width: 100%;
      padding-inline: 8.9vw;
    }
    .homepage__works-btn-link {
      position: relative;
      display: flex;
      justify-content: center;
      align-items: center;
      width: 100%;
      padding-block: 4.8vw;
      font-size: 3.4vw;
      font-weight: 500;
      line-height: calc(22 / 14);
      letter-spacing: 0.1em;
      border-radius: 999px;
      filter: drop-shadow(0 1.3vw 2.7vw rgba(61, 61, 61, 0.14));
    }
    .homepage__works-btn-link span {
      font-size: 4.3vw;
      line-height: 1;
    }
    .homepage__works-btn-link--works {
      background-color: #FFF;
    }
    .homepage__works-btn-link--flow {
      color: #FFF;
      background-color: #72C6C8;
    }
    .homepage__works-btn-link::after {
      content: "";
      position: absolute;
      top: 50%;
      right: 10.9vw;
      transform: translateY(-50%);
      width: 4.6vw;
      height: auto;
      aspect-ratio: 1 / 1;
    }
    .homepage__works-btn-link--works::after {
      background: url(../images/menu/btn-arrow-black.svg) no-repeat center center / contain;
    }
    .homepage__works-btn-link--flow::after {
      background: url(../images/menu/btn-arrow-white.svg) no-repeat center center / contain;
    }


    /* maintenance
    -------------------------------------*/
    .maintenance {
      position: relative;
      margin-top: -33.8vw;
    }
    .maintenance__bg-wave {
      position: relative;
      z-index: 0; /* またぎblob より背面（background層） */
      line-height: 0;
    }
    .maintenance__bg-wave img {
      display: block;
      width: 100%;
      height: auto;
    }
    .maintenance__bg-wave--btm {
      position: relative;
      z-index: 1;
      margin-top: 0;
    }
    .maintenance__body {
      position: relative;
      margin-top: -0.2vw;
      padding-top: 4.8vw;
      padding-bottom: 2.9vw;
      background: #FFEFCD;
    }
    .maintenance__btn-wrap {
      position: relative;
      z-index: 2; /* 下波より前面 */
    }
    .maintenance__ttl {
      margin-bottom: 7.5vw;
    }
    .maintenance__lead {
      margin-left: 3vw;
      margin-bottom: 4.3vw;
      font-size: 4.8vw;
      font-weight: 500;
      line-height: calc(38 / 20);
      letter-spacing: 0;
      text-align: center;
      color: #000;
    }
    .maintenance__list-block {
      position: relative;
      width: 100%;
      padding-inline: 4.1vw;
      margin-bottom: 7.5vw;
    }
    .maintenance__list-wrap {
      position: relative;
      z-index: 1;
      padding-block: 7.2vw;
      padding-inline: 4.9vw;
      box-sizing: border-box;
      overflow: visible; /* 緑blobが下メッセージ側にはみ出すため */
      isolation: isolate; /* 白 / blob / リストの層を閉じ込める */
    }
    /* 白背景を疑似要素に分離 → 白 < 緑blob < リスト */
    .maintenance__list-wrap::before {
      content: "";
      position: absolute;
      inset: 0;
      z-index: 0;
      background-color: #fff;
      pointer-events: none;
    }
    /* 緑：白(::before:0) < 緑(1) < リスト(2) */
    .maintenance__blob--green {
      left: -9vw;
      bottom: -33vw;
      width: 49vw;
      aspect-ratio: 227 / 332;
    }
    .maintenance__list-deco {
      position: absolute;
      z-index: 2; /* 白枠・blob より前面 */
      line-height: 0;
      pointer-events: none;
    }
    .maintenance__list-deco img {
      display: block;
      width: 100%;
      height: auto;
    }
    /* 女性：リスト箱の上辺・左端基準 */
    .maintenance__list-deco--top {
      left: 12.3vw;
      bottom: 100%;
      width: 16.4vw;
    }
    /* 男性：リスト箱の右下基準 */
    .maintenance__list-deco--btm {
      right: 8.9vw;
      bottom: 100%;
      width: 18.1vw;
    }

    .maintenance__list {
      position: relative;
      z-index: 2; /* 緑blobより前面 */
      display: flex;
      flex-direction: column;
      gap: 3.1vw;
      margin: 0;
      padding: 0;
      list-style: none;
    }
    .maintenance__item {
      position: relative;
      display: flex;
      align-items: center;
      gap: 2.4vw;
      padding-left: 0;
      padding-bottom: 3.4vw;
      font-size: 3.4vw;
      font-weight: 500;
      line-height: calc(22 / 14);
      letter-spacing: 0;
      color: #000;
      border-bottom: 1px solid #D6D3D3;
    }

    .maintenance__item::before {
      content: "";
      flex-shrink: 0;
      width: 4.8vw;
      height: auto;
      aspect-ratio: 1 / 1;
      background: url(../images/menu/maintenance-list-icon.svg) no-repeat center center / contain;
    }
    .maintenance__list-btm-msg {
      position: relative;
      z-index: 1; /* はみ出した緑blobより前面 */
      margin-left: 3vw;
      margin-bottom: 14.5vw;
      font-size: 4.3vw;
      font-weight: 500;
      line-height: calc(32 / 18);
      letter-spacing: 0;
      text-align: center;
      color: #000;
    }    
    .maintenance__media {
      margin-bottom: 9.7vw;
    }
    .maintenance__media-image-area {
      position: relative;
      z-index: 0; /* 桃blob（z-index:-1）を写真エリアに閉じ込める */
    }
    .maintenance__media-text-area {
      position: relative;
      z-index: 1; /* はみ出したblobより前面 */
    }
    .maintenance__media-image-area picture {
      position: relative;
      z-index: 1; /* 桃blobより前面 */
      display: block;
    }
    /* 桃：写真右下（仮位置・カンプ見て調整） */
    .maintenance__blob--pink {
      top: auto;
      right: -9vw;
      bottom: -21vw;
      left: auto;
      width: 42vw;
      aspect-ratio: 199 / 287;
    }
    .maintenance__media-desc span {
      font-size: 4.3vw;
    }
    .c-btn-wrap {
      display: flex;
      justify-content: center;
      align-items: center;
      gap: 1.4vw;
      width: 100%;
      padding-inline: 8.9vw;
    }
    .c-btn-wrap .c-btn {
      display: block;
      width: 100%;
      font-size: 4.3vw;
      font-weight: 700;
      line-height: calc(40 / 18);
      letter-spacing: 0.02em;
      color: #fff;
      text-align: center;
      padding-block: 8.5vw;
      background-color: #ED6C00;
      border-radius: 2.4vw;
    }
    .c-btn-wrap .c-btn img {
      width: 9.7vw;
      height: auto;
    }


    /* design
    -------------------------------------*/
    .design {
      position: relative;
    }
    .design__body {
      position: relative;
      background-color: #FEE8B8;
      margin-top: -7.2vw;
      padding-top: 22.5vw;
      padding-bottom: 3.1vw;
    }
    .design__btn-wrap {
      position: relative;
      z-index: 2; /* 下波より前面 */
    }
    .design__btn-wrap .c-btn {
      position: relative;
      z-index: 1; /* 緑blobより前面 */
    }
    .design__blob--green {
      top: 2vw;
      right: 0vw;
      bottom: auto;
      left: auto;
      width: 47vw;
      aspect-ratio: 227 / 332;
      transform: translateY(-50%);
    }
    .design__ttl {
      font-size: 4.3vw;
      margin-bottom: 7.2vw;
    }

    .design__media {
      margin-bottom: 14.5vw;
    }
    .design__media-image-area {
      position: relative;
      z-index: 0; /* blob（z-index:-1）を写真エリアに閉じ込める */
    }
    .design__media-text-area {
      position: relative;
      z-index: 1;
    }
    .design__media-image-area picture {
      position: relative;
      z-index: 1; /* blobより前面 */
      display: block;
    }
    /* 青：写真左（仮位置・カンプ見て調整） */
    .design__blob--blue {
      top: -17vw;
      left: -10vw;
      right: auto;
      bottom: auto;
      width: 57vw;
      aspect-ratio: 228 / 381;
    }
    .design__media-desc span {
      font-size: 4.3vw;
    }

    .design__brochure {
      display: block;
      margin-bottom: 9.7vw;
      padding-inline: 8.9vw;
    }
    .design__brochure img {
      display: block;
      width: 100%;
      height: auto;
    }

    /* 下部の動く波 */
    /* design 下部の動く波 */
    .design__wave {
      position: relative;
      z-index: 1;
      width: 100%;
      margin-top: 0;
      line-height: 0;
      overflow: hidden;
      pointer-events: none;
    }
    .design__wave-svg {
      display: block;
      width: 100%;
      height: auto;
    }
    .design__wave-static {
      display: none;
      width: 100%;
      height: auto;
    }
    @media (prefers-reduced-motion: reduce) {
      .design__wave-svg--motion {
        display: none;
      }
      .design__wave-static {
        display: block;
      }
    }


    /* end-cnt
    -------------------------------------*/
    .end-cnt__inner {
      padding-top: 14vw;
      padding-bottom: 36.2vw;
    }
    .end-cnt__links {
      display: flex;
      flex-direction: column;
      justify-content: center;
      align-items: flex-end;
      gap: 3.6vw; /* 既存SP優先 */
      padding-inline: 4.1vw; /* 既存SP優先 */
    }
    .end-cnt__card {
      width: 100%; /* 既存SP優先 */
      height: auto;
    }
    .end-cnt__card img {
      display: block;
      width: 100%;
      height: auto;
    }
  }
}
