body {
  font-family: 'Montserrat', '游ゴシック Medium', '游ゴシック体', 'Yu Gothic Medium', YuGothic, 'ヒラギノ角ゴ ProN', 'Hiragino Kaku Gothic ProN', 'メイリオ', Meiryo, 'ＭＳ Ｐゴシック', 'MS PGothic', sans-serif;
}

a {
  color: black;
  transition: color .3s;
}

a:hover {
  text-decoration: none;
  color: #003e73;
}

li {
  list-style:none;
}

p { 
  margin-bottom: 0 !important;
}

.btn-primary {
  color: #ffffff !important;
  background-color: #003e73 !important;
  border-color: #003e73 !important;
}

.btn-primary:hover {
  background-color: #014d8f !important;
  border-color: #014d8f !important;
}


.btn-outline-primary {
  color: #003e73 !important;
  border-color: #003e73 !important;
}

.btn-outline-primary:hover {
  color: #ffffff !important;
  background-color: #003e73 !important;
}

.wrapper {
width: 1000px;
margin-left: auto;
margin-right: auto;
}
.wrapper img {
  max-width: 100%;
  height: auto;
}

.bi-chevron-right {
  font-size: 16px;
}

.product-info .bi-chevron-right::before {
  vertical-align: 0;
}

.product-item-show {
  display: block !important;
}

@media screen and (max-width: 1000px){
  .wrapper {
    width: 90%;
    margin-left: auto;
    margin-right: auto;
  }
}
@media screen and (max-width: 991px) {
  .header-nav {
    min-width: 0 !important;
  }
  .offcanvas-header .btn-close {
    margin-top: -15px;
    margin-right: 12px;
    padding: 5px 35px;
  }
  .lang-item {
    color: #ffffff;
  }
  .navbar-nav {
    text-align: center;
  }
  .dropdown-item .bi-search {
    top: 30%;
    right: 52%;
  }
  .dropdown-item:hover {
    color: #212529 !important;
  }
}
@media screen and (max-width: 767px) {
  .wrapper {
    width: 92%;
    margin-left: 4%;
    margin-right: 4%;
  }
  .main_catch {
    font-size: 1.5rem;
  }
  .dropdown-item .bi-search {
    top: 30%;
    right: 53%;
  }
}

@media screen and (max-width: 450px) {
  .navbar .btn {
    font-size: 12px;
  }
  .dropdown-item .bi-search {
    top: 30%;
    right: 58%;
  }
}

main {
  display: grid;
}

.carousel-inner img{
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}


header .language-selector {
  margin-left: auto;
  text-align: center;
}

header .dropdown-menu-column {
  left:12%;
}

header .dropdown-menu-language{
  left:80.1%;
}

.header-item {
  font-weight: bold;
}

.mx-10 { 
  margin-left: .2rem;
  margin-right: .2rem;
}

.logo {
  font-size: 24px;
  margin-right: 20px;
}

.navbar-nav .nav-link {
  padding: 10px 15px;
}

.header-nav-link {
  color: #555 !important;
}

.card-body {
  padding: 32px 60px 40px;
}

.dropdown-header {
  font-size: 18px;
  font-weight: bold;
  padding: 0.75rem;
  text-align: left;
}

.bi-x {
  font-size: 2rem;
}

.dropdown-item {
  font-size: 1rem;
  padding: 0.75rem;
  position: relative;
}

.dropdown-item-product {
  text-align: left;
}


.dropdown-item svg {
  position: absolute;
  top: 35%;
  right: 5%;
}

#productInfoAccordion .views-element-container {
  display: flex;
}

@media screen and (min-width:1200px) {
  .accordion-item {
    position: absolute;
    top: 0%;
    left: 0px;
    z-index: 10;
    width: 1115px;
    transform: translate(-33.5%, 17%);
  }
  html[lang="en"] .accordion-item {
    transform: translate(-34.5%, 17%);
  }
  html[lang="de"] .accordion-item {
    transform: translate(-25.3%, 17%);
  }
  html[lang="de"] .bi-x {
    padding-left: 20px;
  }
  header .navbar-nav .nav-link {
      font-size: 1rem;
  }
}
@media screen and (max-width:1200px) {
  .accordion-item {
      position: absolute;
      top: 0%;
      left: 0px;
      z-index: 10;
      width: 935px;
      transform: translate(-26%, 17%);
  }
  .header-close {
    font-size: 0.8rem;
  }
  .header-close {
    margin-left: -10px;
  }
  .card-body {
    padding: 32px 0px 40px;
  }
  .header-nav {
    min-width: 850px;
  }
}

/* breadcrumb */

.breadcrumb {
  margin-bottom: 0;
  background-color: #ffffff;
}


.col {
  width: 225px;
  padding: 0;
}

.section__header {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  justify-content: space-between;
}

.main-banner img, .footer-banner img {
  width: 100%;
  height: auto;
}

.carousel-control-prev-icon {
  background-color: #e6e6e6;
  padding: 20px;
  border-radius: 100%;
  opacity: 50%;
}

.carousel-control-next-icon {
  background-color: #e6e6e6;
  padding: 20px;
  border-radius: 100%;
  opacity: 50%;
}

.main_catch{
  position: absolute;
  color: #e50012;
  z-index: 9;
  top: 60%;
  left: 10%;
  font-weight: bold;
}

.main_catch span {
  font-size: 1.5rem;
}

.col-md-3 a {
  overflow:hidden;
}


.aspect-ratio-3-2 img{
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
}

/* Modal */
.modal {
  display: none;
  position: fixed;
  z-index: 999;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  overflow: auto;
  background-color: rgba(0, 0, 0, 0.5); /* 背景の透過 */
  transition: opacity 1s ease;
}

.modal-content {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background-color: #fff;
  padding: 20px 50px;
  border: 1px solid #888;
  width: 80%;
  max-width: 750px;
}

.modal.fade-in {
  display: block;
  opacity: 1;
}

.close {
  color: #ffffff;
  float: right;
  position: absolute;
  top:-45%;
  left: 95%;
  text-shadow: none !important;
  opacity: 1 !important;
}

.close:hover,
.close:focus {
  text-decoration: none;
  cursor: pointer;
}

#searchBox {
  width: 80%;
  padding: 5px 15px;
  border-radius: .25rem;
}

.product-info h2, .column-info h2, .new-info h2, .event-info h2 {
  font-size: 2rem;
  margin-bottom: 0 !important;
  font-weight: bold;
}

.product-info h3, .column-info h3, .new-info h3, .event-info h3 {
  font-size: 1.5rem;
}

.product-info h4, .column-info h4, .new-info h4, .event-info h4 {
  font-size: 1rem;
  margin-bottom: 0 !important;
}

a.border:hover:not(:focus-visible) {
  transition: .3s;
}
.event-card:hover {
  border: 1px solid #0056b3 !important;
}

.border {
  transition: .3s;
}

.news-border:hover {
  border: 1px solid #0056b3 !important;
}


.round {
  border-radius: 1rem;
}

.card-btn {
  margin: 0 90px;
}


.list-group-item {
  font-size: 1rem;
  padding: 15px;
}

.list-group-item button {
  font-size: 0.9rem;
}

.text-center {
  padding-top: 5px;
  font-size: 1rem;
}

.text-summary {
  overflow: hidden;
  display: -webkit-box;
  text-overflow: ellipsis;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  padding-bottom: 2px;
}

.image-text {
  top: 50%;
  left: 50%;
  transform: translate(-50%,-50%);
}

.offcanvas {
  position: fixed;
  top: 0;
  bottom: 0;
  right: -100%;
  width: 100%;
  padding: 1rem;
  background-color: rgba(0, 0, 0, 0.8);
  transition: all 0.3s ease;
  box-shadow: 2px 0 5px rgba(0, 0, 0, 0.5);
  opacity: 1;
  z-index: 1;
  color: white;
}
.offcanvas.show {
  right: 0;
  z-index: 99;
}
.offcanvas-header {
  display: flex;
  justify-content: flex-end;
  margin-top: 50px;
}
.offcanvas-body {
  padding: 1rem;
}
.offcanvas-backdrop {
  display: none;
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background-color: rgba(0, 0, 0, 0.5);
}
.offcanvas-backdrop.show {
  display: block;
}

/* Product list page*/
.contact-card:hover{
  color: black;
}

.contact-card:hover .contact-rounded-bottom {
  background: #c9c9c9 !important;
}

.contact-rounded-bottom {
  transition: .3s;
}

.contact-border {
  border: 1px solid #dee2e6 ;
}

.contact-rounded-top {
  border-top-left-radius: 2rem;
  border-top-right-radius: 2rem;
}

.contact-rounded-bottom {
  border-bottom-left-radius: 2rem;
  border-bottom-right-radius: 2rem;
}

/* Company */
.company_tb {
  width: 90%;
  margin: 0 auto 60px;
  border: 5px #fff solid;
  border-collapse: separate;
  border-spacing: 8px;
}
.company_tb th, .company_tb td {
  padding: 5px 12px;
  font-weight: normal;
  text-align: left;
  vertical-align: top;
}
.company_tb th {
  background-color: #ebebeb;
  width: 30%;
}
.company_tb td {
  border-bottom: 1px solid #d0d0d0;
  width: 70%;
}

.ggmap {
  position: relative;
  padding-bottom: 26.25%;
  padding-top: 30px;
  height: 0;
  overflow: hidden;
  }
  
  .ggmap iframe,
  .ggmap object,
  .ggmap embed {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

@media screen and (max-width: 768px) {
  .company_tb {
    width: 98%;
    margin: 0 auto 40px;
    border: 0;
    border-collapse: separate;
    border-spacing: 0px;
  }
  .company_tb th {
    width: 100%;
    display: block;
  }
  .company_tb td {
    border-bottom: 0px solid #d0d0d0;
    width: 100%;
    display: block;
    padding-bottom: 15px;
  }
  .ggmap {
    position: relative;
    padding-bottom: 56.25%;
  }
}

/*-------------------------------------------
Search page
-------------------------------------------*/
.search-node .form-wrapper {
  margin: 36px 0;
}

.search-node .content h2 {
  margin: 36px 0px !important;
}

.search-node .content li {
  margin: 36px 0px !important;
}

.search-node #edit-keys {
  padding: 5px 20px 5px 5px;
  border-color: 1px solid rgb(129, 150, 162);
  border-radius: .25rem;
  margin-left: 50px;
}
.search-node #edit-submit {
  padding: .5rem 1rem;
  font-size: 1.25rem;
  line-height: 1.5;
  border-radius: .3rem;
  background-color: #6c757d;
  border-color: #6c757d;
  color: #ffffff;
  border: none;
}

.search-node #edit-submit--2 {
  padding: .5rem 1rem;
  font-size: 1.25rem;
  line-height: 1.5;
  border-radius: .3rem;
  background-color: #6c757d;
  border-color: #6c757d;
  color: #ffffff;
  border: none;
}

.olivero-details__summary {
  position: relative;
  padding-block: 18px;
  padding-inline-start: 36px;
  padding-inline-end: 18px;
  list-style: none;
  cursor: pointer;
  transition: var(--details-summary-transition);
  word-wrap: break-word;
  -webkit-hyphens: auto;
  hyphens: auto;
  color: inherit;
  background-color: rgb(246, 248, 248);
  font-size: 1.2rem;
  font-weight: 700;
  line-height: 1.2rem;
}

[dir="rtl"] .olivero-details__summary::before {
  transform: translateY(-50%) rotate(-135deg);
}

.olivero-details__summary::after {
  position: absolute;
  inset: calc(var(--details-border-width) * -1);
  content: "";
  pointer-events: none;
  opacity: 0;
  border-radius: var(--border-radius);
  box-shadow: inset 0 0 0 2px var(--color--primary-60);
}

.olivero-details__wrapper {
  margin: 18px;
}

@media (min-width: 62.5rem) {
  .olivero-details__wrapper {
    margin-block-start: 24px;
    margin-block-end: 24px;
    margin-inline-start: 36px;
    margin-inline-end: 36px;
  }
}

.olivero-details__description {
  margin-block-end: 18px;
  color: var(--color-text-neutral-medium);
  font-size: var(--font-size-xs);
  line-height: var(--line-height-s);
}

.fieldset {
  min-width: 0;
  margin-inline-start: 0;
  margin-inline-end: 0;
  padding-block: 0;
  padding-inline-start: 0;
  padding-inline-end: 0;
  color: inherit;
  border: solid 2px rgb(95, 117, 129);
  border-radius: 3px;
  background-color: #ffffff;
  margin: 18px 0;
}

.fieldset--group {
  width: 100%;
  color: inherit;
  border: 0;
  border-radius: 0;
  background: none;
  box-shadow: none;
}

.fieldset__legend {
  float: left; /* Prevent sticking out of top of fieldset. */
  width: 100%;
  color: inherit;
  border-top-left-radius: 3px;
  border-top-right-radius: 3px;
  background-color: rgb(95, 117, 129);
  font-size: 18px;
  font-weight: 700;
  line-height: 27px;
}

.fieldset__label {
  display: block;
  padding-block: 9px;
  padding-inline-start: 18px;
  padding-inline-end: 18px;
  color: #ffffff;
  line-height: 18px;
}

.fieldset__label.is-disabled {
  color: var(--color-text-neutral-soft);
}

.fieldset__description {
  margin-block: 9px;
  font-size: var(--font-size-xs);
  line-height: var(--line-height-s);
}

.fieldset--group .fieldset__legend--visible ~ .fieldset__wrapper {
  border: solid 2px rgb(95, 117, 129);
  border-bottom-right-radius: 3px;
  border-bottom-left-radius: 3px;
}

.fieldset__wrapper {
  margin-block-start: 0;
  padding-block: 18px;
  padding-inline-start: 18px;
}



/* アン追加分 */
/*-------------------------------------------
1. Common
-------------------------------------------*/
.title-margin{
  margin-bottom: 96px;
}

.title-square{
  border: 1px solid #999;
  padding: 10px;
}

.page-hr{
  border-top: 3px solid rgb(229, 229, 229);
  margin-top: 0.5rem;
  margin-bottom: 1rem;
}

.sns{
  display: flex;
  justify-content: end;
  height: 30px;
}

.sns-logo{
  height: 100%;
  width: auto;
  padding-left: 10px;
  margin-top: 10px;
}
/*-------------------------------------------
2. Product details
-------------------------------------------*/

.product-page1-badge {
    font-size: 1em; 
    margin: 2.5px 2.5px;
    border: 2px solid #777;
}

.product-page1-img {
    width: 100%; 
    height: auto; 
    margin-top: 30px
}

.product-page1-sum {
    word-wrap: break-word;
    overflow-wrap: break-word;
}
.product-page-h1{
    margin-top: 1.5rem;
    margin-bottom: 2.5rem;
}

.product-page-detail-img{
    height: auto;
    width: 100%;
}

.related-product-img-container{
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
}

.related-product-img {
    width: 100%; 
    height: auto;
}

.related-product-title{
    margin-top:0.5rem;
    margin-bottom:0.5rem;
}

.related-product-description{
    word-wrap: break-word; 
    overflow-wrap: break-word;
    display: -webkit-box;
    -webkit-line-clamp: 3; 
    -webkit-box-orient: vertical;
    text-overflow: ellipsis;
    overflow: hidden;
}

.related-column-truncate{
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
  overflow: hidden;
  text-overflow: ellipsis;
}
.contact-content{
    padding: 40px;
    text-align: center;
    border-radius: 30px 30px 0 0;
    border: 2px solid #cccccc
}
.contact-title{
    color: #555;
    font-size: 24px;
}

.contact-description{
    color: #777;
    font-size: 16px;
}

.contact-button{
    background-color: #cccccc; 
    border: none;
    padding: 15px 20px;
    font-size: 32px;
    cursor: pointer;
    text-align: center;
    border-radius:0px 0px 30px 30px;
}

.product-page2-title{
    text-align: center;
}

.product-page2-img{
    width: 100%; 
    height: auto;
}

.product-features-margin{
    margin-top: 10px;
}

.title-product3-margin{
    margin-top: 30px;
}

.product-nav-link {
  position: relative;
  border-bottom: 3px solid #aaaaaa;
  padding: 5px 15px;
  border-top-left-radius: 10px;
  border-top-right-radius: 10px;
  font-size: 1rem;
}

.product-nav-link:not(:last-child)::after {
  content: '';
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  height: 50%; 
  border-right: 1px solid #e7e7e7;
}

.active{
    border-bottom: 3px solid #dd0000;
    font-weight:bold;
    background-color: #e7e7e7;
    color: rgb(0, 0, 0);
}

/*-------------------------------------------
3. News
-------------------------------------------*/
.news-category-margin{
    margin-right: 12px;
}

.news-date-margin{
    margin-left: 12px;
}

.news-page-h1{
    margin-top: 2.5rem;
    margin-bottom: 1.5rem;
}

.news-page1-detail{
    border-right: 1px solid #777;
}

@media (max-width: 767px) {
  .news-page1-detail {
    border-right: none; 
  }
  
  .related-news-container{
    margin-top: 96px;
  }
}

.news-page1-img{
    width: 100%; 
    height: auto;
    padding: 10px;

}

.news-button{
    text-align: center;
    margin: 1rem;
}

.related-news-img {
  width: 100%; 
  height: auto;
  margin-bottom: 10px;
}

.related-news-title{
  margin-bottom:0.5rem;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
}

.related-news{
    margin-bottom: 40px;
}

.news-sns-container{
  display: flex;
  align-items: center;
  justify-content: end;
}
.news-sns{
  display: flex;
  height: 30px;
  margin-bottom: 10px;
}

/* コラム　*/
.column-page-h1{
  margin-top: 3rem;
  margin-bottom: 1.5rem;
}

.column-page-h2{
  margin-top: 1.5rem;
  margin-bottom: 1.5rem;
  font-weight: bold;
}

.column-img1 {
  width: 100%; 
  height: auto; 
  margin-top: 30px;
  margin-bottom: 30px;
}

.column-button{
  text-align: center;
  margin-top: 3rem;
}

.column-sns-container{
  display: flex;
  align-items: center;
  justify-content: end;
}
.column-sns{
  display: flex;
  height: 30px;
  margin-bottom: 10px;
}

/*-------------------------------------------
4. Event
-------------------------------------------*/
.event-page-h1{
  margin-top: 3rem;
  margin-bottom: 1.5rem;
}

.event-button{
  text-align: center;
  margin-bottom: 96px;
  display: flex;
  justify-content: center;
  gap: 30px;
}

.event-badge{
  margin-right: 1rem;
  padding-top: 10px;
  padding-bottom: 10px;
  padding-left: 20px;
  padding-right: 20px;
  border-radius: 20px;
}

.event-sns-container{
  display: flex;
  align-items: center;
  justify-content: end;
}

.event-sns{
  display: flex;
  height: 30px;
  margin-bottom: 10px;
}

.event-img {
  width: 100%; 
  height: auto;
}

/*-------------------------------------------
5. Contact
-------------------------------------------*/
.contact-h1{
  text-align: center;
  margin-top: 96px;
  margin-bottom: 96px;
}

.field--name-field-contact-name{
  margin-bottom: 1rem;
  font-weight: bold;
}
.field--name-field-contact-company{
  margin-bottom: 1rem;
  font-weight: bold;
}

.field--name-field-contact-email{
  margin-bottom: 1rem;
  font-weight: bold;
}

.field--name-field-contact-tel{
  margin-bottom: 1rem;
  font-weight: bold;
}

.field--name-field-contact-product{
  margin-bottom: 1rem;
  font-weight: bold;
}

.field--name-field-contact-content{
  margin-bottom: 1rem;
  font-weight: bold;
}

.form-required::after{
  content: "*";
  color: red;
  margin-left: 0.5rem;
  font-size: small;
}
