@charset "UTF-8";
:root {
  --viewport-width: min(100vw, 1600px);
  --b: calc(var(--viewport-width) / 160);
}

/*
Theme Name: Twenty Twenty-one Child
Version: 1.6
Template: twentytwentyone
*/
.company {
  margin: max(7%, 70px) auto;
}
.company__outer {
  background-color: #FFFFFF;
  border-radius: max(2.5rem, 15px);
  padding: max(7%, 50px);
  box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.16);
}
.company h2 {
  display: block;
  font-size: max(1.6rem, 12px);
  color: #0C81C5;
  padding-left: max(1.6rem, 10px);
  position: relative;
}
.company h2::before {
  content: "●";
  font-size: max(0.8rem, 5px);
  position: absolute;
  transform: translate(0%, -50%);
  top: 50%;
  left: 0;
}
.company dl {
  padding-bottom: max(5%, 30px);
}
.company dl .company__table {
  display: flex;
  padding: 3% 0;
  border-bottom: 1px solid #D1D1D1;
}
@media screen and (max-width: 768px) {
  .company dl .company__table {
    flex-direction: column;
    gap: 2rem;
  }
}
.company dl .company__table:last-of-type {
  border-bottom: initial;
}
.company dl .company__table * {
  font-size: max(1.8rem, 14px);
}
.company dl .company__table dt {
  width: 20%;
  text-wrap: nowrap;
}
.company dl .company__table dd {
  flex: 1;
}
.company__map {
  position: relative;
  width: 100%;
  padding-top: 56.25%;
  /* 16:9のアスペクト比 */
  height: 0;
}
@media screen and (max-width: 550px) {
  .company__map {
    padding-top: 100%;
    /* 1:1のアスペクト比 */
  }
}
.company__map iframe {
  border-radius: max(2.5rem, 15px);
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.policy {
  margin: max(7%, 70px) auto;
}
.policy > * {
  margin-bottom: 4%;
}
.policy * {
  font-weight: 400;
  font-size: max(1.6rem, 12px);
  line-height: 250%;
}
.policy *.fs-18 {
  font-size: max(1.8rem, 14px);
}
.policy *.fs-20 {
  font-size: max(2rem, 16px);
  font-weight: 700;
}
.policy *.right {
  text-align: right;
}
.policy * a.border {
  display: inline;
  padding: 0;
  color: #0C81C5;
  border-bottom: 1px solid #0C81C5;
}
.policy__outer {
  background-color: #FFFFFF;
  border-radius: max(2.5rem, 15px);
  padding: max(7%, 50px);
  box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.16);
}
.policy__outer p {
  font-size: max(1.8rem, 14px);
  margin-bottom: 4%;
  line-height: 2.5;
}
.policy__outer p:last-of-type {
  margin-bottom: 0;
}
.policy__outer--right {
  text-align: right;
}
.policy h2 {
  font-size: max(2.8rem, 20px);
  color: #0C81C5;
  margin-bottom: 1%;
  font-weight: 700;
}
.policy .h3box h3 {
  font-size: max(2rem, 16px);
  font-weight: 700;
}
.policy .h3box p {
  margin-bottom: 3%;
}
.policy .h3box__leftmargin {
  padding-left: max(2.8rem, 20px);
}
.policy ul {
  padding: revert;
  padding-left: max(2.8rem, 20px);
  list-style: number;
}
.policy ul.kakko {
  list-style: none;
  padding-left: 0;
}
.policy ul.kakko li {
  counter-increment: sublist;
  position: relative;
  padding-left: max(4rem, 30px);
}
.policy ul.kakko li::before {
  content: "（" counter(sublist) "）";
  position: absolute;
  left: 0;
}
.policy ul.ten {
  list-style: none;
  padding-left: 0;
}
.policy ul.ten li {
  counter-increment: sublist;
  position: relative;
  padding-left: max(1rem, 16px);
}
.policy ul.ten li::before {
  content: "・";
  position: absolute;
  left: 0;
}