@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Michroma&display=swap");

:root {
  --font-en: "Michroma", sans-serif;
}

@media (max-width: 1023px) {
  .pc { display: none !important; }
}
@media (min-width: 1024px) {
  .sp { display: none !important; }
}

.breadcrumb-wrap,
.page-header { display: none; }

.top h3 { padding-left: 0; }
.top h3::before { content: none; }

.mv {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 1591 / 988;
  width: 100%;
  padding: 3.75rem 1.25rem;
  background-color: #4d5966;
  background-image: var(--mv-bg-pc);
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  color: #fff;
  text-align: center;
  overflow: hidden;
}
@media (max-width: 1023px) {
  .mv {
    padding: 1.875rem 0.625rem 7.5rem;
    background-image: var(--mv-bg-sp);
    aspect-ratio: 1047 / 988;
  }
}
.mv::before,
.mv::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.mv::before { background: rgba(0, 0, 0, .35); }
.mv::after {
  background-image: radial-gradient(rgba(255, 255, 255, .18) 1px, transparent 1px);
  background-size: 6px 6px;
  mix-blend-mode: overlay;
  opacity: .8;
}
.mv__inner {
  position: relative;
  z-index: 1;
  max-width: 900px;
  width: 100%;
}
.mv__catch {
  margin: 0;
  color: inherit;
  font-size: 3rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.06em;
}
.mv__lead {
  margin-top: 1.75rem;
  margin-bottom: 0;
  font-size: 1.75rem;
  line-height: 1.3;
  font-weight: bold;
}
@media (max-width: 1023px) {
  .mv__catch { font-size: 1.5rem; }
  .mv__lead { margin-top: 0.5rem; }
  .mv__lead-br { display: none; }
}
@media (min-width: 1024px) {
  .mv {
    min-height: 720px;
    padding: 5rem 2.5rem;
    justify-content: flex-end;
  }
  .mv__inner {
    width: auto;
    max-width: 680px;
    margin-right: 4%;
  }
  .mv__lead {
    margin-top: 2.25rem;
    font-size: 4.0625rem;
    font-weight: bold;
    line-height: 1.2;
  }
}

.logo-marquee {
  width: 100vw;
  margin-inline: calc(50% - 50vw);
  overflow: hidden;
}
.logo-marquee .swiper-wrapper {
  transition-timing-function: linear;
}
.logo-marquee__list {
  display: flex;
  align-items: center;
  margin: 0;
  padding: 0;
  list-style: none;
}
.logo-marquee__item {
  width: auto;
  flex-shrink: 0;
  margin: 0;
}
.logo-marquee__item img {
  display: block;
  height: 42px;
  width: auto;
  object-fit: contain;
}
@media (max-width: 1023px) {
  .logo-marquee__item img { height: 32px; }
}

.business {
  position: relative;
  padding: 6.25rem 1.25rem 7.5rem;
  background: #1e73be;
  color: #fff;
  overflow: hidden;
}
.business__bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
  background: #0f2a26;
  clip-path: polygon(0 0, 100% 0, 100% 34%, 0 83%);
}
.business__bg::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, .3);
  z-index: 1;
}
.business__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: .9;
  display: block;
}
.business__inner {
  position: relative;
  z-index: 2;
  max-width: 1400px;
  margin-inline: auto;
  padding: 0 3rem;
}
.business__head {
  display: flex;
  align-items: center;
}
.business__title {
  margin: 0;
  color: inherit;
  font-size: 2.125rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-align: left;
}
.business__list {
  display: flex;
  flex-wrap: wrap;
  gap: 2.5rem;
  margin-top: 3.75rem;
  margin-bottom: 0;
  padding: 0;
  list-style: none;
  justify-content: center;
}
.business__item {
  width: calc((100% - 7.5rem) / 4);
  flex-shrink: 0;
  margin: 0;
}
.business__card {
  display: flex;
  flex-direction: column;
  height: 100%;
  color: inherit;
  text-decoration: none;
}
.business .business__card:hover { color: #fff; opacity: 1; }
.business__thumb {
  position: relative;
  margin: 0 0 0.9375rem;
  height: 201px;
  overflow: hidden;
  background: #ddd;
}
.business__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .4s;
  display: block;
}
.business__card:hover .business__thumb img { transform: scale(1.08); }
.business__ja {
  margin: 0;
  font-size: 1.0625rem;
  font-weight: 500;
  letter-spacing: 0.06em;
}
.business__desc {
  margin-top: 0.75rem;
  margin-bottom: 0;
  font-size: 0.875rem;
  line-height: 1.8;
  flex-grow: 1;
}
.business__separator {
  position: relative;
  display: block;
  width: 100%;
  height: 3px;
  margin-top: 1.5rem;
  background-color: rgba(255, 255, 255, .5);
  overflow: hidden;
}
.business__separator::after {
  content: "";
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background-color: #fff;
  transition: left .3s;
}
.business__card:hover .business__separator::after { left: 0; }
.business__more {
  position: relative;
  margin-top: 0.75rem;
  margin-bottom: 0;
  padding-right: 1.5rem;
  text-align: right;
  font-size: 0.875rem;
  letter-spacing: 0.1em;
  color: inherit;
}
.business__more::after {
  content: "";
  position: absolute;
  right: 4px;
  top: 50%;
  width: 8px;
  aspect-ratio: 1 / 1;
  border-top: 1px solid currentColor;
  border-right: 1px solid currentColor;
  transform: translateY(-50%) rotate(45deg);
}

@media (max-width: 1023px) {
  .business { padding: 3.75rem 0; }
  .business__bg { height: 55%; }
  .business__inner { padding: 0 1.25rem; }
  .business__head { justify-content: center; }
  .business__title { text-align: center; font-size: 1.375rem; }
  .business__list { margin-top: 2.5rem; gap: 1.5625rem 0.9375rem ; justify-content: flex-start; }
  .business__item { width: calc((100% - 0.9375rem) / 2); max-width: none; }
  .business__thumb { height: 120px; margin-bottom: 0.9375rem; }
  .business__ja { font-size: 0.8125rem; }
  .business__desc { font-size: 0.8125rem; }
  .business__separator { display: none; }
  .business__more {
    margin-top: 0.5rem;
    padding-bottom: 1rem;
    text-align: left;
    border-bottom: 1px solid rgba(255,255,255,.4);
  }
}

.about {
  padding: 6.25rem 1.25rem;
  background: #fff;
  color: #222;
  text-align: center;
}
.about__inner {
  max-width: 1200px;
  margin-inline: auto;
}
.about__title {
  margin: 0;
  color: inherit;
  font-weight: 700;
  line-height: 1.4;
}
.about__title-en {
  display: block;
  font-family: var(--font-en);
  font-weight: 400;
  font-size: 1.125rem;
  letter-spacing: 0.2em;
  color: #222;
}
.about__title-ja {
  display: block;
  margin-top: 0.75rem;
  color: #1e73be;
  font-size: 2.125rem;
  line-height: 1.6;
  letter-spacing: 0.05em;
}
.about__text {
  margin: 2rem auto 0;
  max-width: 900px;
  font-size: 1rem;
  line-height: 2;
  color: #333;
  text-align: left;
}
.about__image {
  margin-top: 3.75rem;
  margin-bottom: 0;
}
.about__image img {
  display: block;
  width: 100%;
  height: auto;
  max-width: 1200px;
  margin-inline: auto;
}
.about__cta {
  margin-top: 3.75rem;
  text-align: center;
}
.about__cta-btn {
  display: inline-block;
  padding: 0.75rem 2.5rem;
  background: #1e73be;
  color: #fff;
  font-size: 1rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-decoration: none;
  border: 1px solid #1e73be;
  transition: background-color .2s, color .2s;
}
.about .about__cta-btn:hover {
  background: #fff;
  color: #1e73be;
}

@media (max-width: 1023px) {
  .about { padding: 3.75rem 1.25rem; }
  .about__title-br { display: none; }
  .about__title-en { font-size: 0.875rem; }
  .about__title-ja { font-size: 1.5rem; }
  .about__text { margin-top: 1.5rem; font-size: 0.875rem; }
  .about__image { margin-top: 2.5rem; }
  .about__cta { margin-top: 2.5rem; }
}

.media {
  padding: 6.25rem 1.25rem;
  background: #fff;
  color: #222;
  text-align: center;
}
.media__inner {
  max-width: 1200px;
  margin-inline: auto;
}
.media__title {
  margin: 0;
  color: inherit;
  font-weight: 700;
  line-height: 1.4;
}
.media__title-en {
  display: block;
  font-weight: 400;
  font-size: 1.125rem;
  letter-spacing: 0.2em;
  color: #222;
}
.media__title-ja {
  display: block;
  margin-top: 0.75rem;
  font-size: 2.5rem;
  letter-spacing: 0.05em;
}
.media__list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  margin-top: 3.75rem;
  margin-bottom: 0;
  padding: 0;
  list-style: none;
}
.media__item {
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 2/1;
  width: calc(100% / 8);
  height: 100%;
  margin: 0;
  padding: 0.375rem;
}
.media__item img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

@media (max-width: 1023px) {
  .media { padding: 3.75rem 1.25rem; }
  .media__title-en { font-size: 0.875rem; }
  .media__title-ja { font-size: 1.5rem; }
  .media__list { margin-top: 2.5rem; }
  .media__item { width: calc(100% / 4); padding: 0.375rem; }
}

.search {
  padding: 6.25rem 1.25rem;
  background: #f7f8fa;
  color: #222;
  text-align: center;
}
.search__inner {
  max-width: 1200px;
  margin-inline: auto;
}
.search__title {
  margin-top: 0;
  margin-bottom: 0;
  color: inherit;
  font-weight: 700;
  line-height: 1.4;
}
.search__title-en {
  display: block;
  font-weight: 400;
  font-size: 1.125rem;
  letter-spacing: 0.2em;
  color: #222;
}
.search__title-ja {
  display: block;
  margin-top: 0.75rem;
  font-size: 2.625rem;
  letter-spacing: 0.05em;
}
.search__flow {
  max-width: 1080px;
  margin-top: 5.5rem;
  margin-inline: auto;
}
.search__row {
  --flow-gap: 1.5625rem;
  --flow-gaps: 3;
  --flow-ratio: 4.35;
  --flow-main: 1.35;
  --flow-line: 9px;
  --flow-radius: 20px;
  --flow-drop: 49px;
  --flow-color: #7ba7d7;
  --flow-head: #3d8bc8;
  --flow-head-w: 24px;
  --flow-head-h: 15px;
  --flow-card: calc((100% - var(--flow-gaps) * var(--flow-gap)) / var(--flow-ratio));
  --flow-edge: calc(var(--flow-card) / 2);
  position: relative;
  display: flex;
  align-items: center;
  gap: var(--flow-gap);
  padding-bottom: var(--flow-drop);
}
.search__row::after {
  content: "";
  position: absolute;
  inset-inline: calc(var(--flow-edge) - var(--flow-line) / 2);
  bottom: 0;
  height: var(--flow-drop);
  border: var(--flow-line) solid var(--flow-color);
  border-top: 0;
  border-radius: 0 0 var(--flow-radius) var(--flow-radius);
  clip-path: polygon(
    var(--flow-head-w) 0,
    100% 0,
    100% 100%,
    0 100%,
    0 calc(var(--flow-head-h) - 1px),
    var(--flow-head-w) calc(var(--flow-head-h) - 1px)
  );
}
.search__row::before {
  content: "";
  position: absolute;
  left: var(--flow-edge);
  bottom: calc(var(--flow-drop) - var(--flow-head-h));
  width: var(--flow-head-w);
  height: var(--flow-head-h);
  background: var(--flow-head);
  clip-path: polygon(50% 0, 100% 100%, 0 100%);
  transform: translateX(-50%);
}
.search__node {
  position: relative;
  display: flex;
  flex-direction: column;
  flex-shrink: 0;
  width: var(--flow-card);
  padding: 1.875rem 0.625rem 1.125rem;
  background: #fff;
  border-radius: 14px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, .06);
  text-align: center;
}
.search__node + .search__node::before {
  content: "";
  position: absolute;
  top: 50%;
  left: calc(var(--flow-gap) / -2);
  width: 18px;
  height: 17px;
  background: var(--flow-color);
  clip-path: polygon(0 35%, 56% 35%, 56% 0, 100% 50%, 56% 100%, 56% 65%, 0 65%);
  transform: translate(-50%, -50%);
}
.search__node--main {
  width: calc(var(--flow-card) * var(--flow-main));
  padding: 2.25rem 1.5rem 2.5rem;
  background: #1e73be;
  color: #fff;
}
.search__node-name {
  margin-top: 0;
  margin-bottom: 0;
  padding-left: 0;
  color: #222;
  font-size: 1.625rem;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.04em;
}
.search__node-desc {
  margin-top: 1rem;
  margin-bottom: 0;
  color: #666;
  font-size: 0.8125rem;
  font-weight: 600;
  line-height: 1.7;
}
.search__node-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 1.5rem;
  padding: 0.3125rem;
  min-height: 46px;
  background: #1e73be;
  color: #fff;
  border-radius: 10px;
  font-size: 0.9375rem;
  font-weight: 700;
  line-height: 1.4;
  text-decoration: none;
  word-break: auto-phrase;
  overflow-wrap: anywhere;
  transition: opacity .2s;
}
.search .search__node-btn:hover {
  background: #1e73be;
  color: #fff;
  opacity: .85;
}
.search__node-btn-text::after {
  content: "→";
  margin-left: 0.5rem;
}
.search__node-logo {
  padding: 1rem 0.625rem;
  background: #fff;
  border-radius: 6px;
}
.search__node-logo img {
  width: 100%;
  height: auto;
  object-fit: contain;
}
.search__node-catch {
  margin-top: 2rem;
  margin-bottom: 0;
  font-size: 1.375rem;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.04em;
}
@media (max-width: 1023px) {
  .search {
    padding: 3.75rem 1.25rem;
  }
  .search__title-en {
    font-size: 0.875rem;
  }
  .search__title-ja {
    font-size: 1.5rem;
    letter-spacing: 0;
  }
  .search__flow {
    margin-top: 2.5rem;
  }
  .search__row {
    --flow-gap: 1.75rem;
    flex-direction: column;
    align-items: stretch;
    padding-bottom: 0;
  }
  .search__row::before,
  .search__row::after {
    display: none;
  }
  .search__node,
  .search__node--main {
    width: auto;
  }
  .search__node {
    padding: 0.5rem 1rem 0.8rem;
  }
  .search__node + .search__node::before {
    top: calc(var(--flow-gap) / -2);
    left: 50%;
    width: 22px;
    height: 23px;
    clip-path: polygon(32% 0, 68% 0, 68% 35%, 100% 35%, 50% 100%, 0 35%, 32% 35%);
  }
  .search__node--main {
    padding: 0.75rem 1rem 0.875rem;
  }
  .search__node-name {
    font-size: 1rem;
  }
  .search__node-desc {
    margin-top: 0.375rem;
    font-size: 0.75rem;
    line-height: 1.6;
  }
  .search__node-btn {
    margin-top: 0.625rem;
    min-height: 39px;
    font-size: 0.875rem;
  }
  .search__node-logo {
    padding: 0.5rem 0.625rem;
  }
  .search__node-logo img {
    width: auto;
    height: 1.375rem;
    margin-inline: auto;
  }
  .search__node-catch {
    margin-top: 0.6rem;
    font-size: 1rem;
    line-height: 1.45;
  }
}

.collection {
  padding: 6.25rem 1.25rem;
  background: #fff;
  color: #222;
  text-align: center;
}
.collection__inner {
  max-width: 1000px;
  margin-inline: auto;
}
.collection__title {
  margin: 0;
  color: inherit;
  font-weight: 700;
  line-height: 1.4;
}
.collection__title-en {
  display: block;
  font-family: var(--font-en);
  font-weight: 400;
  font-size: 1.125rem;
  letter-spacing: 0.2em;
  color: #222;
}
.collection__title-ja {
  display: block;
  margin-top: 0.75rem;
  font-size: 2.5rem;
  letter-spacing: 0.05em;
}
.collection__text {
  margin: 2.5rem auto 0;
  max-width: 780px;
  font-size: 1rem;
  line-height: 1.8;
  color: #333;
}
.collection__slider {
  margin-top: 3.75rem;
}
.collection__cta {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1.25rem;
  margin-top: 3.75rem;
}
.collection__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 320px;
  padding: 0.875rem 1.75rem;
  font-size: 0.9375rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-decoration: none;
  border: 1px solid #1e73be;
  transition: background-color .2s, color .2s;
}
.collection__btn--fill {
  background: #1e73be;
  color: #fff;
}
.collection__btn--outline {
  background: #fff;
  color: #1e73be;
}
.collection .collection__btn--fill:hover {
  background: #fff;
  color: #1e73be;
}
.collection .collection__btn--outline:hover {
  background: #1e73be;
  color: #fff;
}

@media (max-width: 1023px) {
  .collection { padding: 3.75rem 1.25rem; }
  .collection__title-en { font-size: 0.875rem; }
  .collection__title-ja { font-size: 1.5rem; }
  .collection__text { margin-top: 1.5rem; font-size: 0.875rem; }
  .collection__slider { margin-top: 2.5rem; }
  .collection__cta { margin-top: 2.5rem; flex-direction: column; align-items: center; gap: 0.75rem; }
  .collection__btn { width: 100%; min-width: 0; max-width: 340px; }
}

.strengths {
  padding: 6.25rem 1.25rem;
  background: #e8e8e8;
  color: #222;
  text-align: center;
}
.strengths__inner {
  max-width: 1200px;
  margin-inline: auto;
}
.strengths__title {
  margin: 0;
  color: inherit;
  font-weight: 700;
  line-height: 1.4;
}
.strengths__title-en {
  display: block;
  font-family: var(--font-en);
  font-weight: 400;
  font-size: 1.125rem;
  letter-spacing: 0.2em;
  color: #222;
}
.strengths__title-ja {
  display: block;
  margin-top: 0.75rem;
  font-size: 2.5rem;
  letter-spacing: 0.05em;
}
.strengths__block {
  margin-top: 3.75rem;
  padding: 2.5rem;
  border: 1px solid #ccc;
  background: #fff;
  text-align: left;
}
.strengths__list {
  display: flex;
  flex-direction: column;
  gap: 0.9375rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.strengths__item {
  margin: 0;
  padding: 1.5625rem;
  background: #efefef;
}
.strengths__item-title {
  margin: 0 0 0.5rem;
  padding: 0;
  color: #000;
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.5;
}
.strengths__item-title::before { content: none; }
.strengths__item-num::after {
  content: "｜";
  margin: 0 0.1em;
  font-weight: 400;
}
.strengths__item-desc {
  margin: 0;
  color: #000;
  font-size: 1rem;
  line-height: 1.8;
}

@media (max-width: 1023px) {
  .strengths { padding: 3.75rem 1.25rem; }
  .strengths__title-en { font-size: 0.875rem; }
  .strengths__title-ja { font-size: 1.5rem; }
  .strengths__block { margin-top: 2.5rem; padding: 1.25rem 0.9375rem; }
  .strengths__item { padding: 0.9375rem; }
  .strengths__item-title { font-size: 0.9375rem; }
  .strengths__item-desc { font-size: 0.875rem; }
}

.movie {
  padding: 6.25rem 1.25rem;
  background: #fff;
  color: #222;
  text-align: center;
}
.movie__inner {
  max-width: 1200px;
  margin-inline: auto;
}
.movie__title {
  margin: 0;
  color: inherit;
  font-weight: 700;
  line-height: 1.4;
}
.movie__title-en {
  display: block;
  font-family: var(--font-en);
  font-weight: 400;
  font-size: 1.125rem;
  letter-spacing: 0.2em;
  color: #222;
}
.movie__title-ja {
  display: block;
  margin-top: 0.75rem;
  font-size: 2.5rem;
  letter-spacing: 0.05em;
}
.movie__list {
  display: flex;
  flex-wrap: wrap;
  gap: 2.5rem;
  justify-content: center;
  margin-top: 3.75rem;
}
.movie__item {
  width: calc((100% - 2.5rem) / 2);
  max-width: 560px;
}
.movie__label {
  margin: 0;
  padding-bottom: 0.75rem;
  color: inherit;
  font-size: 1.25rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  border-bottom: 1px solid #b4b4b4;
}
.movie__frame {
  position: relative;
  margin-top: 1.25rem;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: #000;
}
.movie__frame iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: block;
  border: 0;
}

@media (max-width: 1023px) {
  .movie { padding: 3.75rem 1.25rem; }
  .movie__title-en { font-size: 0.875rem; }
  .movie__title-ja { font-size: 1.5rem; }
  .movie__label { font-size: 1rem; }
  .movie__list { margin-top: 2.5rem; gap: 2rem; }
  .movie__item { width: 100%; }
}

.blog {
  padding: 6.25rem 1.25rem;
  background: #fff;
  color: #222;
  text-align: center;
}
.blog__inner {
  max-width: 1200px;
  margin-inline: auto;
}
.blog__title {
  margin: 0;
  color: inherit;
  font-weight: 700;
  line-height: 1.4;
}
.blog__title-en {
  display: block;
  font-family: var(--font-en);
  font-weight: 400;
  font-size: 1.125rem;
  letter-spacing: 0.2em;
  color: #222;
}
.blog__title-ja {
  display: block;
  margin-top: 0.75rem;
  font-size: 2.5rem;
  letter-spacing: 0.05em;
}
.blog__list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.9375rem;
  margin-top: 3.75rem;
  margin-bottom: 0;
  padding: 0;
  list-style: none;
  justify-content: center;
}
.blog__item {
  width: calc((100% - 3.75rem) / 5);
  flex-shrink: 0;
  margin: 0;
  text-align: left;
}
.blog__card {
  display: flex;
  flex-direction: column;
  height: 100%;
  color: inherit;
  text-decoration: none;
  transition: opacity .2s;
}
.blog .blog__card:hover { color: inherit; opacity: .85; }
.blog__thumb {
  margin: 0;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: #ddd;
}
.blog__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .4s;
}
.blog__card:hover .blog__thumb img { transform: scale(1.05); }
.blog__date {
  display: block;
  margin-top: 0.5rem;
  font-size: 0.8125rem;
  color: #666;
  letter-spacing: 0.04em;
}
.blog__excerpt {
  margin-top: 0.5rem;
  margin-bottom: 0;
  font-size: 0.875rem;
  line-height: 1.7;
  color: #222;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  line-clamp: 2;
  overflow: hidden;
}
.blog__cta {
  margin-top: 3.75rem;
  text-align: center;
}
.blog__cta-btn {
  display: inline-block;
  padding: 0.75rem 2.5rem;
  background: #1e73be;
  color: #fff;
  font-size: 1rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-decoration: none;
  border: 1px solid #1e73be;
  transition: background-color .2s, color .2s;
}
.blog .blog__cta-btn:hover {
  background: #fff;
  color: #1e73be;
}

@media (max-width: 1023px) {
  .blog { padding: 3.75rem 1.25rem; }
  .blog__title-en { font-size: 0.875rem; }
  .blog__title-ja { font-size: 1.5rem; }
  .blog__list { margin-top: 2.5rem; gap: 1.25rem 0.9375rem; }
  .blog__item { width: calc((100% - 0.9375rem) / 2); max-width: none; }
  .blog__cta { margin-top: 2.5rem; }
  .blog__excerpt { margin-top: 0.1rem; }
}

.topics {
  padding: 6.25rem 1.25rem;
  background: #ededed;
  color: #222;
  text-align: center;
}
.topics__inner {
  max-width: 1000px;
  margin-inline: auto;
}
.topics__title {
  margin: 0;
  color: inherit;
  font-weight: 700;
  line-height: 1.4;
}
.topics__title-en {
  display: block;
  font-family: var(--font-en);
  font-weight: 400;
  font-size: 1.125rem;
  letter-spacing: 0.2em;
  color: #222;
}
.topics__title-ja {
  display: block;
  margin-top: 0.75rem;
  font-size: 2.5rem;
  letter-spacing: 0.05em;
}
.topics__container {
  margin-top: 2.5rem;
  padding: 1.5rem 3.75rem;
  background: #fff;
  text-align: left;
}
.topics__list {
  display: flex;
  flex-direction: column;
  margin: 0;
  padding: 0;
  list-style: none;
}
.topics__item {
  display: flex;
  align-items: flex-start;
  gap: 2.5rem;
  margin: 0;
  padding: 1.5rem 0;
  border-bottom: 1px solid #ddd;
  font-size: 0.8125rem;
  line-height: 1.8;
}
.topics__item:last-child { border-bottom: 0; }
.topics__date {
  flex-shrink: 0;
  width: 130px;
  font-weight: 700;
  letter-spacing: 0.05em;
}
.topics__text {
  flex-grow: 1;
  min-width: 0;
}
.topics__text > *:first-child { margin-top: 0; }
.topics__text > *:last-child { margin-bottom: 0; }

@media (max-width: 1023px) {
  .topics { padding: 3.75rem 1.25rem; }
  .topics__title-en { font-size: 0.875rem; }
  .topics__title-ja { font-size: 1.5rem; }
  .topics__container { margin-top: 2rem; padding: 1rem 1.25rem; }
  .topics__item { flex-direction: column; gap: 0.375rem; padding: 1.125rem 0; }
  .topics__date { width: auto; }
}
