body {
  background-color: #f1f3f7;
}

section .section-title {
  margin-bottom: 3rem;
}

section.about .section-title {
  font-size: 2.4rem;
  font-weight: 600;
  color: #243678;
}

section.info {
  padding-top: 6.4rem;
  padding-bottom: 6.4rem;
}

@media screen and (max-width: 768px) {
  section.info {
    padding: 4rem 0;
  }
}

section.info .company-info {
  background: #fff;
  padding: 3.2rem 6.9rem;
  margin-top: 3.2rem;
  border-radius: 0.5rem;
}

@media screen and (max-width: 768px) {
  section.info .company-info {
    padding: 1.2rem 1.45rem;
  }
}

section.info .company-info .info-row {
  display: flex;
  border-bottom: 0.1rem solid #bac1da;
  padding: 3.2rem 0;
}

@media screen and (max-width: 768px) {
  section.info .company-info .info-row {
    display: flex;
    gap: 0.6rem;
    padding: 2.4rem 0;
  }
}

@media screen and (max-width: 768px) {
  section.info .company-info .info-row.vertical-layout {
    flex-direction: column;
    gap: 2.4rem;
  }
}

section.info .company-info .info-row .info-label {
  min-width: 20rem;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.8rem;
  font-weight: 700;
  color: #133653;
  line-height: 1.6;
}

@media screen and (max-width: 768px) {
  section.info .company-info .info-row .info-label {
    font-size: 1.8rem;
    flex: 0 0 auto;
    min-width: 8rem;
  }
}

section.info .company-info .info-row .info-content {
  flex: 1;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.6rem;
  color: #1d1d1d;
  line-height: 1.5;
  font-weight: 500;
}

@media screen and (max-width: 768px) {
  section.info .company-info .info-row .info-content {
    flex: 1;
  }
}

section.info .company-info .info-row .info-content .external-link {
  display: inline-flex;
  align-items: center;
  gap: 0.8rem;
  color: #405ea2;
  text-decoration: underline;
}

@media screen and (max-width: 768px) {
  section.info .company-info .info-row .info-content .external-link {
    display: flex;
    width: 100%;
    gap: 0.4rem;
  }
}

section.info .company-info .info-row .info-content .external-link img {
  width: 1.2rem;
  height: 1.2rem;
}

@media screen and (max-width: 768px) {
  section.info .company-info .info-row .info-content .external-link img {
    margin-left: -0.4rem;
  }
}

section.info .company-info .info-row .info-content .company-item {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  margin-bottom: 1rem;
}

@media screen and (max-width: 768px) {
  section.info .company-info .info-row .info-content .company-item {
    flex-wrap: wrap;
  }
}

section.info .company-info .info-row .info-content .company-item>a {
  color: #405ea2;
  text-decoration: underline;
}

section.info .company-info .info-row .info-content .company-item:last-child {
  margin-bottom: 0;
}

section.info .company-info .info-row .info-content .company-item img {
  width: 1.2rem;
  height: 1.2rem;
}

section.info .company-info .info-row .info-content .group-companies .company-item {
  margin-bottom: 1.6rem;
}

@media screen and (max-width: 768px) {
  section.info .company-info .info-row .info-content .group-companies .company-item {
    margin-bottom: 2.4rem;
  }
}

@media screen and (max-width: 768px) {
  section.info .company-info .info-row .info-content .group-companies .company-item:last-child {
    margin-bottom: 0;
  }
}

section.info .company-info .info-row.location-row .info-content {
  display: flex;
  gap: 4rem;
}

@media screen and (max-width: 768px) {
  section.info .company-info .info-row.location-row .info-content {
    flex-direction: column;
    gap: 3.2rem;
  }
}

section.info .company-info .info-row.location-row .info-content .address-main .address {
  margin-bottom: 2rem;
}

@media screen and (max-width: 768px) {
  section.info .company-info .info-row.location-row .info-content .address-main .address {
    margin-bottom: 3.2rem;
  }
}

@media screen and (max-width: 768px) {
  section.info .company-info .info-row.location-row .info-content .address-main .link-button {
    display: flex;
    width: fit-content;
    min-width: 23.5rem;
    margin: 0 auto;
    padding: 1rem 1.6rem 1rem 3.2rem;
    gap: 1.6rem;
    font-size: 1.6rem;
  }
}

@media screen and (max-width: 768px) {
  section.info .company-info .info-row.location-row .info-content .address-main .link-button::after {
    width: 2.2rem;
    height: 2.2rem;
    background-size: 0.9rem 0.9rem;
  }
}

section.info .company-info .info-row.location-row .info-content .map-image {
  width: 36rem;
  height: 17rem;
  border-radius: 0.8rem;
  overflow: hidden;
}

@media screen and (max-width: 768px) {
  section.info .company-info .info-row.location-row .info-content .map-image {
    width: 100%;
    height: 30rem;
  }
}

section.info .company-info .info-row.location-row .info-content .map-image img,
section.info .company-info .info-row.location-row .info-content .map-image iframe {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

section.info .company-info .info-row:last-child {
  border-bottom: none;
}

@media screen and (max-width: 768px) {
  section.info .company-info .info-row:last-child {
    border-bottom: 0.1rem solid #bac1da;
    margin-bottom: 4.4rem;
  }
}

section.history {
  padding-top: 6.4rem;
  padding-bottom: 6.4rem;
}

@media screen and (max-width: 768px) {
  section.history {
    padding-bottom: 5.6rem;
  }
}

@media screen and (max-width: 768px) {
  section.history .section-title {
    margin-bottom: 3.2rem;
  }
}

section.history .mobile-timeline {
  display: none;
}

section.history .legend {
  display: flex;
  gap: 1.6rem;
  margin-top: 4.8rem;
  margin-left: 4.8rem;
  flex-wrap: wrap;
  position: relative;
  z-index: 100;
}

@media screen and (max-width: 768px) {
  section.history .legend {
    gap: 1.2rem;
    margin-top: 1.6rem;
  }
}

section.history .legend .legend-item {
  display: flex;
  align-items: center;
  gap: 0.6rem;
}

section.history .legend .legend-item .legend-color {
  width: 1.3rem;
  height: 1.3rem;
}

section.history .legend .legend-item .legend-color.blue {
  background: #328bff;
}

section.history .legend .legend-item .legend-color.purple {
  background: #a598ff;
}

section.history .legend .legend-item .legend-color.cyan {
  background: #b6fbff;
}

section.history .legend .legend-item .legend-color.lavender {
  background: #a8c3f7;
}

section.history .legend .legend-item .legend-text {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.4rem;
  font-weight: 500;
  color: #1d1d1d;
  white-space: nowrap;
}

@media screen and (max-width: 768px) {
  section.history .legend .legend-item .legend-text {
    font-size: 1rem;
  }
}

section.history .history-content {
  margin-top: 0;
  position: relative;
}

@media screen and (max-width: 768px) {
  section.history .history-content {
    display: none;
  }
}

section.history .history-content::before {
  content: "";
  position: absolute;
  left: 24.5rem;
  top: 8rem;
  width: 36.7rem;
  bottom: 0;
  background: #fff;
  border-radius: 0.5rem;
  z-index: 95;
}

@media screen and (max-width: 768px) {
  section.history .history-content::before {
    display: none;
  }
}

section.history .history-content::after {
  content: "";
  position: absolute;
  right: 0;
  top: 8rem;
  width: 58.7rem;
  bottom: 0;
  background: #fff;
  border-radius: 0.5rem;
  z-index: 95;
}

@media screen and (max-width: 768px) {
  section.history .history-content::after {
    display: none;
  }
}

section.history .timeline-grid {
  position: relative;
}

section.history .timeline-grid::before {
  content: "";
  position: absolute;
  left: 21.2rem;
  top: 10rem;
  width: 0.4rem;
  height: 4rem;
  background-image: repeating-linear-gradient(to bottom, #c8cddf 0, #c8cddf 0.4rem, transparent 0.4rem, transparent 0.8rem);
  z-index: 95;
}

@media screen and (max-width: 768px) {
  section.history .timeline-grid::before {
    left: 4rem;
  }
}

section.history .timeline-grid::after {
  content: "";
  position: absolute;
  left: 21.2rem;
  top: 13rem;
  width: 0.4rem;
  background: #c8cddf;
  height: 88%;
  z-index: 95;
}

@media screen and (max-width: 768px) {
  section.history .timeline-grid::after {
    left: 4rem;
  }
}

section.history .timeline-headers {
  display: grid;
  grid-template-columns: auto 36.7rem 58.7rem;
  gap: 2.7rem;
}

section.history .timeline-headers::before {
  content: "";
  position: absolute;
  left: 21.2rem;
  bottom: 2.4rem;
  width: 0.4rem;
  height: 5.5rem;
  background-image: repeating-linear-gradient(to bottom, #c8cddf 0, #c8cddf 0.4rem, transparent 0.4rem, transparent 0.8rem);
  z-index: 95;
}

@media screen and (max-width: 768px) {
  section.history .timeline-headers::before {
    left: 4rem;
  }
}

@media screen and (max-width: 768px) {
  section.history .timeline-headers {
    grid-template-columns: auto 1fr;
    gap: 2rem;
  }
}

section.history .timeline-headers .content-header h3 {
  font-family: "Shippori Mincho B1", serif;
  font-size: 2rem;
  font-weight: 500;
  color: #133653;
  margin: 0;
  text-align: center;
  padding: 1.1rem 0;
  background: #243678;
  color: #fff;
  line-height: 1.7;
  letter-spacing: 0.05rem;
  border-radius: 5rem;
}

@media screen and (max-width: 768px) {
  section.history .timeline-headers .content-header h3 {
    font-size: 1.6rem;
    padding: 1.2rem 2rem;
  }
}

section.history .timeline-headers .content-header.service-header {
  display: flex;
  flex-direction: column;
}

section.history .timeline-headers .content-header.service-header>h3 {
  background: #607ec2;
}

section.history .timeline-headers .content-header.service-header .legend {
  margin-bottom: 0;
}

@media screen and (max-width: 768px) {
  section.history .timeline-headers .content-header.service-header .legend {
    display: none;
  }
}

@media screen and (max-width: 768px) {
  section.history .timeline-headers .content-header:last-child {
    display: none;
  }
}

section.history .timeline-row {
  display: grid;
  grid-template-columns: auto 36.7rem 58.7rem;
  gap: 4rem;
  margin-bottom: 6rem;
  position: relative;
}

@media screen and (max-width: 768px) {
  section.history .timeline-row {
    grid-template-columns: auto 1fr;
    gap: 2rem;
    margin-bottom: 4rem;
  }
}

section.history .timeline-row:not(:last-child)::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -3rem;
  height: 0.1rem;
  background: #c8cddf;
  z-index: 98;
}

@media screen and (max-width: 768px) {
  section.history .timeline-row:not(:last-child)::after {
    display: none;
  }
}

section.history .timeline-row:last-child {
  margin-bottom: 0;
}

section.history .year-cell {
  font-family: "Open Sans", sans-serif;
  font-size: 7.2rem;
  font-weight: 700;
  color: #c8cddf;
  line-height: 1;
  letter-spacing: 0rem;
  position: relative;
  margin-right: 5.8rem;
}

section.history .year-cell::after {
  content: "";
  position: absolute;
  right: -5.5rem;
  top: 50%;
  transform: translateY(-50%);
  width: 1.2rem;
  height: 1.2rem;
  background: #405ea2;
  border-radius: 50%;
  z-index: 98;
}

@media screen and (max-width: 768px) {
  section.history .year-cell {
    font-size: 3.2rem;
  }

  section.history .year-cell::after {
    right: -1.2rem;
    width: 1rem;
    height: 1rem;
  }
}

section.history .timeline-row[data-year="2016"] .year-cell::after {
  top: 25%;
}

section.history .timeline-row[data-year="2016"] .company-cell .event-description {
  margin-bottom: 0;
}

section.history .timeline-row[data-year="2016"] .service-cell {
  padding-bottom: 0.8rem;
}

section.history .timeline-row[data-year="2017"] .year-cell::after {
  top: 25%;
}

section.history .timeline-row[data-year="2018"] .year-cell::after {
  top: 40%;
}

section.history .timeline-row[data-year="2019"] .year-cell::after {
  top: 30%;
}

section.history .timeline-row[data-year="2020"] .year-cell::after {
  top: 25%;
}

section.history .timeline-row[data-year="2021"] .year-cell::after {
  top: 20%;
}

section.history .timeline-row[data-year="2024"] .year-cell::after {
  top: 40%;
}

section.history .timeline-row[data-year="2024"] .service-cell {
  padding-top: 2.4rem;
  padding-bottom: 5.2rem;
}

section.history .company-cell,
section.history .service-cell {
  padding: 3.2rem 3.2rem 0 1.9rem;
  position: relative;
  z-index: 98;
}

section.history .company-cell:last-child,
section.history .service-cell:last-child {
  padding-top: 3.2rem;
  padding-bottom: 4rem;
}

section.history .company-cell .event-description,
section.history .service-cell .event-description {
  margin-bottom: 2.4rem;
}

section.history .company-cell .event-description h3,
section.history .service-cell .event-description h3 {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.6rem;
  font-weight: 500;
  color: #1d1d1d;
  margin: 0 0 0.8rem 0;
  line-height: 1.5;
}

section.history .company-cell .event-description p,
section.history .service-cell .event-description p {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  color: #1d1d1d;
  margin: 0 0 0.4rem 0;
  line-height: 1.5;
  margin-bottom: 0;
}

section.history .company-cell .event-description p:last-child,
section.history .service-cell .event-description p:last-child {
  margin-bottom: 0;
}

section.history .company-cell .service-tags,
section.history .service-cell .service-tags {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

section.history .company-cell .service-tags .tag,
section.history .service-cell .service-tags .tag {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.6rem;
  font-weight: 500;
  color: #1d1d1d;
  line-height: 1.5;
}

section.history .company-cell .service-tags .tag::before,
section.history .service-cell .service-tags .tag::before {
  content: "";
  width: 1.3rem;
  height: 1.3rem;
  flex-shrink: 0;
}

section.history .company-cell .service-tags .tag.blue::before,
section.history .service-cell .service-tags .tag.blue::before {
  background: #328bff;
}

section.history .company-cell .service-tags .tag.purple::before,
section.history .service-cell .service-tags .tag.purple::before {
  background: #a598ff;
}

section.history .company-cell .service-tags .tag.cyan::before,
section.history .service-cell .service-tags .tag.cyan::before {
  background: #b6fbff;
}

section.history .company-cell .service-tags .tag.lavender::before,
section.history .service-cell .service-tags .tag.lavender::before {
  background: #a8c3f7;
}

section.history .company-cell:empty,
section.history .service-cell:empty {
  min-height: 5rem;
}

section.history .mobile-timeline {
  display: none;
}

@media screen and (max-width: 768px) {
  section.history .mobile-timeline {
    display: block;
  }
}

section.history .mobile-timeline .mobile-section {
  margin-bottom: 4rem;
  display: flex;
  flex-direction: column;
  align-items: end;
}

section.history .mobile-timeline .mobile-section .mobile-section-header {
  background: #243678;
  color: #fff;
  text-align: center;
  padding: 1.2rem 2rem;
  border-radius: 5rem;
  font-family: "Shippori Mincho B1", serif;
  font-size: 1.6rem;
  font-weight: 500;
  margin-bottom: 1.7rem;
  position: relative;
  width: 80%;
  z-index: 99;
}

section.history .mobile-timeline .mobile-section .mobile-section-header::before {
  content: "";
  position: absolute;
  left: -1.6rem;
  top: 5.5rem;
  width: 0.4rem;
  height: 2rem;
  background-image: repeating-linear-gradient(to bottom, #c8cddf 0, #c8cddf 0.4rem, transparent 0.4rem, transparent 0.8rem);
  z-index: 95;
}

section.history .mobile-timeline .mobile-section:last-child .mobile-section-header {
  background-color: #607ec2;
}

section.history .mobile-timeline .mobile-section:last-child .mobile-section-header::before {
  top: 5.5rem;
}

section.history .mobile-timeline .mobile-section:last-child .mobile-timeline-content::after {
  top: 82rem;
}

section.history .mobile-timeline .mobile-section .mobile-legend {
  padding-bottom: 1.6rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

section.history .mobile-timeline .mobile-section .mobile-legend .legend-item {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  justify-content: flex-start;
  margin-left: 1rem;
}

section.history .mobile-timeline .mobile-section .mobile-legend .legend-item .legend-color {
  width: 1rem;
  height: 1rem;
  border-radius: 0.1rem;
}

section.history .mobile-timeline .mobile-section .mobile-legend .legend-item .legend-color.blue {
  background: #328bff;
}

section.history .mobile-timeline .mobile-section .mobile-legend .legend-item .legend-color.purple {
  background: #a598ff;
}

section.history .mobile-timeline .mobile-section .mobile-legend .legend-item .legend-color.cyan {
  background: #b6fbff;
}

section.history .mobile-timeline .mobile-section .mobile-legend .legend-item .legend-color.lavender {
  background: #a8c3f7;
}

section.history .mobile-timeline .mobile-section .mobile-legend .legend-item .legend-text {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.2rem;
  color: #1d1d1d;
  font-weight: 400;
}

section.history .mobile-timeline .mobile-section .mobile-timeline-content {
  position: relative;
  background: #fff;
  padding: 2rem 2rem 2rem 1.2rem;
  border-radius: 0.5rem;
  box-shadow: 0 0.1rem 0.3rem rgba(0, 0, 0, 0.1);
  width: 80%;
}

section.history .mobile-timeline .mobile-section .mobile-timeline-content::before {
  content: "";
  position: absolute;
  left: -1.5rem;
  top: 1.5rem;
  bottom: 3rem;
  width: 0.2rem;
  background: #c8cddf;
  z-index: 98;
}

section.history .mobile-timeline .mobile-section .mobile-timeline-content::after {
  content: "";
  position: absolute;
  left: -1.6rem;
  top: 36.5rem;
  width: 0.4rem;
  height: 2rem;
  background-image: repeating-linear-gradient(to bottom, #c8cddf 0, #c8cddf 0.4rem, transparent 0.4rem, transparent 0.8rem);
  z-index: 95;
}

section.history .mobile-timeline .mobile-section .mobile-timeline-content .mobile-timeline-item {
  position: relative;
  margin: 0 1.6rem;
  min-height: 2rem;
}

section.history .mobile-timeline .mobile-section .mobile-timeline-content .mobile-timeline-item::before {
  content: "";
  position: absolute;
  left: -4.6rem;
  top: 0.8rem;
  width: 0.8rem;
  height: 0.8rem;
  background: #405ea2;
  border-radius: 50%;
  z-index: 99;
}

section.history .mobile-timeline .mobile-section .mobile-timeline-content .mobile-timeline-item:not(:last-child)::after {
  content: "";
  position: absolute;
  left: -8rem;
  right: -1.6rem;
  bottom: -2rem;
  height: 0.1rem;
  background: #c8cddf;
  z-index: 97;
}

section.history .mobile-timeline .mobile-section .mobile-timeline-content .mobile-timeline-item:has(.mobile-content:empty) {
  min-height: 1.5rem;
  margin-bottom: 1.5rem;
}

section.history .mobile-timeline .mobile-section .mobile-timeline-content .mobile-timeline-item .mobile-year {
  font-family: "Open Sans", sans-serif;
  font-size: 1.8rem;
  font-weight: 700;
  color: #c8cddf;
  margin: 0;
  position: absolute;
  left: -10.5rem;
  top: 0;
  width: 5rem;
  text-align: right;
  z-index: 99;
}

section.history .mobile-timeline .mobile-section .mobile-timeline-content .mobile-timeline-item .mobile-content {
  margin-top: 0;
  margin-left: 0;
  margin-bottom: 4rem;
}

section.history .mobile-timeline .mobile-section .mobile-timeline-content .mobile-timeline-item .mobile-content h3 {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.4rem;
  font-weight: 500;
  color: #1d1d1d;
  margin: 0 0 0.4rem 0;
  line-height: 1.5;
}

section.history .mobile-timeline .mobile-section .mobile-timeline-content .mobile-timeline-item .mobile-content p {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.4rem;
  color: #1d1d1d;
  margin: 0 0 0.4rem 0;
  line-height: 1.5;
}

section.history .mobile-timeline .mobile-section .mobile-timeline-content .mobile-timeline-item .mobile-content .mobile-tags .tag {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  margin-bottom: 0.8rem;
  font-size: 1.2rem;
}

section.history .mobile-timeline .mobile-section .mobile-timeline-content .mobile-timeline-item .mobile-content .mobile-tags .tag::before {
  content: "";
  width: 1.3rem;
  height: 1.3rem;
  border-radius: 0.1rem;
  flex-shrink: 0;
}

section.history .mobile-timeline .mobile-section .mobile-timeline-content .mobile-timeline-item .mobile-content .mobile-tags .tag.blue::before {
  background: #328bff;
}

section.history .mobile-timeline .mobile-section .mobile-timeline-content .mobile-timeline-item .mobile-content .mobile-tags .tag.purple::before {
  background: #a598ff;
}

section.history .mobile-timeline .mobile-section .mobile-timeline-content .mobile-timeline-item .mobile-content .mobile-tags .tag.cyan::before {
  background: #b6fbff;
}

section.history .mobile-timeline .mobile-section .mobile-timeline-content .mobile-timeline-item .mobile-content .mobile-tags .tag.lavender::before {
  background: #a8c3f7;
}

section.history .mobile-timeline .mobile-section:last-child .mobile-timeline-item:first-child .mobile-year {
  top: 14.8rem;
}

section.history .mobile-timeline .mobile-section:last-child .mobile-timeline-item:first-child::before {
  top: 15.6rem;
}

section.history .mobile-timeline .mobile-section:last-child .mobile-timeline-item:nth-child(2) .mobile-year {
  top: 2rem;
}

section.history .mobile-timeline .mobile-section:last-child .mobile-timeline-item:nth-child(2)::before {
  top: 2.8rem;
}

section.history .mobile-timeline .mobile-section:last-child .mobile-timeline-item:nth-child(3) .mobile-year {
  top: -0.5rem;
}

section.history .mobile-timeline .mobile-section:last-child .mobile-timeline-item:nth-child(3)::before {
  top: 0.3rem;
}

section.history .mobile-timeline .mobile-section:last-child .mobile-timeline-item:nth-child(4) {
  margin-top: 4rem;
}

section.history .mobile-timeline .mobile-section:last-child .mobile-timeline-item:nth-child(4) .mobile-year {
  top: 1rem;
}

section.history .mobile-timeline .mobile-section:last-child .mobile-timeline-item:nth-child(4)::before {
  top: 1.8rem;
}

section.history .mobile-timeline .mobile-section:last-child .mobile-timeline-item:nth-child(5) .mobile-year {
  top: 2rem;
}

section.history .mobile-timeline .mobile-section:last-child .mobile-timeline-item:nth-child(5)::before {
  top: 2.8rem;
}

section.history .mobile-timeline .mobile-section:last-child .mobile-timeline-item:nth-child(6) .mobile-year {
  top: 4rem;
}

section.history .mobile-timeline .mobile-section:last-child .mobile-timeline-item:nth-child(6)::before {
  top: 4.8rem;
}

section.history .history-sp {
  display: none;
}

@media screen and (max-width: 768px) {
  section.history .history-sp {
    display: block;
  }
}

section.history .history-sp .timeline {
  position: relative;
  display: grid;
  grid-template-columns: 7.2rem 1fr;
}

section.history .history-sp .timeline+.timeline {
  margin-top: 5.6rem;
}

section.history .history-sp .timeline::before {
  content: "";
  position: absolute;
  left: 5.5rem;
  width: 0.4rem;
  height: 100%;
  background: linear-gradient(to bottom, transparent 0, transparent 8.5rem, #c8cddf 8.5rem, #c8cddf calc(100% - 3rem), transparent calc(100% - 3rem), transparent 100%), url("../img/company/history_dots.svg") center top 5.5rem/0.4rem auto no-repeat, url("../img/company/history_dots.svg") center bottom/0.4rem auto no-repeat;
}

section.history .history-sp .timeline>*:nth-child(n+5) {
  border-top: 0.1rem solid #c8cddf;
}

section.history .history-sp .timeline .year {
  display: flex;
  align-items: center;
  font-family: "Open Sans", sans-serif;
  font-weight: 700;
  font-size: 1.8rem;
  line-height: 1;
  letter-spacing: 0;
  color: #c8cddf;
}

section.history .history-sp .timeline .year::after {
  content: "";
  position: relative;
  flex-shrink: 0;
  display: block;
  width: 0.9rem;
  height: 0.9rem;
  border-radius: 50%;
  background: #0f54af;
  margin: 0 1.15rem;
}

section.history .history-sp .timeline .title {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 3.8rem;
  margin-bottom: 1.6rem;
  border-radius: 1.9rem;
  font-family: "Shippori Mincho B1", serif;
  font-weight: 500;
  font-size: 1.8rem;
  line-height: 1.7;
  letter-spacing: 0.05em;
  text-align: center;
  background: #243678;
  color: #fff;
}

section.history .history-sp .timeline .content {
  background: #fff;
  padding: 2rem 1.6rem;
  min-height: 6.8rem;
}

section.history .history-sp .timeline .content:nth-child(4) {
  border-radius: 0.5rem 0.5rem 0 0;
}

section.history .history-sp .timeline .content:last-child {
  border-radius: 0 0 0.5rem 0.5rem;
}

section.history .history-sp .timeline .content p {
  font-weight: 500;
  font-size: 1.4rem;
  line-height: 1.5;
  letter-spacing: 0.08em;
}

section.history .history-sp .timeline .content p+p {
  margin-top: 0.4rem;
}

section.history .history-sp .timeline.after-start .title {
  background: #607ec2;
}

section.history .history-sp .timeline.after-start .content ul {
  padding-left: 1.6rem;
  margin-bottom: 1.6rem;
}

section.history .history-sp .timeline.after-start .content ul>li p {
  font-size: 1.2rem;
}

section.history .history-sp .timeline.after-start .content p+p {
  margin-top: 0.8rem;
}

section.history .history-sp .timeline.after-start .content .vulnerability-diagnosis,
section.history .history-sp .timeline.after-start .content .security-monitoring,
section.history .history-sp .timeline.after-start .content .vulnerability-management,
section.history .history-sp .timeline.after-start .content .other {
  display: flex;
  align-items: start;
  gap: 0.6rem;
}

section.history .history-sp .timeline.after-start .content .vulnerability-diagnosis::before,
section.history .history-sp .timeline.after-start .content .security-monitoring::before,
section.history .history-sp .timeline.after-start .content .vulnerability-management::before,
section.history .history-sp .timeline.after-start .content .other::before {
  content: "";
  flex-shrink: 0;
  display: block;
  width: 0.9em;
  height: 0.9em;
  margin: 0.3em 0;
  border-radius: 0.1em;
  background: #f0f0f0;
}

section.history .history-sp .timeline.after-start .content .vulnerability-diagnosis::before {
  background: #328bff;
}

section.history .history-sp .timeline.after-start .content .security-monitoring::before {
  background: #a598ff;
}

section.history .history-sp .timeline.after-start .content .vulnerability-management::before {
  background: #a8c3f7;
}

section.history .history-sp .timeline.after-start .content .other::before {
  background: #b6fbff;
}

section.service {
  padding-top: 6.4rem;
  padding-bottom: 6.4rem;
}

@media screen and (max-width: 768px) {
  section.service {
    padding-top: 0;
    padding-bottom: 5.6rem;
  }
}

@media screen and (max-width: 768px) {
  section.service .section-title {
    margin-bottom: 2.4rem;
  }
}

section.service .service-list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 3.2rem;
  margin-top: 3.2rem;
  list-style: none;
}

@media screen and (max-width: 768px) {
  section.service .service-list {
    grid-template-columns: 1fr;
    gap: 3.2rem;
    margin-top: 0;
  }
}

section.service .service-list .service-item {
  background: #fff;
  border: 0.1rem solid #e6e8f0;
  border-radius: 0.5rem;
  padding: 4rem 4.2rem;
  text-align: center;
}

@media screen and (max-width: 768px) {
  section.service .service-list .service-item {
    padding: 3.2rem 1.55rem;
    border: 1px solid #97a9d1;
  }
}

section.service .service-list .service-item .title {
  margin-bottom: 2.4rem;
}

section.service .service-list .service-item .title h3 {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 2.4rem;
  font-weight: 700;
  color: #243678;
  margin: 0;
  line-height: 1.5;
  letter-spacing: 0.08em;
}

section.service .service-list .service-item .icon {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 10.8rem;
  margin-bottom: 2.4rem;
}

@media screen and (max-width: 768px) {
  section.service .service-list .service-item .icon {
    height: auto;
  }
}

section.service .service-list .service-item .icon img {
  width: 12rem;
  height: 12rem;
  object-fit: contain;
}

section.service .service-list .service-item.security-monitoring-and-analysis .icon img {
  width: 10.7rem;
  height: 10.7rem;
}

section.service .service-list .service-item.s4 .icon img {
  width: 16.2rem;
  height: 6rem;
}

@media screen and (max-width: 768px) {
  section.service .service-list .service-item.s4 .icon img {
    margin: 0 auto;
    width: 16rem;
    height: 6rem;
  }
}

section.service .service-list .service-item .description p {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.6rem;
  font-weight: 500;
  color: #1d1d1d;
  line-height: 1.7;
  letter-spacing: 0.08em;
  margin: 0;
  text-align: left;
}

section.service .service-button {
  margin-top: 4rem;
  text-align: center;
}

@media screen and (max-width: 768px) {
  section.service .service-button {
    margin-top: 3.2rem;
  }
}

@media screen and (max-width: 768px) {
  section.service .service-button .link-button {
    gap: 2.4rem;
  }
}

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