@charset "utf-8";

:root {
  --green01: #67b67f;
  --green02: #e9f4eb;

  --yellow01: #ffd93b;
  --yellow02: #fff6ea;

  --orange01: #eba066;

  --blue01: #7eafe0;
  --blue02: #1ca7c2;
  --blue03: #afe1f3;
  --blue04: #a9d7e2;

  --brown01: #c5aa8f;

  --gray01: #f5f5f5;

  --border-color01: #bfd4db;

  --white-box: #f9fcff;

  --text-color: #333;
}

body {
  font-family: "Zen Maru Gothic", sans-serif;
  font-weight: 500;
  color: var(--text-color);
}
html {
  scroll-padding-top: 80px;
}

main {
  overflow: hidden;
}

body.single-organization main {
  overflow: visible;
}

section {
  padding: clamp(30px, 8vw, 80px) 0;
}

.btn01 {
  display: inline-block;
  border-radius: 100vmax;
  line-height: 1;
  padding: 0.8em 2em;
  white-space: nowrap;
}

.btn01 > span {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.5em;
}

.btn01 > span:after {
  content: "";
  display: inline-block;
  width: 1em;
  height: 1em;
  background-image: url(../images/common/arrow01.svg);
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
}
.btn01.yellow01 {
  background-color: var(--yellow01);
  color: #fff;
  text-shadow: 0px 0px 10px #8f7300;
}
.btn01.yellow01 > span:after {
  filter: invert(100%) sepia(0%) saturate(7481%) hue-rotate(183deg) brightness(97%) contrast(100%) drop-shadow(0px 0px 3px rgba(143, 115, 0, 0.5));
}
.btn01.yellow02 {
  background-color: var(--yellow02);
  color: var(--text-color);
}
.btn01.yellow02 > span:after {
  filter: invert(99%) sepia(95%) saturate(7471%) hue-rotate(323deg) brightness(103%) contrast(103%);
}
.btn01.blue01 {
  background-color: var(--blue01);
  color: #fff;
}
.btn01.blue01 > span:after {
  filter: invert(100%) sepia(0%) saturate(7481%) hue-rotate(183deg) brightness(97%) contrast(100%);
}
.btn01.green01 {
  background-color: var(--green01);
  color: #fff;
}
.btn01.green01 > span:after {
  filter: invert(100%) sepia(0%) saturate(7481%) hue-rotate(183deg) brightness(97%) contrast(100%);
}
.btn01.orange01 {
  background-color: var(--orange01);
  color: #fff;
}
.btn01.orange01 > span:after {
  filter: invert(100%) sepia(0%) saturate(7481%) hue-rotate(183deg) brightness(97%) contrast(100%);
}
.btn01.white {
  background-color: #fff;
  color: var(--blue02);
}
.btn01.white > span:after {
  filter: invert(46%) sepia(93%) saturate(377%) hue-rotate(142deg) brightness(99%) contrast(98%);
}

.btn01.size_l {
  font-size: 20px;
  min-width: 250px;
  @media (max-width: 768px) {
    font-size: 16px;
    max-width: 200px;
  }
}

.btn {
  margin-top: 50px;
}

.btn.center {
  text-align: center;
}
.btn.left {
  text-align: left;
}
.btn.right {
  text-align: right;
}

.title01 {
  text-align: center;
  margin-bottom: 50px;
}

.title01 .jp {
  color: var(--green01);
  font-weight: bold;
  font-size: 40px;
  @media (width < 798px) {
    font-size: 26px;
  }
}

.title01 .en {
  font-size: 18px;
    @media (width < 798px) {
    font-size: 14px;
  }
}

.title01 + .subtext {
  font-size: 20px;
  margin-bottom: 50px;

  @media (width < 1030px) {
    font-size: 16px;
    padding: 0 4%;
    text-align: left;
  }
}

.card01 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 5%;
  @media (max-width: 1029px) {
    grid-template-columns: 1fr;
    padding: 0 7%;
    gap: 2%;
  }
}
.card01 > .item {
  width: 100%;
  position: relative;
  z-index: 0;
  margin-bottom: 10px;
}
.card01 > .item:after {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  background-color: #fff;
  background-image: repeating-linear-gradient(-45deg, var(--blue03), var(--blue03) 2px, transparent 0, transparent 5px);
  z-index: -1;
  top: 10px;
  left: 10px;
}
.card01 > .item .box {
  width: 100%;
  border: 1px solid var(--border-color01);
  padding: 10%;
  background: #fff;
}
.card01 > .item .image {
  width: 100%;
  margin-bottom: 20px;
}
.card01 > .item .image > img {
  width: 100%;
  height: auto;
  display: block;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  background: #f8f8f8;
}

.card01 > .item h3 {
  color: var(--blue02);
  font-weight: bold;
  margin-bottom: 20px;
}
.card02 .image {
  width: 100%;
  aspect-ratio: 1/1; /* 正方形にしたい場合。比率を変えたい場合は 4/3 など */
  overflow: hidden;
  position: relative;
}

.card02 .image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.card02 .item {
  padding: 30px;
}
.card02 .item .image {
  margin-bottom: 20px;
  border-radius: 20px;
  overflow: hidden;
}
.card02 .item .image > img {
  width: 100%;
  display: block;
  aspect-ratio: 1;
  object-fit: cover;
  background: #f8f8f8;
}

.card02 .item .category {
  display: flex;
  flex-wrap: wrap;
  gap: 5px 10px;
  margin-bottom: 20px;
}
.card02 .item .category > span {
  background: var(--blue04);
  color: #fff;
  padding: 3px 10px;
  text-shadow: 0px 0px 5px rgba(0, 0, 0, 0.3);
}

.card03 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 5%;
  @media (max-width: 798px) {
    grid-template-columns: 1fr;
  }
}
.card03 > .item {
  width: 100%;
  position: relative;
  z-index: 0;
}

.card03 > .item .image {
  width: 100%;
  margin-bottom: 20px;
  aspect-ratio: 3 / 2;
  overflow: hidden;
}
.card03 > .item .image > img {
  width: 100%;
  display: block;
  height: 100%;
  object-fit: contain;
  background: #fff;
}
.card03 > .item .category {
  display: flex;
  flex-wrap: wrap;
  gap: 5px 10px;
  margin-bottom: 10px;
  padding: 0 10px;
}
.card03 > .item .category > span {
  display: inline-block;
  border: 1px solid var(--green01);
  color: var(--green01);
  background: #fff;
  padding: 0 10px;
  font-size: 14px;
}
.card03 > .item .title {
  font-weight: 500;
  border-bottom: 1px solid var(--border-color01);
  margin-bottom: 10px;
  padding: 10px;
}

.card03 > .item table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 10px;
  font-size: 14px;
}

.card03 > .item table th {
  background: var(--yellow01);
  color: #fff;
  text-shadow: 0px 0px 3px rgba(0, 0, 0, 0.3);
  white-space: nowrap;
}
.card03 > .item .btn {
  margin-top: 15px;
}

.text_center {
  text-align: center;
}

/* *************************************
// ローダー(loader)
************************************* */
#loader-bg.l001 {
  position: fixed;
  width: 100vw;
  height: 100vh;
  top: 0px;
  left: 0px;
  background: #fff;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* *************************************
header
************************************* */
.header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 100;
  height: 80px;
  transition: box-shadow 0.3s ease;
  background-color: var(--main);
  box-shadow: 0px 10px 20px 0px rgb(0 0 0 / 0.2);
}

.home .header {
  background: transparent;
  box-shadow: none;
  position: absolute;
}

.home .header.is-active {
  box-shadow: 0px 10px 20px 0px rgb(0 0 0 / 0.2);
  background-color: var(--main);
  position: fixed;
}

.header__inner {
  padding-inline-start: 10px;
  padding-inline-end: 10px;
  height: inherit;
  @media (width < 768px) {
    padding-inline: 10px;
  }
}

.header__container {
  display: flex;
  align-items: center;
  height: inherit;
}

.header__logo {
  width: auto;
  z-index: 1;
}

.header__logo a {
  display: flex;
  align-items: center;
  white-space: nowrap;
  color: var(--green01);
  font-weight: bold;
  gap: 0.5em;
  font-size: 25px;
  @media (max-width: 798px) {
    font-size: 19px;
  }
}

.header__logo img {
  width: 40px;
  height: 40px;
  object-fit: contain;
  @media (max-width: 798px) {
    width: 25px;
    height: 25px;
  }
}

.header__hamburger {
  display: none;
  width: 60px;
  height: 60px;
  min-width: 60px;
  min-height: 60px;
  @media (width < 1200px) {
    display: block;
    margin-inline-start: auto;
    background-color: transparent;
    position: relative;
    z-index: 100;
  }
}

.header__modal {
  display: contents;
  height: inherit;
  @media (width < 1200px) {
    display: block;
    position: fixed;
    inset: 0;
    height: 100svh;
    background-color: var(--white);
    opacity: 0;
    visibility: hidden;
    transition:
      opacity 0.3s ease,
      visibility 0.3s ease;
    overflow-y: scroll;
  }
}

.header__modal.is-open {
  opacity: 1;
  visibility: visible;
}

.header__nav {
  height: inherit;
  margin-inline-start: auto;

  @media (width < 1200px) {
    height: revert;
    min-height: 500px;
    padding: 5%;
    grid-template-columns: 1fr;
    margin-block-start: 80px;
  }
}

.header__list {
  height: inherit;
  display: flex;
  gap: calc(10 * var(--rem));
  @media (width < 1200px) {
    display: block;
  }
}

.header__list li {
  height: inherit;
  display: grid;
  align-items: center;
  position: relative;
  padding-right: calc(10 * var(--rem));
}

/* 区切り線を縦線として中央に表示 */
.header__list li:not(:last-child)::after {
  content: "";
  position: absolute;
  right: 0;
  top: 50%;
  width: 1px; /* 縦線なので幅を細く */
  height: 20px; /* 高さを指定 */
  background-color: #999;
  transform: translate(-50%, -50%) rotate(30deg);
  @media (max-width: 798px) {
    content: none;
  }
}

.header__list li a {
  height: auto;
  display: grid;
  place-content: center;
  text-align: center;
  padding: 0.5em calc(9 * var(--rem));
  position: relative;
  @media (width < 768px) {
    grid-template-columns: repeat(2, auto);
    align-items: center;
    gap: 0 calc(16 * var(--rem));
    padding-block: calc(12 * var(--rem));
    place-content: start;
    border-bottom: 1px solid var(--sub);
  }
}

.header__list li a:before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 0;
  height: 2px;
  background-color: #7eafe0;
  -webkit-transition: all 0.3s;
  -o-transition: all 0.3s;
  transition: all 0.3s;
}
.header__list li a:hover {
  opacity: 1;
}
.header__list li a:hover:before {
  width: 100%;
}

.header__list li a span {
  font-size: calc(14 * var(--rem));
  text-transform: capitalize;
}

.header__cta {
  height: inherit;
  display: grid;
  grid-template-columns: repeat(2, auto);
  gap: 0 calc(16 * var(--rem));
  align-items: center;
  @media (width < 768px) {
    grid-template-columns: 1fr;
    row-gap: calc(24 * var(--rem));
    margin-block-start: calc(40 * var(--rem));
  }
}

.header__tel {
  display: grid;
  place-content: center;
  height: inherit;
  gap: calc(8 * var(--rem)) 0;
  @media (width < 768px) {
    order: 2;
  }
}

.header__tel-num {
  display: inline-grid;
  grid-template-columns: repeat(2, auto);
  align-items: center;
  line-height: 1;
  font-size: calc(20 * var(--rem));
  font-weight: bold;
}

.header__tel-num::before {
  content: "";
  display: inline-block;
  width: calc(26 * var(--rem));
  aspect-ratio: 1;
  background: url(../images/common/icon_tel.svg) no-repeat center / contain;
}

.header__tel-text {
  text-align: center;
  line-height: 1;
  font-size: calc(12 * var(--rem));
}

.header__contact {
  height: inherit;
  @media (width < 768px) {
    order: 1;
  }
}

.header__contact a {
  height: inherit;
  display: grid;
  place-content: center;
  padding-inline: calc(24 * var(--rem));
  background-color: var(--sub);
  color: var(--white);
  @media (width < 768px) {
    padding-block: calc(16 * var(--rem));
  }
}

.test {
  min-height: 100vh;
}

/* *************************************
footer
************************************* */
.footer {
  background-color: var(--brown01);
  padding: 60px 0 0;
  color: #fff;
  @media (max-width: 798px) {
  }
}

.footer__inner {
  padding-inline: 5%;
  padding-bottom: 30px;
}

.footer__container {
  display: flex;
  align-items: flex-start;
  gap: 40px;
  max-width: 1400px;
  margin: auto;
  @media (width < 768px) {
    display: grid;
    justify-items: center;
    gap: calc(10 * var(--rem));
  }
}

.footer__wrap {
  @media (width < 768px) {
    display: contents;
  }
}

.footer__logo {
  display: block;
  width: auto;
  @media (width < 768px) {
    order: 1;
  }
}

.footer__logo a {
  display: flex;
  align-items: center;
  white-space: nowrap;
  color: #fff;
  font-weight: bold;
  gap: 0.5em;
  font-size: 20px;
  @media (max-width: 798px) {
    font-size: 17px;
  }
}

.footer__logo img {
  width: 40px;
  height: 40px;
  object-fit: contain;
  @media (max-width: 798px) {
    width: 30px;
    height: 30px;
  }
}

.footer__meta {
  margin-block-start: calc(10 * var(--rem));
  display: grid;
  gap: calc(4 * var(--rem));
  @media (width < 768px) {
    order: 3;
    margin-block-start: 0;
    padding-left: 0;
  }
}

.footer__address {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0 calc(16 * var(--rem));
}

.footer__list {
  margin-top: 1em;
}

.footer__list li {
  padding: 0.5em 0;
}

.footer__list li a {
  display: block;
  padding: 0;
}

.footer__copy {
  font-size: 12px;
  background-color: var(--white);
  text-align: center;
  padding: 0.5em;
  color: var(--text-color);
}
.footer-list__wrap {
  display: flex;
  gap: 40px;
  @media (width < 768px) {
    display: flex;
    gap: 20px;
  }
}

/* *************************************
contact
************************************* */
.contact {
  margin-block-start: calc(40 * var(--rem));
}

.contact__inner.inner {
  width: min(100%, calc(850 * var(--rem)));
}

/* *************************************
thanks & page-404
************************************* */
.thanks,
.page-404 {
  margin-block-start: calc(40 * var(--rem));
}

.thanks__title,
.page-404__title {
  font-size: calc(30 * var(--rem));
  text-align: center;
  @media (width < 768px) {
    font-size: calc(26 * var(--rem));
  }
}

.thanks__text,
.page-404__text {
  font-size: calc(18 * var(--rem));
  margin-block-start: calc(40 * var(--rem));
  text-align: center;
  @media (width < 768px) {
    font-size: calc(16 * var(--rem));
  }
}

.thanks__btn,
.page-404__btn {
  margin-block-start: calc(40 * var(--rem));
  text-align: center;
}

/* *************************************
main_visual
************************************* */
.main_visual {
  min-height: 600px;
  position: relative;
  overflow: hidden;
  height: 100vh;
  width: 100%;
  padding: 0;
  @media (width < 1029px) {
    aspect-ratio: 5 / 4;
    min-height: 0;
    height: auto;
  }
}

.main_visual::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0.22);
  z-index: 1;
  pointer-events: none;
} 

.main_visual > img.bg {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  position: relative;
  z-index: 0;
  object-position: right;
}


.main_visual .main_contents {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -48%);
  text-align: center;
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding-bottom: 25vh;
  gap: 5vh 0;
  z-index: 2;
  @media (width < 1029px) {
    padding-bottom: 0;
    gap: 0;
    transform: translate(-60%, -61%);
  }
}

.main_visual .main_contents h1 {
  @media (max-width: 798px) {
    padding-top: 30px;
    text-align: left;
  }
}
.main_visual .main_contents .btn {
  @media (max-width: 798px) {
    margin-top: 20px;
  }
}

.main_visual .main_contents h1 > .catch1 {
  color: var(--green01);
 
  display: block;
  font-size: 2.5vw;
  letter-spacing: 2px;
  margin-bottom: 0.5em;
  @media (width < 1029px) {
    font-size: 3vw;
  }
}
.main_visual .main_contents h1 > .catch2 {
  color: #444;
  display: block;
  font-size: 4vw;
  @media (width < 1029px) {
    font-size: 7vw;
  }
}

.main_visual .main_contents .btns {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  @media (max-width: 798px) {
    gap: 20px;
  }
}

.main_visual .main_contents .btns .btn01 {
  font-size: min(2vw, 40px);
  width: 100%;
  transition: all 0.3s;
  @media (max-width: 798px) {
    font-size: 12px;
  }
}

.main_visual .main_contents .btns .btn01:hover {
  opacity: 1;
  transform: scale(1.05);
}

/* 活動紹介 */
.company_information > .inner {
  position: relative;
}
.company_information img.point01 {
  position: absolute;
  bottom: -120px;
  width: auto;
  height: 160px;
  left: -50px;
  opacity: 0.8;
  @media (width < 1400px) {
    right: 5%;
    height: 100px;
    left: auto;
  }
}
.company_information .btn {
  @media (max-width: 798px) {
    margin-top: 60px;
  }
}
.company_information {
  @media (max-width: 798px) {
    margin-bottom: 50px;
    margin-top: 50px;
  }
}
/* 団体紹介・検索 */
.group_introduction {
  background: var(--green02);
  padding-bottom: 100px;
  @media (max-width: 798px) {
    padding-top: 50px;
  }
}

.group_introduction .inner {
  position: relative;
}

.group_introduction img.point02 {
  position: absolute;
  bottom: -200px;
  width: auto;
  height: 220px;
  left: 0px;
  z-index: 1;
  @media (max-width: 798px) {
    bottom: -115px;
    height: 130px;
  }
}

#group_introduction_list {
  margin-bottom: 50px;
  @media (max-width: 798px) {
    margin-bottom: 0px;
  }
}

#group_introduction_list .slide-arrow {
  width: 50px;
  height: 50px;
  background-image: url(../images/common/arrow02.svg);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  position: absolute;
  top: 35%;
  transform: translateY(-50%);
  z-index: 99;
  background-color: #fff;
  border-radius: 50%;
}
#group_introduction_list .prev-arrow {
  left: 1%;
  rotate: 180deg;
  transform-origin: top;
}
#group_introduction_list .next-arrow {
  right: 1%;
}

.group_introduction .white_box {
  max-width: 1000px;
  margin-inline: auto;
}

.white_box {
  background: var(--white-box);
  padding: 40px;
  @media (max-width: 798px) {
    padding: 40px 15px;
  }
}

.white_box h3 {
  position: relative;
  text-align: center;
  display: table;
  margin: 0 auto 20px;
  padding: 0 10px 10px;
  border-bottom: 5px solid var(--yellow01);
  font-size: 25px;
}
.white_box .two_in_one {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  @media (max-width: 798px) {
    grid-template-columns: 100%;
    gap: 20px 0;
  }
}

.white_box .two_in_one > div {
  display: grid;
  grid-template-columns: 100%;
  gap: 20px 0;
}

.white_box h4 {
  display: flex;
  align-items: center;
  gap: 0 10px;
  border-bottom: 1px solid var(--text-color);
  padding: 10px;
  margin-bottom: 15px;
  font-size: 20px;
}
.white_box h4 > img {
  width: 40px;
  height: 40px;
  object-fit: contain;
}

.contents_list01 {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 20px;
  /* margin-left: 50px; */
}
.contents_list01 a {
  background: var(--blue01);
  color: #fff;
  display: inline-block;
  padding: 5px 10px;
}

/*協働マッチング*/
.collaboration_matching {
  padding-bottom: 0;
}
.collaboration_matching .inner {
  position: relative;
}
.collaboration_matching .btn01.green01 {
  @media (max-width: 798px) {
    margin-top: 0px;
  }
}
.collaboration_matching-text {
  line-height: 2.1;
}
.collaboration_matching img.point03 {
  position: absolute;
  bottom: -100px;
  width: auto;
  height: 200px;
  right: 0;
  z-index: 1;
  opacity: 0.8;
  @media (max-width: 798px) {
    height: 108px;
  }
}
.collaboration_matching .item {
  background: #fff;
  padding-bottom: 20px;
}

.collaboration_matching .matching-content {
  background: var(--gray01);
  padding: 40px;
  border-radius: 30px;
  @media (max-width: 798px) {
    padding: 20px;
  }
}

.fujinokuni_contents {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 50px;

  @media (width < 1029px) {
    grid-template-columns: 100%;
  }
}

.fujinokuni_contents > div {
  width: 100%;
  position: relative;
  z-index: 0;
  padding: 80px 0;
  display: grid;
  grid-template-rows: subgrid;
  grid-row: span 5;
  gap: 10px;

  @media (width < 1029px) {
    width: 95%;
  }
}

.fujinokuni_contents > div:after {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  opacity: 0.3;
  z-index: -1;
  top: 0;
  left: 0;
}

.fujinokuni_contents > div.cram_school {
  @media (width < 1029px) {
    margin-right: auto;
    padding-left: 0;
  }
}

.fujinokuni_contents > div.cram_school:after {
  background-color: var(--blue01);
  border-radius: 0 30px 30px 0;
}

.fujinokuni_contents > div.award {
  @media (width < 1029px) {
    margin-left: auto;
    padding-right: 0;
  }
}

.fujinokuni_contents > div.award:after {
  background-color: var(--yellow01);
  border-radius: 30px 0 0 30px;
}

.fujinokuni_contents > div .wrapper {
  width: 80%;
  max-width: 600px;
  display: grid;
  grid-template-rows: inherit;
  grid-row: inherit;
  justify-self: center;
}

.fujinokuni_contents > div .image {
  margin: auto;
  width: 250px;
}
.fujinokuni_contents > div img.text_image {
  width: 100%;
}
.fujinokuni_contents > div img.icon_image {
  width: 50%;
  height: auto;
  aspect-ratio: 1;
  object-fit: contain;
  margin: -60px auto 0;
}

.fujinokuni_contents > div h2 {
  text-align: center;
  font-size: 30px;
  @media (max-width: 798px) {
    font-size: 24px;
  }
}
.fujinokuni_contents > div.cram_school h2 {
  color: var(--blue01);
}
.fujinokuni_contents > div.award h2 {
  color: var(--orange01);
}

.fujinokuni_contents > div .text01 {
  padding: 20px;
  text-align: center;
  background: rgba(255, 255, 255, 0.75);
  width: 100%;
  max-width: 450px;
  margin: 30px auto;
  font-size: min(25px, 1.8vw);
  @media (max-width: 798px) {
    font-size: 1rem;
    padding: 20px 10px;
  }
}

.fujinokuni_contents > div .text02 {
  font-size: min(20px, 1.5vw);
  line-height: 1.8;
  @media (max-width: 798px) {
    font-size: 1rem;
  }
}

.fujinokuni_contents > div .btn {
  margin-top: 20px;
}

.top_about {
  background: var(--gray01);
  position: relative;
  text-align: center;
}
.top_about .text02 {
  line-height: 1.8;
  @media(max-width: 767px) {
    text-align: left;
  }
}

.top_about img.point04 {
  position: absolute;
  bottom: -60px;
  width: auto;
  height: 200px;
  right: 5%;
  z-index: 1;
  @media (width < 1200px) {
    right: 0;
    height: 124px;
  }
}

.top_about .two_in_one {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-areas: "image text";
  @media (width < 1400px) {
    align-items: start;
  }
  @media (width < 1029px) {
    grid-template-columns: 100%;
    grid-template-areas:
      "text"
      "image";
    gap: 30px 0;
  }
}

.top_about .two_in_one > div.text {
  width: 100%;
  grid-area: text;
  display: flex;
  align-items: center;
  justify-content: center;
  @media (width < 1030px) {
    align-items: start;
  }
}

.top_about .two_in_one > div.text .wrapper {
  width: 80%;
  max-width: 700px;
}

.top_about .two_in_one > div.image {
  width: 100%;
  grid-area: image;
  border-radius: 0 30px 30px 0;
  overflow: hidden;
  @media (width < 1029px) {
    width: 95%;
    margin-right: auto;
  }
}
.top_about .two_in_one > div.image > img {
  @media (width < 1029px) {
    aspect-ratio: 2 / 1;
    object-fit: cover;
  }
}

.top_about .title01 {
  margin-bottom: 30px;
}
.top_about .text01 {
  font-weight: bold;
  font-size: 25px;
  margin-bottom: 30px;
}

.top_topics {
  background-color: #fff;
  position: relative;
  z-index: 0;
  overflow: hidden;
}
.top_topics:before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  z-index: -1;
  top: 0;
  left: 0;
  opacity: 0.5;
  background: var(--blue02);
}
.top_topics:after {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  z-index: -1;
  top: 0;
  left: 0;
  background-image: repeating-linear-gradient(45deg, rgba(0, 0, 0, 0.03), rgba(0, 0, 0, 0.03) 20px, transparent 0, transparent 40px);
}

.top_topics .wrapper {
  width: 100%;
  margin: auto;
  display: grid;
  grid-template-columns: 30% 1fr;
  grid-template-rows: auto auto;
  align-items: center;

  @media (width < 1029px) {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto auto;
    gap: 30px 0;
  }
}

.top_topics .title01 {
  margin: 0;
  @media (width < 1029px) {
    grid-column: 1 / 2;
    grid-row: 1 / 2;
  }
}

.top_topics .title01 .jp {
  color: var(--text-color);
}

.top_topics .box {
  background: #fff;
  grid-column: 2 / 3;
  grid-row: 1 / 3;
  padding: 40px 10% 50px;
  border-radius: 50px 0 0 50px;
  position: relative;
  z-index: 0;
  @media (width < 1029px) {
    grid-column: 1 / 3;
    grid-row: 3 / 3;
    width: 95%;
    margin-left: auto;
  }
}
.top_topics .box:after {
  content: "";
  display: block;
  width: calc(100% + 50px);
  height: 100%;
  position: absolute;
  z-index: -1;
  top: 0;
  left: 0;
  background: #fff;
  border-radius: 50px;
}

.top_topics .btn {
  margin: 0;
  @media (width < 1029px) {
    grid-column: 1 / 3;
    grid-row: 2 / 2;
    align-self: end;
  }
}
.top_topics .meta-row {
  @media (min-width: 799px) {
    display: contents;
  }
}

.post_list01 {
  display: grid;
  grid-template-columns: 100px 150px 1fr;
}
.post_list01 .post_item {
  display: grid;
  grid-template-columns: subgrid;
  grid-column: 3 span;
  @media (max-width: 798px) {
    grid-template-columns: minmax(0, 1fr);
    grid-column: 1 / -1;
    width: 100%;
    min-width: 0;
  }
}

.post_list01 .post_item a {
  align-items: center;
  display: grid;
  grid-template-columns: inherit;
  grid-column: inherit;
  gap: 0 20px;
  padding: 20px;
  border-bottom: 2px dotted var(--blue01);
}

.post_list01 .post_item a .date {
}
.post_list01 .post_item a .category {
  background: var(--blue01);
  color: #fff;
  text-align: center;
  border-radius: 100vmax;
  padding: 5px 10px;
  @media (max-width: 798px) {
    width: fit-content;
    border-radius: 4px;
    padding: 2px 8px;
    font-size: 0.8rem;
  }
}

/* スマホ表示でdateとcategoryを横並びにし、その下にテキストが来るようにする */
@media (max-width: 798px) {
  .post_list01 {
    grid-template-columns: 1fr;
    width: 100%;
  }
  .post_list01 .post_item a {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    min-width: 0;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }
  .post_list01 .post_item a .meta-row {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 10px;
    width: 100%;
    align-items: center;
  }
  .post_list01 .post_item a .text {
    width: 100%;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    overflow-wrap: normal;
    word-break: normal;
    display: block;
  }
}

.bottom_contact {
  background-color: var(--white-box);
}

.bottom_contact > .inner {
  max-width: 800px;
  position: relative;
}

.bottom_contact img.point05 {
  position: absolute;
  bottom: -100px;
  width: auto;
  height: 200px;
  right: 100%;
  z-index: 1;
  @media (width < 1200px) {
    right: auto;
    left: 0;
    height: 110px;
  }
}
.bottom_contact img.point06 {
  position: absolute;
  bottom: -110px;
  width: auto;
  height: 200px;
  left: 100%;
  z-index: 1;
  @media (width < 1200px) {
    right: 5%;
    left: auto;
    height: 120px;
  }
}

.bottom_contact .title01 {
  margin-bottom: 20px;
}
.bottom_contact .title01 + .subtext {
  margin-bottom: calc(20 * var(--rem));
  font-size: 24px;
  @media (max-width: 798px) {
    font-size: 18px;
    margin-bottom: 10px;
    text-align: center;
  }
}

.bottom_contact .two_in_one {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 60px;
  @media (width < 1200px) {
    width: 350px;
    max-width: 100%;
    margin: auto;
    gap: 30px;
  }
}

.bottom_contact .two_in_one > div {
  width: auto;
  max-width: calc(50% - 30px);
  text-align: center;

  @media (width < 1200px) {
    width: 100%;
    max-width: 100%;
  }
}

.bottom_contact .tel_number {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
  font-size: 40px;
}

.bottom_contact .tel_number img {
  width: 40px;
  height: 40px;
  object-fit: contain;
}

.bottom_contact .tel_number + .time {
  text-align: center;
  padding-left: 50px;
  font-size: 18px;
}

.bottom_contact .btn01 {
  padding: 1em 2em;
}
/*============================
活動紹介ページ
===============================*/
/* activity-items__card 上部ラウンド背景 */
.activity-items__card {
  position: relative;
  z-index: 0;
}
/* .activity-items__card::before {
  content: "";
    position: absolute;
    top: calc(-214 * var(--rem));
    left: 50%;
    transform: translateX(-50%) scaleX(1.35);
    transform-origin: 50% 0;
    width: 100vw;
    height: calc(520 * var(--rem));
    background:  var(--green02);
    border-radius: 50% 50% 0 0 / 100% 100% 0 0;
    z-index: 0;
    pointer-events: none;
} */
.two_in_one.activity-intro {
  display: flex;
  justify-content: center;
  gap: 40px;
  align-items: center;
  margin-bottom: 120px;
  position: relative;
  z-index: 10;
}
.activity-section__text {
  font-size: 20px;
  line-height: 1.8;
  padding: 20px 0;
}
.activity-section__text h3 {
  color: var(--blue01);
  font-size: 28px;
  margin-bottom: 20px;
}
.activity-section__image {
  text-align: center;
}
.activity-section__image img {
  max-width: 100%;
}
.activity-items__card {
  margin: 0 calc(50% - 50vw);
  padding: 0px 0 120px 0;
}

@media (max-width: 900px) {
  .activity-intro {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .activity-intro .image {
    order: -1;
  }
}

.activity-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
  margin-top: 40px;
}
.activity-cards .item {
  transition:
    transform 0.2s,
    box-shadow 0.2s;
}
.activity-cards .item:hover {
  transform: translateY(-8px) scale(1.03);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
  z-index: 1;
}
.activity-cards .box {
  background: #fff;
  padding: 24px 18px 18px 18px;
  text-align: center;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
}
.activity-cards .image {
  margin-bottom: 18px;
}
.activity-cards .image img {
  width: 100%;
  max-width: 260px;
  height: auto;
  object-fit: cover;
}
.activity-cards h3 {
  color: var(--green01);
  font-size: 20px;
  margin-bottom: 10px;
  font-weight: bold;
}
.activity-cards p {
  font-size: 16px;
  color: var(--text-color);
}

@media (max-width: 900px) {
  .activity-cards {
    grid-template-columns: 1fr;
    gap: 20px;
  }
}
/* 活動紹介ページ */
.activity-section {
  padding: 20px 0 100px 0;
}
.activity-section .inner {
  max-width: 1200px;
  margin: 0 auto;
}
.activity-section .sub-page__title {
  text-align: center;
  margin-bottom: 40px;
}
.activity-section .sub-page__title-jp {
  color: var(--green01);
  font-size: 36px;
  font-weight: bold;
  margin-bottom: 10px;
}
.activity-section .sub-page__title-en {
  color: var(--blue01);
  font-size: 18px;
  letter-spacing: 0.1em;
}
/*=================================
活動紹介・検索
=================================*/
.group-list__wrap {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 30px;
  max-width: 1200px;
  margin: 0 auto;
}
.group-list .item {
  border-radius: 20px;
  box-shadow: 2px 4px 6px rgba(0, 0, 0, 0.1);
  padding: 0 0 30px 0;
}
.group-list .item .image {
  border-radius: 20px 20px 0 0;
  aspect-ratio: 4 / 3;
}
.group-list .category {
  padding: 0 20px;
}
.group-list .text {
  padding: 0 20px;
}
.group-num {
  max-width: 500px;
  margin: 0 auto;
  padding-top: 80px;
}
.group-num__list {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
}
.group-num__item {
  border: 1px solid #ccc;
  padding: 5px 10px;
}
.group-num__list a:hover {
  background-color: var(--green02);
}
.group-section .white_box {
  background-color: #fff;
  border: 1px solid #ccc;
}
/*=================================
活動紹介ページ詳細
=================================*/

/*=================================
協働マッチングページ詳細
=================================*/
.archive-matching {
  padding-bottom: 100px;
}
/* *************************************
地域共生塾ページ
************************************* */

.cram-school-hero {
  background: linear-gradient(135deg, rgba(126, 175, 224, 0.1) 0%, rgba(126, 175, 224, 0.3) 100%);
  padding: clamp(60px, 10vw, 100px) 0 clamp(40px, 8vw, 80px);
  position: relative;
  overflow: hidden;
}

.cram-school-hero::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-image: repeating-linear-gradient(45deg, rgba(126, 175, 224, 0.05), rgba(126, 175, 224, 0.05) 20px, transparent 0, transparent 40px);
  pointer-events: none;
}

.cram-school-hero__content {
  text-align: center;
  position: relative;
  z-index: 1;
}

.cram-school-hero__image {
  margin: 0 auto 30px;
  width: 250px;
}

.cram-school-hero__image .text_image {
  width: 100%;
}

.cram-school-hero__image .icon_image {
  width: 50%;
  height: auto;
  aspect-ratio: 1;
  object-fit: contain;
  margin: -60px auto 0;
}

.cram-school-hero__title {
  font-size: clamp(32px, 5vw, 48px);
  color: var(--blue01);
  font-weight: bold;
  margin-bottom: 20px;
}

.cram-school-hero__lead {
  font-size: clamp(18px, 3vw, 24px);
  line-height: 1.8;
  color: var(--text-color);
}

/* 共生塾について */
.cram-school-about {
  background: var(--gray01);
  position: relative;
}

.cram-school-about .inner {
  max-width: 900px;
  position: relative;
}

.cram-school-about__content {
  background-image: linear-gradient(0deg, transparent calc(100% - 1px), #f0f0f0 calc(100% - 1px)), linear-gradient(90deg, transparent calc(100% - 1px), #f0f0f0 calc(100% - 1px));
  background-size: 16px 16px;
  background-repeat: repeat;
  background-position: center center;
  background-color: #fff;
  padding: clamp(30px, 5vw, 50px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.cram-school-about__text {
  font-size: clamp(16px, 2vw, 20px);
  line-height: 2;
  margin-bottom: 1.5em;
}

.cram-school-about__text:last-child {
  margin-bottom: 0;
}

.cram-school-about img.point01 {
  position: absolute;
  bottom: -100px;
  width: auto;
  height: 250px;
  right: -50px;
  z-index: 1;
  @media (width < 1400px) {
    right: 5%;
  }
  @media (max-width: 768px) {
    height: 170px;
  }
}

/* 活動の特徴 */
.cram-school-features {
  position: relative;
}

.cram-school-features .inner {
  position: relative;
}

.cram-school-features__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 30px;
  max-width: 1200px;
  margin: 0 auto;
}

.cram-school-features__item {
  background: #fff;
  border: 2px solid var(--blue01);
  border-radius: 20px;
  padding: 40px 20px;
  text-align: center;
  transition:
    transform 0.3s ease,
    box-shadow 0.3s ease;
}

.cram-school-features__icon {
  width: 80px;
  height: 80px;
  margin: 0 auto 20px;
  background: var(--blue03);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.cram-school-features__icon img {
  width: 50px;
  height: 50px;
  object-fit: contain;
}

.cram-school-features__title {
  font-size: 20px;
  font-weight: bold;
  color: var(--blue01);
  margin-bottom: 15px;
}

.cram-school-features__text {
  font-size: 16px;
  line-height: 1.8;
  color: var(--text-color);
}

.cram-school-features img.point02 {
  position: absolute;
  bottom: -100px;
  width: auto;
  height: 200px;
  right: 0;
  z-index: 1;
}

.symbiosis-school__section {
  margin-top: -80px;
}

/* おすすめな方 */
.cram-school-recommend {
  background: var(--green02);
  background-image: repeating-linear-gradient(45deg, rgba(0, 0, 0, 0.03), rgba(0, 0, 0, 0.03) 20px, transparent 0, transparent 40px);
}

.cram-school-recommend__content {
  max-width: 800px;
  margin: 0 auto;
  background: #fff;
  padding: clamp(30px, 5vw, 50px);
  border-radius: 20px;
}

.cram-school-recommend__list {
  list-style: none;
  padding: 0;
  margin: 0 0 30px;
}

.cram-school-recommend__item {
  display: flex;
  align-items: flex-start;
  gap: 15px;
  padding: 15px 0;
  border-bottom: 1px dashed var(--border-color01);
}

.cram-school-recommend__item:last-child {
  border-bottom: none;
}

.cram-school-recommend__icon {
  flex-shrink: 0;
  width: 30px;
  height: 30px;
  background: var(--blue01);
  color: #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: bold;
  font-size: 18px;
}

.cram-school-recommend__text {
  flex: 1;
  font-size: clamp(16px, 2vw, 18px);
  line-height: 1.8;
}

.cram-school-recommend__note {
  background: var(--yellow02);
  padding: 15px 20px;
  font-size: 16px;
  margin-top: 20px;
}

/* 活動事例 */
.cram-school-cases {
  background: var(--gray01);
  position: relative;
}

.cram-school-cases .inner {
  max-width: 900px;
  position: relative;
}

.cram-school-cases__content {
  text-align: center;
}

.cram-school-cases__text {
  font-size: clamp(16px, 2vw, 20px);
  line-height: 2;
  margin-bottom: 1.5em;
  @media(max-width: 768px) {
    text-align: left;
  }
}

.cram-school-cases img.point03 {
  position: absolute;
  bottom: -100px;
  width: auto;
  height: 200px;
  left: -50px;
  z-index: 1;
  @media (max-width: 768px) {
    height: 75px;
    left: 5%;
  }
}

/* 募集情報 */
.cram-school-recruitment {
  position: relative;
}

.cram-school-recruitment .inner {
  position: relative;
}

.cram-school-recruitment__lead {
  text-align: center;
  font-size: clamp(16px, 2vw, 20px);
  line-height: 2;
  margin-bottom: 50px;
    @media(max-width: 768px) {
    text-align: left;
  }
}

.cram-school-recruitment__list {
  display: grid;
  gap: 30px;
  max-width: 900px;
  margin: 0 auto;
}

.cram-school-recruitment__item {
  background: #fff;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  transition:
    transform 0.3s ease,
    box-shadow 0.3s ease;
}

.cram-school-recruitment__item:hover {
  transform: translateY(-5px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
}

.cram-school-recruitment__link {
  display: grid;
  grid-template-columns: 250px 1fr;
  gap: 0;
  @media (width < 768px) {
    grid-template-columns: 1fr;
  }
}

.cram-school-recruitment__image {
  width: 100%;
  height: 100%;
  overflow: hidden;
  aspect-ratio: 1 / 1;
}

.cram-school-recruitment__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}

.cram-school-recruitment__item:hover .cram-school-recruitment__image img {
  transform: scale(1.1);
}

.cram-school-recruitment__content {
  padding: 30px;
  display: flex;
  flex-direction: column;
  gap: 15px;
}

.cram-school-recruitment__title {
  font-size: clamp(18px, 2 5vw, 24px);
  font-weight: bold;
  color: var(--blue01);
  line-height: 1.5;
}

.cram-school-recruitment__excerpt {
  font-size: 16px;
  line-height: 1.8;
  color: var(--text-color);
}

.cram-school-recruitment__meta {
  display: flex;
  align-items: center;
  gap: 15px;
  margin-top: auto;
}

.cram-school-recruitment__date {
  font-size: 14px;
  color: #666;
}

.cram-school-recruitment__badge {
  display: inline-block;
  padding: 5px 15px;
  border-radius: 100vmax;
  font-size: 14px;
  font-weight: bold;
  line-height: 1;
}

.cram-school-recruitment__badge--open {
  background: var(--green01);
  color: #fff;
}

.cram-school-recruitment__badge--closed {
  background: #ccc;
  color: #fff;
}

.cram-school-recruitment__empty {
  text-align: center;
  font-size: 18px;
  color: #666;
  padding: 60px 20px;
  background: var(--gray01);
  border-radius: 20px;
}

.cram-school-recruitment img.point04 {
  position: absolute;
  bottom: -100px;
  width: auto;
  height: 200px;
  right: 5%;
  z-index: 1;
  @media (width < 1200px) {
    right: 0;
  }
}

/* レスポンシブ調整 */
@media (width < 1030px) {
  .cram-school-features__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (width < 768px) {
  .cram-school-features__grid {
    grid-template-columns: 1fr;
  }

  .cram-school-hero__image {
    width: 200px;
  }

  .cram-school-hero__image .icon_image {
    margin: -40px auto 0;
  }
}
/* *************************************
地域共生塾アーカイブページ
************************************* */

.archive-cram-school {
  padding: clamp(40px, 8vw, 80px) 0;
}

.archive-cram-school .inner {
  max-width: 1000px;
  margin: 0 auto;
}

.archive-cram-school__lead {
  text-align: center;
  font-size: clamp(16px, 2vw, 18px);
  line-height: 2;
  margin-bottom: 50px;
  color: var(--text-color);
}

/* 一覧のスタイルは既存の .cram-school-recruitment__list を使用 */

.archive-cram-school__pagination {
  margin-top: 60px;
  text-align: center;
}

.archive-cram-school__pagination .page-numbers {
  display: inline-flex;
  gap: 10px;
  list-style: none;
  padding: 0;
  margin: 0;
  flex-wrap: wrap;
  justify-content: center;
}

.archive-cram-school__pagination .page-numbers li {
  display: inline-block;
}

.archive-cram-school__pagination .page-numbers a,
.archive-cram-school__pagination .page-numbers span {
  display: inline-block;
  padding: 10px 15px;
  background: #fff;
  border: 2px solid var(--blue01);
  color: var(--blue01);
  border-radius: 5px;
  text-decoration: none;
  transition: all 0.3s;
  min-width: 45px;
  text-align: center;
}

.archive-cram-school__pagination .page-numbers a:hover {
  background: var(--blue01);
  color: #fff;
}

.archive-cram-school__pagination .page-numbers .current {
  background: var(--blue01);
  color: #fff;
  font-weight: bold;
}

.archive-cram-school .btn {
  margin-top: 60px;
}

/* ページヘッド調整 */
.page-head {
  position: relative;
  margin-bottom: 0;
  @media (max-width: 798px) {
    margin-bottom: 50px;
  }
}

.page-head__img {
  position: relative;
  width: 100%;
  height: 250px;
  overflow: hidden;
  margin: 0;
}


.single .page-head__img::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.4);
  z-index: 1;
  pointer-events: none;
}

.page-head__img img {
  position: relative;
  z-index: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.page-head__title {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  text-align: center;
  color: #fff;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5);
  z-index: 1;
}

.page-head__title-jp {
  font-size: clamp(28px, 5vw, 40px);
  font-weight: bold;
  margin-bottom: 10px;
}

.page-head__title-en {
  font-size: clamp(14px, 2vw, 18px);
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

@media (width < 768px) {
  .archive-cram-school__pagination .page-numbers {
    gap: 5px;
  }

  .archive-cram-school__pagination .page-numbers a,
  .archive-cram-school__pagination .page-numbers span {
    padding: 8px 12px;
    font-size: 14px;
    min-width: 40px;
  }
}
/* *************************************
地域共生塾 個別投稿ページ
************************************* */

.single-cram-school {
  padding: clamp(40px, 8vw, 80px) 0;
  background: var(--gray01);
  margin-top: -80px;
}

.single-cram-school .inner {
  max-width: 900px;
  margin: 0 auto;
}

/* メタ情報 */
.single-cram-school__meta {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 20px;
  border-radius: 10px;
  margin-bottom: 10px;
  flex-wrap: wrap;
}

.single-cram-school__date {
  font-size: 16px;
  color: #666;
}

.single-cram-school__badge {
  display: inline-block;
  padding: 8px 20px;
  border-radius: 100vmax;
  font-size: 16px;
  font-weight: bold;
  line-height: 1;
}

.single-cram-school__badge--open {
  background: var(--green01);
  color: #fff;
}

.single-cram-school__badge--closed {
  background: #ccc;
  color: #fff;
}

/* 本文 */
.single-cram-school__content {
  background: #fff;
  padding: clamp(30px, 5vw, 60px);
  border-radius: 20px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  line-height: 2;
  font-size: 18px;
  margin-bottom: 50px;
}

.single-cram-school__content h2 {
  font-size: clamp(24px, 4vw, 32px);
  color: var(--blue01);
  font-weight: bold;
  margin-bottom: 30px;
  padding-bottom: 10px;
  border-bottom: 3px solid var(--blue01);
}

.single-cram-school__content h2: first-child {
  margin-top: 0;
}

.single-cram-school__content h3 {
  font-size: clamp(20px, 3vw, 26px);
  color: var(--blue01);
  font-weight: bold;
  margin-top: 40px;
  margin-bottom: 15px;
  padding-left: 15px;
}

.single-cram-school__content p {
  margin-bottom: 1.5em;
}

.single-cram-school__content ul,
.single-cram-school__content ol {
  margin: 1.5em 0 1.5em 2em;
}

.single-cram-school__content li {
  margin-bottom: 0.5em;
}

.single-cram-school__content img {
  max-width: 100%;
  height: auto;
  border-radius: 10px;
  margin: 30px 0;
}

.single-cram-school__content table {
  width: 100%;
  border-collapse: collapse;
  margin: 30px 0;
}

.single-cram-school__content th,
.single-cram-school__content td {
  padding: 15px;
  border: 1px solid var(--border-color01);
  text-align: left;
}

.single-cram-school__content th {
  background: var(--blue03);
  color: var(--text-color);
  font-weight: bold;
}

/* ナビゲーション */
.single-cram-school__nav {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin-bottom: 50px;
}

.single-cram-school__nav-prev,
.single-cram-school__nav-next {
  min-height: 100px;
}

.single-cram-school__nav a {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 20px;
  background: #fff;
  border: 2px solid var(--blue01);
  border-radius: 10px;
  transition: all 0.3s;
  height: 100%;
}

.single-cram-school__nav a:hover {
  background: var(--blue03);
  transform: translateY(-3px);
  box-shadow: 0 5px 15px rgba(126, 175, 224, 0.3);
}

.single-cram-school__nav .nav-label {
  font-size: 14px;
  color: var(--blue01);
  font-weight: bold;
}

.single-cram-school__nav .nav-title {
  font-size: 16px;
  color: var(--text-color);
  line-height: 1.5;
}

.single-cram-school__nav-next a {
  text-align: right;
}

.single-cram-school__buttons {
  margin-top: 50px;
}

@media (width < 768px) {
  .single-cram-school__nav {
    grid-template-columns: 1fr;
  }

  .single-cram-school__nav-next a {
    text-align: left;
  }

  .single-cram-school__content {
    font-size: 16px;
  }

  .single-cram-school__content h2 {
    margin-top: 30px;
  }

  .single-cram-school__content h3 {
    margin-top: 25px;
  }
}
/*==================================
ふじのくに共生大賞
==================================*/
.award-about {
  background: var(--gray01);
  position: relative;
  margin-top: -80px;
}

.award-about .inner {
  max-width: 900px;
  position: relative;
}

.award-about__content {
  background-image: linear-gradient(0deg, transparent calc(100% - 1px), #f0f0f0 calc(100% - 1px)), linear-gradient(90deg, transparent calc(100% - 1px), #f0f0f0 calc(100% - 1px));
  background-size: 16px 16px;
  background-repeat: repeat;
  background-position: center center;
  background-color: #fff;
  padding: clamp(30px, 5vw, 50px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.award-about__text {
  font-size: clamp(16px, 2vw, 20px);
  line-height: 2;
  margin-bottom: 1.5em;
}

.award-about__text:last-child {
  margin-bottom: 0;
}

.award-about img.point01 {
  position: absolute;
  bottom: -100px;
  width: auto;
  height: 230px;
  right: -50px;
  z-index: 1;
  @media (width < 1400px) {
    right: 5%;
  }
  @media (max-width: 768px) {
    height: 160px;
  }
}

.award-features {
  position: relative;
}

.award-features .inner {
  position: relative;
}

.award-features__intro {
  max-width: 800px;
  margin: 0 auto 50px;
  text-align: center;
  font-size: clamp(16px, 2vw, 18px);
  line-height: 2;
}

.award-features__intro p {
  margin-bottom: 1.5em;
}

.award-features__emphasis {
  font-weight: bold;
  font-size: clamp(18px, 2 5vw, 22px);
  color: var(--orange01);
  margin-top: 30px;
}

.award-features__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 30px;
  max-width: 1200px;
  margin: 0 auto;
}

.award-features__item {
  background: #fff;
  border: 2px solid var(--orange01);
  border-radius: 20px;
  padding: 40px 20px;
  text-align: center;
  transition:
    transform 0.3s ease,
    box-shadow 0.3s ease;
}
.award-features__icon {
  width: 80px;
  height: 80px;
  margin: 0 auto 20px;
  background: var(--yellow02);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.award-features__icon img {
  width: 50px;
  height: 50px;
  object-fit: contain;
}

.award-features__title {
  font-size: 20px;
  font-weight: bold;
  color: var(--orange01);
  margin-bottom: 15px;
}

.award-features__text {
  font-size: 16px;
  line-height: 1.8;
  color: var(--text-color);
}

.award-features img.point02 {
  position: absolute;
  bottom: -100px;
  width: auto;
  height: 200px;
  left: -50px;
  z-index: 1;
  @media (width < 1400px) {
    left: 0;
  }
}

.award-recommend {
  background: rgba(235, 160, 102, 0.8);
  background-image: repeating-linear-gradient(45deg, rgba(0, 0, 0, 0.03), rgba(0, 0, 0, 0.03) 20px, transparent 0, transparent 40px);
}

.award-recommend .title01 .jp {
  color: #fff;
}

.award-recommend .title01 .en {
  color: rgba(255, 255, 255, 0.8);
}

.award-recommend__content {
  max-width: 800px;
  margin: 0 auto;
  background: #fff;
  padding: clamp(30px, 5vw, 50px);
  border-radius: 20px;
}

.award-recommend__list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.award-recommend__item {
  display: flex;
  align-items: flex-start;
  gap: 15px;
  padding: 15px 0;
  border-bottom: 1px dashed var(--border-color01);
}

.award-recommend__item:last-child {
  border-bottom: none;
}

.award-recommend__icon {
  flex-shrink: 0;
  width: 30px;
  height: 30px;
  background: var(--orange01);
  color: #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: bold;
  font-size: 18px;
}

.award-recommend__text {
  flex: 1;
  font-size: clamp(16px, 2vw, 18px);
  line-height: 1.8;
}
.award-activities {
  background: var(--gray01);
  position: relative;
}

.award-activities .inner {
  max-width: 900px;
  position: relative;
}

.award-activities__content {
  text-align: center;
}

.award-activities__text {
  font-size: clamp(16px, 2vw, 20px);
  line-height: 2;
  margin-bottom: 2em;
}

.award-activities__benefits {
  background-image: linear-gradient(0deg, transparent calc(100% - 1px), #f0f0f0 calc(100% - 1px)), linear-gradient(90deg, transparent calc(100% - 1px), #f0f0f0 calc(100% - 1px));
  background-size: 16px 16px;
  background-repeat: repeat;
  background-position: center center;
  background-color: #fff;
  padding: clamp(30px, 5vw, 40px);
  text-align: left;
  max-width: 600px;
  margin: 0 auto;
}

.award-activities__benefits h3 {
  font-size: clamp(18px, 2.5vw, 22px);
  color: var(--orange01);
  margin-bottom: 20px;
}

.award-activities__benefits ul {
  list-style: none;
  padding: 0;
  margin: 0 0 20px 0;
}

.award-activities__benefits li {
  padding: 10px 0 10px 30px;
  position: relative;
  font-size: clamp(16px, 2vw, 18px);
}

.award-activities__benefits li::before {
  content: "●";
  position: absolute;
  left: 0;
  color: var(--orange01);
}

.award-activities__note {
  font-size: 16px;
  margin-top: 15px;
}

.award-activities img.point03 {
  position: absolute;
  bottom: -100px;
  width: auto;
  height: 200px;
  right: -50px;
  z-index: 1;
  @media (width < 1400px) {
    right: 0;
  }
}

.award-recruitment {
  position: relative;
  padding-bottom: 150px;
  @media(max-width: 768px) {
    padding-bottom: 20px;
  }
}

.award-recruitment .inner {
  position: relative;
  max-width: 1000px;
}

.award-recruitment__intro {
  text-align: center;
  font-size: clamp(16px, 2vw, 20px);
  line-height: 2;
  margin-bottom: 60px;
}

.award-recruitment__intro p {
  margin-bottom: 1em;
}

.award-recruitment__section {
  background: #fff;
  padding: clamp(30px, 5vw, 50px);
  margin-bottom: 40px;
  box-shadow: 2px 4px 6px rgba(0, 0, 0, 0.08);
}

.award-recruitment__heading {
  display: flex;
  align-items: center;
  gap: 15px;
  font-size: clamp(22px, 3vw, 28px);
  color: var(--orange01);
  font-weight: bold;
  margin-bottom: 30px;
  padding-bottom: 15px;
  border-bottom: 3px solid var(--orange01);
}

.award-recruitment__heading-icon {
  width: 30px;
  padding-top: 5px;
}

.award-recruitment__methods {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 30px;
}

.award-recruitment__method {
  background: var(--yellow02);
  padding: 30px;
  border-radius: 15px;
}

.award-recruitment__method h4 {
  font-size: clamp(18px, 2.5vw, 22px);
  color: var(--orange01);
  font-weight: bold;
  margin-bottom: 15px;
}

.award-recruitment__method p {
  font-size: 16px;
  line-height: 1.8;
  margin-bottom: 1em;
}

.award-recruitment__note {
  font-size: 14px;
  color: #666;
  margin-top: 10px;
}

.award-recruitment__downloads {
  display: grid;
  gap: 20px;
}

.award-recruitment__download-item {
  background: var(--gray01);
  padding: 20px;
  border-radius: 10px;
}

.award-recruitment__download-link {
  display: flex;
  align-items: center;
  gap: 15px;
  font-size: clamp(16px, 2vw, 18px);
  font-weight: bold;
  color: var(--orange01);
  transition: opacity 0.3s;
}

.award-recruitment__download-link:hover {
  opacity: 0.7;
}
.award-recruitment__download-text {
  font-size: calc(18 * var(--rem));
  color: var(--blue02);
}

.award-recruitment__download-note {
  font-size: 14px;
  color: #666;
  margin-top: 10px;
  padding-left: 45px;
}

.award-recruitment__info-list {
  display: grid;
  gap: 20px;
}

.award-recruitment__info-list dt {
  font-weight: bold;
  color: var(--orange01);
  font-size: clamp(16px, 2vw, 18px);
  margin-bottom: 5px;
}

.award-recruitment__info-list dd {
  font-size: clamp(18px, 2.5vw, 22px);
  padding: 15px 20px;
  background: var(--yellow02);
  border-radius: 10px;
}

.award-recruitment__info-list a {
  color: var(--blue01);
  display: flex;
  align-items: center;
  gap: 10px;
  margin-block-start: calc(10 * var(--rem));
  margin-inline-start: calc(10 * var(--rem));
}
.award-recruitment__info-list img {
  width: 25px;
  height: 25px;
}

.award-recruitment__resource-links {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 20px;
  margin-bottom: 30px;
}

.award-recruitment__resource-link {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 15px 20px;
  background: var(--gray01);
  border: 2px solid var(--orange01);
  border-radius: 10px;
  font-weight: bold;
  color: var(--orange01);
  transition: all 0.3s;
}

.award-recruitment__resource-link:hover {
  background: var(--orange01);
  color: #fff;
}

.award-recruitment__winner-links {
  text-align: center;
}

.award-recruitment img.point04 {
  position: absolute;
  bottom: -100px;
  width: auto;
  height: 200px;
  left: 5%;
  z-index: 1;
  @media (width < 1200px) {
    left: 0;
  }
}

@media (width < 1030px) {
  .award-features__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (width < 768px) {
  .award-features__grid {
    grid-template-columns: 1fr;
  }

  .award-hero__image {
    width: 200px;
  }

  .award-hero__image .icon_image {
    margin: -40px auto 0;
  }

  .award-recruitment__methods {
    grid-template-columns: 1fr;
  }

  .award-recruitment__resource-links {
    grid-template-columns: 1fr;
  }
}
/* 活動内容 → 過去の受賞団体 */
.award-activities {
  background: var(--gray01);
  position: relative;
}

.award-activities .inner {
  max-width: 1000px;
  position: relative;
}

.award-activities__lead {
  text-align: center;
  font-size: clamp(16px, 2vw, 20px);
  line-height: 2;
  margin-bottom: 50px;
  color: var(--text-color);
}

.award-winners__list {
  display: grid;
  gap: 30px;
  max-width: 900px;
  margin: 0 auto 50px;
}

.award-winners__item {
  background: #fff;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  transition:
    transform 0.3s ease,
    box-shadow 0.3s ease;
}

.award-winners__item:hover {
  transform: translateY(-5px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
}

.award-winners__link {
  display: grid;
  grid-template-columns: 250px 1fr;
  gap: 0;
  @media (width < 768px) {
    grid-template-columns: 1fr;
  }
}

.award-winners__image {
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.award-winners__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}

.award-winners__item:hover .award-winners__image img {
  transform: scale(1.1);
}

.award-winners__content {
  padding: 30px;
  display: flex;
  flex-direction: column;
  gap: 15px;
}

.award-winners__title {
  font-size: clamp(18px, 2 5vw, 24px);
  font-weight: bold;
  color: var(--orange01);
  line-height: 1.5;
}

.award-winners__excerpt {
  font-size: 16px;
  line-height: 1.8;
  color: var(--text-color);
}

.award-winners__meta {
  display: flex;
  align-items: center;
  gap: 15px;
  margin-top: auto;
}

.award-winners__year {
  display: inline-block;
  padding: 8px 20px;
  background: var(--yellow02);
  color: var(--orange01);
  border-radius: 100vmax;
  font-size: 16px;
  font-weight: bold;
  border: 2px solid var(--orange01);
}

.award-winners__empty {
  text-align: center;
  font-size: 18px;
  color: #666;
  padding: 60px 20px;
  background: #fff;
  border-radius: 20px;
}

.award-activities img.point03 {
  position: absolute;
  bottom: -100px;
  width: auto;
  height: 200px;
  right: -50px;
  z-index: 1;
  @media (width < 1400px) {
    right: 0;
  }
  @media (max-width: 768px) {
    height: 95px;
    bottom: -84px;
  }
}

.archive-award {
  padding: clamp(40px, 8vw, 80px) 0;
}

.archive-award .inner {
  max-width: 1000px;
  margin: 0 auto;
}

.archive-award__lead {
  text-align: center;
  font-size: clamp(16px, 2vw, 18px);
  line-height: 2;
  margin-bottom: 50px;
  color: var(--text-color);
}

.archive-award__pagination {
  margin-top: 60px;
  text-align: center;
}

.archive-award__pagination .page-numbers {
  display: inline-flex;
  gap: 10px;
  list-style: none;
  padding: 0;
  margin: 0;
  flex-wrap: wrap;
  justify-content: center;
}

.archive-award__pagination .page-numbers li {
  display: inline-block;
}

.archive-award__pagination .page-numbers a,
.archive-award__pagination .page-numbers span {
  display: inline-block;
  padding: 10px 15px;
  background: #fff;
  border: 2px solid var(--orange01);
  color: var(--orange01);
  border-radius: 5px;
  text-decoration: none;
  transition: all 0.3s;
  min-width: 45px;
  text-align: center;
}

.archive-award__pagination .page-numbers a:hover {
  background: var(--orange01);
  color: #fff;
}

.archive-award__pagination .page-numbers .current {
  background: var(--orange01);
  color: #fff;
  font-weight: bold;
}

.archive-award .btn {
  margin-top: 60px;
}

/* *************************************
地域共生大賞 個別投稿ページ
************************************* */

.single-award {
  padding: clamp(40px, 8vw, 80px) 0;
  background: var(--gray01);
  margin-top: -80px;
}

.single-award .inner {
  max-width: 900px;
  margin: 0 auto;
}

.single-award__meta {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 20px;

  border-radius: 10px;
  margin-bottom: 30px;
  flex-wrap: wrap;
  justify-content: center;
}

.single-award__year {
  display: inline-block;
  padding: 12px 30px;
  background: var(--yellow02);
  color: var(--orange01);
  border-radius: 100vmax;
  font-size: 20px;
  font-weight: bold;
  border: 3px solid var(--orange01);
}

.single-award__content {
  background: #fff;
  padding: clamp(30px, 5vw, 60px);
  border-radius: 20px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  line-height: 2;
  font-size: 18px;
  margin-bottom: 50px;
}
.single-award__content iframe {
  max-width: 547px;
  height: 300px;
  margin: 0 auto;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

.single-award__content h2 {
  font-size: clamp(24px, 4vw, 32px);
  color: var(--orange01);
  font-weight: bold;
  margin-top: 50px;
  margin-bottom: 20px;
  padding-bottom: 10px;
  border-bottom: 3px solid var(--orange01);
}

.single-award__content h2:first-child {
  margin-top: 0;
}

.single-award__content h3 {
  font-size: clamp(20px, 3vw, 26px);
  color: var(--orange01);
  font-weight: bold;
  margin-top: 40px;
  margin-bottom: 15px;
  padding-left: 15px;
  border-left: 5px solid var(--orange01);
}

.single-award__content p {
  margin-bottom: 1.5em;
}

.single-award__content ul,
.single-award__content ol {
  margin: 1.5em 0 1 5em 2em;
}

.single-award__content li {
  margin-bottom: 0.5em;
}

.single-award__content img {
  max-width: 100%;
  height: auto;
  border-radius: 10px;
  margin: 30px 0;
}

/* ナビゲーション */
.single-award__nav {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin-bottom: 50px;
}

.single-award__nav-prev,
.single-award__nav-next {
  min-height: 100px;
}

.single-award__nav a {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 20px;
  background: #fff;
  border: 2px solid var(--orange01);
  border-radius: 10px;
  transition: all 0.3s;
  height: 100%;
}

.single-award__nav a:hover {
  background: var(--yellow02);
  transform: translateY(-3px);
  box-shadow: 0 5px 15px rgba(235, 160, 102, 0.3);
}

.single-award__nav .nav-label {
  font-size: 14px;
  color: var(--orange01);
  font-weight: bold;
}

.single-award__nav .nav-title {
  font-size: 16px;
  color: var(--text-color);
  line-height: 1.5;
}

.single-award__nav-next a {
  text-align: right;
}

/* ボタン */
.single-award__buttons {
  display: flex;
  gap: 20px;
  justify-content: center;
  flex-wrap: wrap;
}

.single-award__buttons .btn {
  margin: 0;
}

/* レスポンシブ */
@media (width < 768px) {
  .single-award__nav {
    grid-template-columns: 1fr;
  }

  .single-award__nav-next a {
    text-align: left;
  }

  .single-award__content {
    font-size: 16px;
  }

  .single-award__buttons {
    flex-direction: column;
  }

  .archive-award__pagination .page-numbers {
    gap: 5px;
  }

  .archive-award__pagination .page-numbers a,
  .archive-award__pagination .page-numbers span {
    padding: 8px 12px;
    font-size: 14px;
    min-width: 40px;
  }
}
.single-award-detail {
  margin-top: -80px;
  background-color: var(--gray01);
  padding: 80px 0;
}

.single-award-detail .inner {
  max-width: 1200px;
  margin: 0 auto;
}

/* メタ情報 */
.single-award-detail__meta {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 20px;
  background: #fff;
  border-radius: 10px;
  margin-bottom: 30px;
  flex-wrap: wrap;
  justify-content: center;
}

.single-award-detail__year {
  display: inline-block;
  padding: 12px 30px;
  background: var(--yellow02);
  color: var(--orange01);
  border-radius: 100vmax;
  font-size: 20px;
  font-weight: bold;
  border: 3px solid var(--orange01);
}

/* 概要 */
.single-award-detail__overview {
  background: #fff;
  padding: clamp(30px, 5vw, 50px);
  border-radius: 20px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  line-height: 2;
  font-size: 18px;
  margin-bottom: 50px;
}

.single-award-detail__overview h2 {
  font-size: clamp(24px, 4vw, 32px);
  color: var(--orange01);
  font-weight: bold;
  margin-top: 40px;
  margin-bottom: 20px;
  padding-bottom: 10px;
  border-bottom: 3px solid var(--orange01);
}

.single-award-detail__overview h2:first-child {
  margin-top: 0;
}

.single-award-detail__overview p {
  margin-bottom: 1.5em;
}

/* 表彰セクション */
.award-section {
  margin: 0 0 50px 0;
  padding: 0 0 50px 0;
}

.award-section__header {
  text-align: center;
  margin-bottom: 50px;
  padding-bottom: 30px;
  border-bottom: 3px solid var(--orange01);
}

.award-section__title-en {
  font-size: clamp(32px, 5vw, 48px);
  font-weight: bold;
  color: var(--orange01);
  letter-spacing: 0.1em;
  margin-bottom: 10px;
}

.award-section__title-jp {
  font-size: clamp(18px, 2.5vw, 24px);
  color: var(--text-color);
}

/* 賞のアイテム共通 */
.award-item {
  position: relative;
  max-width: 1200px;
  margin: 50px auto;
}

.award-item:last-child {
  margin-bottom: 0;
}
.award-item--best {
  max-width: 980px;
  margin: 0 auto;
}

.award-item__badge {
  width: fit-content;

  font-size: clamp(20px, 3vw, 28px);
  font-weight: bold;
  color: #fff;
  margin: 0 auto 50px;
  text-align: center;
}
.grand-award-icon {
  position: relative;
  padding-left: 50px;
}
.grand-award-icon::before {
  position: absolute;
  content: "";
  display: inline-block;
  top: 0;
  left: 0;
  width: 40px;
  height: 40px;
  background: url("../images/common/reaf03.svg") no-repeat center center;
}

.award-item__badge--grand {
  background: linear-gradient(135deg, #ffd700, #ffa500);
  padding: 15px 40px 15px 30px;
}

.award-item__badge--best {
  background: linear-gradient(135deg, #c0c0c0, #a9a9a9);
  padding: 15px 40px;
}

/* 最優秀賞 */
.award-item--grand .award-item__content {
  border-bottom: 4px dotted var(--blue01);
  padding: clamp(30px, 5vw, 50px);
}

.award-item-image {
  margin-bottom: 30px;
  border-radius: 15px;
  overflow: hidden;
}

.award-item-image img {
  max-width: 60%;
  margin: 0 auto;
  height: auto;
  display: block;
}

.award-item-video {
  margin-bottom: 30px;
  border-radius: 15px;
  overflow: hidden;
  position: relative;
  padding-bottom: 56.25%; /* 16:9 */
  height: 0;
}

.award-item-video iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.award-item-name {
  font-size: clamp(24px, 4vw, 32px);
  font-weight: bold;
  color: var(--orange01);
  margin-bottom: 30px;
  text-align: center;
}

.award-item-text {
  font-size: 18px;
  line-height: 2;
}

.award-item-text h3 {
  font-size: clamp(20px, 3vw, 24px);
  color: var(--orange01);
  font-weight: bold;
  margin-top: 30px;
  margin-bottom: 15px;
  padding-left: 15px;
  border-left: 5px solid var(--orange01);
}

.award-item-text p {
  margin-bottom: 1.5em;
}

.award-item-text ul,
.award-item-text ol {
  margin: 1.5em 0 1.5em 2em;
}

.award-item-text li {
  margin-bottom: 0.5em;
}

/* 優秀賞リスト */
.award-best-list {
  display: flex;
  gap: 30px;
  justify-content: center;
}

.award-best-item {
  background: var(--yellow02);
  border-radius: 20px;
  overflow: hidden;
  display: grid;
  width: 50%;
  gap: 0;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  transition:
    transform 0.3s ease,
    box-shadow 0.3s ease;
}

.award-best-item:hover {
  transform: translateY(-5px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);
}

.award-best-item__image {
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.award-best-item__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.award-best-item__content {
  padding: 30px;
}

.award-best-item__name {
  font-size: clamp(20px, 3vw, 24px);
  font-weight: bold;
  color: var(--orange01);
  margin-bottom: 15px;
}

.award-best-item__text {
  font-size: 16px;
  line-height: 1.8;
}

.award-best-item__text h3,
.award-best-item__text h4 {
  font-size: 18px;
  color: var(--orange01);
  font-weight: bold;
  margin-top: 20px;
  margin-bottom: 10px;
}

.award-best-item__text p {
  margin-bottom: 1em;
}

.award-best-item__text ul,
.award-best-item__text ol {
  margin: 1em 0 1em 1.5em;
}

.award-best-item__text li {
  margin-bottom: 0.5em;
}

/* ナビゲーション */
.single-award-detail__nav {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin-bottom: 50px;
}

.single-award-detail__nav-prev,
.single-award-detail__nav-next {
  min-height: 100px;
}

.single-award-detail__nav a {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 20px;

  border: 2px solid var(--orange01);
  border-radius: 10px;
  transition: all 0.3s;
  height: 100%;
}

.single-award-detail__nav a:hover {
  background: var(--yellow02);
  transform: translateY(-3px);
  box-shadow: 0 5px 15px rgba(235, 160, 102, 0.3);
}

.single-award-detail__nav .nav-label {
  font-size: 14px;
  color: var(--orange01);
  font-weight: bold;
}

.single-award-detail__nav .nav-title {
  font-size: 16px;
  color: var(--text-color);
  line-height: 1.5;
}

.single-award-detail__nav-next a {
  text-align: right;
}

/* ボタン */
.single-award-detail__buttons {
  display: flex;
  gap: 20px;
  justify-content: center;
  flex-wrap: wrap;
}

.single-award-detail__buttons .btn {
  margin: 0;
}

/* レスポンシブ */
@media (width < 768px) {
  .award-best-item {
    grid-template-columns: 1fr;
  }

  .award-best-item__image {
    height: 250px;
  }

  .single-award-detail__nav {
    grid-template-columns: 1fr;
  }

  .single-award-detail__nav-next a {
    text-align: left;
  }

  .single-award-detail__buttons {
    flex-direction: column;
  }
}
/* *************************************
地域共生大賞 - 追加セクション
************************************* */

/* セカンダリーセクション（共通） */
.award-section--secondary,
.award-section--comment,
.award-section--symposium {
  margin-top: 50px;
}

/* Second Award セクション */
.award-section--secondary {
}

.award-section__title-secondary {
  font-size: clamp(26px, 4vw, 34px);
  color: var(--orange01);
  font-weight: bold;
  text-align: center;
  border-radius: 10px;
  margin: 0;
}

/* Second Award 3カラムグリッド */
.award-second-grid {
  display: flex;
  justify-content: center;
  gap: 20px;
  margin-top: 40px;
}

.award-second-item {
  width: 33.3%;
  overflow: hidden;
  transition:
    transform 0.3s ease,
    box-shadow 0.3s ease;
  display: flex;
  flex-direction: column;
}

.award-second-item:hover {
  transform: translateY(-5px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
}

.award-second-item__image {
  width: 100%;
  height: 220px;
  overflow: hidden;
  background: #fff;
}

.award-second-item__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}

.award-second-item:hover .award-second-item__image img {
  transform: scale(1.1);
}

.award-second-item__name {
  font-size: clamp(18px, 2.5vw, 22px);
  font-weight: bold;
  color: var(--orange01);
  padding: 20px 20px 15px;
  line-height: 1.5;
  text-align: center;
}

.award-second-item__text {
  font-size: 15px;
  line-height: 1.8;
  color: var(--text-color);
  padding: 0 20px 25px;
  flex-grow: 1;
}

/* 講評セクション */
.award-section--comment {
}

.award-section__header--comment {
  border-bottom-color: #d4a574;
}

.award-section__title-comment {
  font-size: clamp(26px, 4vw, 34px);
  color: #8b6914;
  font-weight: bold;
  text-align: center;
  padding: 20px;
  border-radius: 10px;
  margin: 0;
}

/* 講評 2カラムグリッド */
.award-comment-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 40px;
  margin-top: 40px;
}

.award-comment-item {
  background: #fff;
  border-radius: 15px;
  padding: 30px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  transition:
    transform 0.3s ease,
    box-shadow 0.3s ease;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.award-comment-item:hover {
  transform: translateY(-5px);
  box-shadow: 0 8px 24px rgba(212, 165, 116, 0.3);
}

.award-comment-item__image {
  width: 150px;
  height: 150px;
  border-radius: 50%;
  overflow: hidden;
  margin-bottom: 20px;
  border: 4px solid #d4a574;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.award-comment-item__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.award-comment-item__content {
  width: 100%;
}

.award-comment-item__name {
  font-size: clamp(20px, 3vw, 24px);
  font-weight: bold;
  color: #8b6914;
  margin-bottom: 8px;
  line-height: 1.4;
}

.award-comment-item__position {
  font-size: 14px;
  color: #999;
  margin-bottom: 20px;
  padding-bottom: 15px;
  border-bottom: 2px solid #f0e5d1;
}

.award-comment-item__text {
  font-size: 15px;
  line-height: 1.9;
  color: var(--text-color);
  text-align: left;
}

/* 表彰式セクション */
.award-section--symposium {
}

.award-section__header--symposium {
  border-bottom-color: var(--blue01);
}

.award-section__title-symposium {
  font-size: clamp(26px, 4vw, 34px);
  color: var(--blue01);
  font-weight: bold;
  text-align: center;
  margin: 0;
}

.award-symposium-content {
  margin-top: 30px;
  font-size: 18px;
  line-height: 2;
  color: var(--text-color);
}

.award-symposium-content h2,
.award-symposium-content h3,
.award-symposium-content h4 {
  color: var(--blue01);
  font-weight: bold;
  margin-top: 40px;
  margin-bottom: 20px;
  line-height: 1.5;
}

.award-symposium-content h2 {
  font-size: clamp(22px, 3.5vw, 28px);
  padding-bottom: 10px;
}

.award-symposium-content h3 {
  font-size: clamp(20px, 3vw, 24px);
  padding-left: 15px;
  border-left: 5px solid var(--blue01);
}

.award-symposium-content h4 {
  font-size: clamp(18px, 2.5vw, 22px);
}

.award-symposium-content p {
  margin-bottom: 1.5em;
}

.award-symposium-content ul,
.award-symposium-content ol {
  margin: 1.5em 0 1.5em 2em;
}

.award-symposium-content li {
  margin-bottom: 0.5em;
}

.award-symposium-content img {
  max-width: 100%;
  height: auto;
  border-radius: 10px;
  margin: 30px 0;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.award-symposium-content table {
  width: 100%;
  border-collapse: collapse;
  margin: 30px 0;
}

.award-symposium-content table th,
.award-symposium-content table td {
  padding: 15px;
  border: 1px solid var(--border-color01);
  text-align: left;
}

.award-symposium-content table th {
  background: var(--blue03);
  color: var(--blue01);
  font-weight: bold;
}

.award-symposium-content blockquote {
  background: var(--blue03);
  border-left: 5px solid var(--blue01);
  padding: 20px 30px;
  margin: 30px 0;
  border-radius: 0 10px 10px 0;
  font-style: italic;
}

/* レスポンシブ */
@media (width < 1024px) {
  .award-second-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (width < 768px) {
  .award-second-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .award-comment-grid {
    grid-template-columns: 1fr;
    gap: 25px;
  }

  .award-comment-item__image {
    width: 120px;
    height: 120px;
  }

  .award-section--secondary,
  .award-section--comment,
  .award-section--symposium {
    margin-top: 30px;
  }

  .award-symposium-content {
    font-size: 16px;
  }

  .award-symposium-content table {
    display: block;
    overflow-x: auto;
  }
}
/* *************************************
このサイトについてページ
************************************* */
.about-intro {
  background-color: #f8f8f8;
  margin-top: -80px;
}
.about-intro .inner {
  max-width: 900px;
  position: relative;
}

.about-intro__content {
  background-image: linear-gradient(0deg, transparent calc(100% - 1px), #f0f0f0 calc(100% - 1px)), linear-gradient(90deg, transparent calc(100% - 1px), #f0f0f0 calc(100% - 1px));
  background-size: 16px 16px;
  background-repeat: repeat;
  background-position: center center;
  background-color: #fff;
  padding: clamp(30px, 5vw, 50px);
  text-align: center;
}

.about-intro__text {
  font-size: clamp(16px, 2vw, 20px);
  line-height: 2;
  margin-bottom: 1.5em;
}

.about-intro__text:last-child {
  margin-bottom: 0;
}

.about-intro img.point01 {
  position: absolute;
  bottom: -100px;
  width: auto;
  height: 230px;
  right: -100px;
  z-index: 1;
  @media (width < 1400px) {
    right: 5%;
  }
  @media (max-width: 768px) {
    height: 140px;
    right: -8%;
  }
}

/* サイトの目的 */
.about-purpose {
  position: relative;
}

.about-purpose .inner {
  position: relative;
  max-width: 1000px;
}

.about-purpose__intro {
  text-align: center;
  font-size: clamp(16px, 2vw, 20px);
  margin-bottom: 50px;
  font-weight: bold;
  color: var(--green01);
}

.about-purpose__list {
  display: grid;
  gap: 30px;
  max-width: 800px;
  margin: 0 auto;
}

.about-purpose__item {
  background: #fff;
  border: 3px solid var(--green01);
  border-radius: 20px;
  padding: 30px;
  display: flex;
  align-items: center;
  gap: 30px;
  transition:
    transform 0.3s ease,
    box-shadow 0.3s ease;
}
.about-purpose__number {
  flex-shrink: 0;
  width: 80px;
  height: 80px;
  background: var(--green01);
  color: #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 32px;
  font-weight: bold;
}

.about-purpose__text {
  flex: 1;
  font-size: clamp(16px, 2vw, 18px);
  line-height: 1.8;
}

.about-purpose__text strong {
  color: var(--green01);
  font-weight: bold;
}

.about-purpose img.point02 {
  position: absolute;
  bottom: -100px;
  width: auto;
  height: 200px;
  left: -15%;
  z-index: 1;
  @media (width < 1400px) {
    left: 0;
  }
  @media (max-width: 768px) {
    height: 130px;
  }
}

/* このサイトでできること */
.about-features {
  background: var(--green02);
  position: relative;
}

.about-features .inner {
  position: relative;
}

.about-features__intro {
  text-align: center;
  font-size: clamp(16px, 2vw, 18px);
  margin-bottom: 50px;
  @media (max-width: 798px) {
    padding-inline: calc(15 * var(--rem));
  }
}

.about-features__grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1fr;
  gap: 30px;
  max-width: 90%;
  margin: 0 auto;
}

.about-features__item {
  background: #fff;
  border: 2px solid var(--green01);
  border-radius: 20px;
  padding: 40px 30px;
  text-align: center;
  transition:
    transform 0.3s ease,
    box-shadow 0.3s ease;
}

.about-features-inner {
}

.about-features__icon {
  width: 80px;
  height: 80px;
  margin: 0 auto 20px;
  background: var(--green02);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.about-features__icon img {
  width: 50px;
  height: 50px;
  object-fit: contain;
}

.about-features__title {
  font-size: 20px;
  font-weight: bold;
  color: var(--green01);
  margin-bottom: 20px;
}

.about-features__list {
  list-style: none;
  padding: 0;
  margin: 0;
  text-align: left;
}

.about-features__list li {
  padding: 8px 0 8px 25px;
  position: relative;
  font-size: 16px;
  line-height: 1.6;
}

.about-features__list li::before {
  content: "●";
  position: absolute;
  left: 0;
  color: var(--green01);
}

.about-features img.point03 {
  position: absolute;
  bottom: -100px;
  width: auto;
  height: 200px;
  right: -50px;
  z-index: 1;
  @media (width < 1400px) {
    right: 0;
  }
}

/* 掲載している主な事業 */
.about-programs {
  position: relative;
  @media (max-width: 769px) {
    padding-inline: calc(15 * var(--rem));
  }
}

.about-programs__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 30px;
  max-width: 950px;
  margin: 0 auto;
}

.about-programs__item {
  background: #fff;
  border-radius: 20px;
  padding: 40px 20px;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
}

.about-programs__item:hover {
  transform: translateY(-10px);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
}

.about-programs__item--blue {
  border: 3px solid var(--blue01);
}

.about-programs__item--blue:hover {
  background: var(--blue03);
}

.about-programs__item--orange {
  border: 3px solid var(--orange01);
}

.about-programs__item--orange:hover {
  background: var(--yellow02);
}

.about-programs__item--green {
  border: 3px solid var(--green01);
}
.about-programs__item--yellow {
  border: 3px solid var(--yellow01);
}

.about-programs__item--green:hover {
  background: var(--green02);
}
.about-programs__item--yellow:hover {
  background: #ffffef;
}

.about-programs__image {
  width: 80px;
  height: 80px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.about-programs__image img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}

.about-programs__title {
  font-size: 18px;
  font-weight: bold;
  line-height: 1.5;
}

.about-programs__item--blue .about-programs__title {
  color: var(--blue01);
}

.about-programs__item--orange .about-programs__title {
  color: var(--orange01);
}

.about-programs__item--green .about-programs__title {
  color: var(--green01);
}
.about-programs__item--yellow .about-programs__title {
  color: var(--yellow01);
}

.about-programs__text {
  font-size: 14px;
  color: var(--text-color);
  line-height: 1.6;
}

.about-programs img.point04 {
  position: absolute;
  bottom: -100px;
  width: auto;
  height: 200px;
  left: -50px;
  z-index: 1;
  @media (width < 1400px) {
    left: 0;
  }
}
.about-target {
  background: var(--green01);
  background-image: repeating-linear-gradient(45deg, rgba(0, 0, 0, 0.03), rgba(0, 0, 0, 0.03) 20px, transparent 0, transparent 40px);
}

.about-target .title01 .jp {
  color: #fff;
}

.about-target .title01 .en {
  color: rgba(255, 255, 255, 0.8);
}

.about-target__content {
  max-width: 800px;
  margin: 0 auto;
  background: #fff;
  padding: clamp(30px, 5vw, 50px);
  border-radius: 20px;
}

.about-target__list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.about-target__item {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 20px 0;
  border-bottom: 1px dashed var(--border-color01);
}

.about-target__item:last-child {
  border-bottom: none;
}

.about-target__icon {
  flex-shrink: 0;
  font-size: 32px;
}

.about-target__text {
  flex: 1;
  font-size: clamp(16px, 2vw, 18px);
  line-height: 1.8;
}

/* サイトの運営 */
.about-management {
  background: var(--gray01);
  position: relative;
}

.about-management .inner {
  max-width: 900px;
  position: relative;
}

.about-management__content {
  background: #fff;
  padding: clamp(40px, 6vw, 60px);
  border-radius: 20px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  text-align: center;
}

.about-management__text {
  font-size: clamp(18px, 2 5vw, 24px);
  line-height: 2;
  margin-bottom: 1.5em;
}

.about-management__text:last-of-type {
  margin-bottom: 40px;
}

.about-management__text strong {
  color: var(--green01);
  font-weight: bold;
  font-size: 1.1em;
}

.about-management img.point05 {
  position: absolute;
  bottom: -100px;
  width: auto;
  height: 200px;
  right: 5%;
  z-index: 1;
  @media (width < 1200px) {
    right: 0;
  }
}

/* レスポンシブ調整 */
@media (width < 768px) {
  .about-purpose__item {
    flex-direction: column;
    text-align: center;
  }

  .about-purpose__number {
    width: 60px;
    height: 60px;
    font-size: 24px;
  }

  .about-features__grid {
    grid-template-columns: 1fr;
  }

  .about-programs__grid {
    grid-template-columns: 1fr;
  }

  .about-target__item {
    flex-direction: column;
    text-align: center;
  }

  .about-target__icon {
    font-size: 48px;
  }
}
.about-target__text {
  position: relative;
  padding-left: 40px;
}
.about-target__text::before {
  content: "";
  display: inline-block;
  width: 25px;
  height: 20px;
  position: absolute;
  background-image: url("../images/common/reaf02.svg");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: left top;
  top: 0;
  left: 0;
  transform: translate(0, 50%);
}

/* *************************************
協働マッチング アーカイブページ
************************************* */

.archive-matching {
  background: #fff;
  margin-top: -80px;
  padding-bottom: clamp(40px, 8vw, 80px);
}

.archive-matching .inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 4%;
}

/* ----------------------------------------
  セクション見出し（緑帯）
---------------------------------------- */
.archive-matching__section-heading {
  background: var(--green01);
  color: #fff;
  font-size: clamp(18px, 2.5vw, 24px);
  font-weight: bold;
  text-align: center;
  padding: 18px 20px;
  border-radius: 10px;
  margin: 0 0 40px;
}

/* ----------------------------------------
  ① マッチングとは（白背景）
---------------------------------------- */
.archive-matching__intro-wrap {
  background: #fff;
  padding: clamp(40px, 6vw, 70px) 0;
}

.archive-matching__intro {
  max-width: 720px;
  margin: 0 auto;
  text-align: center;
  font-size: clamp(15px, 1.8vw, 17px);
  line-height: 2.2;
  color: var(--text-color);
}

.archive-matching__intro p + p {
  margin-top: 1.5em;
}

/* ----------------------------------------
  ② 企業・団体 / 活動団体 2ボックス（水色背景）
---------------------------------------- */
.archive-matching__boxes-wrap {
  background: var(--green02);
  padding: clamp(40px, 6vw, 70px) 0;
}

.archive-matching__boxes {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  @media (width < 900px) {
    grid-template-columns: 1fr;
    gap: 30px;
  }
}

.archive-matching__box {
  background: #fff;
  border-radius: 20px;
  padding: 40px;
  @media (width < 768px) {
    padding: 25px 20px;
  }
}

.archive-matching__box-title {
  font-size: clamp(18px, 2vw, 22px);
  font-weight: bold;
  color: var(--green01);
  border-bottom: 2px solid var(--green01);
  padding-bottom: 12px;
  margin-bottom: 20px;
}

.archive-matching__box-list {
  list-style: none;
  padding: 0;
  margin: 0 0 25px;
}

.archive-matching__box-list li {
  padding: 10px 0 10px 1.5em;
  position: relative;
  font-size: clamp(14px, 1.6vw, 16px);
  line-height: 1.7;
  border-bottom: 1px dashed var(--border-color01);
}

.archive-matching__box-list li::before {
  content: "■";
  position: absolute;
  left: 0;
  color: var(--green01);
}

.archive-matching__box-text {
  font-size: clamp(14px, 1.6vw, 16px);
  line-height: 1.9;
  margin-bottom: 20px;
}

.archive-matching__box-note {
  font-size: 13px;
  color: #888;
  line-height: 1.8;
}

/* ----------------------------------------
  ③ 支援内容一覧（グレー背景）
---------------------------------------- */
.archive-matching__list-wrap {
  padding: clamp(40px, 6vw, 70px) 0;
}

/* 絞り込み検索 */
.archive-matching__filter {
  background: #fff;
  padding: 30px;
  border-radius: 20px;
  margin-bottom: 50px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.archive-matching .image img {
  max-width: 100%;
  height: auto;
  display: block;
}

.matching-filter-form {
  display: grid;
  grid-template-columns: 1fr 1fr auto;
  gap: 20px;
  align-items: end;
  @media (width < 768px) {
    grid-template-columns: 1fr;
  }
}

.matching-filter-form__item label {
  display: block;
  font-weight: bold;
  margin-bottom: 10px;
  color: var(--text-color);
}

.matching-filter-form__item select {
  width: 100%;
  padding: 12px 15px;
  border: 2px solid var(--border-color01);
  border-radius: 10px;
  font-size: 16px;
  background: #fff;
  font-family: "Zen Maru Gothic", sans-serif;
}

.matching-filter-form__submit {
  @media (width < 768px) {
    width: 100%;
  }
}

.matching-filter-form__submit button {
  white-space: nowrap;
  @media (width < 768px) {
    width: 100%;
  }
}

.archive-matching .card03 {
  margin-bottom: 50px;
}

.archive-matching__empty {
  text-align: center;
  font-size: 18px;
  color: #666;
  padding: 60px 20px;
  background: #fff;
  border-radius: 20px;
}

/* ページネーション */
.archive-matching__pagination {
  margin-top: 60px;
  text-align: center;
}

.archive-matching__pagination .page-numbers {
  display: inline-flex;
  gap: 10px;
  list-style: none;
  padding: 0;
  margin: 0;
  flex-wrap: wrap;
  justify-content: center;
}

.archive-matching__pagination .page-numbers li {
  display: inline-block;
}

.archive-matching__pagination .page-numbers a,
.archive-matching__pagination .page-numbers span {
  display: inline-block;
  padding: 10px 15px;
  background: #fff;
  border: 2px solid var(--blue01);
  color: var(--blue01);
  border-radius: 5px;
  text-decoration: none;
  transition: all 0.3s;
  min-width: 45px;
  text-align: center;
}

.archive-matching__pagination .page-numbers a:hover {
  background: var(--blue01);
  color: #fff;
}

.archive-matching__pagination .page-numbers .current {
  background: var(--blue01);
  color: #fff;
  font-weight: bold;
}

@media (width < 768px) {
  .archive-matching__pagination .page-numbers {
    gap: 5px;
  }

  .archive-matching__pagination .page-numbers a,
  .archive-matching__pagination .page-numbers span {
    padding: 8px 12px;
    font-size: 14px;
    min-width: 40px;
  }
}

/* ----------------------------------------
  ④ マッチングの流れ（水色背景）
---------------------------------------- */
.archive-matching__flow-wrap {
  background: var(--green02);
  padding: clamp(40px, 6vw, 70px) 0;
}
.archive-matching__flow {
  margin-top: 36px;
}
.archive-matching__flow-list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 34px 40px;
  counter-reset: flow;
}
.archive-matching__flow-item {
  position: relative;
  background: #fff;
  border: 2px solid var(--green01);
  border-radius: 12px;
  padding: 46px 24px 28px;
  text-align: center;
  list-style: none;
}
.archive-matching__flow-item:not(:nth-child(3n))::after {
  content: "";
  position: absolute;
  top: 50%;
  right: -28px;
  transform: translateY(-50%);
  width: 0;
  height: 0;
  border-top: 12px solid transparent;
  border-bottom: 12px solid transparent;
  border-left: 16px solid var(--green01);
}
.archive-matching__flow-badge {
  position: absolute;
  top: -22px;
  left: 20px;
  width: 64px;
  height: 64px;
  background: var(--green01);
  color: #fff;
  border-radius: 50%;
  font-size: 12px;
  font-weight: bold;
  line-height: 1.1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.archive-matching__flow-badge strong {
  font-size: 26px;
  line-height: 1;
}
.archive-matching__flow-item h3 {
  font-size: clamp(17px, 2vw, 20px);
  font-weight: bold;
  margin-bottom: 14px;
}
.archive-matching__flow-item p {
  font-size: 15px;
  line-height: 1.8;
} /* tablet */
@media (width < 1024px) {
  .archive-matching__flow-list {
    grid-template-columns: repeat(2, 1fr);
  }
  .archive-matching__flow-item::after {
    display: none;
  }
} /* mobile */
@media (width < 768px) {
  .archive-matching__flow-list {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .archive-matching__flow-item {
    padding: 42px 20px 24px;
  }
  .archive-matching__flow-badge {
    width: 56px;
    height: 56px;
    font-size: 11px;
  }
  .archive-matching__flow-badge strong {
    font-size: 22px;
  }
}
/* *************************************
団体検索・一覧ページ
************************************* */

.archive-organization {
  padding: clamp(40px, 8vw, 80px) 0;
  background: var(--gray01);
  margin-top: -80px;
}

.archive-organization .inner {
  max-width: 1200px;
  margin: 0 auto;
}

.archive-organization__lead {
  text-align: center;
  font-size: clamp(16px, 2vw, 18px);
  line-height: 2;
  margin-bottom: 50px;
  color: var(--text-color);
}

/* 検索フォーム */
.organization-search {
  background: #fff;
  padding: clamp(30px, 5vw, 50px);
  border-radius: 20px;
  margin-bottom: 50px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.organization-search-form__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 20px;
  margin-bottom: 30px;
}

.organization-search-form__item label {
  display: block;
  font-weight: bold;
  margin-bottom: 10px;
  color: var(--text-color);
  font-size: 16px;
}

.organization-search-form__item select {
  width: 100%;
  padding: 12px 15px;
  border: 2px solid var(--border-color01);
  border-radius: 10px;
  font-size: 16px;
  background: #fff;
  font-family: "Zen Maru Gothic", sans-serif;
  cursor: pointer;
  transition: border-color 0.3s;
}

.organization-search-form__item select:focus {
  outline: none;
  border-color: var(--green01);
}

.organization-search-form__submit {
  text-align: center;
}

/* 検索条件タグ */
.organization-search-tags {
  background: var(--green02);
  padding: 20px 30px;
  border-radius: 15px;
  margin-bottom: 30px;
  display: flex;
  align-items: center;
  gap: 15px;
  flex-wrap: wrap;
}

.organization-search-tags__label {
  font-weight: bold;
  color: var(--green01);
  font-size: 16px;
  flex-shrink: 0;
}

.organization-search-tags__list {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.organization-search-tags__tag {
  display: inline-block;
  padding: 8px 20px;
  background: var(--green01);
  color: #fff;
  border-radius: 100vmax;
  font-size: 14px;
  font-weight: bold;
}

/* 検索結果件数 */
.archive-organization__count {
  text-align: center;
  font-size: clamp(18px, 2.5vw, 22px);
  font-weight: bold;
  color: var(--green01);
  margin-bottom: 40px;
}

/* 団体グリッド */
.organization-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 30px;
  margin-bottom: 50px;
}

.organization-card {
  background: #fff;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  transition:
    transform 0.3s ease,
    box-shadow 0.3s ease;
}

.organization-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
}

.organization-card__link {
  display: block;
}

.organization-card__image {
  width: 100%;
  height: 200px;
  overflow: hidden;
  position: relative;
}

.organization-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}

.organization-card:hover .organization-card__image img {
  transform: scale(1.1);
}

.organization-card__content {
  padding: 25px;
}

.organization-card__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 15px;
}

.organization-card__tag {
  display: inline-block;
  padding: 5px 12px;
  border-radius: 5px;
  font-size: 12px;
  font-weight: bold;
}

.organization-card__tag--genre {
  background: var(--green02);
  color: var(--green01);
}

.organization-card__tag--area {
  background: var(--blue03);
  color: var(--blue01);
}

.organization-card__title {
  font-size: clamp(18px, 2.5vw, 20px);
  font-weight: bold;
  color: var(--text-color);
  margin-bottom: 12px;
  line-height: 1.5;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.organization-card__excerpt {
  font-size: 14px;
  line-height: 1.7;
  color: #666;
  margin-bottom: 15px;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.organization-card__meta {
  padding-top: 15px;
  border-top: 1px solid var(--border-color01);
}

.organization-card__type {
  display: inline-block;
  padding: 5px 15px;
  background: var(--yellow02);
  color: var(--orange01);
  border-radius: 5px;
  font-size: 13px;
  font-weight: bold;
}

/* ページネーション */
.archive-organization__pagination {
  margin-top: 60px;
  text-align: center;
}

.archive-organization__pagination .page-numbers {
  display: inline-flex;
  gap: 10px;
  list-style: none;
  padding: 0;
  margin: 0;
  flex-wrap: wrap;
  justify-content: center;
}

.archive-organization__pagination .page-numbers li {
  display: inline-block;
}

.archive-organization__pagination .page-numbers a,
.archive-organization__pagination .page-numbers span {
  display: inline-block;
  padding: 10px 15px;
  background: #fff;
  border: 2px solid var(--green01);
  color: var(--green01);
  border-radius: 5px;
  text-decoration: none;
  transition: all 0.3s;
  min-width: 45px;
  text-align: center;
}

.archive-organization__pagination .page-numbers a:hover {
  background: var(--green01);
  color: #fff;
}

.archive-organization__pagination .page-numbers .current {
  background: var(--green01);
  color: #fff;
  font-weight: bold;
}

.archive-organization__empty {
  text-align: center;
  font-size: 18px;
  color: #666;
}

.archive-organization .btn {
  margin-top: 60px;
}

/* *************************************
団体個別ページ
************************************* */

.single-organization {
  background: var(--gray01);
  padding-bottom: 80px;
}

.single-organization .inner {
  max-width: 1000px;
  margin: 0 auto;
}

/* 検索タグ */
.single-organization__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;

  border-radius: 10px;
  margin-bottom: 30px;
  justify-content: center;
}

.single-organization__tag {
  display: inline-block;
  padding: 8px 20px;
  background: var(--green01);
  color: #fff;
  border-radius: 100vmax;
  font-size: 14px;
  font-weight: bold;
}

/* セクション共通 */
.single-organization__description,
.single-organization__main,
.single-organization__outline,
.single-organization__matching,
.single-organization__activity,
.single-organization__photos {
  padding: clamp(30px, 5vw, 30px);

  margin-bottom: 30px;
}

.single-organization__section-title {
  font-size: clamp(24px, 4vw, 32px);
  color: var(--green01);
  font-weight: bold;
  margin-bottom: 30px;
  padding-bottom: 15px;
  border-bottom: 3px solid var(--green01);
}

.single-organization__section-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 30px;
  padding-bottom: 15px;
  border-bottom: 3px solid var(--green01);
}

.single-organization__section-header .single-organization__section-title {
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: none;
}

.single-organization__post-date {
  margin: 0;
  font-size: 14px;
  color: #666;
  white-space: nowrap;
  line-height: 1.4;
}
.single-organaization-image {
  margin-bottom: 30px;
}
.single-organaization-image img {
  max-width: 75%;
  height: auto;
  margin: 0 auto;
  border-radius: 15px;
}

/* 団体写真 */
.single-organization__photo-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.single-organization__photo-item {
  margin: 0;
}

.single-organization__photo-item img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 10px;
}

@media (max-width: 767px) {
  .single-organization__section-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }

  .single-organization__post-date {
    white-space: normal;
  }

  .single-organization__photo-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }
}

@media (max-width: 480px) {
  .single-organization__photo-grid {
    grid-template-columns: 1fr;
  }
}

/* 団体説明 */
.single-organization__content {
  font-size: 18px;
  line-height: 2;
}

.single-organization__content h3 {
  font-size: clamp(20px, 3vw, 24px);
  color: var(--green01);
  font-weight: bold;
  margin-top: 40px;
  margin-bottom: 15px;
  padding-left: 15px;
  border-left: 5px solid var(--green01);
}

.single-organization__content p {
  margin-bottom: 1.5em;
}

.single-organization__content ul,
.single-organization__content ol {
  margin: 1.5em 0 1.5em 2em;
}

.single-organization__content li {
  margin-bottom: 0.5em;
}

/* 本文 */
.single-organization__main {
  font-size: 18px;
  line-height: 2;
}

/* アウトライン */
.single-organization__outline-table {
  width: 100%;
  border-collapse: collapse;
}

.single-organization__outline-table th,
.single-organization__outline-table td {
  padding: 20px;
  border-bottom: 1px solid var(--border-color01);
  text-align: left;
  font-size: 16px;
  line-height: 1.8;
}

.single-organization__outline-table th {
  background: var(--green02);
  color: var(--green01);
  font-weight: bold;
  width: 200px;
  vertical-align: top;
}

.single-organization__outline-table td {
  background: #fff;
}

.single-organization__outline-table tr:last-child th,
.single-organization__outline-table tr:last-child td {
  border-bottom: none;
}

.single-organization__outline-table a {
  color: var(--blue01);
  text-decoration: underline;
}

.single-organization__outline-table a:hover {
  text-decoration: none;
}

/* マッチング情報 */
.matching-list {
  display: grid;
  gap: 20px;
}

.matching-item {
  background: var(--gray01);
  border-radius: 15px;
  padding: 25px;
  transition:
    transform 0.3s ease,
    box-shadow 0.3s ease;
}

.matching-item:hover {
  transform: translateX(5px);
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
}

.matching-item__link {
  display: block;
}

.matching-item__badge {
  display: inline-block;
  padding: 6px 15px;
  border-radius: 5px;
  font-size: 13px;
  font-weight: bold;
  color: #fff;
  margin-bottom: 12px;
}

.matching-item__badge--support {
  background: var(--blue01);
}

.matching-item__badge--receive {
  background: var(--brown01);
}

.matching-item__title {
  font-size: clamp(18px, 2.5vw, 22px);
  font-weight: bold;
  color: var(--text-color);
  margin-bottom: 10px;
  line-height: 1.5;
}

.matching-item__excerpt {
  font-size: 15px;
  line-height: 1.7;
  color: #666;
}

/* 活動レポート */
.activity-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 25px;
}

.activity-card {
  background: #fff;
  border-radius: 15px;
  overflow: hidden;
  transition:
    transform 0.3s ease,
    box-shadow 0.3s ease;
}

.activity-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1);
}

.activity-card__link {
  display: block;
}

.activity-card__image {
  width: 100%;
  height: 180px;
  overflow: hidden;
}

.activity-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}

.activity-card:hover .activity-card__image img {
  transform: scale(1.1);
}

.activity-card__content {
  padding: 20px;
}

.activity-card__title {
  font-size: 16px;
  font-weight: bold;
  color: var(--text-color);
  margin-bottom: 10px;
  line-height: 1.5;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.activity-card__date {
  font-size: 13px;
  color: #999;
}

/* ボタン */
.single-organization__buttons {
  display: flex;
  justify-content: center;
  margin-top: 50px;
}

.single-organization__buttons .btn {
  margin: 0;
}

/* レスポンシブ */
@media (width < 768px) {
  .organization-search-form__grid {
    grid-template-columns: 1fr;
  }

  .organization-grid {
    grid-template-columns: 1fr;
  }

  .organization-search-tags {
    flex-direction: column;
    align-items: flex-start;
  }

  .single-organization__outline-table {
    display: block;
  }

  .single-organization__outline-table tbody,
  .single-organization__outline-table tr,
  .single-organization__outline-table th,
  .single-organization__outline-table td {
    display: block;
    width: 100%;
  }

  .single-organization__outline-table th {
    background: var(--green01);
    color: #fff;
    padding: 10px 15px;
    width: 100%;
  }

  .single-organization__outline-table td {
    padding: 15px;
    border-bottom: 2px solid var(--border-color01);
  }

  .activity-grid {
    grid-template-columns: 1fr;
  }

  .archive-organization__pagination .page-numbers {
    gap: 5px;
  }

  .archive-organization__pagination .page-numbers a,
  .archive-organization__pagination .page-numbers span {
    padding: 8px 12px;
    font-size: 14px;
    min-width: 40px;
  }
}
/* *************************************
トップページ 団体検索ボックス（チェックボックス版）
************************************* */

.organization-search-box {
  width: 100%;
}

/* チェックボックスリスト */
.checkbox-list {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  @media (max-width: 798px) {
    justify-content: center;
  }
}

.checkbox-item {
  position: relative;
  cursor: pointer;
  user-select: none;
}

.checkbox-item input[type="checkbox"] {
  position: absolute;
  opacity: 0;
  cursor: pointer;
  height: 0;
  width: 0;
}

.checkbox-label {
  display: inline-block;
  padding: 10px 20px;
  background: var(--green01);
  color: #fff;
  border-radius: 100vmax;
  font-size: 15px;
  font-weight: bold;
  transition: all 0.3s;
  position: relative;
  padding-left: 45px;
}

/* チェックマーク */
.checkbox-label::before {
  content: "✓";
  position: absolute;
  left: 15px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 18px;
  font-weight: bold;
  color: #fff;
  opacity: 0;
  transition: opacity 0.3s;
}

/* ホバー時 */
.checkbox-item:hover .checkbox-label {
  opacity: 0.9;
  transform: translateY(-2px);
}

/* チェック時 */
.checkbox-item input[type="checkbox"]:checked + .checkbox-label {
  background: #fff;
  color: var(--green01);
  box-shadow: 0 4px 12px rgba(103, 182, 127, 0.4);
}

.checkbox-item input[type="checkbox"]:checked + .checkbox-label::before {
  opacity: 0;
}

/* 検索ボタンエリア */
.organization-search-box__buttons {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 20px;
  margin-top: 40px;
  padding-top: 30px;
  border-top: 2px dashed var(--border-color01);
}

/* クリアボタン */
.btn-reset {
  padding: 15px 35px;
  background: #fff;
  border: 2px solid #ccc;
  color: #666;
  border-radius: 100vmax;
  font-size: 16px;
  font-weight: bold;
  cursor: pointer;
  transition: all 0.3s;
  font-family: "Zen Maru Gothic", sans-serif;
}

.btn-reset:hover {
  background: #f5f5f5;
  border-color: #999;
  color: #333;
}

/* 検索ボタン */
.organization-search-box__buttons .btn01 {
  margin: 0;
}

/* すべて見るボタン（薄い色） */
.btn01.green02 {
  background: var(--green02);
  color: var(--green01);
  border: 2px solid var(--green01);
}
.green02 > span:after {
  filter: invert(35%) sepia(64%) saturate(2923%) hue-rotate(80deg) brightness(90%) contrast(85%);
}

.btn01.green02:hover {
  background: var(--green01);
  color: #fff;
}

/* レスポンシブ */
@media (width < 768px) {
  .checkbox-list {
    gap: 8px;
  }

  .group_introduction .checkbox-label {
    font-size: 14px;
    padding: 8px 20px;
  }
  .group_introduction .checkbox-label:after {
  }

  .checkbox-label::before {
    left: 12px;
    font-size: 16px;
  }

  .organization-search-box__buttons {
    flex-direction: column;
    gap: 15px;
  }

  .btn-reset,
  .organization-search-box__buttons .btn01 {
    width: 100%;
  }
}
.group_introduction-item__title {
  margin-bottom: 30px;
  padding-left: 15px;
  font-size: 1.1rem;
}
/* *************************************
マッチング個別ページ
************************************* */

.single-matching {
  padding-bottom: 80px;
}



.single-matching__type {
  text-align: center;
  margin-bottom: 30px;
}

.single-matching__type-badge {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 15px 40px;
  border-radius: 100vmax;
  font-size: clamp(18px, 2.5vw, 24px);
  font-weight: bold;
  color: #fff;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.single-matching__type-badge img {
  width: 30px;
  height: 30px;
  filter: brightness(0) invert(1);
}

.single-matching__type-badge--support {
  background: var(--blue01);
}

.single-matching__type-badge--receive {
  background: var(--brown01);
}

/* タグ */
.single-matching__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: center;
  padding: 20px;
  background: #fff;
  border-radius: 10px;
  margin-bottom: 30px;
}

.single-matching__tag {
  display: inline-block;
  padding: 8px 20px;
  border-radius: 100vmax;
  font-size: 14px;
  font-weight: bold;
}

.single-matching__tag--category {
  background: var(--blue03);
  color: var(--blue01);
}

.single-matching__tag--area {
  background: var(--yellow02);
  color: var(--orange01);
}

/* 募集情報 */
.single-matching__info {
  padding: clamp(30px, 5vw, 50px);
  border-radius: 20px;

  margin-bottom: 30px;
}

.single-matching__info-table {
  width: 100%;
  border-collapse: collapse;
}

.single-matching__info-table th,
.single-matching__info-table td {
  padding: 20px;
  border-bottom: 1px solid var(--border-color01);
  text-align: left;
  font-size: 16px;
  line-height: 1.8;
}

.single-matching__info-table th {
  background: var(--green02);
  color: var(--green01);
  font-weight: bold;
  width: 180px;
  vertical-align: middle;
}

.single-matching__info-table td {
  background: #fff;
  font-size: 18px;
}

.single-matching__info-table tr:last-child th,
.single-matching__info-table tr:last-child td {
  border-bottom: none;
}

/* 募集状況バッジ */
.single-matching__status {
  display: inline-block;
  padding: 8px 20px;
  border-radius: 100vmax;
  font-size: 16px;
  font-weight: bold;
  color: #fff;
}

.single-matching__status--open {
  background: var(--green01);
}

.single-matching__status--closed {
  background: #999;
}

/* セクション共通 */
.single-matching__content,
.single-matching__organization {
  background: #fff;
  padding: clamp(30px, 5vw, 50px);
  border-radius: 20px;
  margin-bottom: 30px;
}

.single-matching__section-title {
  font-size: clamp(24px, 4vw, 32px);
  color: var(--green01);
  font-weight: bold;
  margin-bottom: 30px;
  padding-bottom: 15px;
  border-bottom: 3px solid var(--green01);
}

/* 本文 */
.single-matching__body {
  font-size: 18px;
  line-height: 2;
}

.single-matching__body h2,
.single-matching__body h3,
.single-matching__body h4 {
  color: var(--green01);
  font-weight: bold;
  margin-top: 40px;
  margin-bottom: 20px;
  line-height: 1.5;
}

.single-matching__body h2 {
  font-size: clamp(22px, 3.5vw, 28px);
  padding-bottom: 10px;
  border-bottom: 2px solid var(--green01);
}

.single-matching__body h3 {
  font-size: clamp(20px, 3vw, 24px);
  padding-left: 15px;
  border-left: 5px solid var(--green01);
}

.single-matching__body h4 {
  font-size: clamp(18px, 2.5vw, 22px);
}

.single-matching__body p {
  margin-bottom: 1.5em;
}

.single-matching__body ul,
.single-matching__body ol {
  margin: 1.5em 0 1.5em 2em;
}

.single-matching__body li {
  margin-bottom: 0.5em;
}

.single-matching__body img {
  max-width: 100%;
  height: auto;
  border-radius: 10px;
  margin: 30px 0;
}

.single-matching__body table {
  width: 100%;
  border-collapse: collapse;
  margin: 30px 0;
}

.single-matching__body table th,
.single-matching__body table td {
  padding: 15px;
  border: 1px solid var(--border-color01);
  text-align: left;
}

.single-matching__body table th {
  background: var(--green02);
  color: var(--green01);
  font-weight: bold;
}

/* 発信団体カード */
.organization-card-single {
  background: var(--gray01);
  border-radius: 15px;
  max-width: 800px;
  margin: 0 auto;
  overflow: hidden;
  transition:
    transform 0.3s ease,
    box-shadow 0.3s ease;
}

.organization-card-single:hover {
  transform: translateY(-5px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);
}

.organization-card-single__link {
  display: grid;
  grid-template-columns: 300px 1fr;
  gap: 0;
  @media (width < 768px) {
    grid-template-columns: 1fr;
  }
}

.organization-card-single__image {
  width: 100%;
  height: 100%;
  overflow: hidden;
  @media (width < 768px) {
    height: 250px;
  }
}

.organization-card-single__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}

.organization-card-single:hover .organization-card-single__image img {
  transform: scale(1.1);
}

.organization-card-single__content {
  padding: 30px;
}

.organization-card-single__title {
  font-size: clamp(20px, 3vw, 24px);
  font-weight: bold;
  color: var(--green01);
  margin-bottom: 15px;
  line-height: 1.5;
}

.organization-card-single__excerpt {
  font-size: 16px;
  line-height: 1.8;
  color: #666;
  margin-bottom: 20px;
}

.organization-card-single__link-text {
  font-size: 16px;
  font-weight: bold;
  color: var(--green01);
}

/* ナビゲーション */
.single-matching__nav {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin-bottom: 50px;
}

.single-matching__nav-prev,
.single-matching__nav-next {
  min-height: 100px;
}

.single-matching__nav a {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 20px;
  background: #fff;
  border: 2px solid var(--green01);
  border-radius: 10px;
  transition: all 0.3s;
  height: 100%;
}

.single-matching__nav a:hover {
  background: var(--green02);
  transform: translateY(-3px);
}

.single-matching__nav .nav-label {
  font-size: 14px;
  color: var(--green01);
  font-weight: bold;
}

.single-matching__nav .nav-title {
  font-size: 16px;
  color: var(--text-color);
  line-height: 1.5;
}

.single-matching__nav-next a {
  text-align: right;
}

/* ボタン */
.single-matching__buttons {
  display: flex;
  gap: 20px;
  justify-content: center;
  flex-wrap: wrap;
}

.single-matching__buttons .btn {
  margin: 0;
}

/* レスポンシブ */
@media (width < 768px) {
  .single-matching__type-badge {
    padding: 12px 25px;
    font-size: 16px;
    gap: 8px;
  }

  .single-matching__type-badge img {
    width: 24px;
    height: 24px;
  }

  .single-matching__info-table {
    display: block;
  }

  .single-matching__info-table tbody,
  .single-matching__info-table tr,
  .single-matching__info-table th,
  .single-matching__info-table td {
    display: block;
    width: 100%;
  }

  .single-matching__info-table th {
    background: var(--green01);
    color: #fff;
    padding: 10px 15px;
    width: 100%;
  }

  .single-matching__info-table td {
    padding: 15px;
    border-bottom: 2px solid var(--border-color01);
  }

  .single-matching__nav {
    grid-template-columns: 1fr;
  }

  .single-matching__nav-next a {
    text-align: left;
  }

  .single-matching__buttons {
    flex-direction: column;
  }

  .single-matching__body {
    font-size: 16px;
  }
}
/* *************************************
トップページ 活動紹介
************************************* */

.company_information .card01 .box {
  display: block;
  text-decoration: none;
  color: inherit;
  transition:
    transform 0.3s ease,
    box-shadow 0.3s ease;
}

.company_information .card01 .item:hover .box {
  transform: translateY(-10px);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
}

.company_information .card01 .box .image {
  overflow: hidden;
}

.company_information .card01 .box:hover .image img {
  transform: scale(1.1);
}

.company_information .card01 .box .image img {
  transition: transform 0.3s ease;
}

.company_information a:hover {
  opacity: 1;
}

/* *************************************
活動紹介 アーカイブページ
************************************* */
.archive-activity {
  padding: clamp(40px, 8vw, 80px) 0;
  background: var(--gray01);
  margin-top: -80px;
}

.archive-activity .inner {
  max-width: 1200px;
  margin: 0 auto;
}

.archive-activity__lead {
  text-align: center;
  font-size: clamp(16px, 2vw, 18px);
  line-height: 2;
  margin-bottom: 50px;
  color: var(--text-color);
}

/* 活動グリッド */
.activity-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 30px;
  margin-bottom: 50px;
}

.activity-card {
  background: #fff;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  transition:
    transform 0.3s ease,
    box-shadow 0.3s ease;
}

.activity-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
}

.activity-card__link {
  display: block;
}

.activity-card__image {
  width: 100%;
  height: 220px;
  overflow: hidden;
}

.activity-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}

.activity-card:hover .activity-card__image img {
  transform: scale(1.1);
}

.activity-card__content {
  padding: 25px;
}

.activity-card__category {
  margin-bottom: 12px;
}

.activity-card__category span {
  display: inline-block;
  padding: 5px 15px;
  background: var(--blue03);
  color: var(--blue02);
  border-radius: 5px;
  font-size: 13px;
  font-weight: bold;
}

.activity-card__title {
  font-size: clamp(18px, 2.5vw, 20px);
  font-weight: bold;
  color: var(--text-color);
  margin-bottom: 12px;
  line-height: 1.5;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.activity-card__excerpt {
  font-size: 14px;
  line-height: 1.7;
  color: #666;
  margin-bottom: 15px;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.activity-card__date {
  font-size: 13px;
  color: #999;
}

/* ページネーション */
.archive-activity__pagination {
  margin-top: 60px;
  text-align: center;
}

.archive-activity__pagination .page-numbers {
  display: inline-flex;
  gap: 10px;
  list-style: none;
  padding: 0;
  margin: 0;
  flex-wrap: wrap;
  justify-content: center;
}

.archive-activity__pagination .page-numbers li {
  display: inline-block;
}

.archive-activity__pagination .page-numbers a,
.archive-activity__pagination .page-numbers span {
  display: inline-block;
  padding: 10px 15px;
  background: #fff;
  border: 2px solid var(--blue01);
  color: var(--blue01);
  border-radius: 5px;
  text-decoration: none;
  transition: all 0.3s;
  min-width: 45px;
  text-align: center;
}

.archive-activity__pagination .page-numbers a:hover {
  background: var(--blue01);
  color: #fff;
}

.archive-activity__pagination .page-numbers .current {
  background: var(--blue01);
  color: #fff;
  font-weight: bold;
}

.archive-activity__empty {
  text-align: center;
  font-size: 18px;
  color: #666;
  padding: 60px 20px;
  background: #fff;
  border-radius: 20px;
  margin-bottom: 50px;
}

.archive-activity .btn {
  margin-top: 60px;
}

/* *************************************
活動紹介 個別ページ
************************************* */

.single-activity {
  padding-bottom: 80px;
  background: var(--gray01);
}

.single-activity .inner {
  max-width: 1000px;
  margin: 0 auto;
}

/* 関連団体バッジ */
.single-activity__org-badge {
  text-align: center;
  margin-bottom: 30px;
}

.single-activity__org-link {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 15px 50px;
  background: var(--blue01);
  color: #fff;

  font-size: clamp(16px, 2vw, 20px);
  font-weight: bold;
}

.single-activity__org-link:hover {
  background: var(--blue02);
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.2);
}

.single-activity__org-icon {
  font-size: 1.3em;
}

/* メイン画像 */
.single-activity__main-image {
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  max-width: 70%;
  margin: 0 auto 50px;
}

.single-activity__main-image img {
  width: 100%;
  height: auto;
  display: block;
}

/* 活動PR */
.single-activity__pr {
  padding: clamp(30px, 5vw, 50px);
  margin-bottom: 40px;
  background-image: linear-gradient(0deg, transparent calc(100% - 1px), #f0f0f0 calc(100% - 1px)), linear-gradient(90deg, transparent calc(100% - 1px), #f0f0f0 calc(100% - 1px));
  background-size: 16px 16px;
  background-repeat: repeat;
  background-position: center center;
  background-color: #fff;
}

.single-activity__pr-content {
  font-size: clamp(18px, 2.5vw, 22px);
  line-height: 2;
  color: var(--text-color);
  font-weight: 500;
}

/* セクション共通 */
.single-activity__wrap {
  background: var(--white);
  border-radius: calc(20 * var(--rem));
}
.single-activity__details,
.single-activity__body {
  padding: clamp(30px, 5vw, 20px);
  margin-bottom: 10px;
}

.single-activity__section-title {
  font-size: clamp(24px, 4vw, 30px);
  color: var(--blue02);
  font-weight: bold;
  margin-bottom: 25px;
  padding-bottom: 15px;
  border-bottom: 3px solid var(--blue02);
}

.single-activity__map {
  margin-top: 20px;
  padding: 0 30px;
}
.single-activity__content {
  font-size: 18px;
  line-height: 2;
  color: var(--text-color);
}

.single-activity__content p {
  margin-bottom: 1.5em;
}

.single-activity__content h3,
.single-activity__content h4 {
  color: var(--blue01);
  font-weight: bold;
  margin-top: 30px;
  margin-bottom: 15px;
}

.single-activity__content h3 {
  font-size: clamp(20px, 3vw, 24px);
  padding-left: 15px;
  border-left: 5px solid var(--blue01);
}

.single-activity__content h4 {
  font-size: clamp(18px, 2.5vw, 22px);
}

.single-activity__content ul,
.single-activity__content ol {
  margin: 1.5em 0 1.5em 2em;
}

.single-activity__content li {
  margin-bottom: 0.5em;
}

.single-activity__content img {
  max-width: 100%;
  height: auto;
  border-radius: 10px;
  margin: 30px 0;
}

/* 関連情報 */
.single-activity__related {
  padding: clamp(30px, 5vw, 50px);

  margin-bottom: 40px;
}

.single-activity__related-grid {
  display: grid;
  gap: 40px;
}

.single-activity__related-section {
  padding-bottom: 40px;
  border-bottom: 2px dashed var(--border-color01);
}

.single-activity__related-section:last-child {
  padding-bottom: 0;
  border-bottom: none;
}

/* 関連団体カード */
.related-org-card {
  background: var(--gray01);
  border-radius: 15px;
  overflow: hidden;
  transition:
    transform 0.3s ease,
    box-shadow 0.3s ease;
}

.related-org-card__link {
  display: grid;
  grid-template-columns: 250px 1fr;
  gap: 0;
  @media (width < 768px) {
    grid-template-columns: 1fr;
  }
}

.related-org-card__image {
  width: 100%;
  height: 100%;
  overflow: hidden;
  @media (width < 768px) {
    height: 200px;
  }
}

.related-org-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}

.related-org-card:hover .related-org-card__image img {
  transform: scale(1.1);
}

.related-org-card__content {
  padding: 25px;
  background: #fff;
}

.related-org-card__title {
  font-size: clamp(18px, 2.5vw, 22px);
  font-weight: bold;
  color: var(--green01);
  margin-bottom: 12px;
}

.related-org-card__excerpt {
  font-size: 15px;
  line-height: 1.7;
  color: #666;
  margin-bottom: 15px;
}

.related-org-card__link-text {
  font-size: 15px;
  font-weight: bold;
  color: var(--green01);
  border: 1px solid var(--green01);
  border-radius: 20px;
  padding: 5px 20px;
  display: inline-block;
}
.related-org-card__link-text:hover {
  background: var(--green01);
  color: #fff;
}

/* 関連マッチングカード */
.related-matching-card {
  background: var(--white);
  padding: 25px;
  border-radius: 15px;
  transition:
    transform 0.3s ease,
    box-shadow 0.3s ease;
}

.related-matching-card__link {
  display: block;
}

.related-matching-card__badge {
  display: inline-block;
  padding: 6px 15px;
  border-radius: 5px;
  font-size: 13px;
  font-weight: bold;
  color: #fff;
  margin-bottom: 15px;
}

.related-matching-card__badge--support {
  background: var(--blue01);
}

.related-matching-card__badge--receive {
  background: var(--brown01);
}

.related-matching-card__title {
  font-size: clamp(18px, 2.5vw, 22px);
  font-weight: bold;
  color: var(--text-color);
  margin-bottom: 12px;
  line-height: 1.5;
}

.related-matching-card__excerpt {
  font-size: 15px;
  line-height: 1.7;
  color: #666;
  margin-bottom: 15px;
}

.related-matching-card__link-text {
  font-size: 15px;
  font-weight: bold;
  color: var(--blue01);
  border: 1px solid var(--blue01);
  border-radius: 20px;
  padding: 5px 20px;
  display: inline-block;
}
.related-matching-card__link-text:hover {
  background: var(--blue01);
  color: #fff;
}

/* ナビゲーション */
.single-activity__nav {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin-bottom: 50px;
}

.single-activity__nav-prev,
.single-activity__nav-next {
  min-height: 100px;
}

.single-activity__nav a {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 20px;
  background: #fff;
  border: 2px solid var(--blue01);
  border-radius: 10px;
  transition: all 0.3s;
  height: 100%;
}

.single-activity__nav a:hover {
  background: var(--blue03);
  transform: translateY(-3px);
  box-shadow: 0 5px 15px rgba(126, 175, 224, 0.3);
}

.single-activity__nav .nav-label {
  font-size: 14px;
  color: var(--blue01);
  font-weight: bold;
}

.single-activity__nav .nav-title {
  font-size: 16px;
  color: var(--text-color);
  line-height: 1.5;
}

.single-activity__nav-next a {
  text-align: right;
}

/* ボタン */
.single-activity__buttons {
  display: flex;
  gap: 20px;
  justify-content: center;
  flex-wrap: wrap;
}

.single-activity__buttons .btn {
  margin: 0;
}

/* レスポンシブ */
@media (width < 768px) {
  .activity-grid {
    grid-template-columns: 1fr;
  }

  .single-activity__nav {
    grid-template-columns: 1fr;
  }

  .single-activity__nav-next a {
    text-align: left;
  }

  .single-activity__buttons {
    flex-direction: column;
  }

  .archive-activity__pagination .page-numbers {
    gap: 5px;
  }

  .archive-activity__pagination .page-numbers a,
  .archive-activity__pagination .page-numbers span {
    padding: 8px 12px;
    font-size: 14px;
    min-width: 40px;
  }
}
/* *************************************
プライバシーポリシー
************************************* */
.page-privacy-policy__inner {
  max-width: 860px;
  margin: 0 auto;
  padding: clamp(40px, 8vw, 80px) 20px;
  background: #fff;
  padding-top: 0;
}
.page-privacy-policy__inner h2 {
  color: var(--green01);
  font-weight: bold;
  margin-top: 30px;
  margin-bottom: 20px;
  line-height: 1.5;
}

.page-privacy-policy__inner h3,
.page-privacy-policy__inner h4 {
  color: var(--text-color);
  font-weight: bold;
  margin-top: 30px;
  margin-bottom: 20px;
  line-height: 1.5;
}
.page-privacy-policy {
  padding-top: 0;
}
.page-privacy-policy__inner ol {
  list-style: decimal;
}
.page-privacy-policy__inner li {
  padding-block-end: calc(15 * var(--rem));
}
/* *************************************
使い方ページ
************************************* */

.page-howto {
  padding: clamp(40px, 8vw, 80px) 0;
  background: var(--gray01);
  margin-top: -80px;
}

.page-howto .inner {
  max-width: 1000px;
  margin: 0 auto;
}

.howto-intro {
  background-image: linear-gradient(0deg, transparent calc(100% - 1px), #f0f0f0 calc(100% - 1px)), linear-gradient(90deg, transparent calc(100% - 1px), #f0f0f0 calc(100% - 1px));
  background-size: 16px 16px;
  background-repeat: repeat;
  background-position: center center;
  background-color: #fff;
  padding: clamp(30px, 5vw, 50px);
  margin-bottom: 60px;
  text-align: center;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.howto-intro__text {
  font-size: clamp(16px, 2vw, 18px);
  line-height: 2;
  color: var(--text-color);
}

.howto-section {
  background: #fff;
  padding: clamp(40px, 6vw, 60px);
  margin: 0 calc(50% - 50vw);
  @media (max-width: 798px) {
    padding: 20px 0;
  }
}
.howto-section02 {
  background-color: rgba(171, 225, 250, 0.2);
}

.howto-section__header {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-bottom: 30px;
  padding-bottom: 20px;
  border-bottom: 3px solid var(--green01);
}

.howto-section__icon {
  width: 60px;
  height: 60px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--green01);
  border-radius: 50%;
  font-size: 30px;
  flex-shrink: 0;
}

.howto-section__icon img {
  width: 35px;
  height: 35px;
}

.howto-section__title {
  font-size: clamp(24px, 4vw, 32px);
  font-weight: bold;
  color: var(--green01);
}

.howto-section__lead {
  font-size: clamp(16px, 2vw, 18px);
  line-height: 2;
  color: var(--text-color);
  margin-bottom: 40px;
  padding: 20px;
  background: var(--green02);
}
.howto-section__lead02 {
  background: #fff;
}

.howto-flow {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.howto-section02 .howto-step {
  background: #fff;
}
.howto-step {
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 30px;
  padding: 30px;
  background: var(--gray01);
}

.howto-step__number {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: var(--green01);
  color: #fff;
  border-radius: 10px;
  padding: 20px 10px;
  height: fit-content;
}

.howto-step__number span {
  font-size: 12px;
  font-weight: bold;
  letter-spacing: 0.1em;
  margin-bottom: 5px;
}

.howto-step__number strong {
  font-size: 36px;
  font-weight: bold;
  line-height: 1;
}

.howto-step__content {
  padding: 10px 0;
}

.howto-step__title {
  font-size: clamp(20px, 3vw, 24px);
  font-weight: bold;
  color: var(--green01);
  margin-bottom: 15px;
}

.howto-step__text {
  font-size: 16px;
  line-height: 1.8;
  color: var(--text-color);
  margin-bottom: 20px;
}

.howto-arrow {
  text-align: center;
  font-size: 40px;
  color: var(--green01);
  padding: 15px 0;
  font-weight: bold;
}

.howto-method {
  background: #fff;
  border: 2px solid var(--green01);
  border-radius: 10px;
  padding: 25px;
  margin-bottom: 20px;
}

.howto-method:last-child {
  margin-bottom: 0;
}

.howto-method__label {
  display: inline-block;
  padding: 8px 20px;
  background: var(--green01);
  color: #fff;
  border-radius: 100vmax;
  font-size: 14px;
  font-weight: bold;
  margin-bottom: 15px;
}

.howto-method__content p {
  font-size: 16px;
  line-height: 1.8;
  margin-bottom: 20px;
}

.howto-buttons {
  display: flex;
  gap: 15px;
  flex-wrap: wrap;
  margin-top: 20px;
  justify-content: center;
}

.howto-buttons .btn01 {
  margin: 0;
}

.howto-contact-info {
  background: var(--gray01);
  padding: 20px;
  margin-top: 20px;
}

.howto-contact-info p {
  font-size: 15px;
  margin-bottom: 8px;
}

.howto-contact-info p:last-child {
  margin-bottom: 0;
}

.howto-example {
  margin: 30px 0;
}

.howto-example__image {
  border: 3px solid var(--border-color01);
  border-radius: 10px;
  overflow: hidden;
  background: #fff;
}

.howto-example__image img {
  width: 100%;
  height: auto;
  display: block;
}
.howto-example__image:first-child img {
  aspect-ratio: 16 / 7;
  object-fit: contain;
  padding: 10px 0;
}

.howto-example__caption {
  padding: 15px 20px;
  background: var(--green02);
}

.howto-example__caption p {
  font-size: 15px;
  font-weight: bold;
  color: var(--green01);
  margin: 0;
}

.howto-contact-box {
  padding: clamp(30px, 5vw, 50px);
}

.howto-contact-box__text {
  font-size: clamp(16px, 2vw, 18px);
  line-height: 2;
  color: var(--text-color);
  margin-bottom: 30px;
  text-align: center;
}

.howto-contact-box__buttons {
  text-align: center;
  margin-bottom: 40px;
}

.howto-contact-box__buttons .btn01 {
  margin: 0;
}

.howto-contact-box__info {
  background: var(--yellow02);
  padding: 30px;
}

.howto-contact-box__info h4 {
  font-size: 20px;
  font-weight: bold;
  color: var(--green01);
  margin-bottom: 20px;
  padding-bottom: 10px;
  border-bottom: 2px solid var(--green01);
}

.howto-contact-box__info p {
  font-size: 15px;
  line-height: 1.8;
  margin-bottom: 10px;
}

.howto-contact-box__info p:last-child {
  margin-bottom: 0;
}

@media (width < 768px) {
  .howto-step {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .howto-step__number {
    flex-direction: row;
    justify-content: center;
    gap: 10px;
    padding: 15px;
  }

  .howto-step__number span {
    margin-bottom: 0;
  }

  .howto-step__number strong {
    font-size: 28px;
  }

  .howto-section__header {
    flex-direction: column;
    align-items: flex-start;
  }

  .howto-buttons {
    flex-direction: column;
  }

  .howto-buttons .btn01 {
    width: 100%;
  }

  .howto-arrow {
    font-size: 30px;
    padding: 10px 0;
  }
}
.btn__apply {
  text-align: center;
  margin-bottom: 50px;
}
.btn__apply .btn01 {
  padding: 15px 40px;
  font-size: 1.4rem;
  font-weight: bold;
}

/*シングル新着情報*/
.post-content {
  padding: 180px 0 80px 0;
}
.post-title {
  font-size: calc(28 * var(--rem));
  font-weight: bold;
  text-align: center;
  color: var(--green01);
  margin: 0 auto 40px;
  width: fit-content;
  padding-bottom: 18px;
  border-bottom: 1px solid #ccc;
  @media (width < 768px) {
    font-size: calc(24 * var(--rem));
    margin-block-end: calc(30 * var(--rem));
  }
}
.post-meta {
  padding-bottom: 20px;
}
.post-date {
  font-size: calc(16 * var(--rem));
  color: #999;
  text-align: center;
  padding-bottom: 60px;
  margin-block-end: calc(60 * var(--rem));
  @media (width < 768px) {
    font-size: calc(14 * var(--rem));
    margin-block-end: calc(40 * var(--rem));
  }
}
.post-single {
  max-width: 980px;
  margin: 0 auto;
}
.post-back-btn a {
  display: block;
  width: fit-content;
  margin: 60px auto 0;
  padding: calc(12 * var(--rem)) calc(32 * var(--rem));
  background-color: var(--sub);
  color: var(--white);
  font-size: calc(16 * var(--rem));
  font-weight: 500;
  text-align: center;
  border-radius: calc(4 * var(--rem));
  transition:
    background-color 0.3s ease,
    transform 0.3s ease;
  @media (width < 768px) {
    font-size: calc(14 * var(--rem));
    padding: calc(10 * var(--rem)) calc(24 * var(--rem));
    margin-block-start: calc(40 * var(--rem));
  }
}
/* *************************************
お知らせページ
************************************* */
.news-archive {
  padding-block: calc(80 * var(--rem));
  background-color: var(--white);
  @media (width < 768px) {
    padding-block: calc(60 * var(--rem));
  }
}

.news-filter {
  display: flex;
  gap: calc(16 * var(--rem));
  justify-content: center;
  flex-wrap: wrap;
  margin-block-end: calc(60 * var(--rem));
  @media (width < 768px) {
    gap: calc(12 * var(--rem));
    margin-block-end: calc(40 * var(--rem));
  }
}

.news-filter__btn {
  padding: calc(12 * var(--rem)) calc(32 * var(--rem));
  font-size: calc(16 * var(--rem));
  font-weight: 500;
  color: var(--sub);
  background-color: var(--white);
  border: 2px solid var(--sub);
  cursor: pointer;
  transition:
    background-color 0.3s ease,
    color 0.3s ease;
  white-space: nowrap;
  @media (width < 768px) {
    padding: calc(10 * var(--rem)) calc(24 * var(--rem));
    font-size: calc(14 * var(--rem));
  }
}

@media (any-hover: hover) {
  .news-filter__btn:hover {
    background-color: var(--sub);
    color: var(--white);
  }
}

.news-filter__btn.is-active {
  background-color: var(--sub);
  color: var(--white);
}

.news-list {
  max-width: calc(900 * var(--rem));
  margin-inline: auto;
}

.news-list__item {
  border-bottom: 1px solid #e0e0e0;
  transition: background-color 0.3s ease;
}

.news-list__item:first-child {
  border-top: 1px solid #e0e0e0;
}

@media (any-hover: hover) {
  .news-list__item:hover {
    background-color: #f9f9f9;
  }
}

.news-list__item.is-hidden {
  display: none;
}

.news-list__link {
  display: grid;
  grid-template-columns: auto auto 1fr;
  gap: 0 calc(24 * var(--rem));
  align-items: center;
  padding-block: calc(28 * var(--rem));
  padding-inline: calc(20 * var(--rem));
  color: #333;
  @media (width < 768px) {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto auto;
    gap: calc(10 * var(--rem)) 0;
    padding-block: calc(20 * var(--rem));
    padding-inline: calc(16 * var(--rem));
  }
}

.news-list__date {
  font-size: calc(16 * var(--rem));
  font-weight: 400;
  font-family: "Arial", sans-serif;
  color: #999;
  letter-spacing: 0.05em;
  white-space: nowrap;
  @media (width < 768px) {
    font-size: calc(14 * var(--rem));
  }
}

.news-list__category {
  display: inline-block;
  font-size: calc(14 * var(--rem));
  font-weight: 500;
  color: var(--white);
  background-color: var(--sub);
  padding: calc(6 * var(--rem)) calc(16 * var(--rem));
  white-space: nowrap;
  width: fit-content;
  @media (width < 768px) {
    font-size: calc(12 * var(--rem));
    padding: calc(4 * var(--rem)) calc(12 * var(--rem));
  }
}

.news-list__title {
  font-size: calc(16 * var(--rem));
  font-weight: 500;
  line-height: 1.6;
  color: #333;
  transition: color 0.3s ease;

  @media (width < 768px) {
    font-size: calc(15 * var(--rem));
  }
}

@media (any-hover: hover) {
  .news-list__link:hover .news-list__title {
    color: var(--sub);
  }
}

.news-list__empty {
  font-size: calc(16 * var(--rem));
  color: #999;
  text-align: center;
  padding-block: calc(60 * var(--rem));
  @media (width < 768px) {
    font-size: calc(14 * var(--rem));
    padding-block: calc(40 * var(--rem));
  }
}

.news-pagination {
  max-width: calc(900 * var(--rem));
  margin-inline: auto;
  margin-block-start: calc(60 * var(--rem));
  @media (width < 768px) {
    margin-block-start: calc(40 * var(--rem));
  }
}

.news-pagination ul {
  display: flex;
  justify-content: center;
  gap: calc(8 * var(--rem));
  flex-wrap: wrap;
}

.news-pagination li {
  list-style: none;
}

.news-pagination a,
.news-pagination span {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: calc(44 * var(--rem));
  height: calc(44 * var(--rem));
  padding-inline: calc(12 * var(--rem));
  font-size: calc(15 * var(--rem));
  color: #333;
  background-color: var(--white);
  border: 1px solid #e0e0e0;
  transition:
    background-color 0.3s ease,
    color 0.3s ease,
    border-color 0.3s ease;
  @media (width < 768px) {
    min-width: calc(40 * var(--rem));
    height: calc(40 * var(--rem));
    font-size: calc(14 * var(--rem));
  }
}

@media (any-hover: hover) {
  .news-pagination a:hover {
    background-color: var(--sub);
    color: var(--white);
    border-color: var(--sub);
  }
}

.news-pagination .current {
  background-color: var(--sub);
  color: var(--white);
  border-color: var(--sub);
  font-weight: bold;
}
/* フッター修正 */
.chiki-fukushi-name {
  margin-top: calc(20 * var(--rem));
  @media (max-width: 768px) {
    font-size: calc(14 * var(--rem));
  }
}
.chiki-fukushi-name_title {
  text-align: center;
  font-size: calc(24 * var(--rem));
  margin-block-end: calc(10 * var(--rem));
  color: var(--orange01);
  @media (max-width: 768px) {
    font-size: calc(20 * var(--rem));
  }
}
.single-organization__name {
  text-align: center;
  font-weight: bold;
  margin-inline: auto;
  width: fit-content;
  margin-block-start: calc(60 * var(--rem));
  position: sticky;
  top: 90px;
  z-index: 90;
  @media (width < 768px) {
    font-size: calc(24 * var(--rem));
    margin-block-end: calc(30 * var(--rem));
    top: 90px;
  }
}
.single-organization__section-title-top {
  font-size: calc(24 * var(--rem));
  color: #fff;
  background: var(--blue01);
  font-weight: bold;
  padding: 15px;
}

.group_introduction__wrap {
  margin-block-end: calc(64 * var(--rem));
}