  /* ============ banner (photo, shared treatment) ============ */
  .banner {
      position: relative;
      overflow: hidden;
      min-height: clamp(346px, 50svh, 560px);
      display: flex;
      align-items: flex-end;
      padding: 124px 0 64px;
      background:
          radial-gradient(120% 140% at 50% -30%, #0D1426 0%, var(--space-900) 60%),
          linear-gradient(180deg, #06080F 0%, #04050C 100%);
      border-bottom: 1px solid var(--line);
      margin-top: 64px;
  }

  .banner-photo {
      position: absolute;
      inset: 0;
      z-index: 0;
      overflow: hidden
  }

  .banner-photo img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center 45%;
  }

  .banner-photo::after {
      content: "";
      position: absolute;
      inset: 0;
      background: radial-gradient(120% 95% at 72% 12%, rgba(231, 196, 92, .20), transparent 58%);
      mix-blend-mode: overlay
  }

  .banner-scrim {
      position: absolute;
      inset: 0;
      z-index: 1;
      pointer-events: none;
  }

  .pass {
      position: absolute;
      inset: 0;
      z-index: 2;
      pointer-events: none;
      overflow: hidden
  }

  .sat {
      position: absolute;
      top: 0;
      left: 0;
      width: 7px;
      height: 7px;
      border-radius: 50%;
      background: radial-gradient(circle at 50% 40%, var(--gold-bright), var(--gold) 55%, var(--gold-deep) 100%);
      box-shadow: 0 0 10px 2px rgba(243, 215, 126, .9), 0 0 24px 7px rgba(231, 196, 92, .35);
      offset-path: path("M -60 470 C 340 180, 980 120, 1560 330");
      offset-rotate: auto;
      animation: pass 22s linear infinite
  }

  .sat::after {
      content: "";
      position: absolute;
      top: 50%;
      right: 50%;
      width: 46px;
      height: 2px;
      transform: translateY(-50%);
      background: linear-gradient(90deg, rgba(231, 196, 92, 0), rgba(231, 196, 92, .5));
      border-radius: 2px
  }

  @keyframes pass {
      0% {
          offset-distance: 0%;
          opacity: 0
      }

      8% {
          opacity: 1
      }

      88% {
          opacity: 1
      }

      100% {
          offset-distance: 100%;
          opacity: 0
      }
  }

  .banner .wrap {
      position: relative;
      z-index: 3
  }

  .crumbs {
      display: flex;
      align-items: center;
      gap: 10px;
      margin-bottom: 20px;
      font-family: var(--mono);
      font-size: 11.5px;
      letter-spacing: .16em;
      text-transform: uppercase;
      color: var(--muted)
  }

  .crumbs a {
      text-decoration: none;
      transition: color .2s
  }

  .crumbs a:hover {
      color: var(--gold)
  }

  .crumbs .sl {
      color: var(--line)
  }

  .crumbs [aria-current] {
      color: var(--ink)
  }

  .banner h1 {
      font-family: var(--jp-serif);
      font-weight: 600;
      line-height: 1.2;
      letter-spacing: .03em;
      font-size: clamp(36px, 5.2vw, 58px)
  }

  .banner .en {
      display: block;
      margin-top: 13px;
      font-family: var(--en);
      font-size: clamp(12px, 1.3vw, 14px);
      letter-spacing: .28em;
      text-transform: uppercase;
      color: var(--gold)
  }

  /* ============ intro ============ */
  .intro {
      padding: clamp(56px, 8vw, 88px) 0 clamp(40px, 5vw, 56px);
      border-bottom: 1px solid var(--hair)
  }

  .intro p {
      color: var(--muted);
      font-size: clamp(14.5px, 1.3vw, 16px);
      line-height: 2.05;
      max-width: 64ch
  }

  .intro p b {
      color: var(--ink);
      font-weight: 500
  }

  /* ============ section label ============ */
  .sec {
      padding: clamp(56px, 7vw, 84px) 0
  }

  .sec-label {
      font-family: var(--mono);
      font-size: 12px;
      letter-spacing: .2em;
      text-transform: uppercase;
      color: var(--gold);
      margin-bottom: 10px
  }

  .sec-title {
      font-family: var(--jp-serif);
      font-weight: 600;
      font-size: clamp(22px, 2.6vw, 30px);
      letter-spacing: .02em;
      margin-bottom: 8px
  }

  .sec-note {
      color: var(--muted);
      font-size: 13.5px;
      margin-bottom: 6px
  }

  /* ============ job list ============ */
  .jobs {
      margin-top: 40px;
      border-top: 1px solid var(--line)
  }

  .job {
      border-bottom: 1px solid var(--hair);
      padding: clamp(28px, 3.4vw, 40px) 0
  }

  .job-head {
      display: flex;
      align-items: baseline;
      gap: 16px;
      flex-wrap: wrap;
      margin-bottom: 8px
  }

  .job-head .dept {
      font-family: var(--mono);
      font-size: 11px;
      letter-spacing: .14em;
      text-transform: uppercase;
      color: var(--gold)
  }

  .job-head .type {
      font-family: var(--mono);
      font-size: 11px;
      letter-spacing: .1em;
      color: var(--muted);
      border: 1px solid var(--line);
      border-radius: 999px;
      padding: 3px 10px
  }

  .job h3 {
      font-family: var(--jp-serif);
      font-weight: 600;
      font-size: clamp(19px, 2vw, 24px);
      line-height: 1.5;
      margin-bottom: 18px
  }

  .job-lead {
      color: var(--muted);
      font-size: 14.5px;
      line-height: 1.95;
      max-width: 70ch;
      margin-bottom: 26px
  }

  /* spec table (definition rows) */
  .job-specs {
      border-top: 1px solid var(--hair)
  }

  .row {
      display: grid;
      grid-template-columns: 180px 1fr;
      gap: 20px;
      padding: 15px 2px;
      border-bottom: 1px solid var(--hair);
      align-items: start
  }

  .row dt {
      font-family: var(--mono);
      font-size: 11px;
      letter-spacing: .12em;
      text-transform: uppercase;
      color: var(--muted);
      padding-top: 3px
  }

  .row dd {
      color: var(--ink);
      font-size: 15px;
      line-height: 1.85
  }

  .row dd.salary {
      font-weight: 500
  }

  .row dd ul {
      list-style: none;
      display: flex;
      flex-direction: column;
      gap: 7px
  }

  .row dd li {
      position: relative;
      padding-left: 18px;
      color: var(--muted);
      font-size: 14.5px;
      line-height: 1.8
  }

  .row dd li b {
      color: var(--ink);
      font-weight: 500
  }

  .row dd li::before {
      content: "";
      position: absolute;
      left: 0;
      top: .72em;
      width: 6px;
      height: 1px;
      background: var(--gold)
  }

  /* ============ ideal candidate ============ */
  .profile {
      padding-top: 0
  }

  .profile-list {
      list-style: none;
      margin-top: 36px;
      border-top: 1px solid var(--line)
  }

  .profile-item {
      display: grid;
      grid-template-columns: 72px 1fr;
      gap: 8px 20px;
      align-items: start;
      padding: clamp(22px, 2.6vw, 30px) 2px;
      border-bottom: 1px solid var(--hair)
  }

  .profile-item .pi-num {
      font-family: var(--mono);
      font-size: 12px;
      letter-spacing: .16em;
      color: var(--gold);
      padding-top: 5px
  }

  .profile-item .pi-body h3 {
      font-family: var(--jp-serif);
      font-weight: 600;
      font-size: clamp(16px, 1.7vw, 19px);
      line-height: 1.6;
      letter-spacing: .02em;
      margin-bottom: 8px
  }

  .profile-item .pi-body p {
      color: var(--muted);
      font-size: 14.5px;
      line-height: 1.95;
      max-width: 62ch
  }

  /* ============ how to apply ============ */
  .apply {
      background: linear-gradient(180deg, var(--space-900), var(--space-800));
      border-top: 1px solid var(--hair)
  }

  .apply-box {
      margin-top: 36px;
      border: 1px solid var(--line);
      border-radius: 4px;
      background: radial-gradient(90% 200% at 85% 0%, rgba(201, 146, 10, .06), transparent 60%);
      padding: clamp(28px, 3.4vw, 44px)
  }

  /* ============ application form ============ */
  .form-divider {
      display: flex;
      align-items: center;
      gap: 18px;
      margin: 44px 0 8px;
      color: var(--muted)
  }

  .form-divider::before,
  .form-divider::after {
      content: "";
      flex: 1;
      height: 1px;
      background: var(--hair)
  }

  .form-divider span {
      font-family: var(--mono);
      font-size: 11px;
      letter-spacing: .14em;
      text-transform: uppercase
  }

  .apply-form-panel {
      margin-top: 32px;
      border: 1px solid var(--line);
      border-radius: 6px;
      padding: clamp(28px, 3.4vw, 44px);
      background: radial-gradient(120% 80% at 85% 0%, rgba(201, 146, 10, .05), transparent 55%), var(--space-800)
  }

  .apply-form-panel .fp-note {
      font-size: 13px;
      color: var(--muted);
      margin-bottom: 26px;
      line-height: 1.8
  }

  .apply-form-panel .fp-note b {
      color: var(--ink);
      font-weight: 500
  }

  .field {
      margin-bottom: 22px
  }

  .field>label,
  .field .flabel {
      display: block;
      font-size: 13px;
      color: var(--ink);
      margin-bottom: 9px;
      font-weight: 500
  }

  .field .req {
      color: var(--danger);
      font-size: 11px;
      margin-left: 8px;
      font-weight: 400;
      letter-spacing: .04em
  }

  .field .opt {
      color: var(--muted);
      font-size: 11px;
      margin-left: 8px;
      font-weight: 400
  }

  .field .hint {
      display: block;
      font-size: 12px;
      color: var(--muted);
      margin-top: 7px;
      line-height: 1.7
  }

  .wpcf7-form input[type=text],
  .wpcf7-form input[type=email],
  .wpcf7-form input[type=tel],
  .wpcf7-form select,
  .wpcf7-form textarea,
  .wpcf7-form .wpcf7-form-control.wpcf7-text,
  .wpcf7-form .wpcf7-form-control.wpcf7-email,
  .wpcf7-form .wpcf7-form-control.wpcf7-tel,
  .wpcf7-form .wpcf7-form-control.wpcf7-select,
  .wpcf7-form .wpcf7-form-control.wpcf7-textarea {
      width: 100%;
      font-family: var(--jp-sans);
      font-size: 15px;
      color: var(--ink);
      background: var(--field-bg);
      border: 1px solid var(--line);
      border-radius: 4px;
      padding: 13px 15px;
      line-height: 1.6;
      transition: border-color .2s, background .2s;
      -webkit-appearance: none;
      appearance: none;
  }

  .wpcf7-form textarea,
  .wpcf7-form .wpcf7-textarea {
      min-height: 150px;
      resize: vertical
  }

  .wpcf7-form select,
  .wpcf7-form .wpcf7-select {
      background-image: linear-gradient(45deg, transparent 50%, var(--gold) 50%), linear-gradient(135deg, var(--gold) 50%, transparent 50%);
      background-position: calc(100% - 20px) center, calc(100% - 14px) center;
      background-size: 6px 6px, 6px 6px;
      background-repeat: no-repeat;
      background-color: var(--field-bg);
      padding-right: 44px;
      cursor: pointer;
  }

  .wpcf7-form select option {
      background: rgba(255, 255, 255, .02);
      color: #F3EFE4;
  }

  .wpcf7-form ::placeholder {
      color: rgba(255, 255, 255, .28)
  }

  .wpcf7-form input:focus,
  .wpcf7-form select:focus,
  .wpcf7-form textarea:focus,
  .wpcf7-form .wpcf7-form-control:focus {
      outline: none;
      border-color: var(--gold);
      background: #0d1424;
  }

  /* file upload field (履歴書・職務経歴書) */
  .filefield {
      position: relative
  }

  .filefield input[type=file],
  .wpcf7-form .wpcf7-form-control.wpcf7-file {
      width: 100%;
      font-family: var(--jp-sans);
      font-size: 14px;
      color: var(--muted);
      background: var(--field-bg);
      border: 1px dashed var(--line);
      border-radius: 4px;
      padding: 14px 15px;
      cursor: pointer;
      transition: border-color .2s, background .2s;
  }

  .filefield input[type=file]:hover,
  .wpcf7-form .wpcf7-file:hover {
      border-color: var(--gold);
      background: rgba(231, 196, 92, .03)
  }

  .filefield input[type=file]::file-selector-button {
      font-family: var(--mono);
      font-size: 11px;
      letter-spacing: .06em;
      color: var(--gold);
      background: transparent;
      border: 1px solid var(--line);
      border-radius: 999px;
      padding: 6px 14px;
      margin-right: 14px;
      cursor: pointer;
      transition: color .2s, background .2s;
  }

  .filefield input[type=file]::file-selector-button:hover {
      color: var(--space-900);
      background: var(--gold)
  }

  .consent {
      display: flex;
      gap: 12px;
      align-items: flex-start;
      margin: 26px 0 8px;
      font-size: 13.5px;
      color: var(--muted);
      line-height: 1.7
  }

  .consent input[type=checkbox] {
      flex: 0 0 auto;
      width: 18px;
      height: 18px;
      margin-top: 2px;
      accent-color: var(--gold);
      cursor: pointer
  }

  .consent a {
      color: var(--gold);
      text-decoration: underline;
      text-underline-offset: 3px
  }

  .wpcf7-form .submit-btn,
  .wpcf7-form .wpcf7-form-control.wpcf7-submit {
      display: inline-flex;
      align-items: center;
      gap: 12px;
      margin-top: 20px;
      font-family: var(--jp-sans);
      font-weight: 500;
      font-size: 15px;
      cursor: pointer;
      color: var(--space-900);
      background: var(--gold);
      border: none;
      padding: 15px 34px;
      border-radius: 999px;
      transition: transform .25s, box-shadow .25s, background .25s;
  }

  .wpcf7-form .submit-btn:hover,
  .wpcf7-form .wpcf7-submit:hover,
  .wpcf7-form .submit-btn:focus-visible,
  .wpcf7-form .wpcf7-submit:focus-visible {
      transform: translateY(-2px);
      background: var(--gold-bright);
      box-shadow: 0 10px 30px -8px rgba(231, 196, 92, .55)
  }

  .wpcf7-form .submit-btn:focus-visible,
  .wpcf7-form .wpcf7-submit:focus-visible {
      outline: 2px solid var(--ink);
      outline-offset: 3px
  }

  .wpcf7-form .wpcf7-response-output {
      margin: 22px 0 0 !important;
      padding: 14px 16px !important;
      border-radius: 4px;
      font-size: 13.5px;
      line-height: 1.7;
      border: 1px solid var(--line) !important;
      color: var(--ink)
  }

  .wpcf7-form .wpcf7-not-valid-tip {
      color: var(--danger);
      font-size: 12.5px;
      margin-top: 6px;
      display: block
  }

  .wpcf7-form .wpcf7-form.invalid .wpcf7-response-output,
  .wpcf7-form .wpcf7-form.unaccepted .wpcf7-response-output {
      border-color: rgba(224, 121, 107, .4) !important;
      background: rgba(224, 121, 107, .06)
  }

  .wpcf7-form .wpcf7-form.sent .wpcf7-response-output {
      border-color: rgba(91, 226, 154, .4) !important;
      background: rgba(91, 226, 154, .07)
  }

  .wpcf7-form .wpcf7-not-valid {
      border-color: var(--danger) !important
  }

  .two-col {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 20px
  }

  .btn {
      display: inline-flex;
      align-items: center;
      gap: 12px;
      flex: 0 0 auto;
      font-weight: 500;
      font-size: 15px;
      color: var(--space-900);
      background: var(--gold);
      padding: 14px 26px;
      border-radius: 999px;
      text-decoration: none;
      transition: transform .25s, box-shadow .25s, background .25s
  }

  .btn:hover,
  .btn:focus-visible {
      transform: translateY(-2px);
      background: var(--gold-bright);
      box-shadow: 0 10px 30px -8px rgba(231, 196, 92, .55)
  }

  .btn .arr {
      transition: transform .25s
  }

  .btn:hover .arr {
      transform: translateX(4px)
  }

  .btn:focus-visible {
      outline: 2px solid var(--ink);
      outline-offset: 3px
  }

  .note-line {
      margin-top: 26px;
      color: var(--muted);
      font-size: 13px;
      line-height: 1.9
  }

  .note-line a {
      color: var(--gold);
      text-decoration: underline;
      text-underline-offset: 3px
  }

  /* ============ responsive ============ */
  @media (max-width:1080px) {
      .foot-grid {
          grid-template-columns: 1fr 1fr;
          gap: 44px 32px
      }
  }

  @media (max-width:960px) {
      .banner-photo img {
          object-position: center 42%
      }
  }

  @media (max-width:620px) {
      .profile-item {
          grid-template-columns: 1fr;
          gap: 6px
      }

      .profile-item .pi-num {
          padding-top: 0
      }

      .row {
          grid-template-columns: 1fr;
          gap: 6px
      }

      .row dt {
          padding-top: 0
      }

      .banner {
          padding: 140px 0 44px
      }

      .mail-panel {
          flex-direction: column;
          align-items: flex-start
      }

      .foot-grid {
          grid-template-columns: 1fr;
          gap: 36px
      }
  }

  @media (prefers-reduced-motion:reduce) {

      .sat,
      .foot-bottom .dot {
          animation: none !important
      }
  }