@charset "UTF-8";
   
   /* --- 共通コンポーネント --- */
    .serviceCategoryHead {
      text-align: center;
      margin-bottom: 4rem;
    }
    @media (width >= 769px) {
      .serviceCategoryHead { margin-bottom: 6rem; }
    }

    .serviceCategoryEn {
      font-family: "Outfit", sans-serif;
      font-size: 1.4rem;
      font-weight: 700;
      color: #BEBEBE;
      display: block;
      letter-spacing: 0.1em;
      margin-bottom: 0.5rem;
    }

     /* FV下 */
 
    .serviceCategoryMv {
      padding-top: 4rem;
    }
    @media (width >= 769px) {
      .serviceCategoryMv { padding-top: 8rem; }
    }

    .serviceCategoryMvBox {
      background: var(--base-color);
      border-radius: 2rem;
      padding: 4rem 2.5rem;
      width: 100%;
    }
    @media (width >= 769px) {
      .serviceCategoryMvBox { padding: 8rem 5rem; }
    }

    .serviceCategoryMvLead {
      font-family: "Outfit", sans-serif;
      font-weight: 700;
      --min-size: 24; --max-size: 36;
      font-size: var(--clamp-size);
      line-height: 1.3;
      color: #333;
      margin-bottom: 2.4rem;
    }
    .serviceCategoryMvInner {
      display: flex;
      flex-direction: column;
      max-width: 82rem;
      margin-inline: auto;
    }

    .serviceCategoryMvDivider {
      width: 100%;
      height: 0.25rem;
      background: linear-gradient(
        to right,
        var(--main-color) 0,
        var(--main-color) 6rem,
        #e5e5e5 6rem,
        #e5e5e5 100%
      );
      border-radius: 999px;
      margin-bottom: 3rem;
    }

    .serviceCategoryMvText {
      font-size: 1.6rem;
      line-height: 1.8;
      color: #333;
    }
    @media (width >= 769px) {
      .serviceCategoryMvText { font-size: 1.7rem; line-height: 2.1; }
    }

   /* お悩み */
    .categorySceneSection {
      padding-top: 4rem;
      background-color: #FAFAFA;
    }
    @media (width >= 769px) {
      .categorySceneSection {
        padding-top: 10rem;
      }
    }

    .categorySceneList {
      display: flex;
      flex-direction: column;
      gap: 1.2rem;
      width: 100%;
      margin-inline: auto;
    }
    @media (width >= 769px) {
      .categorySceneList {
        gap: 1.6rem;
      }
    }

    .categorySceneItem {
      background: var(--base-color);
      border-radius: 1.2rem;
      padding: 2.2rem 2.4rem;
      display: flex;
      align-items: center;
      gap: 2rem;
    }
    @media (width >= 769px) {
      .categorySceneItem {
        padding: 3rem 4rem;
        gap: 3rem;
      }
    }

    .categorySceneItem::before {
      content: "";
      display: block;
      width: 0.8rem;
      height: 0.8rem;
      background: var(--main-color);
      border-radius: 50%;
      flex-shrink: 0;
    }
    @media (width >= 769px) {
      .categorySceneItem::before {
        width: 1.2rem;
        height: 1.2rem;
      }
    }

    .categorySceneItem p {
      font-size: 1.5rem;
      font-weight: 700;
      line-height: 1.6;
      color: #333;
      margin: 0;
      letter-spacing: 0.03em;
    }
    @media (width >= 769px) {
      .categorySceneItem p {
        font-size: 1.8rem;
      }
    }

  /* サービス一覧 */
    .categoryServiceListSection {
      padding-top: 4rem;
    }
    @media (width >= 769px) {
      .categoryServiceListSection { padding-top: 10rem; }
    }

    .categoryCardGrid {
      display: grid;
      grid-template-columns: 1fr;
      gap: 2rem;
    }
    @media (width >= 769px) {
      .categoryCardGrid {
        grid-template-columns: repeat(2, 1fr);
        gap: 3rem;
      }
    }

    .categoryCardItem {
      background: #fff;
      border: 1px solid #E3E3E3;
      border-radius: 2rem;
      padding: 3rem 2.4rem;
      display: flex;
      flex-direction: column;
      text-decoration: none;
      transition: border-color 0.3s ease;
    }
    @media (width >= 769px) {
      .categoryCardItem { padding: 4rem; }
    }

    @media (hover: hover) {
      .categoryCardItem:hover { border-color: var(--main-color); }
    }

    .categoryCardEn {
      font-family: "Outfit", sans-serif;
      font-size: 1.2rem;
      font-weight: 700;
      color: var(--main-color);
      text-transform: uppercase;
      letter-spacing: 0.12em;
      margin-bottom: 0.8rem;
    }

    .categoryCardTitle {
      font-size: 2rem;
      font-weight: 700;
      color: #333;
      margin-bottom: 1.5rem;
      line-height: 1.4;
    }
    @media (width >= 769px) {
      .categoryCardTitle { font-size: 2.2rem; }
    }

    .categoryCardText {
      font-size: 1.4rem;
      line-height: 1.7;
      color: #666;
      margin: 0;
    }
    @media (width >= 769px) {
      .categoryCardText { font-size: 1.5rem; }
    }

    /* --- 補足サービスエリア --- */
    .categoryExtraServiceWrap {
      padding-top: 6rem;
    }
    @media (width >= 769px) {
      .categoryExtraServiceWrap {
        padding-top: 10rem;
      }
    }

    .categoryExtraServiceLead {
      text-align: center;
      font-size: 1.6rem;
      font-weight: 700;
      line-height: 1.8;
      color: #333;
      padding-bottom: 3rem;
    }
    @media (width >= 769px) {
      .categoryExtraServiceLead {
        font-size: 1.8rem;
        padding-bottom: 5rem;
      }
    }

    .categorySubList {
      display: grid;
      grid-template-columns: 1fr;
      gap: 1.5rem;
      width: 100%;
      margin-inline: auto;
    }
    @media (width >= 769px) {
      .categorySubList {
        grid-template-columns: repeat(3, 1fr);
        gap: 2rem;
      }
    }

    .categorySubItem {
      background: #fff;
      border-radius: 2rem; 
      padding: 3rem 2.4rem;
      display: flex;
      flex-direction: column;
      border: none;
      cursor: default;
    }
    @media (width >= 769px) {
      .categorySubItem {
        padding: 4rem 3rem;
      }
    }

    .categorySubEn {
      font-family: "Outfit", sans-serif;
      font-size: 1.2rem;
      font-weight: 700;
      color: var(--main-color);
      text-transform: uppercase;
      letter-spacing: 0.12em;
      margin-bottom: 0.8rem;
    }

    .categorySubTitle {
      font-size: 1.8rem;
      font-weight: 700;
      color: #333;
      line-height: 1.4;
      padding-bottom: 1.2rem;
    }
    @media (width >= 769px) {
      .categorySubTitle {
        font-size: 2rem;
      }
    }

    .categorySubText {
      font-size: 1.4rem;
      line-height: 1.7;
      color: #666;
      margin: 0;
    }
    @media (width >= 769px) {
      .categorySubText {
        font-size: 1.5rem;
      }
    }

/* 進め方 */
    .categoryApproachSection {
      padding-top: 6rem;
    }
    @media (width >= 769px) {
      .categoryApproachSection {
        padding-top: 10rem;
      }
    }

    .categoryApproachBox {
      background: linear-gradient(135deg, #fff 0%, #f8f8f8 100%);
      border: 1px solid #E3E3E3;
      border-radius: 2rem;
      padding: 3rem 2.4rem;
    }
    @media (width >= 769px) {
      .categoryApproachBox {
        padding: 5rem 4rem;
      }
    }

    .categoryApproachLead {
      font-size: 1.8rem;
      font-weight: 700;
      line-height: 1.7;
      color: #333;
      margin: 0 0 1.6rem;
    }
    @media (width >= 769px) {
      .categoryApproachLead {
        font-size: 2.2rem;
        margin-bottom: 2rem;
      }
    }

    .categoryApproachText {
      font-size: 1.5rem;
      line-height: 1.9;
      color: #666;
      margin: 0;
    }
    @media (width >= 769px) {
      .categoryApproachText {
        font-size: 1.6rem;
      }
    }

    /* 強み */
    .categoryFeatureSection {
      padding-top: 6rem;
    }
    @media (width >= 769px) {
      .categoryFeatureSection {
        padding-top: 12rem;
      }
    }

    .categoryFeatureGrid {
      display: grid;
      grid-template-columns: 1fr;
      gap: 2rem;
    }
    @media (width >= 769px) {
      .categoryFeatureGrid {
        grid-template-columns: repeat(3, 1fr);
        gap: 3rem;
      }
    }

    .categoryFeatureItem {
      background: #fff;
      border: 1px solid #eee;
      border-top: 4px solid var(--main-color);
      border-radius: 2rem;
      padding: 3.5rem 2.5rem;
      display: flex;
      flex-direction: column;
      position: relative;
    }
    @media (width >= 769px) {
      .categoryFeatureItem {
        padding: 5rem 4rem;
      }
    }

    .categoryFeatureNum {
      font-family: "Outfit", sans-serif;
      font-size: 8rem;      
      font-weight: 800;
      color: var(--main-color);
      opacity: 0.08;        
      line-height: 1;
      position: absolute;
      top: .5rem;          
      left: 2.2rem;
      user-select: none;
      pointer-events: none;
      z-index: 0;
    }
    @media (width >= 769px) {
      .categoryFeatureNum {
        font-size: 11rem;
        top: 1.5rem;
        left: 3.5rem;
      }
    }

    .categoryFeatureItem .categoryCardTitle,
    .categoryFeatureItem .categoryCardText {
      position: relative;
      z-index: 1;
    }

    .categoryFeatureItem .categoryCardTitle {
      font-size: 2rem;
      margin-bottom: 1.8rem;
      line-height: 1.4;
      padding-top: 0.5rem; 
    }
    @media (width >= 769px) {
      .categoryFeatureItem .categoryCardTitle {
        font-size: 2.2rem;
      }
    }

    .categoryFeatureItem .categoryCardText {
      font-size: 1.4rem;
      line-height: 1.8;
      color: #555;
    }
    @media (width >= 769px) {
      .categoryFeatureItem .categoryCardText {
        font-size: 1.5rem;
      }
    }