/* @import url("https://fonts.googleapis.com/css2?family=BIZ+UDPGothic:wght@400;700&family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap"); */

/*
 * FONT 
 */

:root {
  /* Base font size */
  --fs-base: 16px;

  /* Type scale tokens */
  --fs-xs: clamp(0.375rem, 0.179rem + 0.87vw, 0.875rem);
  --line-height-xs: 1.6;
  --fs-s: clamp(0.5rem, 0.255rem + 1.087vw, 1.125rem);
  --line-height-s: 1.6;
  --fs-r: clamp(0.688rem, 0.443rem + 1.087vw, 1.313rem);
  --line-height-r: 1.6;
  --fs-m: clamp(0.75rem, 0.359rem + 1.739vw, 1.75rem);
  --line-height-m: 1.55;
  --fs-l: clamp(0.938rem, 0.448rem + 2.174vw, 2.188rem);
  --line-height-l: 1.49;
  --fs-xl: clamp(1.188rem, 0.576rem + 2.717vw, 2.75rem);
  --line-height-xl: 1.41;
  --fs-2xl: clamp(1.438rem, 0.655rem + 3.478vw, 3.438rem);
  --line-height-2xl: 1.36;
  --fs-3xl: clamp(1.813rem, 0.859rem + 4.239vw, 4.25rem);
  --line-height-3xl: 1.29;
}

/* Utility classes */
.fs-xs {
  font-size: var(--fs-xs);
  line-height: var(--line-height-xs);
}

.fs-s {
  font-size: var(--fs-s);
  line-height: var(--line-height-s);
}

.fs-r {
  font-size: var(--fs-r);
  line-height: var(--line-height-r);
}

.fs-m {
  font-size: var(--fs-m);
  line-height: var(--line-height-m);
}

.fs-l {
  font-size: var(--fs-l);
  line-height: var(--line-height-l);
}

.fs-xl {
  font-size: var(--fs-xl);
  line-height: var(--line-height-xl);
}

.fs-2xl {
  font-size: var(--fs-2xl);
  line-height: var(--line-height-2xl);
}

.fs-3xl {
  font-size: var(--fs-3xl);
  line-height: var(--line-height-3xl);
}

body {
  font-family: "Montserrat", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "Meiryo UI", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  color: #000;
  font-optical-sizing: auto;
  -webkit-text-size-adjust: 100%;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/*
 * ICONS
 */

.bi {
  display: inline-block;
  width: 1rem;
  height: 1rem;
  vertical-align: -0.125em;
  fill: currentColor;
}

/* common color */
.btn-orange {
  background-color: #ff9933 !important;
  color: #fff !important;
  border: solid 3px #ff9933;
  font-weight: 700;
  margin: 1.5em 1em;
  padding: 1em;
  position: relative;
}

.btn-orange:hover {
  background-color: #eb6100 !important;
  border-color: #eb6100;
  border: solid 3px #eb6100;
}

.btn-orange::before {
  display: inline-block;
  content: "\F135";
  font-family: "bootstrap-icons";
  position: absolute;
  right: 1em;
}

.bg-blue {
  background-color: rgb(41, 167, 206);
}

.text-blue {
  color: rgb(1, 85, 110);
}

.btn-blue {
  background-color: rgb(1, 85, 110);
  color: #fff;
}

.btn-blue:hover {
  background-color: rgb(41, 167, 206);
  color: #fff;
}

.btn-outline-blue {
  background-color: transparent;
  color: rgb(1, 85, 110);
  border: solid 3px rgb(1, 85, 110);
}
.btn-outline-blue:hover {
  background-color: rgb(41, 167, 206);
  color: #fff;
}

.bg-blend-luminosity {
  mix-blend-mode: luminosity;
}

/*
 * Sidebar
 */

@media (min-width: 768px) {
  .sidebar .offcanvas-lg {
    position: -webkit-sticky;
    position: sticky;
    top: 48px;
  }
  .navbar-search {
    display: block;
  }
}

.sidebar .nav-link {
  font-size: 0.875rem;
  font-weight: 500;
}

.sidebar .nav-link.btn {
  background-color: #ff9933;
  border: solid 3px #ff9933;
  color: #fff;
  justify-content: center;
  font-weight: 700;
  margin: 1.5em 1em;
  padding: 1em;
  position: relative;
}

.sidebar .nav-link.btn::before {
  display: inline-block;
  content: "\F135";
  font-family: "bootstrap-icons";
  position: absolute;
  right: 1em;
}

.sidebar .nav-link.btn:hover {
  background-color: #eb6100 !important;
  border-color: #eb6100;
  border: solid 3px #eb6100;
}

/*
 * Navbar
 */

.navbar-brand {
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
}

.navbar .form-control {
  padding: 0.75rem 1rem;
}

/* .bd-mode-toggle {
  z-index: 1500;
} */

.modal-backdrop {
  z-index: 1060;
}

.my-product-review-modal {
  z-index: 1800;
}

/*
 * HEADER
 */

.navbar-nav .nav-link {
  color: rgba(0, 0, 0, 1) !important;
}

/*
 * MAIN
 */

main section,
main .section {
  margin-bottom: 40px;
}

@media (min-width: 991px) {
  main section,
  main .section {
    margin-bottom: 60px;
  }
}

/*
 * PAGES
 */

/* common */

.page-header {
  font-weight: 700;
  margin-bottom: 30px;
  padding-bottom: 0.3em;
  border-bottom: solid 3px rgb(1, 85, 110);
}

/* top */
.jumbotron {
  background-image: url(../img/bg-visual.jpg);
  background-repeat: no-repeat;
  background-position: middle center;
  background-size: cover;
}

.jumbotron::before {
  content: " ";
  display: block;
  width: 240px;
  height: 80px;
  background: url(../img/mark-wave.png) no-repeat;
  background-size: cover;
  background-blend-mode: hard-light;
  margin: 10px auto;
  text-align: center;
  display: block;
}

.marker {
  background: linear-gradient(transparent 50%, #ffff66 60%);
}

/* CF7 */
.wpcf7-list-item:not(:first-child) label {
  margin-left: 1em;
}
.wpcf7-list-item label span {
  padding-left: 0.3em;
}

.wpcf7 .screen-reader-response {
  margin: 0.5em 0;
}

/* topics */
.topics .card-img-top {
  height: 180px;
  object-fit: cover;
}
