@charset "UTF-8";
/***************************************
 *
 *base CSS
 *
 *2019/XX
 *
 ****************************************** */
/*****************************
 *
 *settings
 *
 ***************************** */
.trans_txt_parent .inner {
  overflow: hidden; }
.trans_txt_parent s {
  display: inline-block;
  transform: translateY(100px); }

.scroll_fadein {
  transform: translateY(100px);
  opacity: 0; }

/***********************
 *
 *common
 *
 ********************** */
* {
  box-sizing: border-box; }

a {
  text-decoration: none;
  color: inherit; }

li {
  list-style: none; }

i, em {
  font-style: normal; }

body, html {
  margin: 0px;
  padding: 0px;
  font-family: "Helvetica Neue", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Meiryo", sans-serif;
  font-feature-settings: "palt";
  -webkit-text-size-adjust: 100%; }

body {
  overflow-x: hidden; }

ul {
  margin: 0;
  padding: 0; }

h2, h3, h4, h5 {
  font-weight: bold; }

p {
  font-size: 16px;
  margin: 20px 0;
  line-height: 1.9; }
  p.l {
    font-size: 20px; }
  p.center {
    text-align: center; }

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

table {
  border-collapse: collapse; }

#wpadminbar {
  display: none; }

.pc_content {
  display: block !important; }

.sp_content {
  display: none !important; }

::-webkit-scrollbar {
  width: 10px; }

::-webkit-scrollbar-track {
  background: #fff;
  border: none;
  border-radius: 10px;
  box-shadow: inset 0 0 2px #777; }

::-webkit-scrollbar-thumb {
  background: #ccc;
  border-radius: 10px;
  box-shadow: none; }

.btn_border {
  text-align: center;
  display: block;
  margin: 20px auto;
  position: relative;
  max-width: 300px;
  background: #f1f1f1; }
  .btn_border::before {
    right: 0;
    top: 0; }
  .btn_border::after {
    left: 0;
    bottom: 0; }
  .btn_border::before, .btn_border::after {
    content: "";
    width: 0;
    height: 1px;
    position: absolute;
    transition: all 0.2s linear;
    background: #000;
    transition-delay: 0s; }
  .btn_border:hover::before, .btn_border:hover::after {
    width: 100%;
    transition-delay: 0.2s; }
  .btn_border:hover span::before, .btn_border:hover span::after {
    height: 100%;
    transition-delay: 0s; }
  .btn_border span {
    display: block;
    padding: 15px;
    font-size: 16px;
    color: #000;
    position: relative; }
    .btn_border span::before {
      left: 0;
      top: 0; }
    .btn_border span::after {
      right: 0;
      bottom: 0; }
    .btn_border span::before, .btn_border span::after {
      content: "";
      width: 1px;
      height: 0;
      position: absolute;
      transition: all 0.2s linear;
      background: #000;
      transition-delay: 0.2s; }

/*************************************
 *
 *404
 *
 ************************************* */
p.p404 {
  padding: 40px;
  text-align: center;
  font-size: 32px;
  font-weight: bold;
  background: #f1f1f1;
  margin: 40px 0; }

/***************************************
 *
 *header
 *
 ************************************* */
header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100px;
  align-items: center;
  padding: 20px 30px;
  display: flex;
  justify-content: space-between;
  z-index: 999;
  background-color: #fff;
 }
  header.scrolled nav a {
    color: #212121; }
  header.subpage nav a {
    color: #212121; }
  header a.logo {
    width: 260px; }
    header a.logo h1 {
      margin: 0;
      width: 100%; }
      header a.logo h1 img {
        display: block;
        width: 100%;
        padding-bottom: 25px; }
  header nav {
    align-items: center;
    display: flex; }
    header nav a {
      padding: 0 0px;
      font-size: 16px;
      margin: 0 20px;
      /* color: #fff; */
      letter-spacing: 0.1rem;
      /* color: #fff; */
      position: relative; }
      header nav a:hover:before {
        width: 100%; }
      header nav a:before {
        content: "";
        width: 0;
        transition: 0.4s ease;
        height: 1px;
        background: #212121;
        position: absolute;
        left: 0;
        bottom: -20px; }
      header nav a.contact {
        width: 186px;
        padding: 15px;
        align-items: center;
        display: flex;
        justify-content: center;
        background: #fff;
        border: 1px solid #212121;
        border-radius: 50px;
        color: #212121;
        margin-left: 20px;
        letter-spacing: 0rem;
        margin-right: 0; }
        header nav a.contact img {
          margin-right: 8px; }
        header nav a.contact:before {
          display: none; }

#fv {
  height: 100vh;
  width: 100%;
  align-items: center;
  justify-content: center;
  display: flex;
  position: relative;
  border-bottom: 1px solid #ccc;
  overflow: hidden; }
  #fv:before {
    content: "";
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    background: rgba(0, 0, 0, 0.4);
    mix-blend-mode: multiply;
    z-index: 2; }
  #fv .fv_info {
    position: absolute;
    bottom: 0;
    z-index: 3;
    width: 100%;
    background: #fff;
    height: 100px; }
    #fv .fv_info .ib {
      padding: 30px 0;
      align-items: center;
      display: flex; }
      #fv .fv_info .ib p {
        margin: 0;
        font-size: 16px;
        transition: 0.4s ease; }
        #fv .fv_info .ib p:hover {
          color: #E3899B; }
        #fv .fv_info .ib p span {
          display: inline-block;
          margin-right: 20px;
          font-family: "Helvetica Neue", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Meiryo", sans-serif; }
  #fv video, #fv #movie_outer {
    position: relative;
    z-index: 1;
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    object-fit: cover; }
    #fv video #youtube, #fv #movie_outer #youtube {
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      /*縦横幅指定 */
      width: 177.77777778vh;
      height: 56.25vw;
      min-height: 100%;
      min-width: 100%; }
  #fv h1 {
    font-weight: 500;
    font-size: 70px;
    font-family: "Helvetica Neue", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Meiryo", sans-serif;
    position: relative;
    z-index: 4;
    /* mix-blend-mode: exclusion; */
    color: rgba(255, 255, 255, 0.85);
    letter-spacing: 0.2rem;
    text-align: center; }
    #fv h1 span {
      display: block;
      text-align: center;
      font-size: 32px;
      font-family: "Helvetica Neue", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Meiryo", sans-serif; }

s {
  text-decoration: none; }

.trans_txt_parent s {
  transform: translateY(10px);
  opacity: 0; }

a.button {
  font-size: 16px;
  color: #E3899B;
  align-items: center;
  display: flex;
  transition: 0.4s ease;
  margin: 30px 0;
  width: 180px; }
  a.button.right {
    float: right; }
  a.button.center {
    margin: 50px auto; }
  a.button.left {
    margin: 50px 0; }
  a.button:hover i {
    background: #E3899B; }
    a.button:hover i:before {
      color: #fff;
      transform: translateX(10px); }
  a.button span {
    text-decoration: underline;
    margin-right: 14px; }
  a.button i {
    width: 48px;
    height: 28px;
    border: 2px solid #E3899B;
    border-radius: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: 0.4s ease; }
    a.button i:before {
      font-family: "Helvetica Neue", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Meiryo", sans-serif;
      content: "";
      transition: 0.4s ease; }

#content, #content2 {
  position: relative;
  z-index: 2;
  background: #fff;
  z-index: 2; }
  #content h2, #content2 h2 {
    color: #212121;
    font-weight: 500;
    margin: 50px 0; }
    #content h2 span, #content2 h2 span {
      display: block;
      font-size: 16px; }
    #content h2 .en, #content2 h2 .en {
      overflow: hidden;
      display: block;
      font-family: "Helvetica Neue", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Meiryo", sans-serif;
      letter-spacing: 0.2rem;
      font-size: 52px;
      margin-left: -3px; }
      #content h2 .en s, #content2 h2 .en s {
        display: inline-block; }
  #content section .ib, #content2 section .ib {
    padding: 50px 0; }
  #content .intro_biz, #content2 .intro_biz {
    background: url(../img/intro1.jpg) fixed;
    background-size: cover;
    width: calc(100vw - 80px);
    margin-left: calc(0px - calc(50vw - 640px));
    height: 480px;
    border-radius: 20px;
    position: relative;
    z-index: 2;
    margin-bottom: 250px; }
    #content .intro_biz .biz_box, #content2 .intro_biz .biz_box {
      width: 730px;
      margin: 0 auto;
      height: auto; }
      #content .intro_biz .biz_box .box, #content2 .intro_biz .biz_box .box {
        width: 100%; }
        #content .intro_biz .biz_box .box .img, #content2 .intro_biz .biz_box .box .img {
          width: 100%;
          height: 420px;
          overflow: hidden;
          position: relative; }
          #content .intro_biz .biz_box .box .img img, #content2 .intro_biz .biz_box .box .img img {
            position: absolute;
            width: 900px;
            height: auto;
            top: 0;
            left: -80px; }
        #content .intro_biz .biz_box .box .txt, #content2 .intro_biz .biz_box .box .txt {
          background: #fff;
          padding: 30px;
          overflow: hidden; }
          #content .intro_biz .biz_box .box .txt p, #content2 .intro_biz .biz_box .box .txt p {
            margin: 0; }
  #content section.top_company, #content2 section.top_company {
    min-height: 500px;
    position: relative;
    overflow: hidden; }
    #content section.top_company:before, #content2 section.top_company:before {
      content: "";
      background: #f7f7f7;
      height: 400px;
      width: 100vw;
      top: 130px;
      left: 0;
      position: absolute; }
    #content section.top_company .ib, #content2 section.top_company .ib {
      z-index: 3; }
      #content section.top_company .ib h2, #content2 section.top_company .ib h2 {
        padding-left: 430px;
        margin-top: 20px; }
      #content section.top_company .ib .ceo_img, #content2 section.top_company .ib .ceo_img {
        width: 365px;
        height: 405px;
        overflow: hidden;
        border-radius: 20px;
        position: absolute;
        top: 0; }
        #content section.top_company .ib .ceo_img img, #content2 section.top_company .ib .ceo_img img {
          height: auto;
          width: 100%;
          position: absolute;
          top: 0%;
          left: 0%; }
      #content section.top_company .ib p, #content2 section.top_company .ib p {
        padding-left: 430px; }
      #content section.top_company .ib a.button, #content2 section.top_company .ib a.button {
        margin-left: 470px;
        margin-top: 100px; }
  #content section.news .ib, #content2 section.news .ib {
    width: 860px; }
  #content .news_list .row, #content2 .news_list .row {
    justify-content: space-between;
    display: flex;
    align-items: center;
    padding: 30px 0;
    border-bottom: 1px solid #313131; }
    #content .news_list .row:hover p, #content2 .news_list .row:hover p {
      color: #003366; }
    #content .news_list .row:last-child, #content2 .news_list .row:last-child {
      border: none; }
    #content .news_list .row span, #content2 .news_list .row span {
      font-size: 17px;
      font-family: "Helvetica Neue", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Meiryo", sans-serif;
      width: 95px; }
    #content .news_list .row p, #content2 .news_list .row p {
      margin: 0;
      width: calc(100% - 95px);
      align-items: center;
      display: flex;
      transition: 0.4s ease; }
      #content .news_list .row p:before, #content2 .news_list .row p:before {
        width: 30px;
        content: "";
        height: 1px;
        background: #003366;
        display: block;
        margin-right: 15px; 
		margin-left: 15px;}
  #content section.recruit, #content2 section.recruit {
    background: #f7f7f7; }
    #content section.recruit .ib, #content2 section.recruit .ib {
      padding: 50px 0;
      width: 920px; }
      #content section.recruit .ib .img, #content2 section.recruit .ib .img {
        width: 475px;
        height: 370px;
        overflow: hidden;
        border-radius: 30px;
        position: absolute;
        bottom: -80px;
        right: -80px; }
        #content section.recruit .ib .img img, #content2 section.recruit .ib .img img {
          object-fit: cover;
          width: 100%;
          height: 100%; }

/*************************************
 *
 *subpage
 *
 *************************************** */
#content .ib {
  padding: 50px 0; }

#content .head_tit {
  height: 310px;
  background: #f7f7f7; }
  #content .head_tit .ib h2 {
    margin-top: 80px; }
#content .panlist .ib {
  font-size: 16px;
  display: flex; }
  #content .panlist .ib a:not(.home), #content .panlist .ib span {
    margin-left: 10px;
    align-items: center;
    display: flex; }
    #content .panlist .ib a:not(.home):before, #content .panlist .ib span:before {
      content: "";
      font-family: "material icons";
      margin-right: 10px; }
#content .biz_head {
  width: calc(50vw + 600px);
  height: 300px;
  overflow: hidden;
  position: relative;
  border-radius: 0 50px 50px 0;
  background: #e0e0e0; }
  #content .biz_head h2 {
    font-size: 32px;
    margin: 0;
    position: absolute;
    bottom: 30px;
    right: 40px;
    z-index: 2; }
  #content .biz_head img {
    position: absolute;
    width: 100%;
    max-width: 1600px;
    height: auto;
    top: calc(0% - 50px);
    left: 0; }
#content .tit {
  text-align: center;
  margin: 50px 0; }
  #content .tit span {
    display: block;
    text-align: center;
    font-size: 32px;
    font-family: "Helvetica Neue", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Meiryo", sans-serif;
    color: #E3899B; }
  #content .tit i {
    display: block;
    text-align: center;
    font-size: 32px;
    font-weight: 500;
    margin-top: 20px; }
#content .steps {
  position: relative;
  padding: 40px 0 60px;
  margin: 60px 0; }
  #content .steps:before {
    content: "";
    width: 100vw;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    margin-left: calc(0px - calc(50vw - 600px));
    background: #f7f7f7;
    display: block; }
  #content .steps .step_slide {
    width: 860px;
    margin: auto;
    padding: 0 30px; }
    #content .steps .step_slide .swiper-button-prev {
      left: 0px; }
    #content .steps .step_slide .swiper-button-next {
      right: 0; }
    #content .steps .step_slide .swiper-button-next, #content .steps .step_slide .swiper-button-prev {
      color: #E3899B; }
    #content .steps .step_slide .swiper-pagination-bullet-active {
      background: #E3899B; }
    #content .steps .step_slide .swiper-slide {
      width: 100%;
      flex-wrap: wrap;
      display: flex;
      background: #f7f7f7; }
      #content .steps .step_slide .swiper-slide h3 {
        align-items: center;
        justify-content: center;
        display: flex;
        font-size: 32px;
        width: 100%; }
        #content .steps .step_slide .swiper-slide h3 span {
          color: #E3899B;
          font-family: "Helvetica Neue", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Meiryo", sans-serif;
          margin-right: 15px;
          font-weight: 500; }
          #content .steps .step_slide .swiper-slide h3 span em {
            font-size: 44px;
            display: inline-block; }
        #content .steps .step_slide .swiper-slide h3 i {
          font-weight: 500; }
      #content .steps .step_slide .swiper-slide .inner {
        width: 100%;
        display: flex; }
        #content .steps .step_slide .swiper-slide .inner.s4 .l {
          width: 460px; }
        #content .steps .step_slide .swiper-slide .inner.c {
          justify-content: center; }
          #content .steps .step_slide .swiper-slide .inner.c .r {
            width: 310px; }
          #content .steps .step_slide .swiper-slide .inner.c .l {
            margin-right: 20px; }
        #content .steps .step_slide .swiper-slide .inner .l, #content .steps .step_slide .swiper-slide .inner .r {
          max-width: 100%; }
          #content .steps .step_slide .swiper-slide .inner .l .img, #content .steps .step_slide .swiper-slide .inner .r .img {
            height: 310px;
            width: 100%; }
            #content .steps .step_slide .swiper-slide .inner .l .img img, #content .steps .step_slide .swiper-slide .inner .r .img img {
              object-fit: cover;
              width: 100%;
              height: 100%; }
          #content .steps .step_slide .swiper-slide .inner .l.pd, #content .steps .step_slide .swiper-slide .inner .r.pd {
            padding-left: 40px; }
        #content .steps .step_slide .swiper-slide .inner .l {
          width: 310px; }
        #content .steps .step_slide .swiper-slide .inner .r {
          width: calc(100% - 350px); }
          #content .steps .step_slide .swiper-slide .inner .r p {
            height: auto; }
          #content .steps .step_slide .swiper-slide .inner .r .logo {
            display: block;
            width: 240px;
            margin: 30px 0;
            mix-blend-mode: multiply; }

#content table {
  width: 100%;
  font-size: 17px;
  color: #575757; }
  #content table.contact {
    width: 1000px; }
    #content table.contact tr th {
      width: 170px; }
    #content table.contact tr td {
      width: calc(100% - 170px); }
  #content table.recruit {
    width: 740px;
    margin: 100px auto; }
    #content table.recruit tr th {
      width: 120px; }
    #content table.recruit tr td {
      width: calc(100% - 120px); }
  #content table tr th {
    width: 95px;
    padding: 20px 0;
    text-align: left;
    font-weight: 400;
    border-right: 1px solid #333; }
  #content table tr td {
    width: calc(100%  - 80px);
    padding: 20px 0;
    padding-left: 30px;
    line-height: 1.6; }
#content .prof_df {
  flex-wrap: wrap;
  display: flex;
  justify-content: space-between;
  margin: 80px 0 120px; }
  #content .prof_df .l, #content .prof_df .r {
    width: 50%; }
    #content .prof_df .l iframe, #content .prof_df .r iframe {
      width: 100%;
      height: 400px;
      display: block; }
#content .panlist + .buttons {
  margin-top: -50px; }
#content .buttons {
  display: flex;
  margin: 0px 0; }
  #content .buttons.mgt0 {
    margin-top: -50px; }
  #content .buttons a {
    padding: 0 10px 15px 0;
    color: black;
    font-size: 20px;
    margin-right: 10px;
    border-bottom: 1px solid black; }
#content .wide_content {
  width: 100vw;
  margin-left: calc(0px - calc(50vw - 600px)); }
  #content .wide_content.mission {
    position: relative;
    height: 570px;
    overflow: hidden;
    margin-top: 100px;
    margin-bottom: 100px; }
    #content .wide_content.mission .ib {
      z-index: 2; }
      #content .wide_content.mission .ib .mission_txt {
        display: block;
        margin-bottom: 50px; }
    #content .wide_content.mission .bg {
      position: absolute;
      top: -40%;
      left: 0;
      height: auto;
      width: 100%; }
#content p.msg {
  width: 750px;
  max-width: 100%; }
#content .ceo {
  position: absolute;
  right: 0;
  top: 140px;
  width: 345px; }
  #content .ceo .img {
    height: 455px;
    width: 100%;
    overflow: hidden;
    display: block;
    position: relative;
    display: block;
    border-radius: 50px 0 50px 0; }
    #content .ceo .img img {
      top: 0;
      left: 0;
      height: 120%;
      top: -10%;
      left: -15%;
      position: absolute; }
  #content .ceo p {
    text-align: right; }
    #content .ceo p span {
      font-weight: 500;
      font-size: 28px;
      display: block; }

#content #rec_fv {
  height: 100vh;
  width: 100%;
  position: relative;
  background: url(../img/recruit/rec_bg.jpg) fixed;
  background-size: cover;
  overflow: hidden; }
  #content #rec_fv .ib {
    z-index: 3;
    width: 820px;
    display: flex;
    align-items: center; }
    #content #rec_fv .ib h2 em {
      font-size: 40px;
      padding-top: 25px;
      border-top: 1px solid #003366;
      margin-top: 20px;
      display: block; }
  #content #rec_fv .animation_layer {
    position: absolute;
    width: 100%;
    height: 100%;
    z-index: 2;
    top: 0;
    left: 0;
/*     background: url(../img/recruit/r1.jpg) calc(50% + 200px) 0px repeat-y, url(../img/recruit/r2.jpg) calc(50% + 440px) 0px repeat-y; */
    background-size: 214px auto, 214px auto;
/*     animation: 33s row_animation linear forwards infinite;  */
	}
@keyframes row_animation {
  0% {
    background-position: calc(50% + 230px) -100px, calc(50% + 470px) 100px; }
  100% {
    background-position: calc(50% + 230px) -1918px, calc(50% + 470px) 1918px; } }
#content .rec_tit {
  margin: 80px auto;
  display: block;
  text-align: center;
  font-size: 80px;
  color: #003366;}
#content .gallery_outer {
  margin: 60px 0 120px; }
#content .slide_gallery {
  overflow: hidden;
  margin-bottom: 20px; }
  #content .slide_gallery .row {
    display: flex;
    width: max-content; }
    #content .slide_gallery .row .box {
      width: 250px;
      height: 170px;
      margin-right: 20px;
      display: block;
      overflow: hidden; }
      #content .slide_gallery .row .box:hover img {
        filter: grayscale(0);
        transform: scale(1.1); }
      #content .slide_gallery .row .box img {
        transition: 0.4s ease;
        object-fit: cover;
        width: 100%;
        height: 100%;
        filter: grayscale(1); }

#content button, #content a.button_ {
  width: 330px;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  font-weight: bold;
  display: flex;
  border-radius: 50px;
  margin: 60px auto;
  cursor: pointer;
  border: none;
  background: linear-gradient(to left, #003366, #005599);
  padding: 18px;
  color: #fff;
  height: 80px;
  box-shadow: 0px 5px 5px rgba(0, 0, 0, 0.2);
  transition: 0.4s ease; }
  #content button:hover, #content a.button_:hover {
    transform: translateY(5px);
    box-shadow: 0px 0px 0px rgba(0, 0, 0, 0.2); }
#content .contact_content table {
  margin-top: 60px; }
#content .contact_content input[type="text"], #content .contact_content textarea, #content .contact_content input[type="email"] {
  display: block;
  background: #f7f7f7;
  border: none;
  padding: 17px;
  border-radius: 6px;
  width: 100%; }
#content .contact_content table tr:last-child th, #content .contact_content table tr:last-child td {
  padding-bottom: 0px; }
#content .contact_content table tr:nth-of-type(1) th, #content .contact_content table tr:nth-of-type(1) td {
  padding-top: 0; }
#content .contact_content table tr td {
  width: calc(100% - 220px); }
#content .contact_content table tr th {
  width: 220px; }
  #content .contact_content table tr th.req:before {
    background: #003366; }
  #content .contact_content table tr th:before {
    content: "";
    width: 10px;
    height: 10px;
    background: #ccc;
    border-radius: 50px;
    display: inline-block;
    margin-right: 15px; }
#content .contact_content textarea {
  min-height: 250px; }

#content .pager {
  margin: 50px 0; }
  #content .pager .wp-pagenavi span, #content .pager .wp-pagenavi a {
    padding: 7px 15px;
    transition: 0.4s ease; }
    #content .pager .wp-pagenavi span.current, #content .pager .wp-pagenavi span:hover, #content .pager .wp-pagenavi a.current, #content .pager .wp-pagenavi a:hover {
      color: #fff;
      background: #E3899B;
      border-color: #E3899B; }

#content.single .panlist {
  margin-top: 100px; }
#content.single .single_content {
  min-height: 500px; }
  #content.single .single_content .prev_next {
    justify-content: space-between;
    display: flex;
    align-items: center;
    margin: 100px 0 30px; }
    #content.single .single_content .prev_next .l, #content.single .single_content .prev_next .r {
      width: 41%;
      align-items: center;
      display: flex; }
      #content.single .single_content .prev_next .l a, #content.single .single_content .prev_next .r a {
        text-decoration: underline; }
    #content.single .single_content .prev_next .c {
      width: 14%; }
      #content.single .single_content .prev_next .c a {
        align-items: center;
        justify-content: center;
        display: flex;
        width: 100px;
        margin: 0 auto;
        height: 100px;
        padding: 15px;
        border: 1px solid #003366;
        color: #003366;
        text-align: center;
        border-radius: 50%;
        transition: 0.4s ease; }
        #content.single .single_content .prev_next .c a:hover {
          background: #003366;
          color: #fff; }
#content.single .single_tit {
  font-size: 24px;
  text-align: center;
  padding-bottom: 40px;
  border-bottom: 1px solid #ccc;
  margin-bottom: 50px; }
  #content.single .single_tit h2 {
    margin: 0; }
  #content.single .single_tit .date {
    display: block;
    font-size: 20px;
    font-family: "Helvetica Neue", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Meiryo", sans-serif; }

#content h3 {
  font-size: 22px;
  margin: 40px 0; }

/*************************************
 *
 *footer
 *
 ************************************** */
#pagetop {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  position: fixed;
  bottom: 20px;
  right: 20px;
  align-items: center;
  justify-content: center;
  display: flex;
  flex-wrap: wrap;
  align-content: center;
  background: #fff;
  z-index: 999;
  border: 1px solid #3f3f3f; }
  #pagetop i {
    display: block;
    width: 100%;
    text-align: center; }
  #pagetop:before {
    font-size: 26px;
    content: "";
    font-family: "material icons"; }

.btm_bnr {
  flex-wrap: wrap;
  display: flex; }
  .btm_bnr a {
    height: 370px;
    width: 50%;
    position: relative;
    justify-content: center;
    align-items: center;
    display: flex; }
    .btm_bnr a:hover:before {
      opacity: 0; }
    .btm_bnr a:before {
      content: "";
      position: absolute;
      width: 100%;
      height: 100%;
      z-index: 2;
      background: rgba(0, 0, 0, 0.6);
      transition: 0.4s ease; }
    .btm_bnr a h2 {
      z-index: 3;
      color: #fff;
      position: relative;
      text-shadow: 3px 3px 5px rgba(0, 0, 0, 0.35); }
      .btm_bnr a h2 span, .btm_bnr a h2 .inner {
        color: #fff; }
    .btm_bnr a img {
      object-fit: cover;
      width: 100%;
      height: 100%;
      position: absolute;
      top: 0;
      left: 0;
      z-index: 1; }

.sns {
  width: 56px;
  margin-top: 30px;
  height: 24px;
  display: flex;
  justify-content: space-between; }
  .sns a {
    display: block;
    width: 26px;
    height: 100%; }
    .sns a:nth-of-type(1) {
      padding: 4px; }
    .sns a img {
      display: block;
      width: 100%; }

footer {
  background: #fff; }
  footer .ib {
    padding: 65px 0 50px;
    width: 820px;
    justify-content: space-between;
    flex-wrap: wrap;
    display: flex; }
    footer .ib .l, footer .ib .r {
      width: 50%; }
      footer .ib .l .logo, footer .ib .r .logo {
        width: 260px;
        margin-bottom: 30px;
        display: block; }
        footer .ib .l .logo img, footer .ib .r .logo img {
          display: block;
          width: 100%; }
      footer .ib .l h3, footer .ib .r h3 {
        font-size: 24px;
        font-weight: bold; }
    footer .ib .r {
      padding-left: 0px;
      padding-top: 0px; }
      footer .ib .r p {
        font-size: 12px; }
      footer .ib .r nav {
        display: flex;
        margin-bottom: 40px; }
        footer .ib .r nav a {
          padding: 0 20px; }
          footer .ib .r nav a:nth-of-type(1) {
            padding-left: 0; }
      footer .ib .r .sub {
        display: flex;
        margin-bottom: 30px; }
        footer .ib .r .sub a {
          padding: 0 15px;
          font-size: 14px;
          line-height: 1; }
          footer .ib .r .sub a:nth-of-type(1) {
            padding-left: 0;}

/*# sourceMappingURL=style.css.map */


.fv_bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover; /* ← 必要なら */
    z-index: 1;
}

.three_col_wrapper {
  display: flex;
  justify-content: space-between;
  gap: 2rem;
  flex-wrap: wrap;
}

/* 2カラム × 2段に変更 */
.three_col_item {
  flex: 1 1 calc(50% - 1rem); /* gap: 2rem の半分引く */
  max-width: calc(50% - 1rem);
  text-align: center;
  box-sizing: border-box;
}

.item_title {
  font-size: 1.2rem;
  font-weight: bold;
  margin-bottom: 0.8rem;
  color: #333;
}

.three_col_item img {
  width: 100%;
  height: auto;
  display: block;
}

.top_lis li {
	text-align: left;
	list-style: inside;
	text-indent: -1em;
	padding-left: 1em;
}

.desc {
  margin-top: 1rem;
  font-size: 1rem;
  color: #333;
  line-height: 1.5;
  text-align: left;
}

/* モバイル対応 */
@media screen and (max-width: 768px) {
  .three_col_item {
    max-width: 100%;
    flex: 1 1 100%;
  }

  .item_title {
    font-size: 1rem;
  }
}

.btn_wrapper {
  width: 100%;
  text-align: center;
  margin-top: 1.2rem;
  position: relative;
  z-index: 2; /* 埋もれるのを防ぐ */
}

.custom_btn {
  display: inline-block;
  background-color: #003366;
  color: #fff;
  padding: 0.8rem 1.6rem;
  border-radius: 6px;
  text-decoration: none;
  font-size: 1rem;
  font-weight: 600;
  transition: background-color 0.3s ease;
}

.custom_btn:hover {
  background-color: #005599; /* 明るめの紺系 */
  color: #fff;
}

.top_company .btn_wrapper {
  margin-top: 50px;
}

#content .company_msg {
  text-decoration: underline;
  margin: 50px 0 0;
}



.core-values {
  max-width: 860px;
  margin: 0 auto;
  padding: 80px 20px;
  font-family: "Yu Gothic", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
  color: #222;
  line-height: 1.9;
}

.value-block {
  margin-bottom: 100px;
}

.value-title {
  text-align: center;
  font-size: 2em;
  position: relative;
  margin-bottom: 0.5em;
  color: #003366;
}

.value-title::after {
  content: attr(data-en);
  display: block;
  font-weight: bold;
  font-size: 0.75em; /* 小さめのフォントサイズ */
  color: #333;
  margin-top: -0.6em; /* タイトルとの距離を縮める */
}

.value-lead {
  text-align: left;
  font-weight: bold;
  font-size: 1.8em;
  margin: 0.5em 0 1em;
  border-bottom: 1px solid rgba(0, 0, 0, 0.2);
}

#content .value-block .value-lead {
  margin: 0;
  font-weight: 700;
}

.value-item {
  margin-bottom: 40px;
}

.value-item h3 {
  font-size: 18px;
  font-weight: bold;
  color: #003366;
  margin-bottom: 10px;
}

.value-item .num {
  margin-right: 8px;
  color: #666;
}

.highlight {
  font-weight: bold;
  background: linear-gradient(transparent 60%, #ffe599 60%);
}

@media screen and (max-width: 768px) {
  .core-values {
    padding: 40px 15px;
  }

  .value-title {
    font-size: 22px;
  }

  .value-lead {
    font-size: 18px;
  }
}

/* 事業概要ページ */
.business-section {
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  justify-content: space-between;
  align-items: stretch;
  max-width: 100%;
}

.business-box {
  width: calc(50% - 12px); /* ← 固定的に2カラムにする */
  background: #fff;
  border: 1px solid #ccc;
  box-shadow: 2px 2px 6px rgba(0, 0, 0, 0.1);
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
}

.business-header {
  background-color: #000000;
  color: #fff;
  padding: 16px;
  font-weight: bold;
  font-size: 18px;
  text-align: center;
}

.business-body {
  padding: 16px;
  font-size: 14px;
  line-height: 1.6;
  max-width: 100%;
  overflow-wrap: break-word;
  word-break: break-word;
}

.business-body img {
  max-width: 100%;
  height: auto;
  object-fit: cover;
}

.business-body p {
	min-height: 60px;
}

.section-label {
  font-weight: bold;
  margin-top: 12px;
  padding-bottom: 4px;
  border-bottom: 2px solid #003366;
  font-size: 14px;
}

.service-group {
  margin-top: 8px;
}

.service-title {
  font-weight: bold;
  margin-top: 8px;
}

.service-list {
  list-style: none;
  padding-left: 16px;
  margin-top: 4px;
}

.service-list li::before {
  content: "✔ ";
  font-weight: bold;
  margin-right: 4px;
}

.client-list {
  list-style-type: disc;
  padding-left: 20px;
  margin-top: 4px;
  min-height: 80px; /* ← 高さを固定することで揃えます */
}

footer::before {
  content: "";
  display: block;
  width: 80%;              /* 線の長さ（任意に調整可能） */
  height: 1px;             /* 線の太さ */
  background-color: black; /* 線の色 */
  margin: 0 auto 30px;     /* 中央寄せ + 下に余白 */
}

@media (max-width: 768px) {
  .business-box {
    flex: 1 1 100%;
  }
	.business-body p {
	min-height: auto;
  }
  .client-list {
	min-height: auto;
	}	
}
/* 事業概要ページ終わり */

/* ここからGenspark版 */
/* =========================================
   Front Page (Renewal) - 3SPartners
   ========================================= */

.fp-front-page {
  background: #ffffff;
  color: #111111;
  font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue",
               "Noto Sans JP", system-ui, sans-serif;
}

/* Layout base */
.fp-section {
  padding: 64px 0;       /* 全セクションの上下を少し詰める */
}

.fp-container {
  max-width: 1120px;
  margin: 0 auto;
  padding: 0 20px;
}

.fp-section-header {
  text-align: center;
  margin-bottom: 48px;
}

.fp-section-header-light {
  color: #ffffff;
}

.fp-section-title {
  font-size: 2.4rem;
  font-weight: 700;
  margin-bottom: 16px;
  letter-spacing: 0.03em;
}

.fp-section-lead {
  font-size: 1rem;
  color: #666666;
  line-height: 1.8;
}

.fp-section-header-light .fp-section-lead {
  color: #dddddd;
}

/* Buttons */

.fp-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 28px;
  border-radius: 999px;
  font-size: 0.95rem;
  border: 1px solid #111111;
  text-decoration: none;
  color: #111111;
  background: #ffffff;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease,
              box-shadow 0.2s ease, transform 0.1s ease;
  cursor: pointer;
  white-space: nowrap;
}

.fp-btn:hover {
  background: #f2f2f2;
}

.fp-btn-primary {
  background: #111111;
  color: #ffffff;
}

.fp-btn-primary:hover {
  background: #333333;
  border-color: #333333;
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.18);
  transform: translateY(-1px);
}

.fp-btn-outline {
  background: #ffffff;
  color: #111111;
}

.fp-btn-block {
  width: 100%;
}

/* Hero */

.fp-hero {
  padding-top: 110px;
  padding-bottom: 48px;  /* 80px → 48px くらいがおすすめ */
  background: linear-gradient(135deg, #f5f5f5, #ffffff);
}

.fp-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 3fr) minmax(0, 2.5fr);
  gap: 48px;
  align-items: center;
}

.fp-hero-title {
  font-size: 2.8rem;
  line-height: 1.25;
  font-weight: 700;
  color: #111111;
  margin-bottom: 16px;
}

.fp-hero-highlight {
  background: linear-gradient(90deg, #111111, #555555);
  -webkit-background-clip: text;
  color: transparent;
}

.fp-hero-lead {
  font-size: 1.2rem;
  color: #555555;
  line-height: 1.8;
}

.fp-hero-cta {
  margin-top: 32px;
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
}

.fp-hero-stats {
  margin-top: 40px;
  padding-top: 24px;
  border-top: 1px solid #e2e2e2;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}

.fp-stat {
  text-align: center;
}

.fp-stat-value {
  font-size: 1.7rem;
  font-weight: 700;
  color: #111111;
  margin-bottom: 4px;
}

.fp-stat-label {
  font-size: 0.85rem;
  color: #777777;
}

/* Hero right card */

.fp-hero-card-wrap {
  position: relative;
  max-width: 420px;
  margin: 0 auto;
}

.fp-hero-card {
  position: relative;
  z-index: 2;
  background: #ffffff;
  padding: 24px 24px 28px;
  border: 1px solid #e2e2e2;
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.08);
}

.fp-hero-card-title {
  font-size: 1.2rem;
  font-weight: 700;
  margin-bottom: 16px;
}

.fp-hero-card-list {
  list-style: none;
  padding: 0;
  margin: 0;
  font-size: 0.9rem;
  color: #555555;
}

.fp-hero-card-list li {
  position: relative;
  padding-left: 18px;
  margin-bottom: 8px;
}

.fp-hero-card-list li::before {
  content: "•";
  position: absolute;
  left: 0;
  color: #999999;
}

.fp-hero-card-shadow {
  position: absolute;
  inset: 0;
  border-radius: 22px;
  background: linear-gradient(135deg, #333333, #666666);
  transform: rotate(3deg);
  z-index: 1;
  opacity: 0.25;
}

/* Services */

.fp-services {
  background: #ffffff;
}

.fp-service-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 32px;
  margin-bottom: 48px;
}

.fp-card {
  background: #ffffff;
  padding: 24px;
  border: 1px solid #e2e2e2;
}

.fp-card-soft {
  background: #fafafa;
}

.fp-card-header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
}

.fp-card-icon {
  width: 40px;
  height: 40px;
  border-radius: 12px;
  background: #111111;
  opacity: 0.7;
}

.fp-card-title {
  font-size: 1.2rem;
  font-weight: 700;
}

.fp-card-text {
  font-size: 0.9rem;
  color: #555555;
  margin-bottom: 16px;
  line-height: 1.7;
}

.fp-card-list {
  list-style: none;
  padding: 0;
  margin: 0;
  font-size: 0.9rem;
  color: #555555;
}

.fp-card-list li {
  position: relative;
  padding-left: 18px;
  margin-bottom: 8px;
}

.fp-card-list li::before {
  content: "●";
  position: absolute;
  left: 0;
  font-size: 0.45rem;
  top: 0.55em;
  color: #999999;
}

.fp-card-list-light li {
  color: #e2e2e2;
}

/* Process */

.fp-process {
  margin-top: 24px;
}

.fp-process-title {
  font-size: 1.3rem;
  font-weight: 700;
  text-align: center;
  margin-bottom: 24px;
}

.fp-process-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 20px;
}

.fp-process-step {
  text-align: center;
}

.fp-process-num {
  width: 48px;
  height: 48px;
  margin: 0 auto 12px;
  border-radius: 999px;
  background: #111111;
  color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
}

.fp-process-step-title {
  font-size: 0.95rem;
  font-weight: 600;
  margin-bottom: 6px;
}

.fp-process-text {
  font-size: 0.85rem;
  color: #666666;
}

/* About */

.fp-about {
  background: #f5f5f5;
}

.fp-about-grid {
  display: grid;
  grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
  gap: 40px;
  align-items: flex-start;
}

.fp-about-text {
  font-size: 0.95rem;
  color: #444444;
  line-height: 1.9;
}

.fp-about-block + .fp-about-block {
  margin-top: 32px;
}

.fp-about-subtitle {
  font-size: 1.2rem;
  font-weight: 700;
  margin-bottom: 12px;
}

.fp-about-point {
  margin-bottom: 16px;
}

.fp-about-point-title {
  font-size: 0.95rem;
  font-weight: 600;
  margin-bottom: 4px;
}

/* Strengths */

.fp-strengths {
  background: #ffffff;
}

.fp-strengths-grid {
  display: grid;
  grid-template-columns: minmax(0, 3fr) minmax(0, 3fr);
  gap: 32px;
}

/* 強みセクション 左カラム：カード間の余白を一定に */
.fp-strengths-left {
  display: flex;
  flex-direction: column;
  gap: 16px;          /* ←ここがカード同士の間隔。広げたければ 20〜24px */
}

.fp-card-dark {
  background: #111111;
  color: #ffffff;
  border-color: #222222;
}

.fp-card-dark .fp-card-text {
  color: #dddddd;
}

.fp-card-subtitle {
  font-size: 0.95rem;
  font-weight: 600;
  margin-bottom: 4px;
}

.fp-card-block + .fp-card-block {
  margin-top: 16px;
}

.fp-strength-stats {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 24px;
}

.fp-strength-stat {
  text-align: center;
  padding: 10px 6px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.06);
}

.fp-strength-stat-value {
  font-size: 1.2rem;
  font-weight: 700;
}

.fp-strength-stat-label {
  font-size: 0.75rem;
}

/* Careers */

.fp-careers {
  background: #f5f5f5;
}

.fp-career-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 32px;
}

/*  変更箇所：.fp-career-grid 内にある .fp-card にのみFlexboxを適用 */
.fp-career-grid .fp-card {
    /* Flexboxを適用して、中身を縦に並べ、高さを揃える */
    display: flex;
    flex-direction: column; 
    height: 100%; /* 親のgridアイテムの高さを最大限に利用 */
}

/*  変更箇所：テキストとリスト部分に残りのスペースを埋めさせる */
.fp-career-grid .fp-card-text,
.fp-career-grid .fp-card-list {
    flex-grow: 1; /* 残りのスペースを全て占めるように設定 */
}

.fp-career-grid .fp-card-list {
    margin-bottom: 24px; /* ボタンとの間にスペースを確保 */
}

/* Contact */

.fp-contact {
  background: #ffffff;
  color: #111111;
}

.fp-contact-grid {
  display: grid;
  grid-template-columns: minmax(0, 3fr) minmax(0, 2.5fr);
  gap: 32px;
  align-items: flex-start;
}

.fp-contact-form-wrap,
.fp-contact-info {
  background: rgba(255, 255, 255, 0.03);
  padding: 24px;
  border: 1px solid #e2e2e2;
}

.fp-contact-title {
  font-size: 1.3rem;
  font-weight: 700;
  margin-bottom: 16px;
}

.fp-contact-form label {
  display: block;
  font-size: 0.85rem;
  margin-bottom: 6px;
}

.fp-form-row {
  margin-bottom: 16px;
}

.fp-form-row-2col {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 16px;
}

.fp-form-field input,
.fp-form-field select,
.fp-form-field textarea {
  width: 100%;
  padding: 10px 12px;
  border-radius: 10px;
  border: 1px solid rgba(255, 255, 255, 0.25);
  background: rgba(0, 0, 0, 0.25);
  color: #1f1d1d50;
  font-size: 0.9rem;
}

.fp-form-field input::placeholder,
.fp-form-field textarea::placeholder {
  color: #1f1d1d50;
}

.fp-form-field select {
  appearance: none;
  background-image: none;
}

.fp-contact-list {
  font-size: 0.9rem;
}

.fp-contact-item + .fp-contact-item {
  margin-top: 12px;
}

.fp-contact-label {
  font-weight: 600;
  margin-bottom: 2px;
}

.fp-contact-value {
  color: #111111;
}

.fp-contact-note {
  font-size: 0.8rem;
  color: #111111;
}

.fp-contact-quick {
  margin-top: 24px;
}

.fp-contact-subtitle {
  font-size: 0.95rem;
  font-weight: 600;
  margin-bottom: 6px;
}

.fp-contact-quick-text {
  font-size: 0.85rem;
}

/* Responsive */

@media (max-width: 960px) {
  .fp-section {
    padding: 64px 0;
  }

  .fp-hero-grid,
  .fp-about-grid,
  .fp-strengths-grid,
  .fp-contact-grid {
    grid-template-columns: 1fr;
  }

  .fp-hero {
    padding-top: 100px;
  }

  .fp-hero-title {
    font-size: 2.2rem;
  }

  .fp-hero-stats {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .fp-hero-stats {
    grid-template-columns: 1fr 1fr;
  }

  .fp-section-title {
    font-size: 2rem;
  }

  .fp-hero-cta {
    flex-direction: column;
  }

  .fp-btn {
    width: 100%;
  }
}


/********************************************
 * Services Page Utilities (Tailwind Replacement)
 * business page 専用
 ********************************************/

/* ベース */
.services-page {
  background-color: #ffffff;
  color: #111827;
}

/* レイアウト・幅 */
.max-w-7xl { max-width: 80rem; margin-left: auto; margin-right: auto; }
.max-w-4xl { max-width: 56rem; margin-left: auto; margin-right: auto; }
.max-w-3xl { max-width: 48rem; margin-left: auto; margin-right: auto; }
.max-w-2xl { max-width: 42rem; margin-left: auto; margin-right: auto; }

.mx-auto { margin-left: auto; margin-right: auto; }

.text-center { text-align: center; }

.block { display: block; }

.flex { display: flex; }
.inline-flex { display: inline-flex; }
.flex-wrap { flex-wrap: wrap; }
.flex-col { flex-direction: column; }

.items-center { align-items: center; }
.items-start { align-items: flex-start; }
.justify-center { justify-content: center; }

/* グリッド */
.grid { display: grid; }
.grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.gap-4 { gap: 1rem; }
.gap-6 { gap: 1.5rem; }
.gap-8 { gap: 2rem; }

/* 余白（padding / margin） */
.pt-20 { padding-top: 5rem; }
.pb-12 { padding-bottom: 3rem; }
.pt-8 { padding-top: 2rem; }
.py-16 { padding-top: 4rem; padding-bottom: 4rem; }
.py-20 { padding-top: 5rem; padding-bottom: 5rem; }

.px-4 { padding-left: 1rem; padding-right: 1rem; }
.px-6 { padding-left: 1.5rem; padding-right: 1.5rem; }
.px-8 { padding-left: 2rem; padding-right: 2rem; }

.p-3 { padding: 0.75rem; }
.p-6 { padding: 1.5rem; }
.p-8 { padding: 2rem; }

.mb-1  { margin-bottom: 0.25rem; }
.mb-4  { margin-bottom: 1rem; }
.mb-6  { margin-bottom: 1.5rem; }
.mb-8  { margin-bottom: 2rem; }
.mb-12 { margin-bottom: 3rem; }
.mb-16 { margin-bottom: 4rem; }

.mt-1 { margin-top: 0.25rem; }
.mt-2 { margin-top: 0.5rem; }

.ml-5 { margin-left: 1.25rem; }

/* space-y / space-x */
.space-y-6 > * + * { margin-top: 1.5rem; }
.space-y-8 > * + * { margin-top: 2rem; }

.space-y-3 > * + * { margin-top: 0.75rem; }

.space-x-3 > * + * { margin-left: 0.75rem; }
.space-x-4 > * + * { margin-left: 1rem; }

/* 幅・高さ */
.w-16 { width: 4rem; }
.h-16 { height: 4rem; }
.w-20 { width: 5rem; }
.h-20 { height: 5rem; }


/* ボーダー */
.border    { border-width: 1px; border-style: solid; border-color: #e5e7eb; }
.border-2  { border-width: 2px; border-style: solid; }
.border-l-4 { border-left-width: 4px; border-style: solid; }

.border-gray-300 { border-color: #d1d5db; }
.border-blue-100 { border-color: #e5e7eb; } /* 薄グレー寄せ */
.border-blue-600,
.border-purple-600,
.border-green-600,
.border-orange-600 {
  border-color: #111111;
}
.border-white { border-color: #ffffff; }

/* タイポグラフィ */
.text-sm  { font-size: 0.875rem; line-height: 1.5; }
.text-xs  { font-size: 0.75rem; line-height: 1.5; }
.text-xl  { font-size: 1.25rem; line-height: 1.75; }
.text-2xl { font-size: 1.5rem; line-height: 1.75; }
.text-3xl { font-size: 1.875rem; line-height: 2.25rem; }
.text-4xl { font-size: 2.25rem; line-height: 2.5rem; }
.text-6xl { font-size: 3.75rem; line-height: 1; }

.font-medium   { font-weight: 500; }
.font-semibold { font-weight: 600; }
.font-bold     { font-weight: 700; }

.leading-tight    { line-height: 1.25; }
.leading-relaxed  { line-height: 1.625; }

/* 文字色（モノクロ基調） */
.text-gray-900 { color: #111111; }
.text-gray-700 { color: #374151; }
.text-gray-600 { color: #6b7280; }

.text-white { color: #ffffff; }
.text-blue-100 { color: #e5e7eb; }

/* アクセントは黒〜濃グレーに寄せる */
.text-blue-600,
.text-blue-800,
.text-purple-600,
.text-green-600,
.text-orange-600 {
  color: #111111;
}

/* 背景色（モノクロ寄せ） */
.bg-white { background-color: #ffffff; }

.bg-blue-50,
.bg-purple-50,
.bg-green-50,
.bg-orange-50 {
  background-color: #f5f5f5;
}

.bg-blue-100 { background-color: #e5e7eb; }

/* ボタン・ラベル用の濃色背景（全部ダークグレー） */
.bg-blue-600,
.bg-purple-600,
.bg-green-600,
.bg-blue-700,
.bg-purple-700,
.bg-green-700 {
  background-color: #111111;
}

/* ヒーローの淡いグラデーション */
.bg-gradient-to-br {
  background-image: linear-gradient(to bottom right, #f5f5f5, #ffffff);
}

/* プロセス・CTA用の横グラデーション */
.bg-gradient-to-r {
  background-image: linear-gradient(to right, #333333, #111111);
}

/* CTAカードの半透明ホワイト背景 */
.bg-white\/10 {
  background-color: rgba(255, 255, 255, 0.1);
}

/* カード影・ホバー */
.shadow-lg {
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.16);
}

.hover\:shadow-lg:hover {
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.22);
  transform: translateY(-2px);
}

/* トランジション */
.transition-colors {
  transition:
    background-color 0.2s ease,
    color 0.2s ease,
    border-color 0.2s ease,
    box-shadow 0.2s ease;
}

.transition-shadow {
  transition: box-shadow 0.2s ease, transform 0.2s ease;
}

/* ホバー系（色はすべてグレー系に統一） */
.hover\:bg-blue-700:hover,
.hover\:bg-purple-700:hover,
.hover\:bg-green-700:hover {
  background-color: #000000;
}

.hover\:border-blue-600:hover {
  border-color: #111111;
}

.hover\:text-blue-600:hover {
  color: #111111;
}

.hover\:bg-gray-100:hover {
  background-color: #f3f4f6;
}

.hover\:bg-white:hover {
  background-color: #ffffff;
}

/* テキストホバー（CTA内） */
a.text-white:hover { color: #e5e7eb; }
a.text-blue-600:hover { color: #111111; }

/* ボタン共通 */
.text-white { color: #ffffff; }
.bg-blue-600,
.bg-purple-600,
.bg-green-600 {
  color: #ffffff;
}

/* CTAぼかし背景 */
.backdrop-blur {
  backdrop-filter: blur(8px);
}

/* レスポンシブ（sm / md / lg） */
@media (min-width: 640px) {
  .sm\:px-6 { padding-left: 1.5rem; padding-right: 1.5rem; }
  .sm\:flex-row { flex-direction: row; }
}

@media (min-width: 768px) {
  .md\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .md\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

@media (min-width: 1024px) {
  .lg\:px-8 { padding-left: 2rem; padding-right: 2rem; }
  .lg\:text-6xl { font-size: 3.75rem; line-height: 1; }

  .lg\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .lg\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/***** Services page extra utilities (detail blocks) *****/

/* layout */
.gap-12 { gap: 3rem; }

@media (min-width: 1024px) {
  .lg\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* order (Buy-Side の左右入れ替え用) */
.order-1 { order: 1; }
.order-2 { order: 2; }

@media (min-width: 1024px) {
  .lg\:order-1 { order: 1; }
  .lg\:order-2 { order: 2; }
}

/* size */
.w-10 { width: 2.5rem; }
.h-10 { height: 2.5rem; }
.w-12 { width: 3rem; }
.h-12 { height: 3rem; }

/* margin */
.mr-2 { margin-right: 0.5rem; }
.mr-4 { margin-right: 1rem; }
.mb-3 { margin-bottom: 0.75rem; }
.ml-1 { margin-left: 0.25rem; }

/* space-y / space-x */
.space-y-2 > * + * { margin-top: 0.5rem; }

/* small shadow */
.shadow-sm {
  box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}

/* background (薄いグレー系) */
.bg-gray-50 { background-color: #f9fafb; }

.bg-purple-100,
.bg-green-100,
.bg-orange-100 {
  background-color: #f3f4f6;
}

/* text colors for badges (すべて濃いグレー寄せ) */
.text-blue-800,
.text-purple-800,
.text-green-800 {
  color: #111111;
}

/* M&Aサービス体系 表形式 */

.ma-service-table-container {
    max-width: 1200px; /* 全体の最大幅 */
    margin: 0 auto;
    overflow-x: auto; /* モバイルで横スクロールを可能にする */
    margin-bottom: 4rem; /* 下部に余白 */
}

.ma-service-table {
    width: 100%;
    border-collapse: collapse; /* 罫線を結合 */
    table-layout: fixed; /* カラム幅を均等に */
    min-width: 800px; /* モバイルで縦に並ばないように最小幅を設定 */
    font-size: 0.95rem;
}

/* ヘッダーセルとサイドヘッダーの共通スタイル */
.ma-header-cell {
    font-weight: 700;
    text-align: center !important;
    color: #ffffff;
    background-color: #111111; /* 黒色の背景 (Tailwindのbg-gray-900相当) */
    border: 1px solid #ffffff; /* 罫線を白にして分離感を出す */
    padding: 12px 16px;
    vertical-align: middle;
}

.ma-service-table td,
.ma-service-table th {
    border: 1px solid #e0e0e0; /* 薄いグレーの罫線 */
    padding: 12px 16px;
    vertical-align: top;
    text-align: left;
    height: 100%;
}

/* サイドヘッダー（Buy-Side, Sell-Side）のスタイル上書き */
.ma-service-table .side-header {
    width: 120px; /* サイドヘッダーの幅を固定 */
    min-width: 120px;
    text-align: center;
    font-size: 1rem;
    line-height: 1.5;
    background-color: #374151; /* Tailiwndのtext-gray-700相当 */
    color: #ffffff;
    vertical-align: middle;
}

.ma-service-table .empty-corner {
    background-color: #ffffff; /* 左上の角を白に */
    border-right: none;
    border-bottom: none;
}

/* セル内のリスト */
.ma-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.ma-list li {
    position: relative;
    padding-left: 1rem;
    margin-bottom: 0.25rem;
    line-height: 1.4;
}

/* リストのマーカーをドットに変更 */
.ma-list li::before {
    content: "•";
    position: absolute;
    left: 0;
    color: #6b7280; /* リストマーカーの色 */
    font-weight: bold;
}

/* Buy-Side (青) の配色調整 */
.ma-service-table tr.buy-side .side-header {
    background-color: #111111; /* 黒または濃い青系 */
    color: #ffffff;
}

/* Sell-Side (緑) の配色調整 */
.ma-service-table tr.sell-side .side-header {
    background-color: #111111; /* 黒または濃い緑系 */
    color: #ffffff;
}

/* データセル内のテキストの色を調整 */
.ma-service-table td {
    color: #374151;
}

/* モバイル対応：全体幅が狭い場合、横スクロールさせる */
@media (max-width: 767px) {
    .ma-service-table {
        display: block;
        width: 100%;
        overflow-x: scroll;
        min-width: 600px; /* スマホでも見やすい最小幅 */
    }
}


/********************************************
 * M&A Process Section (business page)
 ********************************************/

.ma-process-section {
  padding: 80px 0;
  background: linear-gradient(135deg, #111111, #333333);
  color: #ffffff;
}

.ma-process-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 16px;
}

.ma-process-header {
  text-align: center;
  margin-bottom: 40px;
}

.ma-process-title {
  font-size: 28px;
  font-weight: 700;
  margin-bottom: 8px;
  color: #ffffff;
}

.ma-process-lead {
  font-size: 14px;
  color: #dddddd;
}

/* グリッドレイアウト */
.ma-process-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
}

@media (min-width: 768px) {
  .ma-process-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1024px) {
  .ma-process-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

/* カード本体 */
.ma-process-card {
  background: #ffffff;
  padding: 24px 18px 20px;
  box-shadow: 0 12px 30px rgba(0,0,0,0.16);
  border-left: 4px solid #111111;
  color: #111111;
  display: flex;
  flex-direction: column;
  height: 100%;
}

.ma-process-card-top {
  text-align: center;
  margin-bottom: 16px;
}

/* 黒丸アイコン */
.ma-process-card-icon {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background: #000000;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 16px auto;
}

.ma-process-card-icon i {
  color: #ffffff;
  font-size: 28px;
}

/* タイトル・サブタイトル */
.ma-process-card-title {
  font-size: 18px;
  font-weight: 700;
  margin-bottom: 4px;
}

.ma-process-card-sub {
  font-size: 11px;
  letter-spacing: 0.04em;
  color: #666666;
}

/* 項目リスト */
.ma-process-items {
  margin-top: 4px;
}

.ma-process-item {
  background: #f7f7f7;
  padding: 10px 12px;
  margin-bottom: 10px;
}

.ma-process-item:last-child {
  margin-bottom: 0;
}

/* 項目ヘッダー（アイコン＋タイトル） */
.ma-process-item-head {
  display: flex;
  align-items: center;
  margin-bottom: 4px;
}

.ma-process-item-icon {
  font-size: 14px;
  color: #000000;
  margin-right: 6px;
}

.ma-process-item-title {
  font-size: 13px;
  font-weight: 600;
  color: #111111;
}

/* 説明文 */
.ma-process-item-text {
  font-size: 11px;
  line-height: 1.6;
  color: #555555;
  margin: 0;
}

/* Advisory（企業価値評価 / デューデリジェンス / リストラクチャリング / 戦略コンサル）  
   アイコン背景を黒で統一 */
.advisory-card-icon {
    width: 48px;
    height: 48px;
    background: #000 !important;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.advisory-card-icon i {
    color: #fff !important;
    font-size: 20px;
}

/* --- Fix: リストラクチャリングのアイコンが見えない問題 --- */
.advisory-card:nth-child(3) .w-12,
.advisory-card:nth-child(3) .w-12.h-12 {
    background-color: #000 !important;
}

.advisory-card:nth-child(3) .w-12 i,
.advisory-card:nth-child(3) .w-12.h-12 i {
    color: #fff !important;
}

/********************************************
 * Insights Page
 ********************************************/

.insights-page {
  font-family: "Noto Sans JP", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: #111;
}

/* 共通レイアウト */

.insights-container {
  max-width: 1120px;
  margin: 0 auto;
  padding: 0 16px;
}

.insights-section {
  padding: 80px 0;
  background: #fff;
}

.insights-section-gray {
  background: #f5f5f5;
}

.insights-section-head {
  text-align: center;
  margin-bottom: 40px;
}

.insights-section-title {
  font-size: 28px;
  font-weight: 700;
  margin-bottom: 8px;
}

.insights-section-lead {
  font-size: 14px;
  color: #666;
}

/* グリッド */

.insights-grid {
  display: grid;
  gap: 24px;
}

.insights-grid-3 {
  grid-template-columns: 1fr;
}

.insights-grid-2 {
  grid-template-columns: 1fr;
}

@media (min-width: 768px) {
  .insights-grid-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 960px) {
  .insights-grid-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

/* Hero */

.insights-hero {
  padding: 5rem 0 80px;
  background: radial-gradient(circle at top, #f1f1f1 0, #ffffff 55%, #f3f3f3 100%);
  text-align: center;
}

.insights-hero-label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 14px;
  border-radius: 999px;
  background: #111;
  color: #fff;
  font-size: 11px;
}

.insights-hero-label i {
  font-size: 13px;
}

.insights-hero-title {
  font-size: 3.75rem;
  line-height: 1.3;
  margin: 24px 0 12px;
  font-weight: 700;
}

.insights-hero-title span {
  color: #111;
}

.insights-hero-text {
  font-size: 14px;
  color: #555;
  line-height: 1.8;
}

.insights-hero-links {
  margin-top: 32px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
}

.insights-hero-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 120px;
  padding: 10px 20px;
  border-radius: 999px;
  border: 1px solid #111;
  font-size: 13px;
  color: #111;
  text-decoration: none;
  transition: background 0.2s, color 0.2s;
}

.insights-hero-link:hover {
  background: #111;
  color: #fff;
}

/* PC/SP 制御 */

.sp-only {
  display: inline;
}

@media (min-width: 768px) {
  .sp-only {
    display: none;
  }
}

/* Featured cards */

.insights-featured {
  background: #fff;
}

.insights-card {
  background: #ffffff;
  padding: 22px 20px 20px;
  box-shadow: 0 10px 26px rgba(0,0,0,0.08);
  border: 1px solid #e6e6e6;
  display: flex;
  flex-direction: column;
  height: 100%;
}

.insights-card-header {
  display: flex;
  align-items: center;
  margin-bottom: 16px;
}

.insights-card-icon {
  width: 44px;
  height: 44px;
  background: #111;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-right: 12px;
}

.insights-card-icon i {
  color: #fff;
  font-size: 18px;
}

.insights-card-meta {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.insights-card-tag {
  font-size: 11px;
  color: #111;
  font-weight: 600;
}

.insights-card-date {
  font-size: 11px;
  color: #888;
}

.insights-card-title {
  font-size: 16px;
  font-weight: 700;
  margin-bottom: 10px;
}

.insights-card-text {
  font-size: 13px;
  color: #444;
  line-height: 1.7;
  margin-bottom: 12px;
}

.insights-card-points {
  list-style: none;
  padding: 0;
  margin: 0 0 10px;
}

.insights-card-points li {
  display: flex;
  align-items: center;
  font-size: 12px;
  color: #333;
  margin-bottom: 4px;
}

.insights-card-points i {
  font-size: 13px;
  margin-right: 6px;
}

.insights-card-link {
  margin-top: auto;
  font-size: 12px;
  color: #111;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.insights-card-link i {
  font-size: 11px;
}

.insights-card-link:hover {
  text-decoration: underline;
}

/* Sector cards */

.insights-sector-card {
  background: #ffffff;
  border-radius: 16px;
  padding: 20px 18px 18px;
  border: 1px solid #e3e3e3;
}

.insights-sector-icon {
  width: 52px;
  height: 52px;
  border-radius: 12px;
  background: #111;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 14px;
}

.insights-sector-icon i {
  color: #fff;
  font-size: 22px;
}

.insights-sector-title {
  font-size: 16px;
  font-weight: 700;
  margin-bottom: 14px;
}

.insights-metrics {
  margin: 0 0 18px;
}

.insights-metrics > div {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 12px;
  padding: 4px 0;
}

.insights-metrics dt {
  color: #555;
}

.insights-metrics dd {
  font-weight: 600;
}

.insights-metrics dd.accent {
  color: #111;
}

.insights-sector-notes {
  background: #f5f5f5;
  border-radius: 10px;
  padding: 10px 12px;
}

.insights-sector-notes h4 {
  font-size: 12px;
  font-weight: 600;
  margin-bottom: 6px;
}

.insights-sector-notes ul {
  margin: 0;
  padding-left: 16px;
  font-size: 12px;
  color: #444;
}

/* Wide cards（戦略・失敗要因など） */

.insights-wide-card {
  background: #ffffff;
  border-radius: 16px;
  padding: 20px 18px 20px;
  box-shadow: 0 8px 22px rgba(0,0,0,0.06);
}

.insights-wide-card-header {
  display: flex;
  align-items: center;
  margin-bottom: 16px;
}

.insights-wide-card-header h3 {
  font-size: 18px;
  font-weight: 700;
}

.insights-wide-icon {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: #111;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-right: 12px;
}

.insights-wide-icon i {
  color: #fff;
  font-size: 18px;
}

.insights-wide-icon-danger {
  background: #c0392b;
}

.insights-wide-icon-warning {
  background: #d35400;
}

/* 成功要因リスト */

.insights-wide-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.insights-wide-item {
  display: flex;
}

.insights-wide-item .line {
  width: 4px;
  border-radius: 999px;
  background: #ccc;
  margin-right: 10px;
}

.insights-wide-item .line-blue { background: #111; }
.insights-wide-item .line-purple { background: #555; }
.insights-wide-item .line-green { background: #777; }
.insights-wide-item .line-yellow { background: #999; }
.insights-wide-item .line-orange { background: #bbb; }

.insights-wide-body h4 {
  font-size: 13px;
  font-weight: 600;
  margin-bottom: 3px;
}

.insights-wide-body p {
  font-size: 12px;
  color: #555;
}

/* 失敗要因カード */

.insights-failure-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.insights-failure-item {
  border-radius: 10px;
  padding: 10px 12px;
  font-size: 12px;
}

.insights-failure-item h4 {
  font-weight: 600;
  margin-bottom: 4px;
}

.insights-failure-item p {
  margin: 0;
}

.failure-red {
  background: #fff5f5;
  border: 1px solid #f5b7b1;
  color: #c0392b;
}
.failure-orange {
  background: #fff7f0;
  border: 1px solid #f5cba7;
  color: #d35400;
}
.failure-yellow {
  background: #fffdf2;
  border: 1px solid #f7e49c;
  color: #b7950b;
}
.failure-gray {
  background: #f7f7f7;
  border: 1px solid #d5d5d5;
  color: #555;
}

/* 規制・制度 */

.insights-regulation {
  background: #fafafa;
}

.insights-regulation-timeline {
  display: flex;
  flex-direction: column;
  gap: 32px;
}

.insights-regulation-card {
  background: #ffffff;
  border-radius: 16px;
  padding: 22px 18px 20px;
  box-shadow: 0 8px 22px rgba(0,0,0,0.06);
}

.insights-regulation-card h3 {
  font-size: 18px;
  font-weight: 700;
  margin-bottom: 16px;
}

.insights-timeline {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.insights-timeline-row {
  display: flex;
  gap: 14px;
}

.insights-timeline-year {
  width: 70px;
  min-width: 70px;
  height: 70px;
  border-radius: 14px;
  background: #111;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-weight: 700;
  font-size: 16px;
}

.insights-timeline-body h4 {
  font-size: 13px;
  font-weight: 700;
  margin-bottom: 4px;
}

.insights-timeline-body p {
  font-size: 12px;
  color: #555;
  margin-bottom: 6px;
}

.insights-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.insights-tags span {
  font-size: 11px;
  padding: 3px 8px;
  border-radius: 999px;
  background: #f2f2f2;
  color: #555;
}

.insights-regulation-bottom {
  margin-top: 24px;
}

/* 影響リスト */

.insights-impact-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.insights-impact-item {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: 12px;
}

.insights-impact-item i {
  font-size: 14px;
  margin-top: 2px;
}

.insights-impact-item h4 {
  font-weight: 600;
  margin-bottom: 2px;
}

/* Newsletter */

.insights-newsletter {
  padding: 80px 0;
  background: linear-gradient(135deg, #111111, #333333);
  color: #ffffff;
  text-align: center;
}

.insights-newsletter-inner h2 {
  font-size: 24px;
  font-weight: 700;
  margin-bottom: 10px;
}

.insights-newsletter-inner p {
  font-size: 14px;
  color: #f0f0f0;
  line-height: 1.8;
  margin-bottom: 26px;
}

.insights-newsletter-form {
  max-width: 480px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.insights-newsletter-form input[type="email"] {
  padding: 10px 12px;
  border-radius: 999px;
  border: 1px solid #ccc;
  font-size: 13px;
}

.insights-newsletter-form button {
  padding: 10px 20px;
  border-radius: 999px;
  border: none;
  font-size: 13px;
  font-weight: 600;
  background: #ffffff;
  color: #111;
  cursor: pointer;
  transition: background 0.2s, color 0.2s;
}

.insights-newsletter-form button:hover {
  background: #e5e5e5;
}

@media (min-width: 640px) {
  .insights-newsletter-form {
    flex-direction: row;
  }

  .insights-newsletter-form input[type="email"] {
    flex: 1;
  }
}

/* ================================
   Careers 共通レイアウト
   ================================ */

.careers {
    font-family: "Noto Sans JP", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
    color: #111;
}

.careers-inner {
    max-width: 1120px;
    margin: 0 auto;
    padding: 0 20px;
}

/* セクション共通 */

.careers-section {
    padding: 80px 0;
}

.careers-section--white {
    background: #ffffff;
}

.careers-section--gray {
    background: #f5f5f5;
}

.careers-section__head {
    text-align: center;
    margin-bottom: 48px;
}

.careers-section__title {
    font-size: 2.4rem;
    letter-spacing: 0.08em;
    margin-bottom: 8px;
}

.careers-section__lead {
    font-size: 1.5rem;
    color: #666;
}

/* 汎用グリッド */

.careers-grid {
    display: grid;
    gap: 24px;
}

.careers-grid--3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.careers-grid--2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (max-width: 959px) {
    .careers-grid--3,
    .careers-grid--2 {
        grid-template-columns: 1fr;
    }
}

/* ボタン */

.careers-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 10px 24px;
    border-radius: 999px;
    font-size: 1.4rem;
    font-weight: 600;
    border: 1px solid transparent;
    text-decoration: none;
    transition: background 0.25s, color 0.25s, border-color 0.25s;
}

.careers-btn--lg {
    padding: 14px 32px;
    font-size: 1.5rem;
}

.careers-btn--primary {
    background: #111;
    color: #fff;
    border-color: #111;
}

.careers-btn--primary:hover {
    background: #333;
    border-color: #333;
}

.careers-btn--ghost {
    background: transparent;
    color: #111;
    border-color: #111;
}

.careers-btn--ghost:hover {
    background: #111;
    color: #fff;
}

.careers-btn--outline {
    background: transparent;
    color: #111;
    border-color: #ccc;
}

.careers-btn--outline:hover {
    border-color: #111;
}

/* ================================
   Hero
   ================================ */

.careers-hero {
    padding: 120px 0 80px;
    /* 白・黒・グレーのみの淡いグラデーション背景 */
    background: radial-gradient(circle at top, #f5f5f5 0, #f7f7f7 40%, #f2f2f2 100%);
    text-align: center;
}

.careers-hero-inner {
    max-width: 880px;
    margin: 0 auto;
    padding: 0 24px;
}

.careers-hero-label {
    font-size: 1.3rem;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: #7b8190; /* グレー */
    margin-bottom: 20px;
}

.careers-hero-title {
    font-size: 3.4rem;
    line-height: 1.35;
    margin-bottom: 24px;
}

/* 強調部分も青ではなくモノトーンに */
.careers-hero-title span {
    color: #111;               /* 黒 */
    font-weight: 700;
    border-bottom: 2px solid #111;
    padding-bottom: 2px;
}

.careers-hero-lead {
    font-size: 1.5rem;
    color: #4b5563;            /* ダークグレー */
    line-height: 1.9;
    margin-bottom: 32px;
}

.careers-hero-actions {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 16px;
    margin-bottom: 40px;
}

/* 既存 .careers-btn 系をそのまま使用（黒ベースのCTA） */

.careers-hero-metrics {
    margin-top: 16px;
    padding-top: 28px;
    border-top: 1px solid #e5e7f0;
    display: flex;
    justify-content: center;
    gap: 64px;
    flex-wrap: wrap;
}

.careers-hero-metric {
    text-align: center;
    min-width: 140px;
}

.careers-hero-metric__value {
    font-size: 2.6rem;
    font-weight: 700;
    color: #111827;            /* ほぼ黒 */
}

.careers-hero-metric__label {
    margin-top: 6px;
    font-size: 1.3rem;
    color: #6b7280;            /* グレー */
}

/* Responsive */

@media (min-width: 960px) {
    .careers-hero-title {
        font-size: 4.0rem;
    }
    .careers-hero-lead {
        font-size: 1.6rem;
    }
    .careers-hero-metric__value {
        font-size: 2.8rem;
    }
}

@media (max-width: 767px) {
    .careers-hero {
        padding: 96px 0 56px;
    }
    .careers-hero-title {
        font-size: 2.8rem;
    }
    .careers-hero-lead {
        font-size: 1.4rem;
    }
    .careers-hero-metrics {
        gap: 32px;
    }
}

/* ================================
   「なぜ 3SPartners なのか」カード
   ================================ */

.careers-card {
    background: #fff;
    border-radius: 24px;
    padding: 24px;
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.06);
}

.careers-card__icon {
    width: 52px;
    height: 52px;
    border-radius: 50%;
    background: #111;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 18px;
    color: #fff;
    font-size: 1.9rem;
}

.careers-card__title {
    font-size: 1.8rem;
    margin-bottom: 10px;
}

.careers-card__text {
    font-size: 1.4rem;
    color: #555;
    margin-bottom: 14px;
}

.careers-card__list {
    list-style: none;
    padding: 0;
    margin: 0;
    font-size: 1.4rem;
    color: #333;
}

.careers-card__list li::before {
    content: "・";
    margin-right: 4px;
}

/* ================================
   採用マトリックス
   ================================ */

.careers-matrix {
    background: #fff;
    border-radius: 24px;
    padding: 32px 24px 28px;
    box-shadow: 0 14px 40px rgba(0, 0, 0, 0.06);
    margin-bottom: 40px;
}

/* タグの基本スタイル（イメージ画像の黒いボックス） */
.careers-tag {
    display: inline-block;
    padding: 0.5rem 1.25rem;
    background-color: #374151; /* ダークグレー/黒 */
    color: #ffffff;
    font-weight: 600;
    font-size: 0.9rem;
    border-radius: 6px; /* イメージに近い少し角を落としたスタイル */
    margin-bottom: 0.5rem;
    white-space: nowrap;
}

.careers-matrix__title {
    font-size: 1.9rem;
    text-align: center;
    margin-bottom: 24px;
}

.careers-matrix__table-wrapper {
    overflow-x: auto;
}

.careers-matrix__table {
    width: 100%;
    border-collapse: collapse;
    font-size: 1.4rem;
}

.careers-matrix__table th,
.careers-matrix__table td {
    border: 1px solid #ddd;
    padding: 12px 14px;
    vertical-align: middle;
}

.careers-matrix__table th {
    background: #f7f7f7;
    text-align: center;
}

.careers-matrix__team {
    display: flex;
    align-items: center;
    gap: 10px;
}

.careers-matrix__team i {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #111;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
}

.careers-matrix__team-name {
    font-weight: 600;
}

.careers-matrix__team-desc {
    font-size: 1.2rem;
    color: #777;
}

.careers-matrix__cell--action {
    text-align: center;
}

.careers-tag-link {
    display: inline-block;
    padding: 6px 16px;
    border-radius: 999px;
    border: 1px solid #111;
    font-size: 1.3rem;
    text-decoration: none;
    color: #111;
}

.careers-tag-link:hover {
    background: #111;
    color: #fff;
}

.careers-matrix__salary {
    font-size: 1.2rem;
    color: #777;
    margin-top: 6px;
}

/* マトリックス下の説明カード */

.careers-matrix__detail {
    margin-top: 24px;
}

.careers-matrix-card {
    background: #f7f7f7;
    border-radius: 16px;
    padding: 20px 18px;
    font-size: 1.4rem;
}

.careers-matrix-card__head {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
}

.careers-matrix-card__head i {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: #111;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
}

.careers-matrix-card ul {
    margin-top: 6px;
    padding-left: 1em;
    color: #555;
}

/* ================================
   Job detail cards
   ================================ */

.careers-jobs {
    display: flex;
    flex-direction: column;
    gap: 32px;
}

.careers-job-card {
    background: #fff;
    border-radius: 24px;
    box-shadow: 0 14px 40px rgba(0, 0, 0, 0.06);
    overflow: hidden;
}

.careers-job-card__head {
    background: #111;
    color: #fff;
    padding: 20px 24px;
    display: flex;
    justify-content: space-between;
    gap: 24px;
    align-items: flex-end;
}

.careers-job-card__head h3 {
    font-size: 1.8rem;
    margin-bottom: 6px;
}

.careers-job-card__head p {
    font-size: 1.3rem;
    color: #ccc;
}

.careers-job-card__salary {
    text-align: right;
    font-size: 1.2rem;
}

.careers-job-card__salary-label {
    opacity: 0.8;
}

.careers-job-card__salary-main {
    display: block;
    font-size: 1.8rem;
    font-weight: 700;
}

.careers-job-card__salary-sub {
    opacity: 0.8;
}

.careers-job-card__body {
    padding: 24px;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
}

.careers-job-card__col h4 {
    font-size: 1.5rem;
    margin-bottom: 10px;
}

.careers-job-card__subblock {
    margin-top: 16px;
}

.careers-job-card__subblock h5 {
    font-size: 1.3rem;
    margin-bottom: 4px;
}

.careers-bullet {
    list-style: none;
    padding-left: 0;
    font-size: 1.4rem;
    color: #444;
}

.careers-bullet li {
    position: relative;
    padding-left: 14px;
    margin-bottom: 4px;
}

.careers-bullet li::before {
    content: "•";
    position: absolute;
    left: 0;
}

.careers-job-card__footer {
    padding: 20px 24px 24px;
    border-top: 1px solid #eee;
}

.careers-job-card__footer h4 {
    font-size: 1.5rem;
    margin-bottom: 12px;
}

/* career steps */

.careers-career-steps {
    display: grid;
    gap: 12px;
    margin-bottom: 16px;
}

.careers-career-steps--3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.careers-career-step {
    background: #f7f7f7;
    border-radius: 12px;
    padding: 10px 12px;
    text-align: center;
}

.careers-career-step__label {
    font-weight: 600;
    color: #111;
}

.careers-career-step__text {
    font-size: 1.2rem;
    color: #555;
    margin-top: 4px;
}

.careers-job-card__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

/* リストのマーカーとインデント設定 */
.careers-bullet-list--nested {
    list-style: none;
    padding-left: 0;
}
.careers-bullet-list--nested > li {
    position: relative;
    padding-left: 1.5em; /* マーカー分の余白 */
    margin-bottom: 12px;
}
.careers-bullet-list--nested > li::before {
    content: "●"; /* 親リストのドット */
    position: absolute;
    left: 0;
    font-size: 0.8em;
}

.careers-bullet-list--sub {
    list-style: none;
    padding: 0 1.5em; /* 子リスト全体のインデント */
    margin-top: 8px;
    font-size: 13.28px;
}
.careers-bullet-list--sub li {
    position: relative;
    padding-left: 1.5em;
    margin-bottom: 6px;
}
.careers-bullet-list--sub li::before {
    content: "➢"; /* 子リストの矢印 */
    position: absolute;
    left: 0;
}

/* 2列目内の必須・歓迎の間の余白 */
.mb-6 {
    margin-bottom: 24px;
}

/* responsive for job cards */

@media (max-width: 959px) {
    .careers-job-card__body {
        grid-template-columns: 1fr;
    }
    .careers-career-steps--3 {
        grid-template-columns: 1fr;
    }
}

/* ================================
   福利厚生・カルチャー
   ================================ */

.careers-subtitle {
    font-size: 1.7rem;
    margin-bottom: 16px;
}

.careers-benefit-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.careers-benefit {
    display: flex;
    gap: 12px;
    padding: 12px 14px;
    border-radius: 14px;
    background: #f7f7f7;
}

.careers-benefit__icon {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #111;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
}

.careers-benefit__body h4 {
    font-size: 1.4rem;
    margin-bottom: 4px;
}

.careers-benefit__body p {
    font-size: 1.3rem;
    color: #555;
}

.careers-culture {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.careers-culture__block {
    padding: 12px 14px;
    border-radius: 14px;
    background: #f7f7f7;
    font-size: 1.3rem;
}

.careers-culture__block h4 {
    font-size: 1.4rem;
    margin-bottom: 4px;
}

.careers-culture__block ul {
    padding-left: 1.2em;
}

.careers-culture__block--accent {
    border: 1px solid #111;
    background: linear-gradient(135deg, #fafafa, #f0f0f0);
}

/* ================================
   エントリーフォーム
   ================================ */

.careers-form-wrap {
    max-width: 760px;
    margin: 0 auto 32px;
    background: #fff;
    border-radius: 24px;
    box-shadow: 0 14px 40px rgba(0, 0, 0, 0.06);
    padding: 24px 24px 28px;
}

.careers-form {
    font-size: 1.4rem;
}

.careers-form__row {
    display: flex;
    gap: 16px;
    margin-bottom: 16px;
}

.careers-form__field {
    flex: 1;
    margin-bottom: 16px;
}

.careers-form__field label {
    display: block;
    margin-bottom: 4px;
    font-weight: 600;
    font-size: 1.3rem;
}

.careers-form input[type="text"],
.careers-form input[type="email"],
.careers-form input[type="tel"],
.careers-form select,
.careers-form textarea {
    width: 100%;
    border-radius: 10px;
    border: 1px solid #ccc;
    padding: 10px 12px;
    font-size: 1.4rem;
    outline: none;
    transition: border-color 0.2s, box-shadow 0.2s;
    background: #fff;
}

.careers-form input:focus,
.careers-form select:focus,
.careers-form textarea:focus {
    border-color: #111;
    box-shadow: 0 0 0 1px #111;
}

.careers-upload {
    border: 1px dashed #ccc;
    border-radius: 12px;
    padding: 18px 12px;
    text-align: center;
}

.careers-upload__input {
    display: none;
}

.careers-upload__label {
    cursor: pointer;
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    font-size: 1.3rem;
    color: #555;
}

.careers-upload__label i {
    font-size: 2.2rem;
    color: #999;
}

.careers-upload__note {
    font-size: 1.2rem;
    color: #888;
}

.careers-form__agreement {
    display: flex;
    gap: 8px;
    align-items: flex-start;
    font-size: 1.2rem;
    margin: 8px 0 16px;
}

.careers-form__agreement a {
    color: #111;
    text-decoration: underline;
}

.careers-form__submit {
    text-align: center;
}

/* responsive form */

@media (max-width: 767px) {
    .careers-form__row {
        flex-direction: column;
    }
}

/* ================================
   Quick contact
   ================================ */

.careers-quick-contact {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin-top: 24px;
}

.careers-quick-contact__item {
    background: #fff;
    border-radius: 16px;
    padding: 16px 12px;
    text-align: center;
    box-shadow: 0 8px 22px rgba(0, 0, 0, 0.04);
    font-size: 1.3rem;
}

.careers-quick-contact__item i {
    font-size: 2rem;
    margin-bottom: 6px;
}

.careers-quick-contact__main {
    font-weight: 600;
    margin-top: 4px;
}

.careers-quick-contact__sub {
    color: #777;
    font-size: 1.2rem;
}

@media (max-width: 767px) {
    .careers-quick-contact {
        grid-template-columns: 1fr;
    }
}


/* ================================
   セクション共通見出し（Careers）
   ================================ */

/* recruitページ内で使っている header を通常フローに戻す */
header.careers-section__head,
header.careers-job-card__head {
    position: static;
    top: auto;
    left: auto;
    width: auto;
    height: auto;
    padding: 0;
    display: block;
    background: transparent;
    z-index: auto;
}


@charset "utf-8";
/*
Theme Name:3SPartners WPテーマ
Description:3SPartners WPテーマ
Version: 1.0
*/

/* --- カラーパレット --- */
/* Base: #ffffff (White) */
/* Text Primary: #111827 (Gray-900) */
/* Text Secondary: #4B5563 (Gray-600) */
/* Background Light: #F9FAFB (Gray-50) */
/* Accent Color (Monotone Blue/Primary): #374151 (Gray-700) */
/* Accent Light: #E5E7EB (Gray-200) */

/* Google Fonts & Font Stack */
body {
    font-family: 'Noto Sans JP', 'Inter', sans-serif;
    color: #1F2937; /* Gray-800 */
    background-color: #ffffff;
}

/* ★★★ 修正箇所: メインコンテンツ全体の上部パディングを調整 ★★★ */
/* 固定ヘッダーにコンテンツが隠れるのを防ぐため、mainタグ全体に上部パディングを追加します。*/
/* 100pxは一般的なヘッダーの高さよりも十分に大きく、一時的な解決策として最適です。*/

/* ★★★ 修正箇所: ここまで ★★★ */


/* Base Layout */
.careers-container {
    max-width: 1280px; /* max-w-7xl */
    margin-left: auto;
    margin-right: auto;
    padding-left: 1rem; /* px-4 */
    padding-right: 1rem;
}

.careers-container--narrow {
    max-width: 896px; /* max-w-4xl */
}

.careers-section {
    padding-top: 5rem; /* py-20 */
    padding-bottom: 5rem;
}

.careers-section--white {
    background-color: #ffffff;
}

.careers-section--gray {
    background-color: #F9FAFB; /* Gray-50 */
}

.careers-section-header {
    text-align: center;
    margin-bottom: 4rem; /* mb-16 */
    max-width: 48rem; /* max-w-3xl */
    margin-left: auto;
    margin-right: auto;
}

.careers-section-title {
    font-size: 2.25rem; /* text-4xl */
    font-weight: 700; /* font-bold */
    color: #111827; /* Gray-900 */
    margin-bottom: 1rem;
}

.careers-section-lead {
    font-size: 1.25rem; /* text-xl */
    color: #4B5563; /* Gray-600 */
}

.careers-subtitle {
    font-size: 1.5rem; /* text-2xl */
    font-weight: 700; /* font-bold */
    color: #111827;
    margin-bottom: 2rem;
}

/* Grid System */
.careers-grid {
    display: grid;
    gap: 2rem; /* gap-8 */
}

.careers-grid--2 {
    grid-template-columns: 1fr;
}
@media (min-width: 768px) {
    .careers-grid--2 {
        grid-template-columns: repeat(2, 1fr);
    }
}

.careers-grid--3 {
    grid-template-columns: 1fr;
}
@media (min-width: 1024px) {
    .careers-grid--3 {
        grid-template-columns: repeat(3, 1fr);
    }
}

/* Buttons */
.careers-btn {
    display: inline-block;
    padding: 1rem 2rem; /* px-8 py-4 */
    border-radius: 0.5rem; /* rounded-lg */
    font-weight: 500; /* font-medium */
    transition: all 0.3s ease;
    text-align: center;
    white-space: nowrap;
}

/* Primary Button: Dark Gray */
.careers-btn--primary {
    color: #ffffff;
    background-color: #374151; /* Accent Dark Gray */
    box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
}
.careers-btn--primary:hover {
    background-color: #1F2937; /* Even Darker Gray */
}

/* Ghost Button: Outline Gray */
.careers-btn--ghost {
    border: 2px solid #374151; /* Accent Dark Gray */
    color: #374151;
    background-color: transparent;
}
.careers-btn--ghost:hover {
    background-color: #F3F4F6; /* Gray-100 */
}

/* All other primary buttons will use the main Accent Color */
.careers-btn--blue,
.careers-btn--purple,
.careers-btn--green {
    background-color: #374151;
    border: 1px solid #374151;
}
.careers-btn--blue:hover,
.careers-btn--purple:hover,
.careers-btn--green:hover {
    background-color: #1F2937;
}

/* Outline Button: Dark Gray Outline */
.careers-btn--outline {
    background-color: transparent;
    border: 1px solid currentColor;
    color: #374151;
}
.careers-btn--outline:hover {
    background-color: #F3F4F6; /* Gray-100 */
}

.careers-btn--outline.careers-btn--blue,
.careers-btn--outline.careers-btn--purple,
.careers-btn--outline.careers-btn--green {
    color: #374151; /* Dark Gray for outlines */
    border-color: #374151;
}
.careers-btn--outline.careers-btn--blue:hover,
.careers-btn--outline.careers-btn--purple:hover,
.careers-btn--outline.careers-btn--green:hover {
    background-color: #E5E7EB; /* Gray-200 */
}

.careers-btn--lg {
    font-size: 1.125rem; /* text-lg */
}


/* Hero Section */
.careers-hero-section {
    /* main.careers-page でパディングを設定したため、ここではページ内のコンテンツとして調整 */
    padding-bottom: 4rem; /* pb-16 */
    background-image: linear-gradient(to bottom right, #F9FAFB, #FFFFFF); /* Monotone: Light Gray to White */
}

.careers-hero-inner {
    text-align: center;
    padding-top: 1rem;
}

.careers-hero-content {
    margin-bottom: 2rem;
}

.careers-hero-title {
    font-size: 2.5rem; /* text-4xl */
    line-height: 1.25;
    font-weight: 700;
    color: #111827;
    margin-bottom: 1rem;
}
@media (min-width: 1024px) {
    .careers-hero-title {
        font-size: 3.75rem; /* lg:text-6xl */
    }
}

.careers-accent-text {
    color: #374151; /* Accent Dark Gray */
}

.careers-hero-lead {
    font-size: 1.25rem; /* text-xl */
    color: #4B5563; /* Gray-600 */
    line-height: 1.6;
    max-width: 48rem; /* max-w-3xl */
    margin-left: auto;
    margin-right: auto;
}

.careers-hero-actions {
    display: flex;
    flex-direction: column;
    gap: 1rem; /* gap-4 */
    justify-content: center;
    margin-top: 2rem;
    margin-bottom: 2.5rem;
}
@media (min-width: 640px) {
    .careers-hero-actions {
        flex-direction: row;
    }
}

.careers-stats-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem; /* gap-8 */
    padding-top: 2rem; /* pt-8 */
    border-top: 1px solid #D1D5DB; /* Gray-300 */
    max-width: 40rem; /* max-w-2xl */
    margin-left: auto;
    margin-right: auto;
}

.careers-stats-item {
    text-align: center;
}

.careers-stats-value {
    font-size: 1.875rem; /* text-3xl */
    font-weight: 700;
    color: #374151; /* Accent Dark Gray */
}

.careers-stats-label {
    font-size: 0.875rem; /* text-sm */
    color: #4B5563;
}


/* Why Join Cards */
.careers-card {
    padding: 2rem; /* p-8 */
    border-radius: 1rem; /* rounded-2xl */
    border: 1px solid;
    display: flex;
    flex-direction: column;
    gap: 1.5rem; /* space-y-6 */
}

/* All cards use the same subtle gray background and border */
.careers-card--blue,
.careers-card--purple,
.careers-card--green {
    background-image: linear-gradient(to bottom right, #F9FAFB, #FFFFFF); /* Light Gray to White */
    border-color: #E5E7EB; /* Gray-200 */
}

.careers-card-icon-wrap {
    width: 4rem; /* w-16 */
    height: 4rem; /* h-16 */
    border-radius: 1rem; /* rounded-2xl */
    display: flex;
    align-items: center;
    justify-content: center;
}

.careers-card-icon-wrap i {
    color: #ffffff;
    font-size: 1.5rem; /* text-2xl */
}

/* All icons use the Accent Dark Gray */
.careers-card-icon-wrap--blue,
.careers-card-icon-wrap--purple,
.careers-card-icon-wrap--green {
    background-color: #374151;
}

.careers-card-title {
    font-size: 1.5rem; /* text-2xl */
    font-weight: 700;
    color: #111827;
}

.careers-card-text {
    color: #374151; /* Gray-700 */
    line-height: 1.5;
}

.careers-check-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem; /* space-y-2 */
    color: #374151;
}

.careers-check-list li {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem; /* space-x-2 */
}

.careers-check-list li::before {
    content: '\f00c'; /* Font Awesome check icon */
    font-family: 'Font Awesome 6 Free';
    font-weight: 900;
    margin-top: 0.25rem;
    flex-shrink: 0;
    color: #374151; /* Accent Dark Gray */
}

/* No need for specific colors now */
.careers-check-list--blue li::before,
.careers-check-list--purple li::before,
.careers-check-list--green li::before {
    color: #374151;
}

/* Job Matrix */
.careers-matrix-wrap {
    background-color: #ffffff;
    padding: 2rem; /* p-8 */
    border-radius: 1rem; /* rounded-2xl */
    box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
    margin-bottom: 3rem; /* mb-12 */
}

.careers-matrix-title {
    font-size: 1.5rem;
    font-weight: 700;
    color: #111827;
    margin-bottom: 2rem; /* mb-8 */
    text-align: center;
}

.careers-matrix-table-scroll {
    overflow-x: auto;
}

.careers-matrix-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 900px; /* 列が増えたため最小幅を広げる */
}

.careers-matrix-table thead th {
    border: 1px solid #D1D5DB; /* Gray-300 */
    padding: 1rem; /* p-4 */
    background-color: #F9FAFB;
    color: #111827;
    font-weight: 600; /* font-semibold */
    text-align: left;
}
.careers-matrix-table thead th:first-child {
    text-align: center;
}

/* Header colors changed to subtle gray/white */
.careers-matrix-header--newgrad {
    background-color: #F9FAFB;
    color: #111827;
    text-align: center;
}
.careers-matrix-header--experienced {
    background-color: #F9FAFB;
    color: #111827;
    text-align: center;
}

.careers-matrix-table tbody td {
    border: 1px solid #D1D5DB;
    padding: 1rem;
    text-align: center;
}

.careers-matrix-team-info {
    display: flex;
    align-items: center;
    gap: 0.5rem; /* mr-2 */
}

.careers-matrix-team-info i {
    font-size: 1.125rem;
    flex-shrink: 0;
    color: #374151; /* Accent Dark Gray */
}

.careers-matrix-team-info--blue i,
.careers-matrix-team-info--green i {
    color: #374151;
}

.careers-matrix-team-desc {
    font-size: 0.875rem; /* text-sm */
    color: #4B5563;
    margin-top: 0.25rem;
}

.careers-tag-link {
    display: inline-block;
    padding: 0.5rem 1rem; /* px-4 py-2 */
    border-radius: 0.5rem; /* rounded-lg */
    color: #ffffff;
    font-weight: 500;
    transition: background-color 0.3s;
    white-space: nowrap;
}

/* Tag links use the primary accent color */
.careers-tag-link--blue,
.careers-tag-link--green {
    background-color: #374151;
}
.careers-tag-link--blue:hover,
.careers-tag-link--green:hover {
    background-color: #1F2937;
}

.careers-matrix-salary {
    font-size: 0.8rem;
    color: #4B5563;
    font-weight: 500;
}

.careers-matrix-detail-grid {
    margin-top: 2rem;
	padding-bottom: 2rem;
}

.careers-matrix-detail-card {
    padding: 1.5rem; /* p-6 */
    border-radius: 0.75rem; /* rounded-xl */
}

/* Detail cards use subtle light gray background */
.careers-matrix-detail-card--blue,
.careers-matrix-detail-card--green {
    background-color: #F9FAFB; /* Gray-50 */
    border: 1px solid #E5E7EB; /* Gray-200 */
}

.careers-matrix-detail-head {
    display: flex;
    align-items: center;
    margin-bottom: 1rem; /* mb-4 */
}

.careers-matrix-detail-head i {
    font-size: 1.5rem;
    margin-right: 0.75rem; /* mr-3 */
    color: #374151; /* Accent Dark Gray */
}

.careers-matrix-detail-head--blue i,
.careers-matrix-detail-head--green i {
    color: #374151;
}

.careers-matrix-detail-title {
    font-size: 1.25rem;
    font-weight: 700;
    color: #111827;
}

.careers-matrix-detail-text {
    color: #374151;
    margin-bottom: 1rem;
}

.careers-matrix-detail-list {
    list-style: none;
    padding: 0;
    margin: 0;
    font-size: 0.875rem;
    color: #4B5563;
    display: flex;
    flex-direction: column;
    gap: 0.5rem; /* space-y-2 */
}


/* Job Position Details */
.careers-job-details-list {
    display: flex;
    flex-direction: column;
    gap: 3rem; /* space-y-12 */
}

.careers-job-card {
    background-color: #ffffff;
    border-radius: 1rem;
    box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
    overflow: hidden;
    border: 1px solid #E5E7EB; /* Subtle Border */
}

.careers-job-card-header {
    padding: 1.5rem 2rem; /* px-8 py-6 */
    background-color: #374151; /* Accent Dark Gray */
    color: #ffffff;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: flex-start;
}
@media (min-width: 768px) {
    .careers-job-card-header {
        flex-direction: row;
        align-items: center;
    }
}

/* All job headers use the same Accent Dark Gray background */
.careers-job-card-header--blue,
.careers-job-card-header--purple,
.careers-job-card-header--green {
    background-image: none; /* Remove gradients */
    background-color: #374151;
    color: #ffffff;
}

.careers-job-title {
    font-size: 1.5rem; /* text-2xl */
    font-weight: 700;
    color: #ffffff;
}

.careers-job-subtitle {
    color: rgba(255, 255, 255, 0.9);
    margin-top: 0.5rem;
    font-size: 1rem;
}

.careers-job-salary-box {
    text-align: right;
    margin-top: 1rem;
}
@media (min-width: 768px) {
    .careers-job-salary-box {
        margin-top: 0;
        margin-left: 2rem;
    }
}

.careers-job-salary-label {
    font-size: 0.875rem;
    opacity: 0.9;
}

.careers-job-salary-value {
    font-size: 1.5rem;
    font-weight: 700;
}

.careers-job-salary-incentive {
    font-size: 0.875rem;
    opacity: 0.9;
}

.careers-job-card-body {
    padding: 2rem; /* p-8 */
}

.careers-sub-title {
    font-size: 1.125rem; /* text-lg */
    font-weight: 600; /* font-semibold */
    color: #111827;
    margin-bottom: 1rem;
}

.careers-bullet-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.75rem; /* space-y-3 */
    color: #374151;
}

.careers-bullet-list li {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem; /* space-x-3 */
}

.careers-bullet-list li::before {
    content: '';
    width: 0.5rem; /* w-2 */
    height: 0.5rem; /* h-2 */
    border-radius: 50%;
    flex-shrink: 0;
    margin-top: 0.4rem;
    background-color: #374151; /* Accent Dark Gray */
}

/* All bullets use the Accent Dark Gray */
.careers-bullet-list--blue li::before,
.careers-bullet-list--purple li::before,
.careers-bullet-list--green li::before {
    background-color: #374151;
}

.careers-requirement-group {
    margin-top: 1rem;
}

.careers-requirement-title {
    font-weight: 500; /* font-medium */
    color: #111827;
    margin-bottom: 0.5rem;
}

.careers-requirement-list {
    list-style: none;
    padding: 0;
    margin: 0;
    color: #374151;
    display: flex;
    flex-direction: column;
    gap: 0.25rem; /* space-y-1 */
    font-size: 0.9375rem;
}

.careers-job-card-footer {
    padding-top: 1.5rem; /* pt-6 */
    border-top: 1px solid #E5E7EB; /* border-t border-gray-200 */
    margin-top: 2rem; /* mt-8 */
}

.careers-career-steps-grid {
    display: grid;
    gap: 1rem; /* gap-4 */
    margin-top: 1rem;
}
.careers-career-steps-grid--4 {
    grid-template-columns: 1fr;
}
.careers-career-steps-grid--3 {
    grid-template-columns: 1fr;
}

@media (min-width: 768px) {
    .careers-career-steps-grid--4 {
        grid-template-columns: repeat(4, 1fr);
    }
    .careers-career-steps-grid--3 {
        grid-template-columns: repeat(3, 1fr);
    }
}


.careers-career-step-item {
    text-align: center;
    padding: 1rem; /* p-4 */
    border-radius: 0.5rem; /* rounded-lg */
    background-color: #F9FAFB; /* Light Gray Background */
    border: 1px solid #E5E7EB; /* Subtle Border */
}

/* All career steps use the same monotone background/text */
.careers-career-steps-grid--blue .careers-career-step-item,
.careers-career-steps-grid--purple .careers-career-step-item,
.careers-career-steps-grid--green .careers-career-step-item {
    background-color: #F9FAFB;
}

.careers-career-step-label {
    font-weight: 700;
    color: #374151; /* Accent Dark Gray */
}

.careers-career-steps-grid--blue .careers-career-step-label,
.careers-career-steps-grid--purple .careers-career-step-label,
.careers-career-steps-grid--green .careers-career-step-label {
    color: #374151;
}

.careers-career-step-text {
    font-size: 0.875rem;
    color: #374151;
    margin-top: 0.25rem;
}

.careers-job-card-actions {
    margin-top: 1.5rem; /* mt-6 */
    display: flex;
    gap: 1rem; /* gap-4 */
    flex-wrap: wrap;
}

/* Benefits & Culture */
.careers-benefits-grid {
    gap: 3rem; /* gap-12 */
}

.careers-benefit-list {
    display: flex;
    flex-direction: column;
    gap: 1.5rem; /* space-y-6 */
}

.careers-benefit-item {
    display: flex;
    align-items: flex-start;
    gap: 1rem; /* space-x-4 */
    padding: 1rem; /* p-4 */
    border-radius: 0.5rem; /* rounded-lg */
    background-color: #F9FAFB; /* Light Gray Background */
    border: 1px solid #E5E7EB;
}

/* All benefits use the same monotone background/icon color */
.careers-benefit-item--blue,
.careers-benefit-item--purple,
.careers-benefit-item--green,
.careers-benefit-item--orange {
    background-color: #F9FAFB;
}


.careers-benefit-icon-wrap {
    width: 2.5rem; /* w-10 */
    height: 2.5rem; /* h-10 */
    border-radius: 0.5rem; /* rounded-lg */
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    background-color: #374151; /* Accent Dark Gray */
}

.careers-benefit-icon-wrap i {
    color: #ffffff;
}

.careers-benefit-icon-wrap--blue,
.careers-benefit-icon-wrap--purple,
.careers-benefit-icon-wrap--green,
.careers-benefit-icon-wrap--orange {
    background-color: #374151;
}

.careers-benefit-title {
    font-weight: 600;
    color: #111827;
}

.careers-benefit-text {
    color: #374151;
    font-size: 0.875rem; /* text-sm */
    margin-top: 0.25rem;
}


.careers-culture-list {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.careers-culture-block {
    padding: 1.5rem; /* p-6 */
    border-radius: 0.5rem;
}

.careers-culture-block--gray {
    background-color: #F9FAFB;
    border: 1px solid #E5E7EB;
}

.careers-culture-block--accent {
    /* Subtle highlight using gradient from light gray to white */
    background-image: linear-gradient(to right, #F9FAFB, #FFFFFF);
    border: 1px solid #D1D5DB; /* Gray-300 */
}

.careers-culture-title {
    font-weight: 600;
    color: #111827;
    margin-bottom: 0.75rem; /* mb-3 */
}
.careers-culture-title--accent {
    color: #374151; /* Make special title stand out slightly */
}

.careers-culture-list-items {
    list-style: none;
    padding: 0;
    margin: 0;
    color: #374151;
    display: flex;
    flex-direction: column;
    gap: 0.5rem; /* space-y-2 */
    font-size: 0.9375rem;
}


/* Application Form */
.careers-container--narrow {
    max-width: 64rem;
}

.careers-form-container {
    background-color: #ffffff;
    border-radius: 1rem;
    box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
    padding: 2rem; /* p-8 */
    border: 1px solid #E5E7EB;
}

.careers-form {
    display: flex;
    flex-direction: column;
    gap: 1.5rem; /* space-y-6 */
}

.careers-form-group--grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.5rem; /* gap-6 */
}
@media (min-width: 768px) {
    .careers-form-group--grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

.careers-form-field {
    display: flex;
    flex-direction: column;
}

.careers-form-label {
    font-size: 0.875rem; /* text-sm */
    font-weight: 500;
    color: #374151; /* Gray-700 */
    margin-bottom: 0.5rem;
}

.careers-form-input,
.careers-form-select,
.careers-form-textarea {
    width: 100%;
    padding: 0.75rem 1rem; /* px-4 py-3 */
    border: 1px solid #D1D5DB; /* border-gray-300 */
    border-radius: 0.5rem; /* rounded-lg */
    transition: all 0.2s;
}

.careers-form-input:focus,
.careers-form-select:focus,
.careers-form-textarea:focus {
    outline: 2px solid transparent;
    outline-offset: 2px;
    box-shadow: 0 0 0 2px #374151; /* Focus: Accent Dark Gray */
    border-color: #374151;
}

.careers-file-upload-box {
    border: 2px dashed #D1D5DB; /* border-dashed border-gray-300 */
    border-radius: 0.5rem;
    padding: 1.5rem; /* p-6 */
    text-align: center;
    background-color: #F9FAFB;
}

.careers-file-upload-input {
    display: none;
}

.careers-file-upload-label {
    cursor: pointer;
    display: block;
}

.careers-file-upload-icon {
    color: #9CA3AF; /* Gray-400 */
    font-size: 1.875rem; /* text-3xl */
    margin-bottom: 0.75rem; /* mb-3 */
    display: block;
}

.careers-file-upload-text {
    color: #4B5563; /* Gray-600 */
}

.careers-file-upload-note {
    font-size: 0.875rem; /* text-sm */
    color: #6B7280; /* Gray-500 */
    margin-top: 0.25rem;
}

.careers-form-agreement {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem; /* space-x-3 */
}

.careers-form-checkbox {
    margin-top: 0.25rem; /* mt-1 */
    flex-shrink: 0;
}

.careers-form-agreement-label {
    font-size: 0.875rem;
    color: #374151;
}

.careers-link {
    color: #374151;
    font-weight: 500;
}
.careers-link:hover {
    text-decoration: underline;
}

.careers-form-submit-wrap {
    text-align: center;
}


/* Quick Contact Options */
.careers-contact-options-grid {
    margin-top: 3rem; /* mt-12 */
}

.careers-contact-option-item {
    text-align: center;
    padding: 1.5rem; /* p-6 */
    background-color: #ffffff;
    border-radius: 0.5rem;
    box-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1); /* shadow */
    border: 1px solid #E5E7EB;
}

.careers-contact-option-item i {
    font-size: 1.5rem;
    margin-bottom: 0.75rem;
    display: block;
    color: #374151; /* Accent Dark Gray */
}

/* All icons use the Accent Dark Gray */
.careers-contact-option-item--phone i,
.careers-contact-option-item--video i,
.careers-contact-option-item--email i {
    color: #374151;
}

.careers-contact-option-title {
    font-weight: 600;
    color: #111827;
}

.careers-contact-option-main {
    color: #4B5563;
    font-size: 0.875rem;
    margin-top: 0.5rem;
}

.careers-contact-option-sub {
    color: #6B7280;
    font-size: 0.75rem;
}

.careers-link--contact {
    color: #4B5563;
    text-decoration: none;
}
.careers-link--contact:hover {
    color: #374151;
    text-decoration: underline;
}

/* ========================================================== */
/* ★★★ 共通ヘッダー (wp-nav) スタイル ★★★ */
/* ========================================================== */

/* Navigation Bar - 全幅を保証し、既存テーマの干渉を打ち消す */
.wp-nav {
    background-color: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(4px);
    z-index: 999;
    border-bottom: 1px solid #E5E7EB; /* Gray-200 */
    
    /* 中央寄せの強制的な打ち消し */
    width: 100% !important;
    max-width: none !important; 
    left: 0 !important;
    right: 0 !important;
}
.wp-nav--fixed {
    position: fixed;
    top: 0;
}

/* ヘッダー内部のコンテナ - 中央寄せ */
.wp-nav-inner {
    max-width: 1280px; /* PCでの最大幅 */
    width: 100%; /* 内部で全幅を使用 */
    margin-left: auto;
    margin-right: auto;
    padding-left: 1rem;
    padding-right: 1rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
}

/* ロゴエリア */
.wp-nav-logo {
    display: flex;
    align-items: center;
}
.logo-link {
    text-decoration: none;
}
/* ロゴ画像・カスタムロゴが出力する<img>タグをターゲット */
.wp-nav-logo img {
    max-height: 2.25rem; /* ロゴ画像の高さを調整 */
    width: auto !important; /* 幅が消える問題に対処 */
    display: block;
}
.wp-nav-logo h1, .wp-nav-logo .custom-logo-link {
    margin: 0;
    padding: 0;
    line-height: 1;
    /* テキストロゴフォールバックのスタイル */
    font-size: 1.5rem;
    color: #111827;
}


/* PC用ナビゲーション */
.wp-nav-links--desktop {
    display: none;
    align-items: center;
    gap: 1.25rem; /* メニュー間の幅をさらに狭める */
    margin-left: auto; /* ロゴに対して右寄せにする */
}
@media (min-width: 768px) {
    .wp-nav-links--desktop {
        display: flex;
    }
}

.wp-nav-link {
    color: #4B5563; /* Gray-600 */
    transition: color 0.3s;
    font-weight: 500;
    text-decoration: none;
    padding-bottom: 0.25rem;
    white-space: nowrap;
}
.wp-nav-link:hover {
    color: #111827; /* Gray-900 */
}

.wp-nav-link--active {
    color: #111827;
    font-weight: 600;
    border-bottom: 2px solid #374151; /* Accent Dark Gray underline */
}

.wp-nav-link--cta {
    background-color: #374151; /* Accent Dark Gray */
    color: #ffffff !important; /* お問い合わせボタンの文字色を白に固定し、視認性を確保 */
    padding: 0.5rem 1.5rem; /* px-6 py-2 */
    border-radius: 0.5rem;
    box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
    margin-left: 1rem; /* ナビリンクとの間にスペース */
}
.wp-nav-link--cta:hover {
    background-color: #1F2937;
    color: #ffffff;
    border-bottom: none;
}

/* Mobile Menu Button */
.wp-mobile-menu-button {
    background: none;
    border: none;
    color: #4B5563;
    cursor: pointer;
    padding: 0.5rem;
    line-height: 1;
}
.wp-mobile-menu-icon {
    font-size: 1.5rem; /* text-xl */
}
.wp-mobile-menu-button--open .wp-mobile-menu-icon {
    color: #111827;
}
@media (min-width: 768px) {
    .wp-mobile-menu-button {
        display: none;
    }
}

/* Mobile Menu Content */
.wp-mobile-menu {
    display: none; /* jQueryでトグルされる */
    position: absolute;
    width: 100%;
    top: 100%; /* ヘッダーの真下に配置 */
    left: 0;
    background-color: #ffffff;
    border-top: 1px solid #E5E7EB;
    box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1);
    z-index: 40;
}
.wp-mobile-menu-content {
    padding: 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}
.wp-mobile-link {
    display: block;
    color: #4B5563;
    padding: 0.5rem 0;
    text-decoration: none;
    border-bottom: 1px solid #F3F4F6;
}
.wp-mobile-link:last-child {
    border-bottom: none;
}
.wp-mobile-link--active {
    color: #374151;
    font-weight: 500;
}
.wp-mobile-link--cta {
    background-color: #374151;
    color: #ffffff;
    padding: 0.75rem;
    border-radius: 0.5rem;
    text-align: center;
    margin-top: 0.5rem;
}


/* ========================================================== */
/* ★★★ コンテンツエリア共通スタイル (page-recruit.php等と共通) ★★★ */
/* ========================================================== */

/* メインコンテンツ全体に、固定ヘッダーの高さ分、上部マージンを設定し、コンテンツが隠れるのを防ぐ */
/* ヘッダーの高さが一定と仮定し、確実にコンテンツを押し下げる */
.careers-page-main, #smooth-content {
    /* デフォルトのヘッダー高さとマージンを考慮したパディング */
    padding-top: 6rem; 
}
@media (min-width: 768px) {
    .careers-page-main, #smooth-content {
        padding-top: 7rem; /* デスクトップのヘッダーサイズに合わせて調整 */
    }
}

/* Base Layout */
.careers-container {
    max-width: 1280px; /* max-w-7xl */
    margin-left: auto;
    margin-right: auto;
    padding-left: 1rem; /* px-4 */
    padding-right: 1rem;
}

.careers-container--narrow {
    max-width: 896px; /* max-w-4xl */
}

.careers-section {
    padding-top: 5rem; /* py-20 */
    padding-bottom: 5rem;
}

.careers-section--white {
    background-color: #ffffff;
}

.careers-section--gray {
    background-color: #F9FAFB; /* Gray-50 */
}

/* セクションヘッダー（<div class="careers-section-header">） */
.careers-section-header {
    text-align: center;
    margin-bottom: 4rem; /* mb-16 */
    max-width: 48rem; /* max-w-3xl */
    margin-left: auto;
    margin-right: auto;
}

.careers-section-title {
    font-size: 2.25rem; /* text-4xl */
    font-weight: 700; /* font-bold */
    color: #111827; /* Gray-900 */
    margin-bottom: 1rem;
}

.careers-section-lead {
    font-size: 1.25rem; /* text-xl */
    color: #4B5563; /* Gray-600 */
    line-height: 1.6;
    max-width: 48rem; /* max-w-3xl */
    margin-left: auto;
    margin-right: auto;
}

.careers-subtitle {
    font-size: 1.5rem; /* text-2xl */
    font-weight: 700; /* font-bold */
    color: #111827;
    margin-bottom: 2rem;
}

/* Grid System */
.careers-grid {
    display: grid;
    gap: 2rem; /* gap-8 */
}

.careers-grid--2 {
    grid-template-columns: 1fr;
}
@media (min-width: 768px) {
    .careers-grid--2 {
        grid-template-columns: repeat(2, 1fr);
    }
}

.careers-grid--3 {
    grid-template-columns: 1fr;
}
@media (min-width: 1024px) {
    .careers-grid--3 {
        grid-template-columns: repeat(3, 1fr);
    }
}

/* Buttons */
.careers-btn {
    display: inline-block;
    padding: 1rem 2rem; /* px-8 py-4 */
    border-radius: 0.5rem; /* rounded-lg */
    font-weight: 500; /* font-medium */
    transition: all 0.3s ease;
    text-align: center;
    white-space: nowrap;
}

/* Primary Button: Dark Gray */
.careers-btn--primary {
    color: #ffffff;
    background-color: #374151; /* Accent Dark Gray */
    box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
}
.careers-btn--primary:hover {
    background-color: #1F2937; /* Even Darker Gray */
}

/* Ghost Button: Outline Gray */
.careers-btn--ghost {
    border: 2px solid #374151; /* Accent Dark Gray */
    color: #374151;
    background-color: transparent;
}
.careers-btn--ghost:hover {
    background-color: #F3F4F6; /* Gray-100 */
}

/* All other primary buttons will use the main Accent Color */
.careers-btn--blue,
.careers-btn--purple,
.careers-btn--green {
    background-color: #374151;
    border: 1px solid #374151;
}
.careers-btn--blue:hover,
.careers-btn--purple:hover,
.careers-btn--green:hover {
    background-color: #1F2937;
}

/* Outline Button: Dark Gray Outline */
.careers-btn--outline {
    background-color: transparent;
    border: 1px solid currentColor;
    color: #374151;
}
.careers-btn--outline:hover {
    background-color: #F3F4F6; /* Gray-100 */
}

.careers-btn--outline.careers-btn--blue,
.careers-btn--outline.careers-btn--purple,
.careers-btn--outline.careers-btn--green {
    color: #374151; /* Dark Gray for outlines */
    border-color: #374151;
}
.careers-btn--outline.careers-btn--blue:hover,
.careers-btn--outline.careers-btn--purple:hover,
.careers-btn--outline.careers-btn--green:hover {
    background-color: #E5E7EB; /* Gray-200 */
}

.careers-btn--lg {
    font-size: 1.125rem; /* text-lg */
}


/* Hero Section */
.careers-hero-content {
    margin-bottom: 2rem;
}

@media (min-width: 1024px) {
    .careers-hero-title {
        font-size: 3.75rem; /* lg:text-6xl */
    }
}

.careers-accent-text {
    color: #374151; /* Accent Dark Gray */
}

.careers-hero-lead {
    font-size: 1.25rem; /* text-xl */
    color: #4B5563; /* Gray-600 */
    line-height: 1.6;
    max-width: 48rem; /* max-w-3xl */
    margin-left: auto;
    margin-right: auto;
}

.careers-hero-actions {
    display: flex;
    flex-direction: column;
    gap: 1rem; /* gap-4 */
    justify-content: center;
    margin-top: 2rem;
    margin-bottom: 2.5rem;
}
@media (min-width: 640px) {
    .careers-hero-actions {
        flex-direction: row;
    }
}

.careers-stats-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem; /* gap-8 */
    padding-top: 2rem; /* pt-8 */
    border-top: 1px solid #D1D5DB; /* Gray-300 */
    max-width: 40rem; /* max-w-2xl */
    margin-left: auto;
    margin-right: auto;
}

.careers-stats-item {
    text-align: center;
}

.careers-stats-value {
    font-size: 1.875rem; /* text-3xl */
    font-weight: 700;
    color: #374151; /* Accent Dark Gray */
}

.careers-stats-label {
    font-size: 0.875rem; /* text-sm */
    color: #4B5563;
}


/* Why Join Cards */
.careers-card {
    padding: 2rem; /* p-8 */
    border-radius: 1rem; /* rounded-2xl */
    border: 1px solid;
    display: flex;
    flex-direction: column;
    gap: 1.5rem; /* space-y-6 */
}

/* All cards use the same subtle gray background and border */
.careers-card--blue,
.careers-card--purple,
.careers-card--green {
    background-image: linear-gradient(to bottom right, #F9FAFB, #FFFFFF); /* Light Gray to White */
    border-color: #E5E7EB; /* Gray-200 */
}

.careers-card-icon-wrap {
    width: 4rem; /* w-16 */
    height: 4rem; /* h-16 */
    border-radius: 1rem; /* rounded-2xl */
    display: flex;
    align-items: center;
    justify-content: center;
}

.careers-card-icon-wrap i {
    color: #ffffff;
    font-size: 1.5rem; /* text-2xl */
}

/* All icons use the Accent Dark Gray */
.careers-card-icon-wrap--blue,
.careers-card-icon-wrap--purple,
.careers-card-icon-wrap--green {
    background-color: #374151;
}

.careers-card-title {
    font-size: 1.5rem; /* text-2xl */
    font-weight: 700;
    color: #111827;
}

.careers-card-text {
    color: #374151; /* Gray-700 */
    line-height: 1.5;
}

.careers-check-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem; /* space-y-2 */
    color: #374151;
}

.careers-check-list li {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem; /* space-x-2 */
}

.careers-check-list li::before {
    content: '\f00c'; /* Font Awesome check icon */
    font-family: 'Font Awesome 6 Free';
    font-weight: 900;
    margin-top: 0.25rem;
    flex-shrink: 0;
    color: #374151; /* Accent Dark Gray */
}

/* No need for specific colors now */
.careers-check-list--blue li::before,
.careers-check-list--purple li::before,
.careers-check-list--green li::before {
    color: #374151;
}

/* Job Matrix */
.careers-matrix-wrap {
    background-color: #ffffff;
    padding: 2rem; /* p-8 */
    border-radius: 1rem; /* rounded-2xl */
    box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
    margin-bottom: 3rem; /* mb-12 */
}

.careers-matrix-title {
    font-size: 1.5rem;
    font-weight: 700;
    color: #111827;
    margin-bottom: 2rem; /* mb-8 */
    text-align: center;
}

.careers-matrix-table-scroll {
    overflow-x: auto;
}

.careers-matrix-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 600px; /* Prevent shrinking too much on mobile */
    table-layout: fixed;
}

.careers-matrix-table thead th {
    background-color: #F3F4F6;
    border: 1px solid #D1D5DB;
    padding: 1rem;
    font-size: 0.875rem;
    color: #374151;
    text-align: center !important; /* 全て中央揃えに */
}

/* データのセル */
.careers-matrix-data-cell {
    vertical-align: middle;
    padding: 1.5rem 1rem !important;
}

.careers-matrix-table thead th:first-child {
    text-align: center;
}

/* Header colors changed to subtle gray/white */
.careers-matrix-header--newgrad {
    background-color: #F9FAFB;
    color: #111827;
    text-align: center;
}
.careers-matrix-header--experienced {
    background-color: #F9FAFB;
    color: #111827;
    text-align: center;
}

.careers-matrix-table tbody td {
    border: 1px solid #D1D5DB;
    padding: 1rem;
    text-align: center;
}

/* チーム名のセル（左端） */
.careers-matrix-team-cell {
    background-color: #F9FAFB;
    width: 30%;
    padding: 1.5rem !important;
}

.careers-matrix-team-name {
    font-size: 1rem;
    font-weight: 700;
    color: #111827;
    line-height: 1.3;
}

.careers-matrix-team-info {
    display: flex;
    align-items: center;
    gap: 0.5rem; /* mr-2 */
}

.careers-matrix-team-info i {
    font-size: 1.125rem;
    flex-shrink: 0;
    color: #374151; /* Accent Dark Gray */
}

.careers-matrix-team-info--blue i,
.careers-matrix-team-info--green i {
    color: #374151;
}

.careers-matrix-team-desc {
    font-size: 0.875rem; /* text-sm */
    color: #4B5563;
    margin-top: 0.25rem;
}

.careers-tag-link {
    display: inline-block;
    padding: 0.5rem 1rem; /* px-4 py-2 */
    border-radius: 0.5rem; /* rounded-lg */
    color: #ffffff;
    font-weight: 500;
    transition: background-color 0.3s;
    white-space: nowrap;
}

/* Tag links use the primary accent color */
.careers-tag-link--blue,
.careers-tag-link--green {
    background-color: #374151;
}
.careers-tag-link--blue:hover,
.careers-tag-link--green:hover {
    background-color: #1F2937;
}

.careers-matrix-salary {
    font-size: 0.875rem;
    color: #4B5563;
    margin-top: 0.25rem;
}

.careers-matrix-detail-grid {
    margin-top: 2rem;
}

.careers-matrix-detail-card {
    padding: 1.5rem; /* p-6 */
    border-radius: 0.75rem; /* rounded-xl */
}

/* Detail cards use subtle light gray background */
.careers-matrix-detail-card--blue,
.careers-matrix-detail-card--green {
    background-color: #F9FAFB; /* Gray-50 */
    border: 1px solid #E5E7EB; /* Gray-200 */
}

.careers-matrix-detail-head {
    display: flex;
    align-items: center;
    margin-bottom: 1rem; /* mb-4 */
}

.careers-matrix-detail-head i {
    font-size: 1.5rem;
    margin-right: 0.75rem; /* mr-3 */
    color: #374151; /* Accent Dark Gray */
}

.careers-matrix-detail-head--blue i,
.careers-matrix-detail-head--green i {
    color: #374151;
}

.careers-matrix-detail-title {
    font-size: 1.25rem;
    font-weight: 700;
    color: #111827;
}

.careers-matrix-detail-text {
    color: #374151;
    margin-bottom: 1rem;
}

.careers-matrix-detail-list {
    list-style: none;
    padding: 0;
    margin: 0;
    font-size: 0.875rem;
    color: #4B5563;
    display: flex;
    flex-direction: column;
    gap: 0.5rem; /* space-y-2 */
}

@media (max-width: 768px) {
    .careers-matrix-table-scroll::after {
        display: block;
        text-align: center;
        font-size: 0.75rem;
        color: #9ca3af;
        margin-top: 1rem;
    }
}

/* モバイル対応：768px以下で適用 */
@media (max-width: 768px) {
    /* 1. テーブル構造の解除 */
    .careers-matrix-table, 
    .careers-matrix-table tbody, 
    .careers-matrix-table tr {
        display: block;
        width: 100% !important;
    }

    .careers-matrix-table {
      min-width: 300px;
    }

    .careers-matrix-header {
      display: none;
    }

    /* 2. チーム名セルの統合（共通ヘッダー化） */
    /* 1つ目のチームセルを表示し、2つ目を非表示にする、または両方の内容を擬似要素で表現します */
    .careers-matrix-team-cell {
        display: block;
        width: 100% !important;
        background-color: #F3F4F6 !important;
        padding: 20px 16px !important;
        border: 1px solid #D1D5DB !important;
        border-radius: 8px 8px 0 0;
        box-sizing: border-box;
        text-align: center !important;
    }

    /* 2番目のチーム（経営コンサル）のセルを非表示にする */
    tr:nth-child(2) .careers-matrix-team-cell {
        display: none;
    }

    /* ヘッダーのテキストを「両チーム共通」に書き換える（任意） */
    .careers-matrix-team-name {
        font-size: 16px;
        line-height: 1.4;
    }
    .careers-matrix-team-name::after {
        content: " / 経営コンサルタントチーム 共通";
        display: inline;
    }

    /* 3. 共通データの表示設定 */
    /* rowspanで結合されているため、tr:first-child の td だけを表示すればOKです */
    .careers-matrix-data-cell {
        display: flex;
        flex-direction: column;
        align-items: center;
        width: 100% !important;
        padding: 24px 16px !important;
        background-color: #fff !important;
        border-left: 1px solid #D1D5DB !important;
        border-right: 1px solid #D1D5DB !important;
        border-bottom: 1px solid #E5E7EB !important;
        box-sizing: border-box;
    }

    /* カードの最後を閉じる */
    .careers-matrix-data-cell:last-child {
        border-bottom: 1px solid #D1D5DB !important;
        border-radius: 0 0 8px 8px;
        margin-bottom: 0;
    }

    /* ラベルの調整 */
    .careers-matrix-data-cell::before {
        font-size: 12px;
        color: #6B7280;
        margin-bottom: 8px;
        font-weight: bold;
    }
}


/* Job Position Details */
.careers-job-details-list {
    display: flex;
    flex-direction: column;
    gap: 3rem; /* space-y-12 */
}

.careers-job-card {
    background-color: #ffffff;
    border-radius: 1rem;
    box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
    overflow: hidden;
    border: 1px solid #E5E7EB; /* Subtle Border */
}

.careers-job-card-header {
    padding: 1.5rem 2rem; /* px-8 py-6 */
    background-color: #374151; /* Accent Dark Gray */
    color: #ffffff;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: flex-start;
}
@media (min-width: 768px) {
    .careers-job-card-header {
        flex-direction: row;
        align-items: center;
    }
}

/* All job headers use the same Accent Dark Gray background */
.careers-job-card-header--blue,
.careers-job-card-header--purple,
.careers-job-card-header--green {
    background-image: none; /* Remove gradients */
    background-color: #374151;
    color: #ffffff;
}

.careers-job-title {
    font-size: 1.5rem; /* text-2xl */
    font-weight: 700;
    color: #ffffff;
}

.careers-job-subtitle {
    color: rgba(255, 255, 255, 0.9);
    margin-top: 0.5rem;
    font-size: 1rem;
}

.careers-job-salary-box {
    text-align: right;
    margin-top: 1rem;
}
@media (min-width: 768px) {
    .careers-job-salary-box {
        margin-top: 0;
        margin-left: 2rem;
    }
}

.careers-job-salary-label {
    font-size: 0.875rem;
    opacity: 0.9;
}

.careers-job-salary-value {
    font-size: 1.5rem;
    font-weight: 700;
}

.careers-job-salary-incentive {
    font-size: 0.875rem;
    opacity: 0.9;
}

.careers-job-card-body {
    padding: 2rem; /* p-8 */
}

.careers-sub-title {
    font-size: 1.125rem; /* text-lg */
    font-weight: 600; /* font-semibold */
    color: #111827;
    margin-bottom: 1rem;
}

.careers-bullet-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.75rem; /* space-y-3 */
    color: #374151;
}

.careers-bullet-list li {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem; /* space-x-3 */
}

.careers-bullet-list li::before {
    content: '';
    width: 0.5rem; /* w-2 */
    height: 0.5rem; /* h-2 */
    border-radius: 50%;
    flex-shrink: 0;
    margin-top: 0.4rem;
    background-color: #374151; /* Accent Dark Gray */
}

/* All bullets use the Accent Dark Gray */
.careers-bullet-list--blue li::before,
.careers-bullet-list--purple li::before,
.careers-bullet-list--green li::before {
    background-color: #374151;
}

.careers-requirement-group {
    margin-top: 1rem;
}

.careers-requirement-title {
    font-weight: 500; /* font-medium */
    color: #111827;
    margin-bottom: 0.5rem;
}

.careers-requirement-list {
    list-style: none;
    padding: 0;
    margin: 0;
    color: #374151;
    display: flex;
    flex-direction: column;
    gap: 0.25rem; /* space-y-1 */
    font-size: 0.9375rem;
}

.careers-job-card-footer {
    padding-top: 1.5rem; /* pt-6 */
    border-top: 1px solid #E5E7EB; /* border-t border-gray-200 */
    margin-top: 2rem; /* mt-8 */
}

.careers-career-steps-grid {
    display: grid;
    gap: 1rem; /* gap-4 */
    margin-top: 1rem;
}
.careers-career-steps-grid--4 {
    grid-template-columns: 1fr;
}
.careers-career-steps-grid--3 {
    grid-template-columns: 1fr;
}

@media (min-width: 768px) {
    .careers-career-steps-grid--4 {
        grid-template-columns: repeat(4, 1fr);
    }
    .careers-career-steps-grid--3 {
        grid-template-columns: repeat(3, 1fr);
    }
}


.careers-career-step-item {
    text-align: center;
    padding: 1rem; /* p-4 */
    border-radius: 0.5rem; /* rounded-lg */
    background-color: #F9FAFB; /* Light Gray Background */
    border: 1px solid #E5E7EB; /* Subtle Border */
}

/* All career steps use the same monotone background/text */
.careers-career-steps-grid--blue,
.careers-career-steps-grid--purple,
.careers-career-steps-grid--green {
    /* No change needed as they rely on item background */
}

.careers-career-step-label {
    font-weight: 700;
    color: #374151; /* Accent Dark Gray */
}

.careers-career-step-text {
    font-size: 0.875rem;
    color: #374151;
    margin-top: 0.25rem;
}

.careers-job-card-actions {
    margin-top: 1.5rem; /* mt-6 */
    display: flex;
    gap: 1rem; /* gap-4 */
    flex-wrap: wrap;
}

/* Benefits & Culture */
.careers-benefits-grid {
    gap: 3rem; /* gap-12 */
}

.careers-benefit-list {
    display: flex;
    flex-direction: column;
    gap: 1.5rem; /* space-y-6 */
}

.careers-benefit-item {
    display: flex;
    align-items: flex-start;
    gap: 1rem; /* space-x-4 */
    padding: 1rem; /* p-4 */
    border-radius: 0.5rem; /* rounded-lg */
    background-color: #F9FAFB; /* Light Gray Background */
    border: 1px solid #E5E7EB;
}

/* All benefits use the same monotone background/icon color */
.careers-benefit-item--blue,
.careers-benefit-item--purple,
.careers-benefit-item--green,
.careers-benefit-item--orange {
    background-color: #F9FAFB;
}


.careers-benefit-icon-wrap {
    width: 2.5rem; /* w-10 */
    height: 2.5rem; /* h-10 */
    border-radius: 0.5rem; /* rounded-lg */
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    background-color: #374151; /* Accent Dark Gray */
}

.careers-benefit-icon-wrap i {
    color: #ffffff;
}

.careers-benefit-icon-wrap--blue,
.careers-benefit-icon-wrap--purple,
.careers-benefit-icon-wrap--green,
.careers-benefit-icon-wrap--orange {
    background-color: #374151;
}

.careers-benefit-title {
    font-weight: 600;
    color: #111827;
}

.careers-benefit-text {
    color: #374151;
    font-size: 0.875rem; /* text-sm */
    margin-top: 0.25rem;
}


.careers-culture-list {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.careers-culture-block {
    padding: 1.5rem; /* p-6 */
    border-radius: 0.5rem;
}

.careers-culture-block--gray {
    background-color: #F9FAFB;
    border: 1px solid #E5E7EB;
}

.careers-culture-block--accent {
    /* Subtle highlight using gradient from light gray to white */
    background-image: linear-gradient(to right, #F9FAFB, #FFFFFF);
    border: 1px solid #D1D5DB; /* Gray-300 */
}

.careers-culture-title {
    font-weight: 600;
    color: #111827;
    margin-bottom: 0.75rem; /* mb-3 */
}
.careers-culture-title--accent {
    color: #374151; /* Make special title stand out slightly */
}

.careers-culture-list-items {
    list-style: none;
    padding: 0;
    margin: 0;
    color: #374151;
    display: flex;
    flex-direction: column;
    gap: 0.5rem; /* space-y-2 */
    font-size: 0.9375rem;
}


/* Application Form */
.careers-container--narrow {
    max-width: 64rem;
}

.careers-form-container {
    background-color: #ffffff;
    border-radius: 1rem;
    box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
    padding: 2rem; /* p-8 */
    border: 1px solid #E5E7EB;
}

.careers-form {
    display: flex;
    flex-direction: column;
    gap: 1.5rem; /* space-y-6 */
}

.careers-form-group--grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.5rem; /* gap-6 */
}
@media (min-width: 768px) {
    .careers-form-group--grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

.careers-form-field {
    display: flex;
    flex-direction: column;
}

.careers-form-label {
    font-size: 0.875rem; /* text-sm */
    font-weight: 500;
    color: #374151; /* Gray-700 */
    margin-bottom: 0.5rem;
}

.careers-form-input,
.careers-form-select,
.careers-form-textarea {
    width: 100%;
    padding: 0.75rem 1rem; /* px-4 py-3 */
    border: 1px solid #D1D5DB; /* border-gray-300 */
    border-radius: 0.5rem; /* rounded-lg */
    transition: all 0.2s;
}

.careers-form-input:focus,
.careers-form-select:focus,
.careers-form-textarea:focus {
    outline: 2px solid transparent;
    outline-offset: 2px;
    box-shadow: 0 0 0 2px #374151; /* Focus: Accent Dark Gray */
    border-color: #374151;
}

.careers-file-upload-box {
    border: 2px dashed #D1D5DB; /* border-dashed border-gray-300 */
    border-radius: 0.5rem;
    padding: 1.5rem; /* p-6 */
    text-align: center;
    background-color: #F9FAFB;
}

.careers-file-upload-input {
    display: none;
}

.careers-file-upload-label {
    cursor: pointer;
    display: block;
}

.careers-file-upload-icon {
    color: #9CA3AF; /* Gray-400 */
    font-size: 1.875rem; /* text-3xl */
    margin-bottom: 0.75rem; /* mb-3 */
    display: block;
}

.careers-file-upload-text {
    color: #4B5563; /* Gray-600 */
}

.careers-file-upload-note {
    font-size: 0.875rem; /* text-sm */
    color: #6B7280; /* Gray-500 */
    margin-top: 0.25rem;
}

.careers-form-agreement {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem; /* space-x-3 */
}

.careers-form-checkbox {
    margin-top: 0.25rem; /* mt-1 */
    flex-shrink: 0;
}

.careers-form-agreement-label {
    font-size: 0.875rem;
    color: #374151;
}

.careers-link {
    color: #374151;
    font-weight: 500;
}
.careers-link:hover {
    text-decoration: underline;
}

.careers-form-submit-wrap {
    text-align: center;
}


/* Quick Contact Options */
.careers-contact-options-grid {
    margin-top: 3rem; /* mt-12 */
}

.careers-contact-option-item {
    text-align: center;
    padding: 1.5rem; /* p-6 */
    background-color: #ffffff;
    border-radius: 0.5rem;
    box-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1); /* shadow */
    border: 1px solid #E5E7EB;
}

.careers-contact-option-item i {
    font-size: 1.5rem;
    margin-bottom: 0.75rem;
    display: block;
    color: #374151; /* Accent Dark Gray */
}

/* All icons use the Accent Dark Gray */
.careers-contact-option-item--phone i,
.careers-contact-option-item--video i,
.careers-contact-option-item--email i {
    color: #374151;
}

.careers-contact-option-title {
    font-weight: 600;
    color: #111827;
}

.careers-contact-option-main {
    color: #4B5563;
    font-size: 0.875rem;
    margin-top: 0.5rem;
}

.careers-contact-option-sub {
    color: #6B7280;
    font-size: 0.75rem;
}

.careers-link--contact {
    color: #4B5563;
    text-decoration: none;
}
.careers-link--contact:hover {
    color: #374151;
    text-decoration: underline;
}