:root {
  --color-white: #ffffff;
  --color-black: #000000;
  --color-theme: #434040;
  --color-shop-menu-link-border: #9fa0a0;
  --color-text-secondary: #555555;
  --color-field-border: rgba(54, 54, 54, .3);
  --color-button-black-text: var(--color-white);
  --color-button-black-background: var(--color-black);
  --color-button-disabled-text: #555555;
  --color-button-disabled-background: #bbbbbb;
  --field-border-radius: 0px;
}

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

.is-large {
  .wc-block-checkout__billing-fields {
    .wc-block-components-address-form {
      .wc-block-components-address-form__myplugin-billing_department,
      .wc-block-components-address-form__phone {
        flex: 0 0 100%;
      }
    }
  }
}

/* input date */
.wc-block-components-form input:required + label::after,
.wc-block-components-form .wc-block-components-select-input-myplugin-test_drive_location label::after {
  content: '　※必須';
  color: #cc1818;
}
.wc-block-components-form .wc-block-components-text-input input[type=date],
.wc-block-components-text-input input[type=date] {
  background-color: #fff;
  border: 1px solid hsla(0, 0%, 7%, .8);
  border-radius: 4px;
  box-sizing: border-box;
  color: #2b2d2f;
  font-family: inherit;
  font-size: 1em;
  height: 3.125em;
  line-height: 1em;
  margin: 0;
  min-height: 0;
  padding: 1em .5em;
  width: 100%;
  &::-webkit-datetime-edit {
    opacity: 0;
  }
}
.wc-block-components-form .wc-block-components-text-input.is-active input[type=date],
.wc-block-components-text-input.is-active input[type=date] {
  padding: 1.5em .5em .5em;
  &::-webkit-datetime-edit {
    opacity: 1;
  }
}

/* p-header */
.p-header__register-text--condensed {
  margin-inline: -1em;
  transform-origin: center;
  transform: scaleX(0.8);
}

/* p-single */
.p-single__detail {
  .wp-block-heading {
    h1& {
      font-size: 3rem;
    }
    h2& {
      font-size: 2rem;
    }
    h3& {
      font-size: 1.5rem;
    }
    h4& {
      font-size: 1rem;
    }
    h5& {
      font-size: 0.875rem;
    }
    h6& {
      font-size: 0.75rem;
    }
    * + & {
      margin-top: 2.5rem;
    }
  }
  .wp-block-list {
    ol& {
      display: grid;
      grid-template-columns: auto 1fr;
      gap: 1em 0;
      li {
        grid-column: 1 / -1;
        counter-increment: ol-li;
        list-style: decimal;
        list-style-position: inside;
        display: grid;
        grid-template-columns: subgrid;
        &::before {
          content: counter(ol-li) "）";
        }
      }
    }
    * + & {
      margin-top: 1rem;
    }
  }
}

/* p-cars */
.p-cars__color {
  margin-top: 0.5rem;
  font-size: 0.75rem;
}


/* p-page */
.p-page {
  padding-block: 2.5rem 4rem;
  @media screen and (min-width: 768px) {
    padding-block: 4rem 6rem;
  }
}

/* p-product-single */
.p-product-single {
  padding-top: 2.5rem;
  .fc-event {
    text-decoration: none !important;
  }
  .fc-sun,
  .fc-sat {
    background-color: #f0f0f0;
  }
  @media screen and (min-width: 768px) {
    padding-top: 4rem;
  }
}
.p-product-single__content {
}
.p-product-single__header {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  align-items: baseline;
  gap: 0.5rem 1rem;
  @media screen and (min-width: 768px) {
    gap: 0.5rem 2rem;
  }
}
.p-product-single__title {
  color: var(--color-black);
  line-height: 1.3333333333;
  font-size: 1.5rem;
  @media screen and (min-width: 768px) {
    font-size: 2.25rem;
  }
}
.p-product-single__driving-system {
  margin-inline: -0.6em;
}
.p-product-single__detail {
  margin-top: 2rem;
  @media screen and (min-width: 768px) {
    margin-top: 3.5rem;
  }
}

/* p-login */
.p-login {}
.p-login__inner {
  max-width: 600px;
  max-width: 37.5rem;
  width: 100%;
  padding-inline: 20px;
  margin-inline: auto;
  @media screen and (min-width: 768px) {
    /* max-width: 1375px; */
    padding-inline: 25px;
  }
}

/* c-shop-menu */
.c-shop-menu {
  padding-top: 2.5rem;
  @media screen and (min-width: 768px) {
  }
}
.c-shop-menu__list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.25rem;
  @media screen and (min-width: 768px) {
    display: flex;
    justify-content: center;
    gap: 0 0.25rem;
  }
}
.c-shop-menu__list-item {
}
.c-shop-menu__link {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5em 0.5em;
  border: solid 1px var(--color-shop-menu-link-border);
  text-align: center;
  @media screen and (min-width: 768px) {
    min-width: 10rem;
    &:hover {
      color: var(--color-white);
      background-color: var(--color-black);
    }
  }
}
[class*="c-shop-menu__list-item--"] .c-shop-menu__link::before {
  content: '';
  display: block;
  width: calc(26 / 18 * 1em);
  aspect-ratio: 1 / 1;
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
}
.c-shop-menu__list-item--search .c-shop-menu__link::before {
  background-image: url(../images/common/shop-menu-icon-search.svg);
  background-size: 75%;
}
.c-shop-menu__list-item--cart .c-shop-menu__link::before {
  background-image: url(../images/common/shop-menu-icon-cart.svg);
}
.c-shop-menu__list-item--guide .c-shop-menu__link::before {
  background-image: url(../images/common/shop-menu-icon-guide.svg);
}
.c-shop-menu__list-item--orders .c-shop-menu__link::before {
  background-image: url(../images/common/shop-menu-icon-orders.svg);
}
.c-shop-menu__list-item--note .c-shop-menu__link::before {
  background-image: url(../images/common/shop-menu-icon-note.svg);
}



/* Inspect Override */
@media (max-width: 1024px) {
  body>.xdsoft_datetimepicker.xdsoft_noselect>.xdsoft_datepicker {
    display: block;
  }
}
.inspect-helium-product-card {
  padding: 1rem;
  .product_body_color {
    font-size: 0.75em;
  }
}
.inspect-product-view-list .inspect-listing-details {
  padding: 0.5rem;
}
@media (min-width: 768px) {
  .inspect-product-view-list .product_title {
    -ms-flex: 0 0 100%;
    flex: 0 0 100%;
    max-width: 100%;
  }
}
@media (min-width: 1024px) {
  .inspect-product-view-list .inspect-helium-product-card {
    align-items: center;
    gap: 0 1rem;
  }
}


/* Override */
#byd-wc {

  a {
    text-decoration: underline;
  }

  .single-product form.cart input {
    border-radius: var(--field-border-radius);
  }
  
  .rnb-cart {
    .date-time-picker {
      input {
        border-color: var(--color-field-border);
      }
    }
  }
  
  input:not([type=checkbox]) {
    font-size: 1rem;
  }

  /* 不要要素非表示 */
  .booking-pricing-info,
  .wp-block-woocommerce-cart-order-summary-block,
  .wp-block-woocommerce-cart-line-items-block thead,
  .wc-block-cart-items__header-total,
  .wc-block-cart-item__total,
  .wc-block-cart-item__prices,
  .wc-block-components-product-metadata__description,
  .wc-block-components-product-details__total-days,
  .wc-block-components-quantity-selector,
  .wp-block-woocommerce-checkout-order-summary-totals-block,
  .wc-block-components-totals-wrapper:has(.wc-block-components-totals-item),
  .wc-block-formatted-money-amount {
    display: none !important;
  }

  /* 新規登録 */
  .woocommerce-privacy-policy-text {
    margin-bottom: 1rem;
  }
  .woocommerce-input-wrapper .description {
    display: block;
    background: none;
    color: var(--color-black);
    font-size: calc(14 / 16 * 1rem);
    padding: 0;
    margin: 0.4rem 0 0 0;
    &::before {
      content: none;
    }
  }
  
  /* マイアカウント */
  .woocommerce-MyAccount-navigation {
    ul {
      border: solid 1px #e5e5e5;
    }
  }
  .woocommerce-MyAccount-navigation-link {
    border-bottom: solid 1px #e5e5e5;
    a {
      display: block;
      padding: 1rem;
      text-decoration: none;
      &:hover {
        /* transition: background-color 0.3s ease; */
        background-color: #e5e5e5;
      }
    }
    &.is-active {
      a {
        color: var(--color-white);
        background-color: var(--color-black);
      }
    }
  }

  .woocommerce-MyAccount-content {
    p,
    fieldset {
      &:not(:last-child) {
        margin-bottom: 1rem;
      }
    }
  }

  .woocommerce-Address {
    margin-top: 2rem;
  }
  .woocommerce-Address-title {
    display: flex;
    align-items: baseline;
    gap: 2rem;
    margin-bottom: 0.5rem;
  }
  .woocommerce-address-fields__field-wrapper {
    margin-bottom: 1rem;
  }
  
  /* カート */
  .is-mobile table.wc-block-cart-items .wc-block-cart-items__row {
    grid-template-columns: 80px 1fr;
  }
  .is-large .wc-block-cart-item__image {
    width: 10rem;
  }
  .wc-block-components-product-name {
    font-size: 1rem;
    font-weight: 500;
    margin-bottom: 0.5em;
    @media screen and (min-width: 768px) {
      font-size: 1.3125rem;
    }
  }
  .wc-block-components-product-metadata {
    font-size: 0.875rem;
  }
  .wc-block-components-product-details {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.25rem 0.5rem;
  }
  .wc-block-components-product-details__ {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: subgrid;
    align-items: baseline;
  }
  .wc-block-components-product-details__name {
    font-size: 0.75rem;
    color: var(--color-text-secondary);
    font-weight: 500;
  }
  .wc-block-components-product-details__value {
  }

  /* Checkout */
  .woocommerce-form__input-checkbox[type=checkbox] {
    display: inline;
    appearance: auto;
  }
  .wc-block-components-checkbox__input[type=checkbox] {
    display: block;
  }

  /* order received */
  .woocommerce-thankyou-order-received {
    margin-bottom: 2rem;
  }
  .woocommerce-order-details__title,
  .woocommerce-customer-details .woocommerce-column__title,
  .wc-block-order-confirmation-additional-fields-wrapper h2 {
    margin-bottom: 0.5rem;
  }
  .woocommerce-customer-details__address {
    margin-bottom: 2rem;
    .wc-block-components-additional-fields-list {
      display: grid;
      grid-template-columns: 1fr max-content;
      border: solid 1px #e5e5e5;
      margin-block: 1rem !important;
    }
    .wc-block-components-additional-fields-list dt {
      padding: 1rem;
      border-bottom: solid 1px #e5e5e5;
      &:last-of-type {
        border-bottom: none;
      }
    }
    .wc-block-components-additional-fields-list dd {
      padding: 1rem;
      text-align: right;
      border-bottom: solid 1px #e5e5e5;
      &:last-of-type {
        border-bottom: none;
      }
    }
  }
  .woocommerce-table--order-details .product-total,
  .woocommerce-table--order-details .product-quantity,
  .woocommerce-table--order-details tfoot {
    display: none;
  }
  
  /* ボタン */
  .woocommerce button.button {
    width: 100%;
    color: var(--color-button-black-text);
    background-color: var(--color-button-black-background);
    padding: 1rem !important;
    text-decoration: none;
    &:hover {
      transition: opacity 0.3s ease;
      opacity: 0.8;
    }
    &:disabled {
      opacity: 0.5;
      color: var(--color-button-disabled-text);
      background-color: var(--color-button-disabled-background);
    }
  }

  .wc-block-components-button {
    color: var(--color-button-black-text);
    background-color: var(--color-button-black-background);
    padding: 1rem !important;
    text-decoration: none;
    &:hover {
      transition: opacity 0.3s ease;
      opacity: 0.8;
    }
    &:disabled {
      opacity: 0.5;
      color: var(--color-button-disabled-text);
      background-color: var(--color-button-disabled-background);
    }
  }
  
  .btn-book-now {
    color: var(--color-button-black-text);
    background-color: var(--color-button-black-background);
    padding: 1rem !important;
    &:hover {
      transition: opacity 0.3s ease;
      opacity: 0.8;
    }
    &:disabled {
      opacity: 0.5;
      color: var(--color-button-disabled-text);
      background-color: var(--color-button-disabled-background);
    }
  }

  .rnb-select-wrapper h5 {
    margin: 0;
    padding-bottom: 7px;
  }
  
  /*  */
  .entry-summary {
    margin-bottom: 4rem;
    @media screen and (min-width: 768px) {
      margin-bottom: 6.25rem;
    }
    .price {
      display: none;
    }
    .woocommerce-product-details__short-description {
      margin-bottom: 2rem;
    }
    .cart.rnb-cart {
      margin-top: 0;
    }
  }

  /*  */
  .woocommerce-product-gallery {
    margin-bottom: 4rem;
    @media screen and (min-width: 768px) {
      margin-bottom: 6.25rem;
    }
  }

  /*  */
  .woocommerce-tabs.wc-tabs-wrapper {
    margin-block: 4rem;
    @media screen and (min-width: 768px) {
      margin-block: 6.25rem;
    }
  }

  /* separator */
  .wp-block-separator {
    border-top: 1px solid hsla(0,0%,7%,.11);
  }

  /* agreement */
  .checkout-agreement-text-1 {
    margin-top: 3em;
  }
  .checkout-agreement-text-2 {
    margin-top: 1.5em;
    font-size: 1.125em;
    font-weight: 500;
  }
  .checkout-agreement-text-3 {
    margin-top: 0.5em;
  }
  
  /* 関連商品 */
  .woocommerce-related-products {
    clear: both;
  }
  .woocommerce-related-products__heading {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    border-bottom: 1px solid #000;
    gap: 4px;
    gap: 0.25rem;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    font-weight: 400;
    color: #000;
    font-size: 20px;
    font-size: 1.25rem;
    margin-bottom: 2rem;
    @media screen and (min-width: 768px) {
      margin-bottom: 3rem;
    }
  }

  /* 商品一覧アイテム */
  .woocommerce-loop-product__link {
    text-decoration: none;
    img {
      aspect-ratio: 1.414 / 1;
      object-fit: contain;
    }
  }
  .woocommerce-loop-product__title {
    text-align: center;
    font-size: 1rem;
    @media screen and (min-width: 768px) {
      font-size: 1.3125rem;
    }
  }
  .woocommerce-loop-product__attributes {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0 0.5rem;
  }
  .woocommerce-loop-product__body-color {
    font-size: 0.875rem;
  }
  .woocommerce-loop-product__driving-system {
    font-size: 0.875rem;
    &::before {
      content: '（';
    }
    &::after {
      content: '）';
    }
  }

  /*  */
  .woocommerce-products-header {
    margin-bottom: 4rem;
  }
  .woocommerce-products-header__title {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    border-bottom: 1px solid #000;
    gap: 4px;
    gap: 0.25rem;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    font-size: 20px;
    font-size: 1.25rem;
    @media screen and (min-width: 768px) {
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
      -webkit-box-orient: horizontal;
      -webkit-box-direction: normal;
          -ms-flex-direction: row;
              flex-direction: row;
      gap: 1rem;
      font-size: 1.5rem;
    }
  }


}
