.c-row-news {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: subgrid;
}

.c-row-news__layout {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: subgrid;
  padding-top: 25px;
  padding-bottom: 25px;
  border-bottom: 1px solid var(--color-gray);
  align-items: center;
}
.c-row-news__layout > *:nth-child(2) {
  justify-self: center;
  align-self: center;
}

@media screen and (max-width: 768px) {
  .c-row-news__layout {
    grid-template-rows: auto auto;
    row-gap: 10px;
    padding-top: 20px;
    padding-bottom: 20px;
  }
  .c-row-news__layout > *:nth-child(1) {
    grid-area: 1 / 1 / 2 / 2;
    margin-right: 15px;
  }
  .c-row-news__layout > *:nth-child(2) {
    grid-area: 1 / 2 / 2 / 4;
    justify-self: flex-start;
  }
  .c-row-news__layout > *:nth-child(3) {
    grid-area: 2 / 1 / 3 / 3;
  }
  .c-row-news__layout > *:nth-child(4) {
    grid-area: 2 / 3 / 3 / 4;
    display: grid;
    place-items: center;
  }
}

.c-row-news__date {
  color: var(--color-gray);
  font-size: 16px;
  padding-right: 10px;
}

@media screen and (max-width: 768px) {
  .c-row-news__date {
    padding-right: unset;
  }
}

.c-row-news__heading {
  color: black;
  --line-clamp: 1;
  padding-left: 35px;
}

@media screen and (max-width: 768px) {
  .c-row-news__heading {
    --line-clamp: 3;
    padding-left: unset;
  }
}

.c-row-news__arrow {
  display: grid;
  place-items: center;
}

.c-label-gray {
  align-self: center;
  color: var(--color-gray);
  font-size: 14px;
  font-weight: 500;
  border: 1px solid;
  border-radius: 5px;
  padding-left: 0.5em;
  padding-right: 0.5em;
  line-height: 1.5;
}

@media screen and (max-width: 768px) {
  .c-label-gray {
    padding-top: 0.25em;
    padding-bottom: 0.25em;
  }
}

.c-label-gray._category {
  font-size: 16px;
}

@media screen and (max-width: 768px) {
  .c-label-gray._category {
    font-weight: 400;
    padding-top: 0;
    padding-bottom: 0;
  }
}

.c-hamburger {
  cursor: pointer;
  height: 45px;
  position: relative;
  width: 45px;
  background-color: var(--color-logo);
  border-radius: 20px;
}

.c-hamburger__line {
  background: white;
  display: inline-block;
  height: 1px;
  left: 15px;
  pointer-events: none;
  position: absolute;
  transition: all 0.3s;
  width: 15px;
}

.c-hamburger__line:nth-of-type(1) {
  top: 15px;
}

.c-hamburger__line:nth-of-type(2) {
  top: 21px;
}

.c-hamburger__text {
  position: absolute;
  left: 50%;
  top: 21px;
  translate: -50%;
  font-size: 11px;
  text-align: center;
  color: white;
  pointer-events: none;
}

.c-hamburger[aria-expanded="true"] .c-hamburger__line:nth-of-type(1) {
  transform: translateY(3px) rotate(-18deg);
}

.c-hamburger[aria-expanded="true"] .c-hamburger__line:nth-of-type(2) {
  transform: translateY(-3px) rotate(18deg);
}

.c-button-arrow {
  --btn-bg: var(--color-logo);
  --btn-border: var(--color-logo);
  --btn-bg-hover: color-mix(in srgb, var(--color-logo) 100%, transparent);
  --btn-text: #fff;
  --btn-h: 33px;
  --btn-radius: 999em;
  --btn-pad-x: 10px;
  --btn-gap: 10px;
  --btn-text-size: 16px;
  --arrow-size: 17px;
  --ellipse-scale: calc(13/17);
  border: 1px solid var(--btn-border);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--btn-gap);
  min-height: var(--btn-h);
  padding-inline: var(--btn-pad-x);
  border-radius: var(--btn-radius);
  background: var(--btn-bg);
  color: var(--btn-text);
  line-height: 1;
  transition:
    transform 0.2s ease,
    background-color 0.2s ease;
}

.c-button-arrow._reverse {
  --btn-bg: white;
  --btn-text: var(--color-logo);
  --btn-bg-hover: color-mix(in srgb, white 100%, transparent);
}

.c-button-arrow._reverse .c-button-arrow__arrow ellipse {
  fill: var(--color-logo);
}
.c-button-arrow._contact .c-button-arrow__arrow ellipse {
  fill: var(--color-logo);
}
.c-button-arrow._lg {
  --btn-gap: 15px;
  --btn-pad-x: 20px;
  --btn-h: 43px;
}

.c-button-arrow._contact {
  --btn-bg-hover: color-mix(in srgb, white 100%, transparent);
  --btn-gap: 15px;
  --btn-bg: white;
  --btn-text: var(--color-logo);
  --btn-pad-x: 25px;
  --btn-h: 76px;
  --btn-text-size: 25px;
  border-radius: 10px;
}
.c-button-arrow._contact .c-button-arrow__text {
  font-weight: 700;
  padding-left: 0;
}

@media screen and (max-width: 768px) {
  .c-button-arrow._contact .c-button-arrow__text {
    font-size: 18px;
  }
}

.c-button-arrow:hover {
  background: var(--btn-bg-hover);
}

.c-button-arrow:active {
  background: var(--btn-bg-hover);
}

.c-button-arrow:focus-visible {
  background: var(--btn-bg-hover);
}

.c-button-arrow__text {
  display: inline-block;
  padding-left: 10px;
  font-size: var(--btn-text-size);
  font-weight: 500;
}

.c-button-arrow__arrow {
  width: var(--arrow-size);
  height: var(--arrow-size);
  flex: 0 0 auto;
  display: block;
}

.c-button-arrow__arrow ellipse {
  transform-box: fill-box;
  transform-origin: center;
  transform: scale(var(--ellipse-scale));
  transition: transform 0.2s ease;
}

.c-button-arrow__arrow path {
  transform: scale(var(--ellipse-scale));
  transform-origin: center;
}

.c-button-arrow:hover .c-button-arrow__arrow ellipse,
.c-button-arrow:focus-visible .c-button-arrow__arrow ellipse {
  transform: scale(1);
}

@media (prefers-reduced-motion: reduce) {
  .c-button-arrow,
  .c-button-arrow__arrow ellipse {
    transition: none;
  }
}

/* --------------------------------
 * c-icon-arrow-circle
 * -------------------------------- */
.c-icon-arrow-circle {
  --circle-scale: calc(17 / 17);
  overflow: visible;
}

.c-icon-arrow-circle circle {
  transform-box: fill-box;
  transform-origin: center;
  transform: scale(var(--circle-scale));
  transition: transform 0.2s ease;
}

.c-icon-arrow-circle path {
  transform: scale(var(--circle-scale));
  transform-origin: center;
}

.c-row-news__layout:hover .c-icon-arrow-circle circle,
.c-row-news__layout:focus-visible .c-icon-arrow-circle circle,
.c-top-article:hover .c-icon-arrow-circle circle,
.c-top-article:focus-visible .c-icon-arrow-circle circle,
.c-button-pdf:hover .c-icon-arrow-circle circle,
.c-button-pdf:focus-visible .c-icon-arrow-circle circle {
  transform: scale(calc(20 / 17));
}

@media (prefers-reduced-motion: reduce) {
  .c-icon-arrow-circle circle {
    transition: none;
  }
}

.c-button-anchor {
  min-height: 70px;
  border-radius: 35px;
  background-color: #f8f8f8;
  display: grid;
  grid-template-columns: 24px 1fr;
  padding-left: 35px;
  filter: drop-shadow(3px 3px 10px color-mix(in srgb, black 10%, transparent));
  align-items: center;
  transition: filter 0.2s;
}

@media screen and (max-width: 768px) {
  .c-button-anchor {
    min-height: 50px;
    border-radius: 25px;
    padding-left: 20px;
  }
}

.c-button-anchor:hover {
  filter: unset;
}

.c-button-anchor__text {
  color: var(--color-logo);
  text-align: center;
  font-size: 20px;
  line-height: calc(28 / 20);
  font-weight: 700;
  padding-left: 35px;
  padding-right: 35px;
}

@media screen and (max-width: 768px) {
  .c-button-anchor__text {
    font-size: 16px;
    padding-left: 25px;
    padding-right: 25px;
  }
}

@media screen and (max-width: 768px) {
  .c-button-anchor__arrow {
    width: 16px;
  }
}
.c-button-pdf {
  background-color: white;
  border-radius: 10px;
  filter: drop-shadow(3px 3px 10px color-mix(in srgb, black 10%, transparent));
  padding-left: 30px;
  padding-right: 30px;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  column-gap: 30px;
  padding-top: 20px;
  padding-bottom: 20px;
  transition: filter 0.2s;
}

@media screen and (max-width: 768px) {
  .c-button-pdf {
    column-gap: 15px;
    padding-top: 10px;
    padding-bottom: 10px;
    padding-left: 20px;
    padding-right: 20px;
  }
}
.c-button-pdf:hover {
  filter: unset;
}
.c-button-pdf__icon {
  color: #ce0000;
}

.c-button-pdf__heading {
  font-size: 16px;
  line-height: calc(28 / 16);
  font-weight: 700;
  color: var(--color-logo);
}

.c-button-gradient {
  background-image: var(--color-gradient-primary);
  min-height: 43px;
  display: inline-flex;
  align-items: center;
  border-radius: 30px;
}

.c-button-gradient__text {
  padding: 10px 20px;
  font-size: 16px;
  font-weight: 500;
  color: white;
}
.c-card-special {
  background-color: white;
  border-radius: 10px;
  padding: 15px 15px 25px;
  filter: var(--drop-shadow);
  position: relative;
  display: flex;
  flex-direction: column;
  transition: filter 0.3s;
}

.c-card-special:hover {
  filter: unset;
}

@media screen and (max-width: 768px) {
  .c-card-special {
    padding: 20px 20px 30px;
  }
}

.c-card-special__thumbnail {
  aspect-ratio: 3/2;
}

.c-card-special__thumbnail .-img {
  width: 100%;
  height: auto;
  object-fit: cover;
  border-radius: 10px;
}

@media screen and (max-width: 768px) {
  .c-card-special__thumbnail {
    aspect-ratio: 28/20;
  }

  .c-card-special__thumbnail .-img {
    aspect-ratio: 28/20;
  }
}

.c-card-special__body {
  padding-top: 10px;
  display: flex;
  flex-direction: column;
  flex: 1;
}

@media screen and (max-width: 768px) {
  .c-card-special__body {
    padding-top: 20px;
  }
}

.c-card-special__upper {
  display: flex;
  flex-wrap: wrap;
  column-gap: 10px;
  align-items: center;
}

.c-card-special__name .-company {
  color: #999999;
  font-size: 12px;
  font-weight: 500;
  display: block;
}
.c-card-special__name .-name {
  font-size: 16px;
  display: block;
  font-weight: 500;
  line-height: 1.3;
}

@media screen and (max-width: 768px) {
  .c-card-special__name .-name {
    font-size: 14px;
  }
}

.c-card-special__heading {
  font-size: 20px;
  font-weight: 700;
  margin-top: 15px;
}

@media screen and (max-width: 768px) {
  .c-card-special__heading {
    font-size: 18px;
  }
}

.c-card-special__cross {
  align-self: flex-end;
}
.c-card-special__excerpt {
  font-size: 16px;
  margin-top: 10px;
  line-height: var(--line-height-auto);
}
@media screen and (max-width: 768px) {
  .c-card-special__excerpt {
    font-size: 14px;
    line-height: calc(28 / 14);
  }
}

.c-card-special__button {
  display: flex;
  justify-content: flex-end;
  margin-top: auto;
  padding-top: 15px;
}

@media screen and (max-width: 768px) {
  .c-card-special__button {
    padding-top: 20px;
  }
}

/* カード全体をリンク化: ボタンの ::after をカード全体に広げる */
.c-card-special .c-button-arrow::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 10px;
}

.c-top-article__layout {
  display: grid;
  grid-template-columns: 91px 1fr 14px;
  column-gap: 20px;
  align-items: center;
}

.c-top-article__thumbnail {
  aspect-ratio: 91 / 68;
  width: 91px;
}

.c-top-article__thumbnail .-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.c-top-article__heading {
  font-size: 14px;
  line-height: calc(20 / 14);
  font-family: var(--fontFamily-complex);
}

.c-accordion-faq {
  filter: drop-shadow(3px 3px 10px color-mix(in srgb, black 10%, transparent));
}

.c-accordion-faq__head {
  border-radius: 10px;
  background-color: #f8f8f8;
  padding: 20px;
  font-size: 18px;
  font-weight: 700;
  color: var(--color-logo);
  display: grid;
  grid-template-columns: 1fr 36px;
  column-gap: 20px;
  align-items: center;
  cursor: pointer;
}

@media screen and (max-width: 768px) {
  .c-accordion-faq__head {
    grid-template-columns: 1fr 16px;
    column-gap: 15px;
  }
}

.c-accordion-faq__head .-text {
  font-size: 16px;
  line-height: calc(28 / 16);
  font-weight: 700;
}

.c-accordion-faq__head .-arrow {
  transition: transform 0.7s;
}

@media screen and (max-width: 768px) {
  .c-accordion-faq__head .-arrow {
    width: 16px;
  }
}

.c-accordion-faq__body {
  padding: 30px 20px 5px;
}

.c-accordion-faq[open] .c-accordion-faq__head .-arrow {
  transform: rotate(180deg);
}

.c-tooltip-map {
  position: absolute;
  z-index: 100;
  max-width: min(220px, calc(100vw - 24px));
  padding: 10px 12px;
  background: #fff;
  border-radius: 8px;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15);
  font-size: 13px;
  line-height: 1.4;
  pointer-events: none;
  width: 240px;
}

.c-tooltip-map__heading {
  font-weight: 700;
  margin-bottom: 4px;
}

.c-tooltip-map::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -8px;
  transform: translateX(-50%);
  border-width: 8px 6px 0;
  border-style: solid;
  border-color: #fff transparent transparent;
}

.c-box-profile {
  background-color: var(--color-gray-light);
  padding: var(--spacing-sm);
}

.c-box-profile__layout {
  display: grid;
  grid-template-columns: 160px 1fr auto;
  column-gap: 50px;
}

@media screen and (max-width: 768px) {
  .c-box-profile__layout {
    grid-template-columns: 1fr;
    row-gap: 20px;
    align-items: center;
  }
}
.c-box-profile__thumbnail {
  border-radius: 999em;
  display: grid;
  place-items: center;
}
.c-box-profile__thumbnail .-img {
  border-radius: 999em;
}
.c-box-profile__name {
  font-size: 20px;
  font-weight: 700;
  line-height: calc(28 / 20);
}

.c-box-profile__text {
  margin-top: 30px;
}

.c-box-profile__button {
  height: 100%;
  display: flex;
  justify-content: flex-end;
  flex-direction: column;
}
