@charset "UTF-8";
/* コンテンツ最大幅 */
/* color */
/* ============================================ */
/* font */
/* ============================================ */
/* company */
/* ============================================ */
.box {
  padding: 50px 6.25vw;
  border-radius: 40px;
  background: #fff;
  box-shadow: 0 15px 10px -10px rgba(0, 0, 0, 0.1);
}
@media all and (max-width: 896px) {
  .box {
    padding: 20px;
    border-radius: 20px;
  }
}

.anc {
  margin-top: 70px;
}
@media all and (max-width: 896px) {
  .anc {
    margin-top: 30px;
  }
}
.anc ul {
  display: flex;
  flex-wrap: wrap;
  gap: 40px;
}
@media all and (max-width: 896px) {
  .anc ul {
    gap: 20px;
  }
}
.anc ul li {
  width: calc((100% - 80px) / 3);
}
@media all and (max-width: 896px) {
  .anc ul li {
    width: calc((100% - 20px) / 2);
  }
}
.anc ul li a {
  display: flex;
  align-items: center;
  gap: 15px;
  position: relative;
  padding-bottom: 25px;
  border-bottom: 1px solid #363628;
  font-size: max(1.04vw, 1.15rem);
  font-weight: 600;
}
@media all and (max-width: 896px) {
  .anc ul li a {
    gap: 8px;
    padding-bottom: 10px;
    font-size: 1.3rem;
    line-height: 1.3;
  }
}
.anc ul li a::after {
  content: "";
  position: absolute;
  top: calc(50% - 10px);
  right: 5px;
  width: 40px;
  height: 40px;
  border: 1px solid #363628;
  border-radius: 50%;
  background: url(../images/common/ico_ar.svg) no-repeat center/19px auto;
  filter: brightness(0);
  rotate: 90deg;
  translate: 0 -50%;
  transition: 0.3s;
}
@media all and (max-width: 896px) {
  .anc ul li a::after {
    top: calc(50% - 5px);
    right: 0;
    width: 24px;
    height: 24px;
    background-size: 10px auto;
  }
}
.anc ul li a figure {
  flex: none;
  width: 100px;
}
@media all and (max-width: 896px) {
  .anc ul li a figure {
    width: 50px;
  }
}
.anc ul li a figure img {
  border-radius: 10px;
}
@media all and (max-width: 896px) {
  .anc ul li a figure img {
    border-radius: 6px;
  }
}
.anc ul li a em {
  display: block;
  font-family: "EB Garamond", serif;
  font-style: normal;
  font-size: min(2.2vw, 5rem);
  line-height: 1.1;
}
@media all and (max-width: 896px) {
  .anc ul li a em {
    margin-bottom: 3px;
    font-size: 1.5rem;
  }
}
@media (hover: hover) {
  .anc ul li a:hover {
    border-color: #4179af;
    color: #4179af;
    opacity: 1;
  }
  .anc ul li a:hover::after {
    border-color: #4179af;
    filter: none;
  }
}
.anc ul li:last-child a {
  padding: 0 30px;
  border-bottom: 0;
  border-radius: 10px;
  background: linear-gradient(75deg, rgba(247, 245, 236, 0) 0%, rgb(216, 209, 169) 50%, rgba(247, 245, 236, 0) 100%);
  background-size: 200% 100%;
}
@media all and (max-width: 896px) {
  .anc ul li:last-child a {
    padding-inline: 15px;
  }
}
.anc ul li:last-child a::after {
  top: 50%;
  right: 20px;
  rotate: 0deg;
}
@media all and (max-width: 896px) {
  .anc ul li:last-child a::after {
    right: 10px;
  }
}
@media (hover: hover) {
  .anc ul li:last-child a:hover {
    background-position: 100% 0;
    color: inherit;
  }
  .anc ul li:last-child a:hover::after {
    filter: brightness(0);
  }
}

.outline {
  margin-top: 70px;
  font-weight: 600;
}
@media all and (max-width: 896px) {
  .outline {
    margin-top: 40px;
  }
}
.outline dl {
  display: flex;
  flex-wrap: wrap;
}
.outline dl dt {
  width: 10em;
  padding: 20px;
  border-top: 1px solid #4179af;
}
@media all and (max-width: 896px) {
  .outline dl dt {
    width: 7em;
    padding: 10px 0;
  }
}
.outline dl dt:last-of-type {
  border-bottom: 1px solid #4179af;
}
.outline dl dd {
  width: calc(100% - 10em);
  padding: 20px;
  border-top: 1px solid #bfbfbf;
}
@media all and (max-width: 896px) {
  .outline dl dd {
    width: calc(100% - 7em);
    padding: 10px;
    padding-right: 0;
  }
}
.outline dl dd:last-of-type {
  border-bottom: 1px solid #bfbfbf;
}
.outline dl dd p + p {
  margin-top: 1em;
}

.message {
  position: relative;
  margin-top: 70px;
  padding-block: 50px 75px;
  border-radius: 40px 40px 0 0;
  background: linear-gradient(180deg, #ecf2f7 0%, #ecf2f7 90%, #f8f8f6 100%), url("../images/company/bg_message.webp") no-repeat center center/100% auto;
  line-height: 2;
}
@media all and (max-width: 896px) {
  .message {
    margin-top: 40px;
    padding-block: 30px 40px;
    border-radius: 20px 20px 0 0;
  }
}
.message .lead {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 40px;
  margin-bottom: 40px;
  font-size: 3rem;
  line-height: 1.7;
}
@media all and (max-width: 896px) {
  .message .lead {
    flex-direction: column-reverse;
    align-items: stretch;
    gap: 20px;
    margin-bottom: 16px;
    font-size: 1.7rem;
  }
}
.message .lead figure {
  flex: none;
  width: 48.8%;
}
@media all and (max-width: 896px) {
  .message .lead figure {
    width: 100%;
  }
  .message .lead figure img {
    aspect-ratio: 16/11;
    object-fit: cover;
    object-position: top;
  }
}
.message p + p {
  margin-top: 1em;
}
.message dl {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 30px;
  margin-top: 50px;
  font-size: 2.4rem;
}
@media all and (max-width: 896px) {
  .message dl {
    justify-content: space-between;
    gap: 20px;
    margin-top: 20px;
    font-size: 1.7rem;
  }
}
.message dl dt {
  font-size: 1.6rem;
  line-height: 1.5;
}
@media all and (max-width: 896px) {
  .message dl dt {
    font-size: 1.3rem;
  }
}

.philosophy {
  padding-bottom: 100px;
  border-radius: 0 0 80px 80px;
  background: linear-gradient(180deg, #f8f8f6 0%, #f7f5ec 10%, #f7f5ec 100%), url("../images/company/bg_philosophy.webp") no-repeat center bottom/100% auto;
  font-weight: 600;
  line-height: 2;
}
@media all and (max-width: 896px) {
  .philosophy {
    padding-bottom: 30px;
    border-radius: 0 0 20px 20px;
  }
}
@media all and (max-width: 896px) {
  .philosophy .box {
    padding: 25px;
    letter-spacing: normal;
  }
}
.philosophy .box-inner {
  position: relative;
  border-top: 1px solid #8e754e;
}
.philosophy .box-inner::before, .philosophy .box-inner::after {
  content: "";
  position: absolute;
  top: -3px;
  left: -15px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #8e754e;
}
.philosophy .box-inner::after {
  left: auto;
  right: -15px;
}
.philosophy .box dl {
  position: relative;
  padding: 40px 30px;
  border-bottom: 1px solid #8e754e;
  text-align: center;
}
@media all and (max-width: 896px) {
  .philosophy .box dl {
    padding: 20px 0;
  }
}
.philosophy .box dl::before, .philosophy .box dl::after {
  content: "";
  position: absolute;
  bottom: -3px;
  left: -15px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #8e754e;
}
.philosophy .box dl::after {
  left: auto;
  right: -15px;
}
.philosophy .box dl dt {
  position: relative;
  margin-bottom: 15px;
  color: #8e754e;
  font-size: 2.4rem;
}
@media all and (max-width: 896px) {
  .philosophy .box dl dt {
    font-size: 2rem;
    line-height: 1.5;
  }
}
.philosophy .box dl dt:not(:first-child) {
  padding-top: 80px;
}
@media all and (max-width: 896px) {
  .philosophy .box dl dt:not(:first-child) {
    padding-top: 40px;
  }
}
.philosophy .box dl dt:not(:first-child)::before {
  content: "";
  position: absolute;
  top: 40px;
  left: 50%;
  width: 60px;
  height: 1px;
  background: #a89981;
  translate: -50%;
}
@media all and (max-width: 896px) {
  .philosophy .box dl dt:not(:first-child)::before {
    top: 20px;
  }
}
.philosophy .box dl dd p + p {
  margin-top: 1em;
}

.history {
  margin-top: 70px;
}
@media all and (max-width: 896px) {
  .history {
    margin-top: 40px;
  }
}
.history ol {
  display: flex;
  flex-direction: column;
  margin-top: 50px;
  padding-left: 133px;
}
@media all and (max-width: 896px) {
  .history ol {
    margin-top: 40px;
    padding-left: 0;
  }
}
.history ol > li {
  display: flex;
  gap: 100px;
  position: relative;
  height: 120px;
}
@media all and (max-width: 896px) {
  .history ol > li {
    gap: 50px;
    height: auto;
    min-height: 50px;
    padding-bottom: 20px;
  }
}
.history ol > li::before {
  content: "";
  position: absolute;
  top: 4px;
  left: 100px;
  width: 20px;
  height: 20px;
  border: 6px solid #6794bf;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 0 60px 10px rgba(92, 143, 188, 0.3);
}
@media all and (max-width: 896px) {
  .history ol > li::before {
    left: 60px;
    width: 15px;
    height: 15px;
    border-width: 4px;
  }
}
.history ol > li::after {
  content: "";
  position: absolute;
  top: 40px;
  left: 110px;
  width: 1px;
  height: calc(100% - 60px);
  background: #bfbfbf;
}
@media all and (max-width: 896px) {
  .history ol > li::after {
    top: 30px;
    left: 67px;
    height: calc(100% - 40px);
  }
}
.history ol > li .period {
  display: flex;
  flex: none;
  flex-direction: column;
}
.history ol > li time {
  flex: none;
  margin-top: -3px;
  font-family: "EB Garamond", serif;
  font-style: italic;
  font-size: 3rem;
  font-weight: 500;
  line-height: 1;
}
@media all and (max-width: 896px) {
  .history ol > li time {
    margin-top: 1px;
    font-size: 2rem;
  }
}
.history ol > li time + time {
  position: relative;
  margin-top: 7px;
  padding-top: 20px;
}
.history ol > li time + time::before {
  content: "";
  position: absolute;
  top: 0;
  left: calc(50% + 3px);
  width: 2px;
  height: 15px;
  background: #363628;
}
.history ol > li ul {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
@media all and (max-width: 896px) {
  .history ol > li ul {
    gap: 4px;
  }
}
.history ol > li ul li {
  position: relative;
  padding-left: 20px;
}
@media all and (max-width: 896px) {
  .history ol > li ul li {
    padding-left: 15px;
  }
}
.history ol > li ul li::before {
  content: "";
  position: absolute;
  top: 9px;
  left: 0;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #363628;
}
@media all and (max-width: 896px) {
  .history ol > li ul li::before {
    width: 6px;
    height: 6px;
  }
}

.access {
  margin-top: 40px;
  padding-block: 60px;
  border-radius: 40px;
  background: #ecf2f7;
  font-weight: 600;
}
@media all and (max-width: 896px) {
  .access {
    margin-top: 20px;
    padding-block: 30px;
    border-radius: 20px;
  }
}
.access ul {
  display: flex;
  gap: 50px;
}
@media all and (max-width: 896px) {
  .access ul {
    flex-direction: column;
    gap: 24px;
  }
}
.access ul li {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-end;
  gap: 30px 20px;
  width: calc(50% - 25px);
}
@media all and (max-width: 896px) {
  .access ul li {
    width: 100%;
    gap: 20px 16px;
  }
}
.access ul li figure {
  width: 200px;
}
@media all and (max-width: 896px) {
  .access ul li figure {
    width: 80px;
  }
}
.access ul li figure img {
  width: 100%;
  object-fit: cover;
  object-position: 0 0;
}
.access ul li dl {
  display: flex;
  flex-wrap: wrap;
  width: calc(100% - 220px);
}
@media all and (max-width: 896px) {
  .access ul li dl {
    width: calc(100% - 96px);
  }
}
.access ul li dl div {
  width: 100%;
  padding-bottom: 10px;
  color: #4179af;
  font-size: 1.8rem;
  letter-spacing: 0.2em;
}
.access ul li dl dt {
  width: 4em;
  padding: 10px;
  border-top: 1px solid #4179af;
}
@media all and (max-width: 896px) {
  .access ul li dl dt {
    width: 3em;
    padding-inline: 4px;
  }
}
.access ul li dl dt:last-of-type {
  border-bottom: 1px solid #4179af;
}
.access ul li dl dd {
  width: calc(100% - 4em);
  padding: 10px;
  border-top: 1px solid #bfbfbf;
}
@media all and (max-width: 896px) {
  .access ul li dl dd {
    width: calc(100% - 3em);
    padding-inline: 4px;
  }
}
.access ul li dl dd:last-of-type {
  border-bottom: 1px solid #bfbfbf;
}
.access ul li iframe {
  width: 100%;
  aspect-ratio: 16/9;
}
@media all and (max-width: 896px) {
  .access ul li iframe {
    aspect-ratio: 4/3;
  }
}

/*# sourceMappingURL=company.css.map */
