/* ===================================
   SERVICE（事業案内）TOPページ
=================================== */

/* ページ基本設定 */
#business {
   position: relative;
   background: #f0f0f0;
}

#business .page-header {
   padding-bottom: 5em;
}

#business h2 {
   font-size: 2.2em;
   font-weight: 700;
   letter-spacing: 0.15em;
}

/* ===================================
   事業リスト（ボタン）
=================================== */
#business .business-list {
   width: fit-content;
   margin-top: clamp(20em, 47vw, 40em);
   position: relative;
   display: flex;
   flex-direction: column;
   gap: 3em;
   z-index: 5;
}

#business .business-list button {
   color: var(--color-blue);
   font-size: 1.3em;
   font-weight: 600;
   display: inline-flex;
   align-items: center;
   gap: 0.5em;
   background: transparent;
   border: none;
   cursor: pointer;
   transition: var(--transition);
}

#business .business-list button.active,
#business .business-list button:hover {
   color: var(--color-orange);
}

#business .business-list button::before {
   content: "";
   width: 1.2em;
   aspect-ratio: 1/1;
   border: 0.3em solid var(--color-blue);
   border-radius: 50%;
   transition: var(--transition);
}

#business .business-list button::after {
   content: "";
   width: 0.7em;
   aspect-ratio: 1/1;
   border-top: 0.15em solid var(--color-blue);
   border-right: 0.15em solid var(--color-blue);
   transform: rotate(45deg);
   transition: var(--transition);
}

#business .business-list button.active::before,
#business .business-list button:hover::before,
#business .business-list button.active::after,
#business .business-list button:hover::after {
   border-color: var(--color-orange);
}

/* ===================================
   ホバーアイテム（イラスト背景エリア）
=================================== */
.business-inner {
   position: absolute;
   top: 15%;
   right: 0;
   width: 95%;
   max-width: 1850px;
   height: 100%;
}

.business-inner::after {
   content: "";
   position: absolute;
   top: -20em;
   right: 0;
   width: 95%;
   max-width: 1850px;
   height: 100%;
   background: url(../_img/illust_city_line_gray.webp) top left / 130% no-repeat;
   pointer-events: none;
   opacity: 0.5;
}

/* ===================================
   カードアイテム
=================================== */
.business-item {
   position: absolute;
   display: flex;
   flex-direction: column;
   align-items: center;
   gap: 2.5em;
   z-index: 2;
}

/* 丸いホバーターゲット */
.business-circle {
   display: block;
   width: 3.8em;
   aspect-ratio: 1/1;
   border-radius: 50%;
   border: 1em solid var(--color-blue);
   opacity: 0.8;
   cursor: pointer;
   transition: var(--transition);
}

.business-item.active .business-circle {
   transform: scale(1.15);
   border-color: var(--color-orange);
}

/* カード配置（デフォルト） */
.business-item[data-business-item="01"] {
   top: 11%;
   left: 36%;
}

.business-item[data-business-item="02"] {
   top: 6%;
   left: 70%;
}

.business-item[data-business-item="03"] {
   top: 23%;
   left: 55%;
}

.business-item[data-business-item="04"] {
   top: 29%;
   left: 25%;
}

.business-item[data-business-item="05"] {
   top: 29%;
   left: 79%;
}

.business-item[data-business-item="06"] {
   top: 43%;
   left: 50%;
}

/* カード本体 */
.business-item div {
   margin-top: -1.6em;  /* 三角形分を上に引き上げ */
   position: relative;
   background: rgba(255, 255, 255, 0.9);
   padding: 2em 2.5em;
   padding-top: calc(2em + 1.6em);  /* 元のpadding + 三角形の高さ */
   min-width: 25em;
   text-align-last: left;
   opacity: 0;
   visibility: hidden;
   transform: scale(0.8);
   transition: var(--transition);
   clip-path: polygon(
      0% 1.6em,
      calc(50% - 1.2em) 1.6em,
      50% 0%,
      calc(50% + 1.2em) 1.6em,
      100% 1.6em,
      100% 100%,
      0% 100%
   );
}

.business-item.active div {
   opacity: 1;
   visibility: visible;
   transform: scale(1);
}

/* カード内コンテンツ */
.business-item div ul {
   margin-top: 0.8em;
}

.business-item div li {
   line-height: 1.6;
}

.business-item div h3 {
   font-size: 1.5em;
   font-weight: 700;
}

.business-item div a {
   border: none !important;
   font-size: 1.2em;
   font-weight: 500;
}

#business .business-item a:hover {
   color: var(--color-blue);
}

#business .business-item .arrow-link:hover::after {
   background: url(../_img/icon/arrow_blue.svg) right center / contain no-repeat;
}

/* 外部リンク */
.outer-link {
   padding: 5px 0;
   margin: auto 0;
   display: flex;
   align-items: center;
   gap: 20px;
   border-radius: 0;
   letter-spacing: 0;
   background: none;
}

.outer-link::after {
   content: '';
   width: 1.2em;
   aspect-ratio: 1;
   background: url(../_img/icon/new_tab_black.svg) right center / contain no-repeat;
   transition: var(--transition);
   translate: -5px 0;
}

.outer-link:hover::after {
   background: url(../_img/icon/new_tab_blue.svg) right center / contain no-repeat;
}

/* ===================================
   レスポンシブ
=================================== */

/* 1500px以下 */
@media (max-width: 1500px) {

   .business-inner,
   .business-inner::after {
      width: 100%;
   }
}

/* 1280px以下 */
@media (max-width: 1280px) {
   .business-inner {
      top: 27%;
   }

   .business-inner::after {
      background-size: 150%;
      background-position: top left 20%;
   }

   .business-item[data-business-item="01"] {
      top: 7%;
      left: 22%;
   }

   .business-item[data-business-item="02"] {
      top: 2%;
      left: 62%;
   }

   .business-item[data-business-item="03"] {
      top: 16%;
      left: 43%;
   }

   .business-item[data-business-item="04"] {
      top: 27%;
      left: 15%;
   }

   .business-item[data-business-item="05"] {
      left: 70%;
   }

   .business-item[data-business-item="06"] {
      top: 45%;
      left: 48%;
   }

   #business .business-list {
      margin-top: clamp(40em, 60vw, 55em);
   }
}

/* 920px以下（タブレット） */
@media (max-width: 920px) {
   #business .business-list {
      margin-top: 4em;
   }

   .business-inner {
      position: relative;
      top: -20em;
      height: 170vw;
      margin-bottom: -20em;
   }

   .business-inner::after {
      top: 0;
      background-size: 250%;
      background-position: top left 50%;
   }

   .business-item[data-business-item="01"] {
      top: 22%;
      left: 10%;
   }

   .business-item[data-business-item="02"] {
      top: 20%;
      left: inherit;
      right: 10%;
   }

   .business-item[data-business-item="03"] {
      top: 30%;
      left: 31%;
   }

   .business-item[data-business-item="04"] {
      top: 53%;
      left: 5%;
   }

   .business-item[data-business-item="05"] {
      top: 46%;
      left: inherit;
      right: 2%;
   }

   .business-item[data-business-item="06"] {
      top: 68%;
      left: 30%;
   }
}

/* 720px以下 */
@media (max-width: 720px) {
   .business-inner {
      height: 190vw;
   }

   .business-inner::after {
      background-size: 280%;
   }

   .business-item[data-business-item="01"] {
      top: 16%;
      left: 7%;
   }

   .business-item[data-business-item="02"] {
      top: 20%;
      left: 54%;
   }

   .business-item[data-business-item="03"] {
      left: 26%;
   }

   .business-item div {
      min-width: 22em;
   }
}

/* 620px以下 */
@media (max-width: 620px) {
   .business-item {
      gap: clamp(1.2em, 4vw, 1.8em);
   }

   .business-circle {
      width: 2.4em;
      border-width: 0.6em;
   }

   .business-item div {
      margin-top: clamp(-1.2em, -2.4vw, -0.8em);
      padding: clamp(1em, 3vw, 1.5em) clamp(1.2em, 4vw, 2em);
      padding-top: calc(clamp(1em, 3vw, 1.5em) + clamp(0.8em, 2.4vw, 1.2em));
      min-width: clamp(15em, 43vw, 20em);
      clip-path: polygon(
         0% clamp(0.8em, 2.4vw, 1.2em),
         calc(50% - clamp(0.6em, 1.8vw, 0.9em)) clamp(0.8em, 2.4vw, 1.2em),
         50% 0%,
         calc(50% + clamp(0.6em, 1.8vw, 0.9em)) clamp(0.8em, 2.4vw, 1.2em),
         100% clamp(0.8em, 2.4vw, 1.2em),
         100% 100%,
         0% 100%
      );
   }

   .business-item div h3 {
      font-size: clamp(1em, 3vw, 1.3em);
   }

   .business-item div a {
      font-size: clamp(0.9em, 2.5vw, 1.1em);
   }

   .outer-link {
      gap: clamp(10px, 3vw, 15px);
   }

   .outer-link::after {
      width: clamp(0.8em, 2vw, 1em);
   }

   .business-item[data-business-item="01"] {
      top: 18%;
      left: 6%;
   }

   .business-item[data-business-item="02"] {
      top: 20%;
      left: 54%;
   }

   .business-item[data-business-item="03"] {
      top: 30%;
      left: 28%;
   }

   .business-item[data-business-item="04"] {
      top: 45%;
      left: 2%;
   }

   .business-item[data-business-item="05"] {
      top: 50%;
      left: inherit;
      right: 2%;
   }

   .business-item[data-business-item="06"] {
      top: 62%;
      left: 25%;
   }
}

/* 520px以下（スマホ） */
@media (max-width: 520px) {
   #business .business-list {
      gap: 1em;
   }

   #business .business-list button {
      font-size: 1.1em;
   }

   .business-inner {
      top: -13em;
      margin-bottom: -13em;
   }
   .business-item {
      gap: clamp(1.2em, 5vw, 2.5em);
   }

   .business-item div {
      margin-top: -1.2em;
      padding-top: calc(clamp(1em, 3vw, 1.5em) + 1.2em);
      clip-path: polygon(
         0% 1.2em,
         calc(50% - 0.9em) 1.2em,
         50% 0%,
         calc(50% + 0.9em) 1.2em,
         100% 1.2em,
         100% 100%,
         0% 100%
      );
   }

   .business-item div a {
      padding: 1px 0;
   }

   .business-item div ul {
      margin-top: 0.5em;
   }

   .business-item[data-business-item="01"] {
      top: 18%;
      left: 4%;
   }

   .business-item[data-business-item="02"] {
      top: 16%;
      right: 4%;
   }

   .business-item[data-business-item="03"] {
      top: 35%;
      left: 25%;
   }

   .business-item[data-business-item="04"] {
      top: 55%;
      left: 2%;
   }

   .business-item[data-business-item="05"] {
      top: 56%;
      left: inherit;
      right: 2%;
   }

   .business-item[data-business-item="06"] {
      top: 72%;
      left: 25%;
   }
}

/* 420px以下 */
@media (max-width: 420px) {
   .business-inner {
      height: 210vw;
   }

   .business-inner::after {
      background-size: 300%;
   }
}

/* 375px以下 */
@media (max-width: 375px) {
   .business-inner::after {
      background-size: 320%;
   }
}