/* ==========================================
   About Page — PC Styles (min-width: 992px)
   ========================================== */

@media screen and (min-width: 992px) {
  .tai-about-page .page-sec-ja {
    font-size: 43px;
  }

  /* ----- Shared section title ----- */
  .ab-section-head {
    margin-bottom: var(--section-head-gap-pc, 60px);
  }

  .ab-sep {
    margin-bottom: 50px;
    margin-top: 11px;
    margin-right: -14%;
    width: calc(100% + 14%);
  }

  /* ----- Hero ----- */
  .ab-hero {
    height: var(--page-hero-height-about-pc, 420px);
    margin-top: var(--page-hero-offset-pc);
  }

  .ab-hero-text {
    padding-bottom: 55px;
  }

  .ab-hero-en {
    font-size: 64px;
  }

  /* ----- MVV section ----- */
  .ab-mvv {
    padding-top: var(--section-space-pc-wide);
    padding-bottom: var(--section-space-pc-wide);
  }

  .ab-mvv-row {
    position: relative;
    gap: 0px;
    padding: 15px 0 60px;
  }

  .ab-value-content {
    display: flex;
    justify-content: space-between;
    gap: 40px;
  }

  .ab-value-content .ab-mvv-body {
    flex: 0 0 55%;
    max-width: 55%;
    width: auto;
  }

  .ab-value-content .ab-mvv-img {
    flex: 0 0 40%;
  }

  .ab-mvv-text {
    flex: 0 0 56%;
    width: 56%;
    max-width: 56%;
  }

  .ab-mvv-img {
    flex: none;
    position: absolute;
    right: -14%;
    top: 50%;
    transform: translateY(-50%);
    width: 55%;
    max-width: 520px;
    height: 185px;
    border-radius: 20px 0 0 20px;
    overflow: hidden;
  }

  .ab-value-row {
    padding: 0 0 50px;
    position: relative;
  }

  .ab-value-row .ab-mvv-img {
    position: absolute;
    transform: translateY(-50%);
    right: 0;
    top: 50%;
    flex: none;
    height: auto;
    width: calc(41% - 20px);
    max-width: calc(520px - 14% - 20px);
    padding-right: 0;
    background: transparent;
    border-radius: 20px;
    overflow: hidden;
  }

  /* 画像本体にborder-radiusを適用して角丸にする */
  .ab-value-row .ab-mvv-img img {
    border-radius: 20px;
    display: block; /* 余白を消すため */
    width: 100%;
    height: auto;
    object-fit: cover;
  }

  .ab-mvv-label {
    font-size: 22px;
    margin-bottom: 16px;
  }

  .ab-mvv-label::before {
    width: 36px;
    margin-right: 10px;
  }

  .ab-mvv-title {
    font-size: 26px;
    margin-bottom: 10px;
    max-width: 100%;
    overflow-wrap: anywhere;
  }

  .ab-mvv-body {
    font-size: 15px;
    width: 58%;
  }

  .ab-mvv-text .ab-mvv-body {
    width: 100%;
  }

  /* Image hover effect */
  .ab-mvv-img img {
    filter: grayscale(0%);
    transition: filter 0.5s ease, transform 0.4s ease;
  }

  .ab-mvv-img:hover img {
    filter: grayscale(0%);
    transform: scale(1.03);
  }

  /* Missionの画像のみ特定のスタイルを適用 */
  .ab-mvv-row-first .ab-mvv-img img {
    height: 500px !important;
    object-fit: cover !important;
    object-position: left 0 bottom 230px !important;
  }

  /* Value items */
  .ab-value-label-row {
    padding: 40px 0 0;
  }

  .ab-value-title {
    font-size: 24px;
    margin-bottom: 15px;
  }

  .ab-value-en {
    font-size: 20px;
    margin-left: 8px;
  }

  /* ----- Board Message ----- */
  .ab-board {
    padding: var(--section-space-pc) 0;
  }

  .ab-board-member {
    position: relative;
    flex-direction: row;
    align-items: flex-start;
    /* justify-content: space-between で左右に振り分ける */
    justify-content: space-between;
    gap: 0; /* gapを削除してSpace-betweenに任せる */
    margin-bottom: 80px;
  }

  .ab-board-text {
    flex: 0 0 55%; /* Valueのテキストと同じ幅 */
  }

  /* 代表メッセージの画像の幅をValueの画像エリア幅に合わせる */
  .ab-board-photo {
    position: absolute;
    right: -14%;
    flex: none;
    height: auto;
    /*width: 70%;*/
    max-width: 500px;
    padding-right: 140px;
    background: transparent;
    border-radius: 0;
    overflow: visible;
  }

  .ab-board-photo img {
    border-radius: 20px;
    width: 100%;
    height: 290px;
    display: block;
    object-fit: cover;
    filter: grayscale(0%);
    transition: filter 0.5s ease, transform 0.4s ease;
  }

  .ab-board-photo:hover img {
    filter: grayscale(0%);
    transform: scale(1.03);
  }

  .ad-board-area {
    margin-top: 15px;
    font-size: 15px;
  }

  .ab-board-role {
    margin-right: 6px;
  }

  .ab-board-body {
    font-size: 15px;
    line-height: 2;
  }

  /* ----- Leadership ----- */
  .ab-leadership {
    padding: 50px 0 130px;
  }

  .ab-leadership-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    column-gap: 3px;
    row-gap: 92px;
  }

  .ab-leader-photo {
    border-radius: 20px;
  }

  .ab-leader-profile {
    padding-top: 17px;
    padding-right: 20px;
  }

  .ab-leader-role {
    margin-bottom: 6px;
    font-size: 14px;
    font-weight: normal;
  }

  p.ab-leader-role {
    font-size: 13px !important;
  }

  .ab-leader-name {
    font-size: 20px;
  }

  .ab-leader-bio {
    margin-top: 23px;
    font-size: 13px;
    line-height: 2.05;
  }

  p.ab-leader-bio {
    font-size: 13px !important;
  }

  /* ----- Company ----- */
  .ab-company {
    padding-top: var(--section-space-pc);
    padding-bottom: var(--section-space-pc);
  }

  .ab-company-inner {
    flex-direction: row;
    gap: 60px;
  }

  .ab-company-photo {
    flex: 0 0 33%;
    width: auto;
    height: 450px;
    overflow: hidden;
  }

  .ab-company-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: left -31px top 0px;
    display: block;
    filter: grayscale(0%);
    transition: filter 0.5s ease, transform 0.4s ease;
  }

  .ab-company-photo:hover img {
    filter: grayscale(0%);
    transform: scale(1.03);
  }

  .ab-company-row {
    padding: 18px 0;
    font-size: 14px;
  }

  .ab-company-row dt {
    flex: 0 0 150px;
    padding-right: 16px;
  }

  /* ----- History ----- */
  .ab-history {
    padding: var(--section-space-pc) 0;
    overflow: hidden;
  }

  .ab-history-bg {
    background-image: url('../assets/images/about/webp_svg/about_history.webp');
    background-size: cover;
    background-position: center;
  }

  .ab-timeline {
    flex-direction: row;
    gap: 0;
    position: relative;
    --ab-timeline-gap: 0px;
  }

  .ab-timeline-scroll {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    /* Expand from the 12% padded container to the visible page width. */
    width: 131.578947%;
    margin-right: -15.789474%;
    margin-left: -15.789474%;
    padding-right: 15.789474%;
    padding-left: 15.789474%;
  }

  .ab-timeline-scroll::-webkit-scrollbar {
    display: none;
  }

  .ab-timeline-col {
    padding-right: 40px;
    position: relative;
    flex: 0 0 310px;
  }

  .ab-timeline-col:last-child {
    padding-right: 0;
  }

  .ab-timeline-head {
    gap: 10px;
    margin-bottom: 45px;
  }

  .ab-timeline-year-top {
    font-size: 17px;
  }

  .ab-timeline-body {
    padding: 24px 30px;
  }

  /* Peek boxes (half visible off-screen) */
  .ab-timeline-peek {
    position: absolute;
    top: 119px;
    width: 200px;
    height: 178px;
    background: rgba(255, 255, 255, 1);
    border-radius: 20px;
    z-index: 0;
  }

  .ab-timeline-peek-left {
    right: 100%;
    margin-right: 40px;
  }

  .ab-timeline-peek-right {
    left: 100%;
    margin-left: 40px;
  }

  .ab-timeline-year-num {
    font-size: 21px;
    margin-bottom: 18px;
  }

  .ab-timeline-event {
    gap: 10px;
    margin-bottom: 14px;
    font-size: 13px;
    line-height: 1.7;
  }

  .ab-timeline-date {
    flex: 0 0 50px;
    color: var(--text-primary);
  }

  .ab-timeline-bullet {
    color: var(--primary-red);
  }

  /* ----- Footer Banners ----- */
  .ab-footer-banners {
    align-items: flex-end;
    padding-top: 60px;
  }

  .ab-banner {
    width: 94%;
    aspect-ratio: 4 / 1;
    margin-top: 40px;
    min-height: auto;
    padding: 0;
  }

  .ab-banner-content {
    padding-left: 10%;
  }

  .ab-banner-title {
    font-size: 40px;
  }

  .ab-banner-overlay-text {
    position: absolute;
    right: 8%;
    top: 50%;
    transform: translateY(-50%);
    width: 28%;
    text-align: right;
    margin-top: 0;
  }

  /* ----- Red line footer divider ----- */
  .ab-red-line {
    width: 94%;
    margin: 70px 0 0 auto;
  }
}
