
    *, *::before, *::after {
      box-sizing: border-box;
      margin: 0;
      padding: 0;
    }

    :root {
      --red: #e60013;
      --red-grad: linear-gradient(267.22deg, #e60012 0%, #c7000b 91.45%);
      --text-dark: #2e2e2e;
      --text-nav: #414141;
      --border-color: #7d7d7d;
      --white: #fff;
      --content-left: 208px;
      --content-width: 1025px;
    }

    body {
      background: var(--white);
      font-family: 'Noto Sans JP', sans-serif;
      color: var(--text-dark);
    }

    p { color: #1a1a1a; }

    /* SP専用改行：PCは非表示、SPで表示 */
    br.sp { display: none; }

    /* ── PAGE HEADER (shared) ── */
    .page-header{width:100%;background:#fff;display:flex;align-items:stretch;overflow:hidden;position:relative;}
    .photo-wrap{flex:0 0 55%;position:relative;}
    .photo-inner{width:90%;margin:0 auto;clip-path:inset(0 100% 100% 0);animation:revealTopLeft .9s .1s cubic-bezier(.76,0,.24,1) forwards;}
    @keyframes revealTopLeft{0%{clip-path:inset(0 100% 100% 0);}100%{clip-path:inset(0 0% 0% 0);}}
    .photo-inner img{width:100%;height:auto;display:block;}
    .text-side{
      margin-top: var(--recruit-topbar-page-offset, 110px);
      width:100%;
      background:transparent;
      display:flex;
      flex-direction:column;
      justify-content:center;
      align-items:center;
      text-align:center;
      padding:44px 24px 36px;
      position:relative;
      opacity:0;
      transform:translateY(20px);
      animation:slideIn .6s .45s cubic-bezier(.22,1,.36,1) forwards;
    }
    .inner {
      max-width: 1160px;
      margin: 0 auto;
      padding: 0 60px;
    }
    .heading{font-family:'Poppins',sans-serif;font-size:clamp(28px,4.5vw,58px);font-weight:100;letter-spacing:-.01em;color:#1a1a1a;line-height:1.1;}
    .heading .accent{color:var(--red);}
    .sub{margin-top:10px;font-size:16px;font-weight:300;letter-spacing:.12em;color:#666;}
    .dot{display:none;}
    @keyframes dotPop{to{opacity:1;}}
    @keyframes slideIn{to{opacity:1;transform:translateY(0);}}

    /* ===== SCROLL REVEAL 共通 ===== */
    .reveal-section{
      opacity:0;
      transform:translateY(60px);
      will-change:opacity,transform;
    }
    .reveal-section.is-visible{
      animation:fadeUpSlow 1.6s .1s ease-out forwards;
    }
    @keyframes fadeUpSlow{
      0%{opacity:0;transform:translateY(60px);}
      60%{opacity:1;transform:translateY(12px);}
      100%{opacity:1;transform:translateY(0);}
    }

    /* ========== HEADER ========== */
    .header {
      width: 100%;
      height: 145px;
      background: var(--white);
      border-bottom: 1px solid #eee;
      position: relative;
    }

    .header__inner {
      max-width: 1442px;
      margin: 0 auto;
      height: 100%;
      position: relative;
    }

    .logo {
      position: absolute;
      left: 39px;
      top: 26px;
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      gap: 6px;
    }

    .logo__mark {
      display: flex;
      align-items: flex-start;
      gap: 5px;
    }

    .logo__svg { width: 40px; height: 52px; }

    .logo__wordmark {
      display: flex;
      flex-direction: column;
      padding-top: 2px;
    }

    .logo__wordmark span {
      font-family: 'Roboto', sans-serif;
      font-weight: 700;
      font-size: 13.5px;
      color: #000;
      line-height: 1.15;
      letter-spacing: 0.03em;
    }

    .logo__inc {
      font-weight: 400 !important;
      font-size: 11px !important;
      color: #555 !important;
    }

    .logo__badge {
      display: inline-block;
      padding: 4px 8px;
      background: linear-gradient(225deg, #e60012 0%, #c7000b 91.45%);
      border-radius: 2.77px;
      font-family: 'Roboto', sans-serif;
      font-weight: 400;
      font-size: 10.5px;
      letter-spacing: 1.5px;
      color: var(--white);
      white-space: nowrap;
    }

    .nav {
      position: absolute;
      top: 69px;
      left: 571px;
      display: flex;
      align-items: center;
    }

    .nav__item {
      font-family: 'Roboto', 'Noto Sans JP', sans-serif;
      font-weight: 400;
      font-size: 16.3px;
      color: var(--text-nav);
      text-decoration: none;
      white-space: nowrap;
    }

    .nav__item:nth-child(2) { margin-left: 99px; }
    .nav__item:nth-child(3) { margin-left: 77px; }
    .nav__item:nth-child(4) { margin-left: 80px; }

    .entry-btn {
      position: absolute;
      top: 47px;
      right: 98px;
      width: 137px;
      height: 51px;
      background: linear-gradient(241deg, #e60012 0%, #c7000b 91.45%);
      border-radius: 5.9px;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      text-decoration: none;
      transition: opacity 0.2s;
    }

    .entry-btn:hover { opacity: 0.85; }

    .entry-btn__text {
      font-family: 'Roboto', sans-serif;
      font-weight: 500;
      font-size: 19.25px;
      color: var(--white);
      letter-spacing: 0.04em;
    }

    .hamburger {
      position: absolute;
      top: 60px;
      right: 39px;
      width: 40px;
      height: 21px;
      display: flex;
      flex-direction: column;
      justify-content: space-between;
      cursor: pointer;
    }

    .hamburger__line {
      width: 100%;
      height: 2px;
      background: #000;
    }

    /* ========== HERO ========== */
    .hero {
      padding-top: 61px;
      padding-bottom: 40px;
      text-align: center;
    }

    .hero__en {
      font-family: 'Poppins', sans-serif;
      font-weight: 100;
      font-size: 55.663px;
      line-height: 69.4px;
      color: #000;
    }

    .hero__en .accent { color: var(--red); }

    .hero__ja {
      margin-top: 4px;
      font-family: 'Noto Sans JP', sans-serif;
      font-weight: 400;
      font-size: 20px;
      line-height: 60.43px;
      color: var(--text-dark);
    }

    /* ========== MAIN CONTENT ========== */
    .page-wrapper {
      max-width: 1440px;
      margin: 0 auto;
      padding-bottom: 80px;
    }

    .section { margin-bottom: 0; }
    .section + .section { margin-top: 56px; }

    .section .card + .card { margin-top: 8px; }

    .section__label-row {
      display: flex;
      align-items: center;
      gap: 10px;
      height: 44.895px;
      margin-bottom: 4px;
    }

    .section__accent {
      width: 4px;
      height: 17px;
      background: var(--red-grad);
      flex-shrink: 0;
      border-radius: 2px;
    }

    .section__label {
      font-family: 'Noto Sans JP', sans-serif;
      font-weight: 400;
      font-size: 16.54px;
      color: var(--text-dark);
    }

    .card {
      display: flex;
      align-items: center;
      height: 77px;
      background: var(--white);
      border: 1.181px solid var(--border-color);
      border-radius: 7.089px;
      padding: 0 14px;
      text-decoration: none;
      transition: background 0.2s, border-color 0.2s;
    }

    .card:hover { background: #fafafa; border-color: #444; }

    .card__text {
      font-family: 'Noto Sans JP', sans-serif;
      font-weight: 400;
      font-size: 16.54px;
      line-height: 1.5;
      color: #000;
      display: flex;
      align-items: center;
      gap: 8px;
      min-width: 0;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }
    .card__tag {
      display: inline-flex;
      align-items: center;
      height: 24px;
      padding: 0 8px;
      border-radius: 999px;
      background: #f3f3f3;
      border: 1px solid #d9d9d9;
      color: #333;
      font-size: 12px;
      font-weight: 500;
      letter-spacing: 0.02em;
      flex-shrink: 0;
    }
    .card__text-body {
      min-width: 0;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    .card__arrow {
      margin-left: auto;
      flex-shrink: 0;
      width: 7px;
      height: 7px;
      border-right: 1.5px solid #555;
      border-top: 1.5px solid #555;
      transform: rotate(45deg);
      margin-right: 4px;
    }

    /* ENTRYボタン（コンテンツ内 SP用、PC非表示） */
    .entry-btn-sp {
      display: none;
    }
.back-to-top {
      display: block;
      text-align: center;
      margin-top: 80px;
      font-family: 'Inter', sans-serif;
      font-weight: 700;
      font-size: 16px;
      color: #000;
      text-decoration: underline;
      cursor: pointer;
    }

    /* ============================================================
       MOBILE  (≤ 430px)
    ============================================================ */
    @media (max-width: 430px) {

      /* ---- Header ---- */
      .header {
        height: 145px;
        border-bottom: none;
      }

      .logo {
        left: 16px;
        top: 65px;
      }

      .logo__svg { width: 30px; height: 40px; }

      .logo__wordmark span { font-size: 11px; }
      .logo__inc { font-size: 9px !important; }

      .logo__badge {
        font-size: 9px;
        padding: 3px 6px;
        letter-spacing: 1.2px;
        border-radius: 2.15px;
        margin-top: 4px;
      }

      /* ナビ非表示 */
      .nav { display: none; }

      /* PC ENTRYボタン非表示 */
      .entry-btn { display: none; }

      /* ハンバーガーをSP位置へ */
      .hamburger {
        top: 92px;
        right: 20px;
        width: 57px;
        height: 20px;
      }

      /* ---- Hero ---- */
      .hero {
        padding-top: 53px;
        padding-bottom: 28px;
      }

      .hero__en {
        font-size: 34.36px;
        line-height: 42.84px;
      }

      .hero__ja {
        font-size: 15px;
        line-height: 43.07px;
        margin-top: 2px;
      }

      /* ---- Content ---- */
      .page-wrapper {
        padding-bottom: 48px;
      }

      .inner {
        padding: 0 32px;
      }

      .section { margin-bottom: 0; }
      .section + .section { margin-top: 32px; }

      .section__label-row {
        height: 38px;
      }

      .section__accent { height: 10px; }

      .section__label { font-size: 14px; }

      .card {
        height: auto;
        min-height: 65px;
        padding: 12px 16px;
        border-radius: 6px;
        border-width: 1px;
      }

      /* イベントカードは高さ可変 */
      .card--event { min-height: 78px; }

      .card__text {
        font-size: 14px;
        line-height: 24px;
        align-items: flex-start;
        white-space: normal;
        flex-wrap: wrap;
        gap: 6px;
      }
      .card__tag {
        height: 22px;
        font-size: 11px;
      }
      .card__text-body {
        white-space: normal;
        overflow: visible;
      }

      /* カード右矢印 */
      .card__arrow {
        margin-left: auto;
        flex-shrink: 0;
        width: 7px;
        height: 7px;
        border-right: 1.5px solid #555;
        border-top: 1.5px solid #555;
        transform: rotate(45deg);
        margin-right: 4px;
      }

      /* ---- SP ENTRYボタン ---- */
      .entry-btn-sp {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 10px;
        width: 140px;
        height: 54.26px;
        background: linear-gradient(242deg, #e60012 0%, #c7000b 91.45%);
        border-radius: 8px;
        margin: 36px auto 0;
        text-decoration: none;
        transition: opacity 0.2s;
      }

      .entry-btn-sp:hover { opacity: 0.85; }

      .entry-btn-sp__text {
        font-family: 'Roboto', sans-serif;
        font-weight: 500;
        font-size: 18.99px;
        color: #fff;
        letter-spacing: 0.04em;
      }
    }

    /* Mobile: h1 font-size unified across pages */
    @media (max-width: 768px) {
      br.sp { display: inline; }
      .sub { font-size: 13px; }
      h1 { font-size: 40px !important; }
    }

    @media(max-width:600px){
      .page-header{flex-direction:column-reverse;}
      .photo-wrap{flex:none;width:100%;}
      .photo-inner{width:100%;animation:revealTopLeft .9s .2s cubic-bezier(.76,0,.24,1) forwards;}
      .text-side{padding:28px 24px;transform:translateY(20px);animation:slideIn .6s .35s cubic-bezier(.22,1,.36,1) forwards;}
      .dot{bottom:20px;right:20px;}
      .heading{font-size:32px;}
      .inner{padding:0 20px;}
    }

    /* PC: h2 font-size unified across pages */
    @media (min-width: 769px) {
      h2 { font-size: 50px; }
    }

    @media (max-width: 768px) {
      .photo-inner img { width: 90%; }
    }
  