@layer pages {

   /* ===== common ===== */
   .search-container {
      width: 90%;
      max-width: 1240px;
      margin: 0 auto;
   }

   /* ===== FV ===== */
   .search-fv {
      background: #E9EDF5;
      padding: 75px 0;
      margin-top: 80px;
   }

   .search-fv__ttlbox {
      width: fit-content;
      margin: 0 auto;
      padding: 35px;
      border: 1px solid var(--color-navy);
      background: #fff;
   }

   .search-fv__ttl {
      text-align: center;
      font-weight: var(--font-weight-normal);
      font-size: 3rem;
      line-height: 1.4;
      margin: 0;
   }

   @media screen and (max-width: 768px) {
      .search-fv {
         margin-top: 60px;
      }

      .search-fv__ttlbox {
         padding: 25px;
      }

      .search-fv__ttl {
         font-size: 2rem;
      }
   }

   /* ===== リード ===== */
   .search-lead {
      text-align: center;
      font-size: 2rem;
      margin: 80px 0;

      p {
         line-height: 1.5;
         margin-bottom: 0;
      }
   }

   @media screen and (max-width: 768px) {
      .search-lead {
         font-size: 1.6rem;
         margin: 50px 0;
      }
   }

   /* ===== card ===== */
   .search-grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
      border-top: 1px solid var(--color-text);
      border-left: 1px solid var(--color-text);
      margin-bottom: 150px;
   }

   .search-card {
      color: var(--color-text);
      background: #E9EDF5;
      gap: 20px;
      padding: 32px;
      text-align: center;
      border-bottom: 1px solid var(--color-text);
      border-right: 1px solid var(--color-text);
      transition: 0.2s ease;

      &:hover,
      &.is-active {
         background: #fff;

         .search-card__words {
            background: #E9EDF5;
         }

         .search-card__words::after {
            background: url("/assets/img/pages/search/arrow-wh.png") no-repeat center/contain;
         }
      }
   }

   .search-card__words {
      display: flex;
      flex-direction: column;
      justify-content: space-between;
      align-items: center;
      padding: 20px;
      margin: 0;
      font-size: 1.5rem;
      line-height: 1.7;
      letter-spacing: .05em;
      background: #fff;
      width: 100%;
      aspect-ratio: 1/1;
      border-radius: 50%;
      transition: 0.2s ease;

      &::after {
         content: "";
         display: inline-block;
         background: url("/assets/img/pages/search/arrow.png") no-repeat center/contain;
         width: 45px;
         aspect-ratio: 1/1;
         transition: 0.2s ease;
      }
   }

   .search-card__word {
      flex: 1;
      align-content: center;
   }

   @media (max-width: 768px) {
      .search-grid {
         grid-template-columns: repeat(2, 1fr);
         margin-bottom: 100px;
      }

      .search-card {
         padding: 18px;
      }

      .search-card__words {
         padding: 10px;
         line-height: 1.4;
         font-size: 1.3rem;

         &::after {
            width: 30px;
         }
      }


   }


   /* ===== モーダル ===== */
   .search-modal {
      position: fixed;
      inset: 0;
      z-index: 200;
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 5%;
      opacity: 0;
      visibility: hidden;
      transition: opacity 0.3s ease, visibility 0.3s ease;

      &.is-open {
         opacity: 1;
         visibility: visible;
      }
   }

   /* 閉じるボタン */
   .search-modal__close {
      width: 40px;
      height: 40px;
      position: absolute;
      top: 0;
      right: 0;
      transform: translateY(-120%);
      z-index: 10;
      transition: .2s;

      &::before,
      &::after {
         content: "";
         width: 100%;
         height: 2px;
         background: var(--color-text);
         position: absolute;
         top: 50%;
         left: 50%;
      }

      &::before {
         transform: translate(-50%, -50%) rotate(45deg);
      }

      &::after {
         transform: translate(-50%, -50%) rotate(-45deg);
      }

      &:hover {
         opacity: 0.6;
         transform: translateY(-120%) rotate(90deg);
      }
   }

   /* オーバーレイ */
   .search-modal__overlay {
      position: absolute;
      inset: 0;
      background: rgba(20, 24, 40, 0.6);
      cursor: pointer;
   }


   /* モーダル中身 */
   .search-modal__body {
      padding: 0 40px;
   }

   .search-modal__panel {
      width: 100%;
      max-width: 1100px;
      background: #fff;
      position: relative;
      transform: translateY(12px);
      transition: transform 0.3s ease;

   }

   .search-modal.is-open .search-modal__panel {
      transform: translateY(0);
   }

   .search-modal__ttl {
      text-align: center;
      font-size: 2.6rem;
      padding-bottom: 25px;
      margin-bottom: 50px;
      border-bottom: 1px solid var(--color-navy);
   }

   .search-modal__scroll {
      padding: 40px 20px 70px;
      max-height: 85vh;
      overflow-y: auto;
   }

   @media screen and (max-width: 768px) {

      .search-modal__scroll {
         padding: 40px 20px;
      }

      .search-modal__pair {
         grid-template-columns: 1fr;
      }

      .search-modal__pair-arrow {
         transform: rotate(90deg);
      }

      .search-modal__ttl {
         font-size: 2.2rem;
         margin-bottom: 30px;
      }
   }

   /* ===== 学科説明カード ===== */
   .dept-grid {
      display: flex;
      flex-wrap: wrap;
      gap: 20px;
      background: #fff;

      &.is-single {
         justify-content: center;
      }
   }

   .dept-card {
      width: calc(50% - 10px);
      background: #fff;
      padding: 4px;
      border: 1px solid #EBE4F0;
      padding: 20px 30px;
      transition: 0.3s;
      position: relative;

      &.is-hidden {
         display: none;
      }

      &::before {
         content: "";
         border-left: 6px solid var(--dept-color, #ccc);
         position: absolute;
         top: 4px;
         left: 4px;
         bottom: 4px;
      }

      &:hover {
         opacity: .7;

         .dept-card__txt::after {
            transform: translateX(8px);
         }
      }
   }

   .dept-card__link {
      color: var(--color-text);
   }

   .dept-card__cat {
      font-size: 1.8rem;
      font-weight: var(--font-weight-semibold);
      color: var(--color-navy);
      line-height: 1.4;
      margin: 0;
   }

   .dept-card__txt {
      font-size: 1.4rem;
      line-height: 1.6;
      margin: 0;
      display: flex;
      align-items: flex-end;
      gap: 25px;
      margin-top: 10px;

      &::after {
         content: "";
         display: block;
         background: url("/assets/img/pages/search/panel-arrow.png") no-repeat center/contain;
         aspect-ratio: 107/15;
         width: 70px;
         flex-shrink: 0;
         transition: .3s;
      }
   }

   /* グループカラー */
   .dept-card[data-color="bungaku"] {
      --dept-color: var(--color-bungaku);
   }

   .dept-card[data-color="kyouiku"] {
      --dept-color: var(--color-f28476);
   }

   .dept-card[data-color="shinri"] {
      --dept-color: var(--color-shinri);
   }

   .dept-card[data-color="genbi"] {
      --dept-color: var(--color-genbi);
   }

   .dept-card[data-color="kasei"] {
      --dept-color: var(--color-kasei);
   }

   .dept-card[data-color="kyouiku"] {
      --dept-color: var(--color-kyouiku);
   }

   .dept-card[data-color="kango"] {
      --dept-color: var(--color-kango);
   }

   .dept-card[data-color="rikou"] {
      --dept-color: var(--color-rikou);
   }

   .dept-card[data-color="yakugaku"] {
      --dept-color: var(--color-yakugaku);
   }

   /* 選択状態（画像の青枠） */
   .dept-card.is-active {
      border: 2px solid #2b6fd6;
      border-left-width: 4px;
   }

   @media screen and (max-width: 768px) {
      .search-modal__body {
         padding: 0;
      }

      .dept-card__txt {
         flex-direction: column;
      }

      .dept-card__cat {
         font-size: 1.6rem;
      }

   }
}