/* =====================================================================
   v2-top.css : 統合トップ（chojudai.com）用CSS。出典 top_v1.html の <style> 全量を .v2-top 配下にスコープ
   - 読み込み条件は functions-v2-snippet.php が制御（?v2=1 または管理者ログイン中のトップのみ）
   - プレビュー専用の自前ヘッダー/SPメニュー/カーソル追従CSS/#shot は除外済み
   - 生成: top_v1.html L18-L2421 を機械的にスコープ（html→html:has(.v2-top)、body→.v2-top、
     a/img→#main_content配下に限定、.isFront→.v2-top.isFront）
   ===================================================================== */
/* ===== base（SWELLが担っていた最小限の下地。Bの白地・黒文字を再現） ===== */
.v2-top *,
.v2-top *::before,
.v2-top *::after {box-sizing:border-box}
html:has(.v2-top) {scroll-behavior:smooth}
.v2-top {margin:0;background:#fff;color:#000;font-family:var(--swl-font_family,游ゴシック体,"Yu Gothic",YuGothic,"Hiragino Kaku Gothic ProN","Hiragino Sans",Meiryo,sans-serif);font-weight:500;line-height:1.8;-webkit-text-size-adjust:100%}
:where(.v2-top #main_content) a {color:inherit;text-decoration:none}
:where(.v2-top #main_content) img {max-width:100%;height:auto;vertical-align:bottom}
.v2-top p,
.v2-top ul,
.v2-top h2 {margin:0}
.v2-top ul {padding:0;list-style:none}
  /* loading */
  .v2-top .loading {
    position: fixed;
    inset: 0;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 9999;
    transition: opacity 0.8s ease, visibility 0.8s ease;
    margin-bottom: 0;
  }
  
  .v2-top .loading.is-loaded {
    opacity: 0;
    visibility: hidden;
  }
  
  .v2-top .loading__inner {
    text-align: center;
    color: #fff;
  }
  
  .v2-top .loading__logo {
    width: 100%;
    height: auto;
    max-width: 400px;
    min-width: 200px;
    animation: logo-spin 1.2s ease-out 0.2s;
    transform-origin: center;
    
    @media (max-width: 768px) {
      max-width: 200px;
      min-width: 100px;
    }
  }
  
  @keyframes logo-spin {
    0% {
      opacity: 0;
      transform: rotateY(-90deg) scale(0.8);
    }
    60% {
      opacity: 1;
      transform: rotateY(390deg) scale(1.05);
    }
    100% {
      opacity: 1;
      transform: rotateY(360deg) scale(1);
    }
  }
  
  .v2-top .loading__message {
    margin-top: 20px;
    font-size: 24px;
    letter-spacing: 0.05em;
    min-height: 1.5em;
    color: #000;
    transform: translateX(.5em);
    letter-spacing: 0.01em;

    @media (max-width: 768px) {
      font-size: 18px;
    }
  }
  
  .v2-top .loading__cursor {
    display: inline-block;
    width: 1px;
    height: 1em;
    margin-left: 2px;
    background: #fff;
    animation: cursor-blink 1s step-end infinite;
  }
  
  @keyframes cursor-blink {
    50% { opacity: 0; }
  }
  
  .v2-top .content {
    opacity: 0;
    transform: translateY(40px) scale(0.96);
    filter: blur(6px);
    transition:
      opacity 0.9s cubic-bezier(0.22, 0.61, 0.36, 1),
      transform 0.9s cubic-bezier(0.22, 0.61, 0.36, 1),
      filter 0.9s cubic-bezier(0.22, 0.61, 0.36, 1);
  }
  
  .v2-top .content.is-visible {
    opacity: 1;
    transform: translateY(0) scale(1);
    filter: blur(0);
  }
  
  body.is-loading {
    overflow: hidden;
  }

  body.is-loading #header,
body.is-loading .fv-bottom-right-group {
    opacity: 0;
    pointer-events: none;
  }

  .v2-top .is-textLeft {
    transform: translateX(-0.3em);
  }

    .v2-top .custom-main-visual {
      position: relative;
      width: 100%;
      height: 100vh;
      min-height: 500px;
      display: flex;
      flex-direction: column;
      justify-content: center;
      align-items: flex-start; 
      overflow: hidden;
      padding: 0 5%;
      box-sizing: border-box;
      }
  
      .v2-top .custom-main-visual .text-container {
      position: relative;
      z-index: 4;
      width: 100%;
      }
  
      .v2-top .custom-main-visual .main-title {
      text-align: left;
      color: #000000;
      font-size: clamp(40px, 6vw, 72px);
      font-weight: 900;
      letter-spacing: 0.1em;
      line-height: 1.4;
      }
  
      .v2-top .fv-bottom-right-group {
        position: absolute;
        bottom: 40px;
        right: 0; 
        width: 45%;
        max-width: 420px;
        display: flex;
        flex-direction: column;
        z-index: 2;
        opacity: 1;
        transition: opacity 0.6s ease;
      }
  
      .v2-top .fv-bottom-right-group .speech-bubble-wrapper {
      width: 100%;
      display: flex;
      justify-content: flex-end;
      padding-right: 5%;
      box-sizing: border-box;
      }
  
      .v2-top .fv-bottom-right-group .speech-bubble {
      width: 100%;
      max-width: 280px; 
      height: auto;
      position: relative;
      z-index: 3;
      }
  
      .v2-top .fv-bottom-right-group .fv-bottom-fixed {
        position: fixed;
        bottom: 80px;
        right: 0px;
        z-index: 999;
      }
  
      .v2-top .fv-bottom-right-group .custom-corporate-button {
        display: block;
        width: 420px; 
        padding: 18px 15px; 
        text-decoration: none;
        color: #ffffff;
        font-weight: bold;
        text-align: center;
        line-height: 1.6;
        border-radius: 28px 0 0 28px;
        background: linear-gradient(135deg, #ff32b0, #b553ff, #47c8ff);
        box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
        transition: all 0.3s ease;
        font-size: 18px; 
        transform: translateY(-20px);
        position: relative;
        z-index: 2;
        border: 2px solid #ffffff;
        border-right: none;
        box-sizing: border-box;
        overflow: hidden;
        /* position: fixed; */
      }
  
      .v2-top .fv-bottom-right-group .custom-corporate-button::before {
        content: "";
        position: absolute;
        top: -50%;
        left: -60%;
        width: 200%;
        height: 200%;
        background: linear-gradient(
          120deg,
          rgba(255,255,255,0.3) 0%,
          rgba(255,255,255,0.3) 50%,
          rgba(255,255,255,0.3) 100%
        );
        transform: translateX(-120%) rotate(25deg);
        opacity: 0;
      }
  
      .v2-top .fv-bottom-right-group .custom-corporate-button:hover::before {
        animation: btn-shine 0.3s ease forwards;
        opacity: 1;
      }
  
      @keyframes btn-shine {
        0% {
          transform: translateX(-120%) rotate(25deg);
        }
        30% {
          transform: translateX(0%) rotate(25deg);
        }
        100% {
          transform: translateX(120%) rotate(25deg);
        }
      }
  
      .v2-top .fv-bottom-right-group .copyright {
      font-size: 12px;
      color: #000;
      letter-spacing: 0.05em;
      margin-top: -5px; 
      position: relative;
      z-index: 2;
      width: 100%;
      text-align: center;
      padding-left: 15px; 
      box-sizing: border-box;
      }
  
      @media (max-width: 768px) {
      .v2-top .custom-main-visual {
      height: 70vh;
      min-height: 600px;
      align-items: center;
      padding: 0 5%;
      }
  
      .v2-top .custom-main-visual .main-title {
      text-align: center;
      font-size: clamp(30px, 9vw, 48px);
      transform: translateX(0.5em);
      }
  
      .v2-top .fv-bottom-right-group {
      display: none;
      }
      }
  
      @media (max-width: 480px) {
      .v2-top .custom-main-visual {
      height: 60vh;
      padding: 7rem 10% 0;
      }
  
      .v2-top .custom-main-visual .main-title {
      font-size: clamp(26px, 8vw, 42px);
      }
      }

      .v2-top .scrollbar-text_04 {
        display: inline-block;
        position: absolute;
        bottom: 90%;
        padding: 10px 10px 110px;
        color: #000;
        font-size: 16px;
        line-height: 1;
        letter-spacing: 0.1em;
        writing-mode: vertical-lr;
        right: 0;

        @media (max-width: 768px) {
          bottom: 20px;
          right: -35px;
        }
      }

      .v2-top .scrollbar_04 {
        position: absolute;
        right: 16px;
        bottom: 1px;
      }

      .v2-top .scrollbar_04::before {
        content: "";
        position: absolute;
        bottom: 0;
        left: -5px;
        width: 8px;
        height: 8px;
        border-radius: 50%;
        background: #000;
        animation: circlemove 3s ease-in-out infinite,
          cirlemovehide 3s ease-out infinite;

        @media (max-width: 768px) {
          left: 28px;
        }
      }

      .v2-top .scrollbar_04::after {
        content: "";
        position: absolute;
        bottom: 80px;
        left: -2px;
        width: 1px;
        height: 200px;
        background: #000;
        
        @media (max-width: 768px) {
          bottom: -85px;
          left: 32px;
        }
      }

      @keyframes circlemove {
        0% {
          bottom: 280px;
        }
        100% {
          bottom: 70px;
        }
      }

      @keyframes cirlemovehide {
        0% {
          opacity: 0;
        }
        50% {
          opacity: 1;
        }
        80% {
          opacity: 0.9;
        }
        100% {
          opacity: 0;
        }
      }

      @media (max-width: 768px) {
        @keyframes circlemove {
          0% {
            bottom: 110px;
          }
          100% {
            bottom: -90px;
          }
        }
      }

      .v2-top .custom-main-visual .copyright {
          font-size: 12px;
          color: #000;
          letter-spacing: 0.05em;
          margin-top: -5px; 
          position: relative;
          z-index: 2;
          width: 100%;
          box-sizing: border-box;
          text-align: left;
          bottom: -18%;

          @media (max-width: 768px) {
            text-align: center;
            margin-top: 70px;
          }
      }

    .v2-top .p-mv__news {
      display: flex;
      width: 100%;
      overflow: hidden;
      color: #000;
      margin-top: 20px;
      border-top: 1px solid #000;
      border-bottom: 1px solid #000;

      @media (max-width: 768px) {
        margin-top: 10px;
      }
    }

    @media only screen and (min-width: 960px) {
        .v2-top .p-mv__news {
          display: flex;
        }
    }

    .v2-top .p-mv__newsCont {
      display: flex;
      align-items: center;
      overflow:hidden;
      width: 100%;
      white-space:nowrap;
    }

    .v2-top .p-mv__newsList {
      display: flex;
      padding: 3px 20px;
      animation: ticker-scroll 58s steps(800) infinite;
      transform: translateX(100%);
      will-change: transform;
    }

    @media only screen and (min-width: 960px) {
      .v2-top .p-mv__newsList {
        padding: 4px 20px;
        animation: ticker-scroll 54s steps(800) infinite;
      }
    }

    .v2-top .p-mv__newsItem {
      padding-right: 40px;
      text-decoration: none;
      display: flex;
      flex-direction: row;
    }

    @keyframes ticker-scroll {
      0% {
        transform: translateX(100vw);
      }
      100% {
        transform: translateX(-100%);
      }
    }

    .v2-top .p-mv__newsTtl {
      display: flex;
      align-items: center;
      padding: 4px 12px 4px;
      border-right: 1px solid #000; 
      font-size: min(4.16vw,16px);
    }

    @media only screen and (min-width: 960px) {
      .v2-top .p-mv__newsTtl {
        padding: 8px 20px 7px;
      }
    }

    .v2-top .p-mv__newsTxt {
      padding-bottom: 2px;
      font-size: min(3.6vw,14px);
      white-space: nowrap;
      color: #000;
    }

    @media only screen and (min-width: 960px) {
      .v2-top .p-mv__newsTxt {
        padding-bottom: 0;
        font-size: min(4.16vw,16px);
      }
    }

    .v2-top .p-mv__newsTime {
      font-size: min(3.6vw,14px);
      color: #000;
      padding-right: .5em;
    }

    @media only screen and (min-width: 960px) {
      .v2-top .p-mv__newsTime {
        font-size: min(4.16vw,16px);
      }
    }

    .v2-top .loop-slider {
      width: 100%;
      overflow: hidden;
      margin: 60px 0 0;

      @media (max-width: 768px) {
        margin: 40px 0 0;
      }
    }

    .v2-top .loop-slider__track {
      display: flex;
      width: max-content;
      animation: loop 50s linear infinite;
      white-space: nowrap;
    }

    .v2-top .loop-text {
      font-size: 80px;
      font-weight: 800;
      letter-spacing: 2px;
      padding-right: 60px;
      flex-shrink: 0;
      color: transparent;
      font-family: 'Bebas Neue', sans-serif;
      -webkit-text-stroke: 2px #000;
      text-stroke: 2px #000;
      letter-spacing: 0.1em;
      line-height: 1;

      @media (max-width: 768px) {
        font-size: 48px;
        padding-right: 30px;
      }
    }

    @keyframes loop {
      0% {
        transform: translateX(0);
      }
      100% {
        transform: translateX(-50%);
      }
    }
    .v2-top .top-message {
      position: relative;
      margin-bottom: 0;
    }

    .v2-top .top-message__inner {
      padding-top: 64px;

      @media screen and (max-width: 768px) {
        padding-top: 36px;
      }
    }

    .v2-top .top-aboutus-content {
      width: 100%;
      margin: 0 84px;

      @media screen and (max-width: 1048px) {
        margin: 0;
      }
    }

    .v2-top .d-fl {
      display: flex;
      flex-wrap: wrap;
    }

    .v2-top .top-aboutus-inner-l {
      position: relative;
      padding-right: 40%;
      padding-bottom: 40px;

      @media screen and (max-width: 1048px) {
        width: 100%;
        margin: 0 auto;
        padding-right: 0;
        padding-bottom: 0;
      }
    }

    .v2-top h2.top-aboutus-inner-title {
      background-color: transparent;
      font-size: clamp(3rem, 4vw, 5.3rem);
      font-family: 'Bebas Neue', sans-serif;
      font-weight: 900;
      color: #000;
      letter-spacing: 0.1em;
      line-height: 1;
      padding: 0;
      margin: 0;
      transform: translateX(-0.5em);
      text-align: left;

      @media screen and (max-width: 1048px) {
        font-size: clamp(24px, 6vw, 100px);
        transform: translateX(0);
        text-align: center;
      }
    }

    .v2-top span.top-aboutus-inner-subTitle {
      display: block;
      color: #000;
      line-height: 1;
      font-size: 20px;
      padding-top: 1em;
      padding-left: 42px;

      @media screen and (max-width: 1048px) {
        font-size: clamp(14px, 4vw, 20px);
        padding-left: 74px;
        transform: translateX(-1em);
      }

      @media screen and (max-width: 768px) {
        padding-left: 26px;
      }
    }

    .v2-top .aboutus_txt_02 {
      width: 70%;
      font-size: 1.2rem;
      margin: 30px 0;
      line-height: 1.8;

      @media screen and (max-width: 1048px) {
        width: 80%;
        font-size: 16px;
        margin: 0px auto 36px;
        padding-top: 48vh;
        position: relative;
      }
    }

    .v2-top .aboutus_txt_03 {
      width: 60%;
      font-size: 1.2rem;
      margin: 0 auto 0 0;
      line-height: 1.8;

      @media screen and (max-width: 1048px) {
        font-size: 16px;
        width: 80%;
        margin: 0px auto;
      }
    }

    .v2-top .top-aboutus-inner-l:after {
      content: "";
      background-image: url(img/top-aboutus-inner-r-shape.png);
      background-position: center center;
      background-size: contain;
      background-repeat: no-repeat;
      right: 160px;
      top: 0;
      bottom: 0;
      width: 40%;
      height: 100%;
      position: absolute;

      @media screen and (max-width: 1048px) {
        background-position: top center;
        right: 0;
        left: 0;
        top: 20%;
        margin: 0 auto;
        width: 100%;
        height: 35vh;
      }

      @media screen and (max-width: 768px) {
        left: 0;
        top: 68px;
        margin: 36px 0;
      }
    }

    .v2-top .top-message__button {
      margin-top: 64px;
      text-align: center;

      @media screen and (max-width: 768px) {
        margin-top: 36px;
      }
    }
    
    .v2-top .top-message__buttonInner {
      position: relative;
      display: inline-flex;
      justify-content: center;
      align-items: center;  
      gap: 12px;
      padding: 6px 48px;
      border-radius: 100px;
      font-size: 24px;
      text-decoration: none;
      color: #ffffff;
      background: #000;
      z-index: 1;
      box-sizing: border-box;
      overflow: hidden;
      font-weight: bold;
    
      @media (max-width: 840px) {
        gap: 6px;
        border-radius: 32px;
        font-size: 16px;
        padding: 6px 24px;
      }
    }
    
    .v2-top .top-message__buttonInner::before {
      content: "";
      position: absolute;
      top: -50%;
      left: -60%;
      width: 200%;
      height: 200%;
      background: linear-gradient(
        120deg,
        rgba(255,255,255,0.3) 0%,
        rgba(255,255,255,0.3) 50%,
        rgba(255,255,255,0.3) 100%
      );
      transform: translateX(-120%) rotate(25deg);
      opacity: 0;
    }

    .v2-top .top-message__buttonInner:hover::before {
      animation: btn-shine 0.3s ease forwards;
      opacity: 1;
    }

    @keyframes btn-shine {
      0% {
        transform: translateX(-120%) rotate(25deg);
      }
      30% {
        transform: translateX(0%) rotate(25deg);
      }
      100% {
        transform: translateX(120%) rotate(25deg);
      }
    }

    .v2-top .service {
      padding: 32px 84px 64px;
      margin-bottom: 0;
      box-sizing: border-box;
    
      @media (max-width: 840px) {
        padding: 36px;
      }
    }
    
    .v2-top .service__title {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding-bottom: 24px;
      border-bottom: 2px solid #000;
    
      @media (max-width: 768px) {
        padding-bottom: 16px;
        gap: 6px;
      }
    }

    .v2-top .service__head {
      display: flex;
      flex-direction: column;
      gap: 8px;
    }
    
    .v2-top .service__heading {
      color: transparent;
      font-size: 5.3rem; 
      font-family: 'Bebas Neue', sans-serif;
      font-weight: 900;
      color: #000;
      letter-spacing: 0.1em;
      line-height: 1;
    
      @media (max-width: 768px) {
        font-size: clamp(36px, 8vw, 100px);
      }
    }

    .v2-top .service__smallheading {
      color: #000;
      line-height: 1;
      font-size: 20px;
    }

    .v2-top .service__notice {
      margin-top: 42px;
      font-size: 24px;
      display: flex;
      flex-direction: row;

      @media (max-width: 768px) {
        margin-top: 32px;
        font-size: 16px;
      }
    }

    .v2-top .service__notice-mark {
      margin-right: 12px;
    }

    .v2-top .service__notice-spBreak {
      display: none;

      @media (max-width: 768px) {
        display: block;
      }
    }
    .v2-top .service__more {
      position: relative;
      display: inline-flex;
      align-items: center;
      gap: 12px;
      padding: 6px 48px;
      border-radius: 100px;
      border: 4px solid #000000;
      font-size: 24px;
      font-weight: bold;
      text-decoration: none;
      color: #000000;
      overflow: hidden;
    
      @media (max-width: 768px) {
        gap: 6px;
        padding: 3px 20px;
        border-radius: 32px;
        font-size: 16px;
      }
    }

    .v2-top .service__more::before {
      content: "";
      position: absolute;
      top: 0%;
      left: 0%;
      width: 200%;
      height: 200%;
      background: linear-gradient(
        120deg,
        rgba(255, 255, 255, 0.7) 0%,
        rgba(255, 255, 255, 0.7) 50%,
        rgba(255, 255, 255, 0.7) 100%
      );
      transform: translateX(-120%) rotate(25deg);
      opacity: 0;
    }

    .v2-top .service__more:hover::before {
      animation: btn-shine 0.3s ease forwards;
      opacity: 0.8;
    }

    @keyframes btn-shine {
      0% {
        transform: translateX(-120%) rotate(25deg);
      }
      30% {
        transform: translateX(0%) rotate(25deg);
      }
      100% {
        transform: translateX(120%) rotate(25deg);
      }
    }

    .v2-top .client {
      padding: 64px 84px;
      margin-bottom: 0;
      box-sizing: border-box;
    
      @media (max-width: 840px) {
        padding: 36px;
      }
    }
    
    .v2-top .client__title {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding-bottom: 24px;
      border-bottom: 2px solid #000;
    
      @media (max-width: 768px) {
        padding-bottom: 16px;
        gap: 6px;
      }
    }

    .v2-top .client__head {
      display: flex;
      flex-direction: column;
      gap: 8px;
    }
    
    .v2-top .client__heading {
      color: transparent;
      font-size: 5.3rem; 
      font-family: 'Bebas Neue', sans-serif;
      font-weight: 900;
      color: #000;
      letter-spacing: 0.1em;
      line-height: 1;
    
      @media (max-width: 768px) {
        font-size: clamp(36px, 8vw, 100px);
      }
    }

    .v2-top .client__smallheading {
      color: #000;
      line-height: 1;
      font-size: min(4.5vw, 20px);
    }
    
    .v2-top .client__more {
      position: relative;
      display: inline-flex;
      align-items: center;
      gap: 12px;
      padding: 6px 48px;
      border-radius: 100px;
      border: 4px solid #000000;
      font-size: 24px;
      font-weight: bold;
      text-decoration: none;
      color: #000000;
      overflow: hidden;
    
      @media (max-width: 768px) {
        gap: 6px;
        padding: 3px 20px;
        border-radius: 32px;
        font-size: 16px;
      }
    }

    .v2-top .client__more::before {
      content: "";
      position: absolute;
      top: 0%;
      left: 0%;
      width: 200%;
      height: 200%;
      background: linear-gradient(
        120deg,
        rgba(255, 255, 255, 0.7) 0%,
        rgba(255, 255, 255, 0.7) 50%,
        rgba(255, 255, 255, 0.7) 100%
      );
      transform: translateX(-120%) rotate(25deg);
      opacity: 0;
    }

    .v2-top .client__more:hover::before {
      animation: btn-shine 0.3s ease forwards;
      opacity: 0.8;
    }

    @keyframes btn-shine {
      0% {
        transform: translateX(-120%) rotate(25deg);
      }
      30% {
        transform: translateX(0%) rotate(25deg);
      }
      100% {
        transform: translateX(120%) rotate(25deg);
      }
    }
    
    .v2-top .news {
      padding: 64px 84px;
      margin-bottom: 0;
      box-sizing: border-box;
    
      @media (max-width: 840px) {
        padding: 36px;
      }
    }
    
    .v2-top .news__title {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding-bottom: 24px;
      border-bottom: 2px solid #000;
    
      @media (max-width: 768px) {
        padding-bottom: 16px;
        gap: 6px;
      }
    }

    .v2-top .news__head {
      display: flex;
      flex-direction: column;
      gap: 8px;
    }
    
    .v2-top .news__heading {
      color: transparent;
      font-size: 5.3rem; 
      font-family: 'Bebas Neue', sans-serif;
      font-weight: 900;
      color: #000;
      letter-spacing: 0.1em;
      line-height: 1;
    
      @media (max-width: 768px) {
        font-size: clamp(36px, 8vw, 100px);
      }
    }

    .v2-top .news__smallheading {
      color: #000;
      line-height: 1;
      font-size: 20px;
    }
    
    .v2-top .news__more {
      position: relative;
      display: inline-flex;
      align-items: center;
      gap: 12px;
      padding: 6px 48px;
      border-radius: 100px;
      border: 4px solid #000000;
      font-size: 24px;
      font-weight: bold;
      text-decoration: none;
      color: #000000;
      overflow: hidden;
    
      @media (max-width: 768px) {
        gap: 6px;
        padding: 3px 20px;
        border-radius: 32px;
        font-size: 16px;
      }
    }

    .v2-top .news__more::before {
      content: "";
      position: absolute;
      top: 0%;
      left: 0%;
      width: 200%;
      height: 200%;
      background: linear-gradient(
        120deg,
        rgba(255, 255, 255, 0.7) 0%,
        rgba(255, 255, 255, 0.7) 50%,
        rgba(255, 255, 255, 0.7) 100%
      );
      transform: translateX(-120%) rotate(25deg);
      opacity: 0;
    }

    .v2-top .news__more:hover::before {
      animation: btn-shine 0.3s ease forwards;
      opacity: 0.8;
    }

    @keyframes btn-shine {
      0% {
        transform: translateX(-120%) rotate(25deg);
      }
      30% {
        transform: translateX(0%) rotate(25deg);
      }
      100% {
        transform: translateX(120%) rotate(25deg);
      }
    }
    
    .v2-top .news__slider {
      margin-top: 24px;
      color: #fff;
      padding-bottom: 32px;
    
      @media (max-width: 840px) {
        margin-top: 16px;
      }
    }
    
    .v2-top .news__contentImage {
      margin-bottom: 10px;
    }
    
    .v2-top .news__contentImg {
      aspect-ratio: 3 / 2;
      width: 100%;
      object-fit: cover;
      border-radius: 12px;
      display: block;
      margin-bottom: 10px;
      transition: transform 0.3s ease, opacity 0.3s ease;
    }
  
    .v2-top .news__contentImg:hover {
      transform: scale(1.03);
      opacity: 0.8;
    }
    
    .v2-top .news__contentText {
      margin-bottom: 10px;
    }

    .v2-top .news__contentText {
      margin-bottom: 10px;
      color: #000;
      font-weight: bold;
    }

    .v2-top .news__contentDate {
      color: #000;
      font-weight: bold;
    }

    .v2-top button.splide__pagination__page.is-active {
      background: #000;
    }

    .v2-top .works-news__slider {
      margin-top: 24px;
      color: #fff;
      padding-bottom: 32px;
    
      @media (max-width: 840px) {
        margin-top: 16px;
      }
    }
    
    .v2-top .works-news__contentImage {
      margin-bottom: 10px;
    }
    
    .v2-top .works-news__contentImg {
      aspect-ratio: 3 / 2;
      width: 100%;
      object-fit: cover;
      border-radius: 12px;
      display: block;
      margin-bottom: 10px;
      transition: transform 0.3s ease, opacity 0.3s ease;
    }
  
    .v2-top .works-news__contentImg:hover {
      transform: scale(1.03);
      opacity: 0.8;
    }
    
    .v2-top .works-news__contentText {
      margin-bottom: 10px;
    }

    .v2-top .works-news__contentText {
      margin-bottom: 10px;
      color: #000;
      font-weight: bold;
    }

    .v2-top .works-news__contentDate {
      color: #000;
      font-weight: bold;
    }
    .v2-top .works-news2__slider {
      margin-top: 24px;
      color: #fff;
      padding-bottom: 32px;
    
      @media (max-width: 840px) {
        margin-top: 16px;
      }
    }
    
    .v2-top .works-news2__contentImage {
      margin-bottom: 10px;
    }
    
    .v2-top .works-news2__contentImg {
      aspect-ratio: 3 / 2;
      width: 100%;
      object-fit: cover;
      border-radius: 12px;
      display: block;
      margin-bottom: 10px;
      transition: transform 0.3s ease, opacity 0.3s ease;
    }
  
    .v2-top .works-news2__contentImg:hover {
      transform: scale(1.03);
      opacity: 0.8;
    }
    
    .v2-top .works-news2__contentText {
      margin-bottom: 10px;
    }

    .v2-top .works-news2__contentText {
      margin-bottom: 10px;
      color: #000;
      font-weight: bold;
    }

    .v2-top .works-news2__contentDate {
      color: #000;
      font-weight: bold;
    }
    
    .v2-top .works {
      padding: 64px 84px;
      margin-bottom: 0;
      box-sizing: border-box;
    
      @media (max-width: 840px) {
        padding: 36px;
      }
    }
    
    .v2-top .works__title {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding-bottom: 24px;
      border-bottom: 2px solid #000;
    
      @media (max-width: 768px) {
        padding-bottom: 16px;
        gap: 6px;
      }
    }

    .v2-top .works__head {
      display: flex;
      flex-direction: column;
      gap: 8px;
    }
    
    .v2-top .works__heading {
      color: transparent;
      font-size: 5.3rem; 
      font-family: 'Bebas Neue', sans-serif;
      font-weight: 900;
      color: #000;
      letter-spacing: 0.1em;
      line-height: 1;
    
      @media (max-width: 768px) {
        font-size: clamp(36px, 8vw, 100px);
      }
    }

    .v2-top .works__smallheading {
      color: #000;
      line-height: 1;
      font-size: 20px;
    }

    .v2-top .works__subtitle {
      display: flex;
      flex-direction: row;
      justify-content: space-between;
      gap: 10px;
      margin-top: 30px;

      @media (max-width: 768px) {
        margin-top: 24px;
      }
    }

    .v2-top .works__subtitleHeading {
      display: inline-block;
      padding: 10px 50px;
      background-color: #000;
      color: #fff;
      font-family: sans-serif;
      font-size: 20px;
      font-weight: bold;
      overflow: hidden;
      transform: skewX(-30deg);
      display: flex;
      align-items: center;

      @media (max-width: 768px) {
        padding: 8px 12px;
        font-size: min(3.4vw, 18px);
      }
    }

    .v2-top .works__subtitleHeadingInner {
      display: inline-block;
      transform: skewX(30deg);
    }

    .v2-top .works__more {
      position: relative;
      display: inline-flex;
      align-items: center;
      gap: 12px;
      padding: 6px 48px;
      border-radius: 100px;
      border: 4px solid #000000;
      font-size: 24px;
      font-weight: bold;
      text-decoration: none;
      color: #000000;
      overflow: hidden;
    
      @media (max-width: 768px) {
        gap: 6px;
        padding: 3px 20px;
        border-radius: 32px;
        font-size: 16px;
      }
    }

    .v2-top .works__more::before {
      content: "";
      position: absolute;
      top: 0%;
      left: 0%;
      width: 200%;
      height: 200%;
      background: linear-gradient(
        120deg,
        rgba(255, 255, 255, 0.7) 0%,
        rgba(255, 255, 255, 0.7) 50%,
        rgba(255, 255, 255, 0.7) 100%
      );
      transform: translateX(-120%) rotate(25deg);
      opacity: 0;
    }

    .v2-top .works__more:hover::before {
      animation: btn-shine 0.3s ease forwards;
      opacity: 0.8;
    }

    @keyframes btn-shine {
      0% {
        transform: translateX(-120%) rotate(25deg);
      }
      30% {
        transform: translateX(0%) rotate(25deg);
      }
      100% {
        transform: translateX(120%) rotate(25deg);
      }
    }

    .v2-top .works__text {
      margin-top: 30px;
      color: #000;
      font-weight: bold;
      line-height: 1.25;
      font-size: clamp(12px, 1.15vw, 24px);

      @media (max-width: 768px) {
        margin-top: 24px;
        font-size: 16px;
      }
    }
    .v2-top .works__textPc {
      display: block;
      @media (max-width: 1100px) {
        display: none;
      }
    }

/* ===== C: EVENT / MEDIA (page_216_home.html L646-967) ===== */
    .v2-top .event {
      width: 100%;
      padding: 64px 84px;
      background: #000;
      margin-bottom: 0;
    
      @media (max-width: 840px) {
        padding: 36px;
      }
    }
    
    .v2-top .event__title {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding-bottom: 24px;
      border-bottom: 2px solid;
      border-image: linear-gradient(90deg, #ff32b0, #b553ff, #47c8ff) 1;
    
      @media (max-width: 840px) {
        padding-bottom: 16px;
        flex-direction: column;
        gap: 16px;
      }
    }
    
    .v2-top .event__heading {
      color: transparent;
      font-size: 5.3rem; 
      font-family: 'Bebas Neue', sans-serif;
      font-weight: 900;
      -webkit-text-stroke: 2px #F234D4;
      text-stroke: 2px #F234D4;
      letter-spacing: 0.1em;
      line-height: 1;
    
      @media (max-width: 840px) {
        font-size: 3rem;
      }
    }
    
    .v2-top .event__more {
      position: relative;
      display: inline-flex;
      align-items: center;
      gap: 12px;
      padding: 12px 64px;
      border-radius: 100px;
      font-size: 24px;
      text-decoration: none;
      color: #ffffff;
      background: #000;
      z-index: 1;
    
      @media (max-width: 840px) {
        gap: 3px;
        padding: 10px 48px;
        border-radius: 32px;
        font-size: min(3.5vw, 16px);
      }
    }
    
    .v2-top .event__more::before {
      content: "";
      position: absolute;
      inset: 0;
      padding: 2px;
      border-radius: inherit;
      background: linear-gradient(90deg, #ff32b0, #b553ff, #47c8ff);
      -webkit-mask:
        linear-gradient(#fff 0 0) content-box,
        linear-gradient(#fff 0 0);
      -webkit-mask-composite: xor;
              mask-composite: exclude;
      z-index: -1;
    }
    
    .v2-top .event__more:hover {
      background-color: rgba(255, 255, 255, 0.15);
    }
    
    .v2-top .event__text {
      margin-top: 24px;
      color: #fff;
      font-size: 24px;
      line-height: 1;
      text-align: center;
      
      @media (max-width: 840px) {
        font-size: 20px;
        line-height: 1.5;
        letter-spacing: 0.05em;
      }
    }
    
    .v2-top .event__content {
      margin-top: 24px;
      line-height: 1;
      color: #fff;
    }
    
    .v2-top .event__contentInner {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 24px;
    
      @media (max-width: 840px) {
        grid-template-columns: repeat(1, 1fr);
        gap: 16px;
      }
    }
    
    .v2-top .event__contentItemTitle {
      -webkit-clip-path: polygon(10% 0, 100% 0, 90% 100%, 0 100%);
      clip-path: polygon(10% 0, 100% 0, 90% 100%, 0 100%);
      text-align: center;
      padding: 16px 32px;
      font-size: 24px;
      margin-bottom: 16px;
    
      @media (max-width: 840px) {
        padding: 16px 28px;
      }
    }
    
    .v2-top .event__contentItemTitle--type01 {
      background-color: #3CA69C;
    }
    
    .v2-top .event__contentItemTitle--type02 {
      background-color: #F36040;
    }
    
    .v2-top .event__contentImage {
      padding: 0 64px;
      display: inline-block;
    
      @media (max-width: 1200px) {
        padding: 0;
      }
    }
    
    .v2-top .event__contentImg {
      aspect-ratio: 3 / 2;
      width: 100%;
      object-fit: cover;
      border-radius: 12px;
      display: block;
      margin-bottom: 10px;
      transition: transform 0.3s ease, opacity 0.3s ease;
    }
    
    .v2-top .event__contentImg:hover {
      transform: scale(1.03);
      opacity: 0.8;
    }
    
    .v2-top .event__contentText {
      margin-bottom: 10px;
    }
    
    .v2-top .media {
      width: 100%;
      padding: 64px 84px;
      background: #000;
      margin-bottom: 0;
    
      @media (max-width: 840px) {
        padding: 36px;
      }
    }

    .v2-top .mediaSpBreak {
      display: none;

      @media (max-width: 840px) {
        display: block;
      }
    }
    
    .v2-top .media__title {
      display: flex;
      align-items: center;
      flex-direction: row;
      justify-content: space-between;
      padding-bottom: 24px;
      border-bottom: 2px solid;
      border-image: linear-gradient(90deg, #ff32b0, #b553ff, #47c8ff) 1;
    
      @media (max-width: 840px) {
        padding-bottom: 16px;
        flex-direction: column;
        gap: 16px;
      }
    }
    
    .v2-top .media__heading {
      color: transparent;
      font-size: 5.3rem; 
      font-family: 'Bebas Neue', sans-serif;
      font-weight: 900;
      -webkit-text-stroke: 2px #3EA9EA;
      text-stroke: 2px #3EA9EA;
      letter-spacing: 0.1em;
      line-height: 1;
    
      @media (max-width: 840px) {
        font-size: 3rem;
      }
    }
    
    .v2-top .media__iconArea {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 6px;

      @media (max-width: 840px) {
        gap: 0;
      }
    }
    
    .v2-top .media__icon {
      display: flex;
      flex-direction: row;
      gap: 24px;
    
      @media (max-width: 840px) {
        gap: 16px;
      }
    }
    
    .v2-top .media__iconText {
      color: #fff;
      line-height: 1;
      font-size: 16px;

      @media (max-width: 840px) {
        line-height: 1.5;
        letter-spacing: 0.05em;
      }
    }
    
    .v2-top .media__iconImg {
      width: 64px;
      height: 64px;
      min-width: 64px;
      min-height: 64px;
    
      @media (max-width: 840px) {
        width: 48px;
        height: 48px;
        min-width: 48px;
        min-height: 48px;
      }
    }
    
    .v2-top .media__text {
      margin-top: 24px;
      color: #fff;
      font-size: 24px;
      line-height: 1;
      text-align: center;
    
      @media (max-width: 840px) {
        font-size: min(4vw, 20px);
        line-height: 1.5;
        letter-spacing: 0.05em;
      }
    }
    
    .v2-top .media__content {
      margin-top: 24px;
      line-height: 1;
      color: #fff;
    
      @media (max-width: 840px) {
        margin-top: 16px;
      }
    }
    
    .v2-top .media__contentInner {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 24px;
      
      @media (max-width: 1000px) {
        grid-template-columns: repeat(2, 1fr);
      }

      @media (max-width: 768px) {
        grid-template-columns: repeat(1, 1fr);
        gap: 16px;
      }
    }
    
    .v2-top .media__contentItemTitle {
      -webkit-clip-path: polygon(10% 0, 100% 0, 90% 100%, 0 100%);
      clip-path: polygon(10% 0, 100% 0, 90% 100%, 0 100%);
      text-align: center;
      padding: 16px 32px;
      font-size: 24px;
      margin-bottom: 16px;
    
      @media (max-width: 840px) {
        padding: 5px 28px;
      }
    }
    
    .v2-top .media__contentItemTitle--type01 {
      background-color: #3CA69C;
    }
    
    .v2-top .media__contentItemTitle--type02 {
      background-color: #F36040;
    }

    .v2-top .media__contentMedia {
      border-radius: 12px;
      aspect-ratio: 16 / 9;
    }
    

/* 統合版: ABOUT見出し（WORKS見出しと同意匠） */
.v2-top .about__title {width:90%;max-width:1200px;margin:56px auto 8px}
@media (max-width:768px){.v2-top .cta-br {display:none}}
/* ===== B swell_child extras: BACK TO TOP ===== */
/* トップに戻るボタン */
/* 元のトップに戻るボタンを削除 */
.v2-top .p-fixBtnWrap .c-fixBtn {
  display: none;
}
/* 外側コンテナ：枠線用の箱だけにする */
.v2-top .topBtn {
  position: relative;
  display: inline-block;
  border-radius: 30px!important;
	background-color: #ffffff;
  cursor: pointer;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  text-decoration: none;
  margin-bottom: 0px;
  min-width: 200px;
	
	@media (max-width: 768px) {
    min-width: 150px;
  }
}

/* レインボー枠線は ::before で描く */
.v2-top .topBtn::before {
  content: "";
  position: absolute;
  inset: 0; 
  border-radius: inherit;
  padding: 2px;
  box-sizing: border-box;
  background: linear-gradient(90deg, #ff00ff, #00d4ff);

  /* 中身をくり抜いて「枠線だけ」にするマスク */
  -webkit-mask:
    linear-gradient(#fff 0 0) content-box,
    linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
          mask-composite: exclude;

  pointer-events: none;         /* クリックの邪魔をしない */
}

/* 実際のボタン中身（テキスト部分） */
.v2-top .topBtn__icon {
  position: relative;
  z-index: 1;
  background: transparent;
  padding: 12px 28px;
  border-radius: 28px;
  color: #000000;
  font-size: 16px;
  font-weight: bold;
  text-align: center;
  white-space: nowrap;
	
	 @media (max-width: 768px) {
    padding: 12px;
		font-size: 14px;
  }
}

/* hover アニメーション */
.v2-top .topBtn:hover {
  transform: scale(1.05);
  background-color: #ffffff;
}

/* ===== B swell_child extras: CTA-panel / company / menu / footer ===== */
    /* CTA-panel */
    .v2-top .CTA-panel__inner {
      display: flex;
      flex-direction: row;
      background-color: #F0C5D2;

      @media (max-width: 768px) {
        flex-direction: column;
      }
    }

    .v2-top .CTA-panel__item {
      position: relative;
      overflow: hidden;
      display: block;
      width: 100%;
      padding: 40px 0;
      text-decoration: none;

      @media (max-width: 768px) {
        padding: 0;
      }
    }

    .v2-top .CTA-panel__textArea {
      color: #fff;
      text-align: center;
      margin: 0;
      padding: 0 20px;

      @media (max-width: 768px) {
        margin: 0 30px;
        padding: 40px 0;
      }
    }

    .v2-top .CTA-panel__item + .CTA-panel__item .CTA-panel__textArea {
        border-top: none;
        border-left: 1px #fff solid;

        @media (max-width: 768px) {
          border-top: 1px #fff solid;
          border-left: none;
        }
    }

    .v2-top .CTA-panel__inner .CTA-panel__item:hover + .CTA-panel__item .CTA-panel__textArea {
      border: none !important;
    }

    .v2-top .CTA-panel__subTitle {
      font-size: 18px;
      margin: 0;

      @media (max-width: 768px) {
        font-size: 16px;
      }
    }

    .v2-top .CTA-panel__title {
      font-size: 48px;
      font-weight: bold;
      margin: 0;

      @media (max-width: 768px) {
        font-size: 36px;
      }
    }

    .v2-top .CTA-panel__text {
      font-size: 18px;
      margin: 0;

      @media (max-width: 768px) {
        font-size: min(3vw, 18px);
      }
    }

    .v2-top .CTA-panel__image {
      position: absolute;
      inset: 0;
      background-size: cover;
      background-position: center;
      opacity: 0;
      transform: scale(1);
      transition:
        opacity .4s ease,
        transform .4s ease,
        filter .4s ease;
    }

    .v2-top .CTA-panel__image--recruit {
      background-image: url(https://chojudai.com/wp-content/uploads/2025/11/slider-01.png);
			background-position: center top;
    }
    .v2-top .CTA-panel__image--contact {
      background-image: url(https://chojudai.com/wp-content/uploads/2025/11/slider-02.png);
    }

    .v2-top .CTA-panel__image::before {
      content: "";
      position: absolute;
      inset: 0;
      background-color: rgba(20, 20, 20, 0.6);
      opacity: 0;
      transition: opacity .4s ease;
    }

    .v2-top .CTA-panel__item:hover .CTA-panel__image {
      opacity: 1;
      transform: scale(1.05);
      filter: brightness(0.9);
    }

    .v2-top .CTA-panel__item:hover .CTA-panel__image::before {
      opacity: 1;
    }

    /* company */
    .v2-top .company {
      background-color: #F0F0F0;
      padding: 24px;
      margin-top: 80px;
    }

    .v2-top .company.company--type02 {
      margin-top: 0;
    }

    .v2-top .company__text {
      font-weight: bold;
      font-size: 24px;
      color: #000;
      text-align: center;
      margin-bottom: 24px;

      @media (max-width: 840px) {
        font-size: 16px;
        line-height: 1.5;
      }
    }

    .v2-top .company__break {
      display: none;

      @media (max-width: 840px) {
        display: block;
      }
    }

    .v2-top .company__inner {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 24px;
      max-width: 1200px;
      margin: 0 auto;

      @media (max-width: 840px) {
        grid-template-columns: repeat(1, 1fr);
      }
    }

    .v2-top .company__button {
      text-align: center;
      display: grid;
      grid-template-rows: subgrid; 
    }
    
    .v2-top .company__buttonInner {
      position: relative;
      display: inline-flex;
      justify-content: center;
      align-items: center;  
      gap: 12px;
      padding: 24px 96px;
      border-radius: 100px;
      font-size: 24px;
      font-weight: 700;
      text-decoration: none;
      color: #ffffff;
      background: linear-gradient(135deg, #ff32b0, #b553ff, #47c8ff);
      z-index: 1;
      box-sizing: border-box;
      overflow: hidden;
    
      @media (max-width: 840px) {
        gap: 6px;
        border-radius: 32px;
        font-size: 16px;
        padding: 16px 42px;
      }
    }
    
    .v2-top .company__buttonInner::before {
      content: "";
      position: absolute;
      top: -50%;
      left: -60%;
      width: 200%;
      height: 200%;
      background: linear-gradient(
        120deg,
        rgba(255,255,255,0.3) 0%,
        rgba(255,255,255,0.3) 50%,
        rgba(255,255,255,0.3) 100%
      );
      transform: translateX(-120%) rotate(25deg);
      opacity: 0;
    }

    .v2-top .company__buttonInner:hover::before {
      animation: btn-shine 0.3s ease forwards;
      opacity: 1;
    }

    @keyframes btn-shine {
      0% {
        transform: translateX(-120%) rotate(25deg);
      }
      30% {
        transform: translateX(0%) rotate(25deg);
      }
      100% {
        transform: translateX(120%) rotate(25deg);
      }
    }

    /* スライダー */
    .v2-top .custom-infinite-slider-force-position {
        margin-top: 0px !important;
        margin-bottom: 0px !important;
        padding-top: 0 !important;
        padding-bottom: 0 !important;
    }
    @keyframes custom-infinite-scroll-final {
        from { transform: translateX(0); }
        to { transform: translateX(-50%); }
    }
    .v2-top .custom-infinite-slider-inner {
        overflow: hidden;
        background-color: #ffffff;
        white-space: nowrap;
    }

    .v2-top .custom-infinite-slider-inner .image-list {
        display: flex;
        width: max-content;
        animation: custom-infinite-scroll-final 40s linear infinite reverse;
    }
    .v2-top .custom-infinite-slider-inner .image-list.reverse {
      animation: custom-infinite-scroll-final 40s linear infinite;
    }
    .v2-top .custom-infinite-slider-inner .image-list a {
        display: inline-block;
        margin: 0 10px;
        flex-shrink: 0;
    }
    .v2-top .custom-infinite-slider-inner .image-list .image-link {
      display: inline-block;
        margin: 0;
        flex-shrink: 0;
    }
    .v2-top .custom-infinite-slider-inner .image-list img {
        height: 200px;
        width: auto;
        border-radius: 8px;
        object-fit: cover;
        display: block;
        cursor: pointer;
    }
    .v2-top .custom-infinite-slider-inner .image-list .image-img {
        height: 200px;
        width: auto;
        border-radius: 0;
        object-fit: cover;
        display: block;
        cursor: pointer;

        @media (max-width: 768px) {
          height: 100px;
        }
    }
    
    @media (max-width: 768px) {
        .v2-top .custom-infinite-slider-force-position {
            margin-top: 0px !important;
        }
        .v2-top .custom-infinite-slider-inner {
            padding: 0;
        }
        .v2-top .custom-infinite-slider-inner .image-list a {
            margin: 0 6px;
        }
        .v2-top .custom-infinite-slider-inner .image-list img {
            height: 120px;
            border-radius: 6px;
        }
    }
    
    @media (max-width: 480px) {
        .v2-top .custom-infinite-slider-force-position {
            margin-top: 0px !important;
            margin-bottom: 0px !important;
        }
        .v2-top .custom-infinite-slider-inner {
            padding: 0;
        }
        .v2-top .custom-infinite-slider-inner .image-list a {
            margin: 0 5px;
        }
        .v2-top .custom-infinite-slider-inner .image-list img {
            height: 100px;
            border-radius: 5px;
        }
    }
    
    @media (max-width: 360px) {
        .v2-top .custom-infinite-slider-force-position {
            margin-top: 0px !important;
            margin-bottom: 0px !important;
        }
        .v2-top .custom-infinite-slider-inner {
            padding: 0;
        }
        .v2-top .custom-infinite-slider-inner .image-list a {
            margin: 0 4px;
        }
        .v2-top .custom-infinite-slider-inner .image-list img {
            height: 80px;
            border-radius: 4px;
        }
    }

    /* menu */
    .v2-top .menu__heading {
      color: #000;
      line-height: 1;
      text-align: center;
      font-size: 64px;
      font-weight: bold;
      padding: 130px 0 64px;
    
      @media (max-width: 840px) {
        font-size: 36px;
        padding: 36px 0 36px 12px;
        line-height: 1.5;
        letter-spacing: 0.05em;
      }
    }

    .v2-top .menu__headingBreak {
      display: none;

      @media (max-width: 840px) {
        display: block;
      }
    }
    
    .v2-top .menu__content {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      grid-template-rows: 1fr;
      gap: 24px;
      justify-content: space-between;
      max-width: 1200px;
      margin-left: auto;
      margin-right: auto;
      margin-bottom: 84px;
      align-items: center;

      @media (max-width: 1200px) {
        max-width: 1000px;
      }

      @media (max-width: 1000px) {
        grid-template-columns: 1fr;
				margin-bottom: 36px;
      }
    }
    
    .v2-top .menu__contentMenu {
      display: flex;
      flex-direction: column;
      align-items: center;
      align-items: flex-start;
      gap: 16px;

      @media (max-width: 1000px) {
        align-items: center;
        gap: 12px;
      }
    }
    
    .v2-top .menu__contentMenuText {
      color: #000;
      font-size: 16px;
      transition: opacity .4s;
    }

    .v2-top .menu__contentMenuText:hover {
      opacity: 0.6;
    }

    .v2-top .menu__contentMenuTextSub {
      color: #000;
      font-size: 16px;
      transition: opacity .4s;
    }

    .v2-top .menu__contentMenuTextSub:hover {
      opacity: 0.6;
    }

    .v2-top .menu__contentMedia {
      display: flex;
      flex-direction: row;
      gap: 200px;

      @media (max-width: 1064px) {
        flex-direction: column;
        gap: 12px;
      }
    }
    
    .v2-top .menu__contentIcon {
      display: flex;
      flex-direction: column;
      align-items: center;
    }
    
    .v2-top .menu__contentIconImg {
      display: flex;
      align-items: flex-start;
      width: 100%;
      max-width: 300px;
      min-width: 300px;
      margin: 0 auto;
      padding-left: 40px;

      @media (max-width: 840px) {
        padding-left: 0;
      }
    }

    .v2-top .menu__contentIconImgRight {
      width: 100%;
      max-width: 200px;
      margin: 0 0 0 auto;

      @media (max-width: 1000px) {
				margin: 0 auto;
        max-width: 230px;
      }
    }
    
    .v2-top .menu__contentIconList {
      display: flex;
      gap: 36px;

      @media (max-width: 540px) {
        gap: 12px;
      }
    }
    
    .v2-top .menu__iconImg {
      width: 84px;
      height: 84px;
      min-width: 84px;
      min-height: 84px;
    
      @media (max-width: 768px) {
        width: 48px;
        height: 48px;
        min-width: 48px;
        min-height: 48px;
      }
    }

/* フッター */
.v2-top footer {
  background-color: transparent !important;
}

.v2-top .l-footer::after {
  content: "CHOJUDAI";
  display: block;
  font-size: clamp(64px, 16vw, 200px);
  font-weight: bold;
  text-align: center;
}
/* 追加css */	
.v2-top .CTA-panel {
	margin-top: 92px;
}
@media (max-width: 768px) {
	.v2-top .CTA-panel {
		margin-top: 80px;
	}
}

.v2-top .spOnly {
	display: none;
}

.v2-top .pcOnly {
	display: block;
}

@media (max-width: 768px) {
	.v2-top .spOnly {
		display: block;
	}

	.v2-top .pcOnly {
		display: none;
	}
}

/* ヘッター余白削除 */	

    .v2-top {
        --swl-fz--content: 16;
    }



.v2-top.isFront .post_content {
	margin: 0 auto ;
}

/* ===== 統合版 追加CSS（新規・最小限） ===== */
/* MV: 動画背景＋Bの文字MVを重ねる（動画上は白文字。PDF「視認性が悪ければ白」） */
.v2-top .custom-main-visual {background:#000}
.v2-top .custom-main-visual__video {position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.v2-top .custom-main-visual__shade {position:absolute;inset:0;background:rgba(0,0,0,.32);z-index:1}
.v2-top .custom-main-visual .main-title,
.v2-top .custom-main-visual .copyright,
.v2-top .custom-main-visual .scrollbar-text_04 {color:#fff}
.v2-top .custom-main-visual .scrollbar_04::before,
.v2-top .custom-main-visual .scrollbar_04::after {background:#fff}
.v2-top .custom-main-visual .main-title {text-shadow:0 2px 14px rgba(0,0,0,.45)}
.v2-top .custom-main-visual .scrollbar_04,
.v2-top .custom-main-visual .container_04 {z-index:4}
@media (max-width:768px){.v2-top .custom-main-visual {height:80vh}}
/* カルーセル画像のダミー（PLACEHOLDER用） */
.v2-top .works-news__contentImage {display:block}
.v2-top .works-news__contentItem .works-news__contentImg {background:#ddd}
/* EVENT: 年度カード（2027/2026の2つ横並び）。C既存クラスのまま、タブ選択時のみ強調 */
.v2-top .event__contentItem.is-active .event__contentItemTitle {outline:2px solid #fff;outline-offset:2px}
.v2-top .event__contentItemTitle {line-height:1.4}
/* フッター（B: 背景透明＋巨大CHOJUDAI文字） */
.v2-top .l-footer {background:transparent}
.v2-top .l-footer::after {content:"CHOJUDAI";display:block;font-size:clamp(64px,16vw,200px);font-weight:bold;text-align:center;line-height:1.1}
.v2-top .menu__contentMenu a {display:block}
@media (max-width:768px){.v2-top .p-mv__newsTxt {white-space:nowrap}}

/* ===== 2026-11-04 先方素材反映: WORKS統合・SERVICEカード ===== */
.v2-top .works__text--lead {font-weight:normal;line-height:1.9;font-size:16px;margin-top:24px}
.v2-top .works__text--lead+.works__text--lead {margin-top:16px}
.v2-top .works__subtitle--more {justify-content:flex-end}
.v2-top .service__lead {margin-top:32px;color:#000;font-size:16px;line-height:1.9}
.v2-top .service__cards {display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:32px}
.v2-top .service__card {display:flex;align-items:flex-start;gap:16px;background:#F8E3E9;border-radius:12px;padding:20px 24px;box-sizing:border-box;transition:transform .25s ease}
.v2-top .service__card:hover {transform:scale(1.03)}
.v2-top .service__cardIcon {flex:0 0 24px;width:24px;height:24px;margin-top:2px;color:#000}
.v2-top .service__cardTitle {font-size:18px;font-weight:bold;color:#000;line-height:1.4;margin:0}
.v2-top .service__cardText {font-size:14px;color:#555;line-height:1.6;margin:4px 0 0}
@media (max-width:768px){.v2-top .service__cards {grid-template-columns:1fr}.v2-top .service__lead,
.v2-top .works__text--lead {font-size:15px}}


/* =====================================================================
   本番移植用 追加（top_v1.html に無い、SWELL実マークアップ向けの上書き）
   ・ヘッダー/メニューはSWELL標準出力（管理画面のメニュー）。プレビュー用の自前ヘッダー・SPメニューは持ち込まない
   ・要実機確認（?v2=1 で PC/SP を目視）。詳細は DEPLOY.md
   ===================================================================== */
/* フル幅（Bカスタマイザ `.home #content.l-content` / Cカスタマイザ `.isFront .l-container` と同等） */
.v2-top #content.l-content { max-width: 100% !important; width: 100% !important; padding: 0 !important; margin: 0 !important; }
.v2-top .l-mainContent { max-width: 100% !important; margin: 0 !important; }
.v2-top .l-mainContent__inner > .post_content { padding: 0 !important; }
.v2-top #body_wrap { background: #fff; }
.v2-top .p-breadcrumb { display: none; }

/* ヘッダー: MV上に重ねる透明ヘッダー、白文字・太字19px・項目間は縦線（修正依頼書p.4: CONTACT枠は廃止） */
.v2-top .l-header { position: absolute; top: 0; left: 0; right: 0; z-index: 900; background: transparent !important; box-shadow: none !important; }
.v2-top .l-fixHeader { display: none !important; }
.v2-top .l-header .c-gnav > li > a .ttl {
  color: #fff !important; text-shadow: none !important; font-size: 19px !important; font-weight: bold !important;
}
.v2-top .l-header .c-gnav > .menu-item { border: 0 !important; border-radius: 0 !important; margin-top: 0 !important; margin-left: 0 !important; position: relative; overflow: visible; }
.v2-top .l-header .c-gnav > .menu-item > a { padding-left: 14px !important; padding-right: 14px !important; }
.v2-top .l-header .c-gnav > .menu-item + .menu-item::before {
  content: ""; position: absolute; left: 0; top: 35px; width: 1px; height: 19px; background: #fff;
}
/* 旧CのCONTACT枠（ヘッダーに差し込まれた独立のカスタムHTMLウィジェット）は新メニュー内のCONTACTに置き換わるため非表示 */
.v2-top .l-header .w-header__item:has(.gradient-button-custom),
.v2-top .l-header .gradient-button-custom { display: none !important; }
/* SPメニュー: 項目名＋右に説明文、EVENTの下に年度タブ（修正依頼書 p.5） */
.v2-top .c-spnav > .menu-item > a { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.v2-top .c-spnav .v2-ttl { font-weight: 700; font-size: 18px; }
.v2-top .c-spnav .v2-desc { font-size: 12px; font-weight: 400; opacity: .85; }
.v2-top .c-spnav .sub-menu.v2-tabs { display: flex !important; flex-direction: column; gap: 8px; padding: 14px 0 14px 1em; position: static; opacity: 1; visibility: visible; }
.v2-top .c-spnav .sub-menu.v2-tabs a::before, .v2-top .c-spnav .sub-menu.v2-tabs a::after { display: none !important; }
.v2-top .c-spnav .sub-menu.v2-tabs a { display: block; font-size: 14px; padding: 8px 12px; border: 1px solid #fff; border-radius: 6px; }
.v2-top .l-header .c-gnav > li > a:hover { opacity: .6; }
[data-spmenu="closed"] .v2-top .c-iconBtn { color: #fff; } /* data-spmenu は html に付くため .v2-top(#body_wrap) より上位。2026-11-06 修正 */

/* ===== 2026-11-05 フッター余白を詰める（v2トップのみ。全ページ分は公開日のフッター差替 footer-widget.html に同梱） ===== */
.v2-top .w-beforeFooter{margin-top:0!important}
.v2-top .w-beforeFooter .menu{margin:0!important}
.v2-top .w-beforeFooter .menu__heading{padding:24px 0 16px!important;margin:0!important}
.v2-top .w-beforeFooter .menu__content{margin-bottom:16px!important}
.v2-top .w-beforeFooter .menu__contentMenu{gap:6px!important}
.v2-top .w-beforeFooter .menu__contentMenuText{padding:4px 0!important;line-height:1.4!important}

/* 2026-11-06 Rim指摘: SPのEVENTカード見出しが大きく左右余白なし → 縮小＋余白 */
@media (max-width: 768px) {
  .v2-top .event__contentItemTitle { font-size: 19px; padding: 14px 32px; line-height: 1.4; }
}

/* 2026-11-06 Rim指摘: MEDIAのSNSアイコンとテキストが近い → 間隔を広げる（PC/SP共通） */
.v2-top .media__iconText { margin-top: 20px; }
@media (max-width: 840px) {
  .v2-top .media__iconText { margin-top: 20px; }
}

/* 2026-11-06 Rim指摘: SPでNEWSスライダー下〜CTA(RECRUIT/CONTACT)の余白が大きすぎ → SPのみ詰める */
@media (max-width: 768px) {
  .v2-top .news__slider { padding-bottom: 8px; }
  .v2-top .CTA-panel { margin-top: 24px; }
}

/* 2026-11-07 Rim指摘: ABOUT見出しの上下余白を他セクション（PC 64/24、SP 36/16）と統一 */
.v2-top .about__title { margin: 64px auto 24px; }
.v2-top .loop-slider { margin-top: 0; }
@media (max-width: 768px) {
  .v2-top .about__title { margin: 36px auto 16px; }
  .v2-top .loop-slider { margin-top: 0; }
}

/* 2026-11-07 Rim指摘: SPの各見出し上の余白を統一（直前コンテンツ→見出し 36px）。各セクションの下paddingを0にし、上padding 36px だけで間隔を作る */
@media (max-width: 840px) {
  .v2-top .works, .v2-top .service, .v2-top .event, .v2-top .media, .v2-top .news { padding-bottom: 0; }
  .v2-top .service__lead { margin-top: 16px; }
}

/* 2026-11-07 Rim指摘: SPのABOUT USボタンを「資料ダウンロード／オンライン相談」ボタンと同じ幅・高さに */
@media (max-width: 840px) {
  .v2-top .top-message__button { padding: 0 24px; }
  .v2-top .top-message__buttonInner { display: flex; width: 100%; padding: 16px 42px; }
}

/* 2026-11-07 Rim指摘: 背景色が切り替わる境目（SERVICE白→EVENT黒、MEDIA黒→NEWS白）は下余白36pxを戻す */
@media (max-width: 840px) {
  .v2-top .service, .v2-top .media { padding-bottom: 36px; }
}

/* 2026-11-07 Rim指摘: SPのRECRUIT/CONTACT説明文が最終行1文字だけになる → 行をバランス配分（対応ブラウザのみ。非対応は従来どおり） */
@media (max-width: 768px) {
  .v2-top .CTA-panel__text { padding: 0 8px; }
  .v2-top .cta-br-sp { display: inline !important; }
  .v2-top .cta-br:not(.cta-br-sp) { display: none; }
}

/* 2026-11-07 Rim指摘: SPのRECRUIT/CONTACT説明文は左寄せ（見出しは中央のまま） */
@media (max-width: 768px) {
  .v2-top .CTA-panel__text { text-align: left; width: fit-content; margin-left: auto; margin-right: auto; padding: 0; font-size: 14px; }
}
