/**
 * Custom styles for Bitland Corp theme
 *
 * @package Bitlandcorp
 * @since 1.0.0
 */

/* Add your custom styles below */
:root {
  --font-family-jp: 'Noto Sans JP', sans-serif;
  --font-family-en: 'Barlow', sans-serif;
  --font-size-xs: 11px;
  --font-size-sm: 13px;
  --font-size-md: 16px;
  --font-size-lg: 19px;
  --font-size-xl: 23px;
  --font-size-2xl: 28px;
  --font-size-3xl: 33px;
  --font-size-4xl: 40px;
  --font-size-5xl: 48px;
  --font-size-6xl: 57px;
  --font-size-7xl: 69px;
  --font-size-8xl: 96px;
  --gray-100: #292828;
  --gray-200: #474747;
  --gray-300: #666666;
  --gray-400: #A8A8A8;
  --gray-500: #CCCCCC;
  --gray-600: #EFEFEF;
  --gray-700: #F4F4F4;
  --orange-100: #FF6644;
  --orange-200: #D9573A;
  --blue-100: #ECEFF4;
  --blue-200: #F9FBFF;
  --white: #FFFFFF;
  --font-weight-normal: 400;
  --font-weight-medium: 500;
  --overlap: 48px;
}

/* General */
html {
  scroll-behavior: smooth;
}
body {
  font-family: var(--font-family-jp);
}
:where(.wp-site-blocks) > * {
  margin-block-start: 0;
}
.is-mobile {
  display: none;
}
.is-desktop {
  display: block;
}
@media screen and (max-width: 768px) {
  .is-mobile {
    display: block;
  }
  .is-desktop {
    display: none;
  }
}

.wp-block-button {
  &.primary {
    .wp-block-button__link {
      background: var(--orange-100);
      color: var(--white);
      font-weight: var(--font-weight-medium);
      font-size: var(--font-size-md);
      line-height: 1.5;
      padding: 16px 24px;
      border-radius: 40px;
      text-decoration: none;
      transition: background-color 0.3s ease-in-out;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      position: relative;
      &:hover {
        background: var(--orange-200);
      }
    }
    &.has-arrow {
      .wp-block-button__link {
        padding-left: 24px;
        &:after {
          content: '';
          width: 16px;
          height: 16px;
          background: url('../images/icon-arrow-white.svg') no-repeat center center;
          background-size: contain;
        }
      }
    }
  }
  &.primary-black {
    .wp-block-button__link {
      background: var(--gray-100);
      color: var(--white);
      font-weight: var(--font-weight-medium);
      font-size: var(--font-size-md);
      line-height: 1.5;
      padding: 16px 24px;
      border-radius: 40px;
      text-decoration: none;
      transition: background-color 0.3s ease-in-out;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      position: relative;
      &:hover {
        background: var(--gray-200);
        background-color: var(--gray-200) !important;
      }
    }
    &.has-arrow {
      .wp-block-button__link {
        padding-left: 24px;
        &:after {
          content: '';
          width: 16px;
          height: 16px;
          background: url('../images/icon-arrow-white.svg') no-repeat center center;
          background-size: contain;
        }
      }
    }
  }
  &.secondary {
    .wp-block-button__link {
      background: var(--white);
      color: var(--gray-100);
      font-weight: var(--font-weight-medium);
      font-size: var(--font-size-md);
      line-height: 1.5;
      border-radius: 40px;
      text-decoration: none;
      transition: background-color 0.3s ease-in-out;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      position: relative;
      &:hover {
        background: var(--gray-700);
      }
    }
    &.has-arrow {
      .wp-block-button__link {
        padding-left: 24px;
        &:after {
          content: '';
          width: 16px;
          height: 16px;
          background: url('../images/icon-arrow-gray.svg') no-repeat center center;
          background-size: contain;
        }
      }
    }
  }
}

/* header */
header.wp-block-template-part {
  background: var(--white);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
  &.wp-block-template-part {  
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 100;
    transition: background-color 0.3s ease-in-out;
  }
  &.wp-block-template-part[data-scrolled="true"] {
    background: var(--white);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
  }
}

/* 管理バーが表示されているときの調整 */
body.admin-bar header.wp-block-template-part {
  top: 32px;
}

@media screen and (max-width: 782px) {
  body.admin-bar header.wp-block-template-part {
    top: 46px;
  }
}

.header-inner  {
  padding: 24px 48px;
}

.header-nav {
  .wp-block-navigation-item  {
    &.external {
      .wp-block-navigation-item__content {
        .wp-nav__label {
          align-items: center;
          position: relative;
          display: flex;
          flex-direction: row;
          gap: 4px;
          &:after {
            content: '';
            width: 20px;
            height: 20px;
            background: url('../images/icon-external-link.svg') no-repeat center center;
            background-size: contain;
            display: inline-block;
          }
        }
      }
    }
    .wp-block-navigation-item__content {
      position: relative;
      &:hover {
        .wp-nav__sublabel {
          display: none;
        }
        .wp-block-navigation-item__label {
          color: var(--gray-300) !important;
        }
      }
      .wp-block-navigation-item__label {
        color: var(--gray-100);
        font-weight: var(--font-weight-medium);
        transition: color 0.1s ease-in-out;
      }
    }
  }
  .wp-nav__sublabel {
    display: none;
  }
}
.header-menu-btn {
  display: none;
}
.header-menu-close-btn {
  display: none;
}
@media screen and (max-width: 1200px) {
  .header-inner {
    padding: 24px;
  }
  .header-nav-wrap {
    display: none !important;
    &.show {
      display: flex !important;
      flex-direction: column;
      justify-content: center;
      position: fixed;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background: var(--white);
      z-index: 100;
      padding: 72px 24px 40px;
    }
  }
  .header-nav {
    max-width: 600px;
    width: 100%;
    flex-direction: column;
    gap: 0;
    .wp-block-navigation-item {
      width: 100%;
      &:last-child {
        .wp-block-navigation-item__content {
          border-bottom: 1px solid var(--gray-600);
        }
      }
      .wp-block-navigation-item__content {
        width: 100%;
        display: flex;
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        border-top: 1px solid var(--gray-600);
        padding: 12px 0;
        transition: all 0.3s ease-in-out;
        &:hover {
          background: var(--gray-700);
          padding: 12px 16px;
          .wp-nav__sublabel {
            position: relative;
            top: 0;
            left: 0;
            transform: none;
            background: transparent;
            border-radius: 0;
            padding: 0;
            width: auto;
            opacity: 1;
            display: inline-block;
          }
        }
        .wp-block-navigation-item__label {
          font-size: var(--font-size-2xl);
          font-weight: var(--font-weight-normal);
          color: var(--gray-100);
          line-height: 1.5;
        }
        .wp-nav__sublabel {
          display: inline-block;
          font-size: var(--font-size-md);
          font-family: var(--font-family-en);
        }
      }
    }
  }
  .header-menu-btn {
    display: block;
    cursor: pointer;
  }
  .header-menu-close-btn {
    display: block;
    cursor: pointer;
    position: absolute;
    top: 8px;
    right: 8px;
  }
}
@media screen and (max-width: 768px) {
  .header-nav {
    .wp-block-navigation-item {
      .wp-block-navigation-item__content {
        .wp-block-navigation-item__label {
          font-size: var(--font-size-lg);
        }
      }
    }
  }
}
/* hero */
.hero {
  align-items: flex-end;
  padding-bottom: 120px;
  .wp-block-cover__video-background {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    z-index: -1 !important;
    width: 100% !important;
  }
}
.hero-ttl,
.hero-desc {
  background: linear-gradient(
    90deg,
    var(--white) 0%,
    var(--white) 25%,
    var(--gray-100) 50%,
    var(--white) 75%,
    var(--white) 100%
  );
  background-size: 200% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: heroTextGradient 8s ease-in-out infinite;
}
.hero-ttl {
  font-size: var(--font-size-7xl) !important;
}
@keyframes heroTextGradient {
  0%, 100% {
    background-position: 100% 50%;
  }
  50% {
    background-position: 0% 50%;
  }
}
@media screen and (max-width: 1200px) {
  .hero {
    .wp-block-cover__inner-container {
      padding: 0;
    }
  }
}
@media screen and (max-width: 768px) {
  .hero-ttl {
    font-size: var(--font-size-4xl) !important;
  }
  .hero-desc {
    font-size: var(--font-size-md) !important;
  }
  .hero-btn-wrap {
    gap: 16px;
    & > * {
      width: 100%;
    }
  }
  .hero-desc {
    br {
      display: none;
    }
  }
}

/* section */
.section {
  .section-inner {
    padding-top: 96px !important;
  }
  &.has-border-radius {
    border-radius: 48px 48px 0 0;
  }
  &.bg-white-grid {
    background: var(--white);
    background-image: url('../images/grid.svg');
    background-repeat: repeat;
    background-size: auto;
  }
  &.bg-blue {
    background: var(--blue-100);
  }
  &.position-adjust {
    width: 100%;
    position: relative;
    box-sizing: border-box;
    margin-top: calc(var(--overlap) * -1) !important;
    
    /* セクション内のコンテンツ要素 */
    .section-inner {
      display: flex;
      flex-direction: row;
      align-items: center;
      width: 100%;
    }
  }
}
.section-ttl-wrap {
  width: 100%;
}
.section-contents {
  &.align-right {
    max-width: 993px;
    margin-top: 64px;
    margin-left: auto;
    width: 100%;
  }
}
.section-ttl-jp  {
  &.has-left-padding {
    padding-left: 8px;
  }
}
.section-ttl-en {
  letter-spacing: -0.04em;
}
@media screen and (max-width: 1200px) {
  .section {
    padding: 0 32px;
  }
}
@media screen and (max-width: 768px) {
  .section {
    padding: 0 20px;
    .section-inner {
      padding-top: 64px !important;
    }
  }
  .section-contents {
    &.align-right {
      margin-top: 48px;
    }
  }
  .section-inner {
    padding-top: 64px !important;
    padding-bottom: 80px !important;
  }
  .section-ttl-en {
    font-size: var(--font-size-6xl) !important;
  }
  .section-copy {
    font-size: var(--font-size-2xl) !important;
    &.br-none {
      br {
        display: none;
      }
    }
  }
}
/* Our Vision*/
.vision {
  .section-inner  {
    flex-direction: row !important;
    align-items: flex-start !important;
    gap: 48px;
    & > * {
      flex: 1;
    }
    & > .section-contents {
      max-width: 993px;
    }
  }
}
@media screen and (max-width: 1200px) {
  .vision {
    padding: 0 32px;
    .section-inner {
      gap: 24px;
    }
  }
}
@media screen and (max-width: 768px) {
  .vision {
    padding: 0 20px;
    .section-inner {
      flex-direction: column !important;
      align-items: center !important;
      gap: 24px;
      & > * {
        flex: 1;
      }
    }
  }
  .vision-copy {
    font-size: var(--font-size-2xl) !important;
  }
  .vision-desc {
    br {
      display: none;
    }
  }
}

/* Our Business */
.business {
  .section-inner {
    justify-content: center;
  }
}
.business-image {
  margin-inline: auto;
}
@media screen and (max-width: 768px) {
  .business-desc {
    br {
      display: none;
    }
  }
}
/* service */
.service-feature-lst {
  display: flex;
  flex-direction: column;
  gap: 8px;
  list-style: none;
  padding: 0;
  margin-top: 16px;
  &.bg-white {
    & > li {
      background: var(--white);
    }
  }
  & > li {
    display: inline-flex;
    padding: 8px 16px;
    border-radius: 40px;
    background: var(--blue-100);
    border: 1px solid var(--gray-600);
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-medium);
    color: var(--gray-100);
    width: fit-content;
    line-height: 1.3;
  }
}

/* サービスアイテムのナンバリング */
.service-item {
  counter-increment: service-item;
  padding-top: 32px;
  padding-left: 64px;
  border-top: 1px solid var(--gray-100);
  position: relative;
  & + .service-item {
    margin-top: 48px;
  }
  &::before {
    content: "00" counter(service-item);
    position: absolute;
    left: 0;
    top: 0;
    font-size: var(--font-size-md);
    font-family: var(--font-family-en);
    color: var(--white);
    background: var(--gray-100);
    display: inline-block;
    padding: 4px 12px;
    border-radius: 0 0 4px 0;
  }
}

/* 親要素でカウンターをリセット */
.service-items,
.service-section {
  counter-reset: service-item;
}

.service-item-body {
  .wp-block-list {
    margin-top: 16px;
  }
}

@media screen and (max-width: 768px) {
  .service-item {
    padding: 48px 0 0;
  }
  .service-item-header {
    grid-template-columns: 1fr;
    .wp-block-buttons {
      justify-content: flex-start;
    }
  }
  .service-item-name {
    font-size: var(--font-size-2xl) !important;
  }
  .service-item-body {
    grid-template-columns: 1fr;
    .wp-block-list {
      &:not(.service-feature-lst) {
        padding-left: 16px;
      }
    }
  }
  .service-item-subttl {
    font-size: var(--font-size-lg) !important;
  }
}

.achievements-lst {
  margin-top: 48px !important;
}
.achievements-item-ttl {
  font-size: var(--font-size-md);
  font-weight: var(--font-weight-medium);
  color: var(--gray-100);
  margin: 16px 0;
  min-height: 48px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
}
.achievements-item-cat {
  font-size: var(--font-size-sm);
  color: var(--gray-300);
  margin: 0;
}
@media screen and (max-width: 1200px) {
  .achievements-item-ttl {
    br {
      display: none;
    }
  }
}
@media screen and (max-width: 768px) {
  .achievements-lst {
    grid-template-columns: 1fr;
  }
  .achievements-item-ttl {
    margin-bottom: 4px;
    min-height: 0;
    br {
      display: none;
    }
  }
}

.governance-lst {
  margin-top: 48px !important;
}
.governance-item {
  border-radius: 8px;
  overflow: hidden;
  align-items: flex-start;
  padding: 24px 32px;
  min-height: 380px;
}
.governance-item-ttl {
  margin-top: 4px;
}
.governance-item-lst {
  margin-top: 48px;
  list-style: none;
  display: grid;
  gap: 16px;
  padding: 0;
  & > li {
    font-size: var(--font-size-md);
    font-weight: var(--font-weight-medium);
    color: var(--white);
    line-height: 1.5;
    padding-left: 40px;
    position: relative;
    &::before {
      content: '';
      position: absolute;
      left: 0;
      top: 0;
      width: 24px;
      height: 24px;
      background: url('../images/icon-seal-check.svg') no-repeat center center;
      background-size: contain;
    }
  }
}
@media screen and (max-width: 768px) {
  .governance-lst {
    grid-template-columns: 1fr;
  }
  .governance-item {
    padding: 24px;
  }
  .governance-item-ttl {
    font-size: var(--font-size-xl) !important;
  }
  .governance-item-lst  {
    & > li {
      letter-spacing: -0.02em;
      padding-left: 32px;
    }
  }
}
.ceo-block {
  padding: 32px;
  border-radius: 24px;
  background: var(--blue-100);
}
.history-lst {
  position: relative;
  &:before {
    content: '';
    position: absolute;
    left: 7px;
    top: 8px;
    width: 1px;
    height: calc(100% - 16px);
    background: var(--gray-500);
  }
}
.history-item {
  padding-left: 36px;
  position: relative;
  gap: 8px;
  &:before {
    content: '';
    position: absolute;
    left: 0;
    top: 7px;
    width: 12px;
    height: 12px;
    background: var(--orange-100);
    border-radius: 50%;
    border: 2px solid var(--gray-600);
  }
  .history-year {
    font-size: var(--font-size-md);
    font-family: var(--font-family-en);
    width: 64px;
  }
  .history-txt {
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-medium);
    color: var(--gray-100);
    line-height: 1.5;
    margin: 0;
    flex: 1;
  }
}
.media-desc {
  margin-top: 8px;
}
.book-item {
  max-width: 266px;
  justify-self: center;
  align-self: flex-start;
  .book-item-ttl {
    word-break: break-all;
    color: var(--gray-100);
    a {
      color: var(--gray-100);
      text-decoration: none;
      &:hover {
        text-decoration: underline;
      }
    }
  }
}
@media screen and (max-width: 768px) {
  .ceo-block {
    padding: 24px;
  }
  .ceo-position {
    font-size: var(--font-size-md);
  }
  .book-lst {
    grid-template-columns: 1fr 1fr;
    display: grid !important;
    gap: 16px;
    align-items: baseline;
  }
  .book-item {
    max-width: 131px;
    .book-item-ttl {
      margin-top: 4px;
    }
    .wp-block-image img  {
      height: 142px !important;
    }
  }
}
.company-info-table {
  th,td {
    border-left: 0;
    border-right: 0;
    font-size: var(--font-size-md);
    font-weight: var(--font-weight-medium);
    color: var(--gray-100);
    line-height: 1.5;
    padding: 16px 24px;
    border-top: 1px solid var(--gray-500);
    border-bottom: 1px solid var(--gray-500);
    &:first-child {
      width: 200px;
    }
  }
}
@media screen and (max-width: 768px) {
  .company-info-table {
    th,td {
      padding: 16px 0;
      &:first-child {
        width: 120px ;
      }
    }
  }
}
/* Contact Section*/
.contact-item-primary {
  height: 100%;
  max-height: 429px;
  min-height: 0;
  border-radius: 8px;
  overflow: hidden;
  padding: 32px;
}
.contact-item-ttl {
  font-size: var(--font-size-2xl);
}
.contact-item-desc {
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-normal);
  color: var(--white);
  line-height: 1.5;
  margin-top: 16px;
}
.contact-item-secondary {
  height: 100%;
  max-height: 202px;
  min-height: 0;
  border-radius: 8px;
  overflow: hidden;
  padding: 24px;
  .contact-item-ttl {
    font-size: var(--font-size-xl);
  }
  .wp-block-buttons {
    margin-top: 16px;
  }
}
@media screen and (max-width: 1000px) {
  .contact-item-ttl {
    font-size: var(--font-size-xl);
  }
  .contact-item-secondary {
    .contact-item-ttl {
      font-size: var(--font-size-lg);
    }
  }
}
@media screen and (max-width: 768px) {
  .contact-item-primary {
    padding: 24px;
    max-height: none;
    height: auto;
  }
  .contact-item-secondary {
    padding: 24px;
    max-height: none;
    height: auto;
  }
}
/* footer */
footer.wp-block-template-part {
  border-radius: 48px 48px 0 0;
  overflow: hidden;
  background: #292828;
}
.home footer {
  position: relative;
  margin-top: calc(var(--overlap) * -1);
}
.footer-inner {
  padding: 48px;
  max-width: 1440px;
  margin-inline: auto;
  flex-direction: column !important;
  align-items: flex-start !important;
}
.footer-logo {
  line-height: 1;
}
.footer-subttl {
  color: var(--white);
}
.footer-contents {
  max-width: 993px;
  margin-top: 64px;
  margin-left: auto;
  width: 100%;
}
.footer-nav {
  width: 100%;
  gap: 0;
  /* サブメニューを常に表示（ホバーで表示を無効化） */
  .wp-block-navigation-item.has-child {
    .wp-block-navigation__submenu-container {
      display: flex !important;
      opacity: 1 !important;
      visibility: visible !important;
      position: static !important;
      width: auto !important;
      min-width: 0 !important;
      background: transparent !important;
      box-shadow: none !important;
      padding: 0  0 16px !important;
      left: auto !important;
      top: auto !important;
      height: auto !important;
      overflow: visible !important;
    }
  }
}

.footer-nav-item {
  width: 100%;
  flex-wrap: wrap;
  & > a {
    width: 100%;
    display: flex !important;
    flex-direction: row !important;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 16px 8px;
    border-top: 1px solid var(--gray-400);
    color: var(--white) !important;
    transition: padding 0.2s ease-in-out;
    &:hover {
      padding: 16px;
    }
  }
  &.external {
    .wp-nav__label {
      &:after {
        content: '';
        width: 20px;
        height: 20px;
        background: url('../images/icon-external-link-white.svg') no-repeat center center;
        background-size: contain;
        display: inline-block;
        margin-left: 8px;
      }
    }
  }
  .wp-nav__label {
    color: var(--white);
    font-weight: var(--font-weight-normal);
  }
  &:last-child {
    a {
      border-bottom: 1px solid var(--gray-400);
    }
  }
  .wp-nav__sublabel {
    font-size: 23px;
    color: var(--white);
    font-family: var(--font-family-en);
    margin-top: 0;
  }
  &.wp-block-navigation__submenu-container {
    padding-bottom: 16px !important;
    .wp-block-navigation-item__content {
      border: 0;
      padding-left: 0 !important;
      padding-right: 0 !important;
      color: var(--white) !important;
      font-size: var(--font-size-md) !important;
      transition: padding 0.2s ease-in-out;
      &:hover {
        padding: 8px !important;
      }
    }
  }
  .wp-block-navigation-submenu-icon {
    display: none !important;
  }
}

.copyright {
  margin-top: 64px !important;
  width: 100%;
  color: var(--white);
}

@media screen and (max-width: 768px) {
  .footer-inner {
    padding: 0;
  }
  .wp-block-navigation-item__label {
    font-size: var(--font-size-lg);
  }
  .footer-nav-item {
    .wp-nav__sublabel {
      font-size: var(--font-size-md);
    }
  }
  .copyright {
    margin-top: 48px !important;
    text-align: left;
  }
}
/* News一覧のスタイル */
.news-item-link {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 16px 24px;
  border-radius: 8px;
  background: var(--white);
  text-decoration: none;
  color: inherit;
  transition: background-color 0.2s ease;
  
  &:hover {
    background-color: var(--gray-700);
  }
  
  /* アイキャッチ画像 */
  .wp-block-post-featured-image {
    flex-shrink: 0;
    width: 120px;
    height: 80px;
    margin: 0;
    
    img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      border-radius: 4px;
    }
  }
  
  /* コンテンツ部分 */
  > .wp-block-group {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 8px;
  }
  
  /* タイトル */
  .wp-block-post-title {
    margin: 0;
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-medium);
    color: var(--gray-100);
    
    a {
      text-decoration: none;
      color: inherit;
    }
  }
  
  /* 日付 */
  .wp-block-post-date {
    margin: 0;
    font-size: var(--font-size-sm);
    color: var(--gray-300);
  }
  
  /* 矢印アイコン */
  &::after {
    content: '';
    flex-shrink: 0;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background-color: var(--gray-600);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23292828' d='M6 0l6 6-6 6V7H0V5h6V0z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
    background-size: 12px;
  }
}

/* お知らせ一覧カスタムブロック */
.wp-block-bitlandcorp-news-list {
  display: grid;
  gap: 16px;
}

.wp-block-bitlandcorp-news-list .news-item-link {
  display: flex;
  align-items: center;
  gap: 16px;
  border-radius: 8px;
  background: var(--white);
  padding: 16px 24px;
  text-decoration: none;
  transition: background-color 0.2s ease;
}

/* リンクありの場合のみhover効果 */
.wp-block-bitlandcorp-news-list a.news-item-link:hover {
  background-color: var(--gray-700);
}

/* リンクなしの場合はカーソル変更なし */
.wp-block-bitlandcorp-news-list div.news-item-link {
  cursor: default;
}

/* カスタムブロックでは::afterの矢印を無効化 */
.wp-block-bitlandcorp-news-list .news-item-link::after {
  display: none;
}

.wp-block-bitlandcorp-news-list .news-item-thumbnail {
  flex-shrink: 0;
  width: 120px;
  height: 63px;
  border-radius: 4px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: var(--gray-600);
}

.wp-block-bitlandcorp-news-list .news-item-thumbnail img,
.wp-block-bitlandcorp-news-list .news-item-thumbnail .news-item-thumbnail-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.wp-block-bitlandcorp-news-list .news-item-thumbnail-placeholder {
  flex-shrink: 0;
  width: 120px;
  height: 63px;
  background-color: var(--gray-600);
  border-radius: 4px;
  background-image: url('../images/logo.svg');
  background-repeat: no-repeat;
  background-position: center;
  background-size: 48px auto;
}

.wp-block-bitlandcorp-news-list .news-item-content {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.wp-block-bitlandcorp-news-list .news-item-title {
  margin: 0;
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-medium);
  color: var(--gray-100);
}

.wp-block-bitlandcorp-news-list .news-item-date {
  margin: 0;
  font-size: var(--font-size-sm);
  color: var(--gray-300);
}

.wp-block-bitlandcorp-news-list .news-item-arrow {
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background-color: var(--gray-600);
  background-image: url('../images/icon-arrow-gray.svg');
  background-repeat: no-repeat;
  background-position: center;
  background-size: 24px;
}
@media screen and (max-width: 768px) {
  .wp-block-bitlandcorp-news-list {
    .news-item-link {
      padding: 16px;
      flex-direction: column;
      align-items: flex-start;
    }
    .news-item-thumbnail-placeholder {
      width: 100%;
      height: auto;
      aspect-ratio: 16 / 9;
    }
    .news-item-thumbnail {
      width: 100%;
      height: auto;
      aspect-ratio: 16 / 9;
    }
    .news-item-content {
      gap: 4px;
    }
    .news-item-arrow {
      align-self: flex-end;
    }
  }
}

.main-single {
  padding: 0;
  margin: 0;
  & > .main-single-inner {
    padding: 152px 20px 80px;
    min-height: 600px;
    max-width: 1080px;
    margin-inline: auto;
    &.error {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 24px;
    }
  }
}
.single-page-ttl {
  font-size: var(--font-size-4xl);
  font-weight: var(--font-weight-medium);
  color: var(--gray-100);
  text-align: left;
  margin-bottom: 0;
}
.page-subtitle-en {
  font-size: var(--font-size-xl);
  font-family: var(--font-family-en);
  margin-top: 16px;
  color: var(--gray-300);
}
.single-page-content {
  & > p {
    font-size: var(--font-size-md);
    font-weight: var(--font-weight-normal);
    color: var(--gray-100);
    line-height: 1.5;
    margin-top: 16px;
    &:first-child {
      margin-top: 0;
    }
  }
  & > h2.wp-block-heading {
    font-size: var(--font-size-2xl);
    font-weight: var(--font-weight-normal);
    margin: 40px 0 24px;
  }
  & > h3.wp-block-heading {
    font-size: var(--font-size-xl);
    font-weight: var(--font-weight-normal);
    margin: 32px 0 16px;
  }
  & > h4.wp-block-heading {
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-normal);
  }
  & > h5.wp-block-heading {
    font-size: var(--font-size-md);
    font-weight: var(--font-weight-normal);
    margin: 24px 0 16px;
  }
  & > h6.wp-block-heading {
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-normal);
  }
  & > ul.wp-block-list {
    font-size: var(--font-size-md);
    font-weight: var(--font-weight-normal);
    color: var(--gray-100);
    line-height: 1.5;
    margin-top: 24px;
    &:first-child {
      margin-top: 0;
    }
    & > li {
      margin-top: 8px;
      &:first-child {
        margin-top: 0;
      }
    }
  }
}
.breadcrumbs {
  max-width: 1080px;
  padding: 24px 20px;
  margin-inline: auto;
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-sm);
  color: var(--gray-300);
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  a {
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-sm);
    color: var(--gray-300);
    &:hover {
      color: var(--gray-100);
    }
  }
  .post-page {
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-normal);
    color: var(--gray-300);
    line-height: 1.5;
  }
}
@media screen and (max-width: 1200px) {
  .main-single {
    & > .main-single-inner {
      padding: 120px 32px 80px;
    }
  }
}
@media screen and (max-width: 768px) {
  .main-single {
    & > .main-single-inner {
      padding: 80px 20px 48px;
    }
  }
  .single-page-ttl {
    font-size: var(--font-size-3xl);
  }
  .page-subtitle-en {
    font-size: var(--font-size-lg);
    margin-top: 4px;
  }
  .single-page-content {
    & > p {
      font-size: var(--font-size-md);
    }
    & > h2.wp-block-heading {
      font-size: var(--font-size-xl);
      margin: 32px 0 16px;
    }
    & > h3.wp-block-heading {
      font-size: var(--font-size-lg);
      margin: 24px 0 16px;
    }
    & > h4.wp-block-heading {
      font-size: var(--font-size-md);
    }
    & > h5.wp-block-heading {
      font-size: var(--font-size-sm);
    }
    & > h6.wp-block-heading {
      font-size: var(--font-size-xs);
    }
    & > ul.wp-block-list {
      font-size: var(--font-size-md);
      margin-top: 16px;
    }
    & > ul.wp-block-list {
      padding-left: 16px;
      & > li {
        margin-top: 4px;
      }
    }
  }
}
.error-message-ttl {
  font-size: var(--font-size-4xl);
  font-weight: var(--font-weight-medium);
  color: var(--gray-100);
  text-align: left;
}
.error-message-desc {
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-normal);
  color: var(--gray-100);
  margin-top: 16px;
}
/* Contact Form */
.contact-form-item {
  margin-top: 24px;
  grid-template-columns: 252px 1fr;
  gap: 8px;
  &.no-label {
    grid-template-columns: 1fr;
    .wpcf7-list-item {
      margin-left: 0;
    }
    .wpcf7-list-item-label {
      font-size: var(--font-size-md);
    }
    .wpcf7-acceptance {
      label {
        display: flex;
        align-items: center;
        gap: 8px;
      }
    }
  }
  &:first-child {
    margin-top: 0;
  }
  input[type="text"],
  input[type="email"],
  select,
  textarea {
    font-size: var(--font-size-md);
    font-weight: var(--font-weight-normal);
    color: var(--gray-100);
    line-height: 1.5;
    margin-top: 8px;
    padding: 12px 16px;
    border-radius: 4px;
    border: 1px solid var(--gray-500);
    &:focus {
      outline: none;
      border-color: var(--gray-100);
    }
    &:invalid {
      border-color: var(--orange-100);
    }
  }
  input[type="checkbox"] {
    width: 20px;
    height: 20px;
    border: 1px solid var(--gray-500);
    border-radius: 2px;
    accent-color: var(--gray-100);
  }
}
.contact-form-item-label {
  font-size: var(--font-size-md);
  font-weight: var(--font-weight-normal);
  color: var(--gray-100);
  padding-top: 16px;
  .required {
    background: var(--gray-100);
    color: var(--white);
    padding: 2px 4px;
    border-radius: 4px;
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-normal);
    margin-left: 4px;
  }
}
.wpcf7-not-valid-tip {
  font-size: var(--font-size-sm);
}
.contact-form-submit {
  margin-top: 32px;
  input[type="submit"] {
    min-width: 200px;
    padding: 16px;
    border-radius: 64px;
    background: var(--orange-100);
    color: var(--white);
    font-size: var(--font-size-md);
    font-weight: var(--font-weight-normal);
    line-height: 1.5;
    border: none;
    cursor: pointer;
    transition: background-color 0.2s ease;
    &:hover {
      background: var(--orange-200);
    }
    &:disabled {
      background: var(--gray-500);
      cursor: not-allowed;
    }
  }
}
.wpcf7 form .wpcf7-response-output  {
  font-size: var(--font-size-md);
  padding: 16px;
  border-radius: 4px;
}
@media screen and (max-width: 768px) {
  .contact-form-item {
    grid-template-columns: 1fr;
    padding-left: 0;
    margin-top: 16px;
    gap: 0;
    &.no-label {
      padding-left: 0;
    }
    input[type="text"],
    input[type="email"],
    select,
    textarea {
      padding: 12px 16px;
      width: 100%;
      box-sizing: border-box;
    }
  }
  .contact-form-submit {
    padding-left: 0;
    margin-top: 24px;
    input[type="submit"] {
      width: 100%;
      box-sizing: border-box;
    }
  }
}