/* Targeted site quality fixes. The existing visual language remains unchanged. */

.l-subMv .l-subMv__section-title {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100%;
  margin: 0;
  transform: translate(-50%, -48.5%);
  text-align: center;
}

.l-subMv .l-subMv__section-title span {
  display: inline-block;
  padding: 20px 10px;
  background: #fff;
  font-size: 36px;
  font-weight: 500;
  line-height: 1.48;
  white-space: nowrap;
  writing-mode: vertical-rl;
}

.top__link:focus-visible,
.l-header a:focus-visible,
.l-footer a:focus-visible,
.c-btn:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 2px solid #b42f22;
  outline-offset: 4px;
}

.tensha-home-entrance-label {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.woocommerce.single-product div.product .woocommerce-product-details__short-description,
.woocommerce.single-product div.product .woocommerce-Tabs-panel,
.woocommerce.single-product div.product .product_meta {
  font-size: 16px;
  line-height: 1.85;
}

.woocommerce.single-product div.product .woocommerce-product-details__short-description p,
.woocommerce.single-product div.product .woocommerce-Tabs-panel p {
  line-height: inherit;
}

.p-contact label.p-form-item__label {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.hassaku-registration-closed {
  max-width: 780px;
  margin: 2rem auto 0;
  padding: 1.25rem 1.5rem;
  border: 1px solid rgba(180, 47, 34, .35);
  background: #faf7f4;
  color: #5d2119;
  font-size: 16px;
  line-height: 1.9;
  text-align: center;
}

.tensha-archive {
  padding-top: clamp(48px, 6vw, 88px);
  padding-bottom: clamp(72px, 9vw, 120px);
}

.tensha-archive__inner {
  width: min(100%, 960px);
  margin-inline: auto;
}

.tensha-archive__empty {
  font-size: 16px;
  line-height: 1.9;
  text-align: center;
}

.tensha-pagination {
  margin-top: 48px;
}

.tensha-pagination .nav-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
}

.tensha-pagination .page-numbers {
  display: inline-flex;
  min-width: 44px;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  padding: 8px 12px;
  border: 1px solid #d8d3cd;
  background: #fff;
  color: #222;
}

.tensha-pagination .page-numbers.current,
.tensha-pagination .page-numbers:hover,
.tensha-pagination .page-numbers:focus-visible {
  background: #f0f0f0;
}

@media screen and (max-width: 1500px) and (min-width: 768px) {
  .l-subMv .l-subMv__section-title span {
    padding: 1.3542vw .6771vw;
    font-size: 2.4375vw;
  }

  .onmyodo-section-header .onmyodo-site-switcher__link {
    font-size: max(13px, .9vw) !important;
  }

  .onmyodo-section-header .onmyodo-section-nav__item > a,
  .onmyodo-section-header .onmyodo-section-nav__toggle,
  .onmyodo-section-header .onmyodo-section-nav__submenu a,
  .onmyodo-section-header summary {
    font-size: max(14px, .9vw) !important;
  }
}

@media screen and (max-width: 767px) {
  .l-subMv .l-subMv__section-title span {
    max-height: 90%;
    padding: 2.6667vw 1.3333vw;
    font-size: calc((36 / 750) * 100vw);
  }

  .l-header button,
  .l-header__menu-button,
  .onmyodo-section-header button,
  .onmyodo-section-header summary {
    min-width: 44px;
    min-height: 44px;
  }

  body .onmyodo-section-header summary {
    min-width: 44px !important;
    min-height: 44px !important;
  }

  .onmyodo-section-header .onmyodo-section-nav__submenu a {
    display: flex;
    min-height: 44px !important;
    align-items: center;
  }

  .tensha-home-language-entrance a {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    padding-inline: 6px;
  }

  .woocommerce.single-product div.product .woocommerce-product-details__short-description,
  .woocommerce.single-product div.product .woocommerce-Tabs-panel,
  .woocommerce.single-product div.product .product_meta {
    font-size: 15px;
    line-height: 1.85;
  }

  .hassaku-registration-closed {
    margin-inline: 5vw;
    padding: 1rem;
    font-size: 15px;
  }

  .p-contact .p-form-table,
  .p-contact .p-form-table tbody,
  .p-contact .p-form-table tr,
  .p-contact .p-form-table th,
  .p-contact .p-form-table td {
    display: block;
    width: 100%;
    box-sizing: border-box;
  }

  .p-contact .p-form-table tr {
    padding: 16px 10px 22px;
    border-top: 1px solid rgba(128, 128, 128, .3);
  }

  .p-contact .p-form-table tr:last-child {
    border-bottom: 1px solid rgba(128, 128, 128, .3);
  }

  .p-contact .p-form-table th,
  .p-contact .p-form-table td {
    padding: 0;
    text-align: left;
  }

  .p-contact .p-form-table th p,
  .p-contact .p-form-table td p {
    margin: 0;
  }

  .p-contact .p-form-table th {
    margin-bottom: 12px;
  }

  .p-contact .p-form-table .c-input {
    width: 100%;
    min-height: 48px;
    height: 48px;
    box-sizing: border-box;
  }

  .p-contact .p-form-table textarea.c-input {
    min-height: 160px;
    height: 160px;
  }

  .tensha-archive {
    padding-inline: 20px;
  }

  .tensha-archive .c-news__list .c-news__item a {
    padding-block: 18px;
  }
}
