html {
  scroll-behavior: smooth;
}

body {
  font-family: "Mulish", "Zen Kaku Gothic New", sans-serif;
  color: #000;
}

#bg {
  display: flex;
  justify-content: center;
}

#content {
  z-index: 1;
  background-color: #f5f5f5;
  width: 100%;
  max-width: 500px;
}

#kv {
  z-index: 0;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: calc(100vh - 80px);
  max-height: 900px;
  overflow: hidden;
  position: relative;
  border-radius: 0px 0px 112px 0px;
}

#kv .bg {
  z-index: -1;
  width: 100%;
  height: calc(100vh - 80px);
  overflow: hidden;
  position: absolute;
  top: 64px;
  left: 0;
}

#kv .img-01,
#kv .img-02,
#kv .img-03,
#kv .img-04 {
  position: absolute;
  width: 100%;
  height: calc(100vh - 80px);
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center center;
}

#kv .img-01 {
  animation: slide-animation-01 32s infinite both;
}

#kv .img-02 {
  animation: slide-animation-02 32s infinite both;
}

#kv .img-03 {
  animation: slide-animation-03 32s infinite both;
}

#kv .img-04 {
  animation: slide-animation-04 32s infinite both;
}

@keyframes slide-animation-01 {
  0% {
    opacity: 1;
    transform: scale(1);
  }
  20% {
    opacity: 1;
  }
  40% {
    opacity: 0;
    transform: scale(1.15);
  }
  60% {
    opacity: 0;
  }
  80% {
    opacity: 0;
    transform: scale(1);
  }
  100% {
    opacity: 1;
    transform: scale(1);
  }
}
@keyframes slide-animation-02 {
  0% {
    opacity: 0;
  }
  20% {
    opacity: 0;
    transform: scale(1);
  }
  40% {
    opacity: 1;
  }
  60% {
    opacity: 0;
    transform: scale(1.15);
  }
  80% {
    opacity: 0;
  }
  100% {
    opacity: 0;
  }
}

@keyframes slide-animation-03 {
  0% {
    opacity: 0;
  }
  20% {
    opacity: 0;
  }
  40% {
    opacity: 0;
    transform: scale(1);
  }
  60% {
    opacity: 1;
  }
  80% {
    opacity: 0;
    transform: scale(1.15);
  }
  100% {
    opacity: 0;
  }
}

@keyframes slide-animation-04 {
  0% {
    opacity: 0;
  }
  20% {
    opacity: 0;
  }
  40% {
    opacity: 0;
  }
  60% {
    opacity: 0;
    transform: scale(1);
  }
  80% {
    opacity: 1;
  }
  100% {
    opacity: 0;
    transform: scale(1.15);
  }
}

#kv .title {
  margin-top: 24px;
  display: flex;
  flex-direction: column;
  align-items: center;
}

#kv .title .subtitle {
  font-weight: 700;
  font-size: 12px;
  line-height: 175%;
}

#kv .content {
  bottom: 80px;
  width: 100%;
  display: flex;
  justify-content: space-between;
  position: absolute;
  width: 100%;
  max-width: 500px;
}

#kv .content .subtitle {
  font-style: normal;
  font-weight: 700;
  font-size: 0.9vw;
  line-height: 175%;
}

#kv .content .subtitle p {
  font-weight: 700;
  font-size: 28px;
  line-height: 100%;
  margin-bottom: 8px;
  padding: 12px;
  background-color: #ffffff;
  display: inline-block;
}

#banner {
  margin: 32px 0;
}

#banner .item {
  margin: 4% 6%;
  display: flex;
  justify-content: center;
  align-items: center;
}

#banner .item img {
  width: 100%;
  border-radius: 24px;
  box-shadow: 0px 4px 10px 0px rgba(0, 0, 0, 0.1);
}

#notifications {
  display: flex;
  justify-content: center;
}

#notifications .content {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background-color: #ffffff;
  width: 84%;
  border: #000000 2px solid;
  padding: 8px 16px;
  height: 54px;
  border-radius: 27px;
}

#notifications .content .description {
  width: 70%;
  display: flex;
  align-items: center;
}

#notifications .content .description .date {
  margin-right: 8px;
}

#notifications .content .description .title {
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

#notifications .content .description p {
  font-weight: 700;
  font-size: 12px;
  line-height: 150%;
}

#notifications .content .news {
  display: flex;
  align-items: center;
  height: 32px;
  border-radius: 16px;
  background-color: #000000;
  color: #ffffff;
  font-size: 11px;
  font-weight: 700;
  padding: 0 8px;
  min-width: 67px;
}

#notifications .content .news :is(img, svg) {
  margin-left: 4px;
}

#about {
  width: 100%;
  margin-top: 16px;
}

#about .collaboration {
  position: relative;
  height: 210px;
  margin: 0 auto;
  overflow: hidden;
  padding-top: 22px;
}

#about .collaboration .anim {
  transition: all 0.3s;
}

#about .collaboration .anim {
  opacity: 1;
  animation: loop 30s linear infinite;
  position: absolute;
  left: 50%;
  display: flex;
  transform: translate(-50%, 0%);
  white-space: nowrap;
}

#about .collaboration .anim {
  top: 0;
}

#about .collaboration .inline {
  display: block;
  font-weight: 700;
  font-size: 70px;
  color: #fff;
  text-align: center;
  white-space: nowrap;
}

@keyframes loop {
  0% {
    transform: translate(-40%, 0%);
  }
  100% {
    transform: translate(-60%, 0%);
  }
}

#about .collaboration .image {
  width: 100%;
  height: 100%;
  position: absolute;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 32px;
}

#about .overview {
  margin-top: 24px;
  padding: 0 24px;
}

#about .overview .title {
  display: flex;
  flex-direction: column;
  align-items: center;
}

#about .overview .title p {
  background-color: #000000;
  color: #fff;
  font-weight: 700;
  font-size: 18px;
  line-height: 150%;
  padding: 4px 8px;
}

#about .overview .description {
  margin-top: 24px;
  display: flex;
  flex-direction: column;
  align-items: center;
}

#about .overview .description p {
  font-weight: 700;
  font-size: 18px;
  line-height: 175%;
  text-align: center;
  margin-bottom: 24px;
}

#about .images {
  margin-top: 80px;
  position: relative;
  height: 155vw;
  max-height: 800px;
  background-image: url("/wp-content/uploads/sites/2/2024/06/top-photo.png");
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
}

#about .images .map {
  position: absolute;
  top: -80px;
  right: 64px;
}

#about .images .copy {
  position: absolute;
  top: 40%;
  left: 8vw;
}

#about .detail {
  margin-top: 32px;
  margin-bottom: 56px;
  padding: 0 24px;
}

#about .detail p {
  font-size: 16px;
  line-height: 28px;
  margin-bottom: 24px;
  font-weight: 500;
}

.register-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  height: 480px;
  background-image: url("/wp-content/themes/favtown/assets/images/01_top/top-cv.png");
  background-repeat: no-repeat;
  background-size: cover;
  border-bottom-right-radius: 56px;
  border-top-left-radius: 56px;
  padding: 64px 0;
}

.register-content .logo {
  width: 80%;
}

.register-content .subtitle {
  color: #ffffff;
  font-weight: 700;
  font-size: 16px;
  margin-top: 24px;
}

.register-content .button {
  margin-top: 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  background-color: #000000;
  width: 70%;
  color: #ffffff;
  font-weight: 700;
  font-size: 17px;
  line-height: 150%;
  height: 94px;
  width: 327px;
  padding: 24px 24px 24px 40px;
  border-radius: 47px;
}

.register-content .button img {
  width: 30px;
}

.register-content .socials {
  padding: 16px;
  margin-top: 16px;
  width: 80%;
  background-color: #ffffff;
  border-radius: 16px;
}

.register-content .socials p {
  text-align: center;
  color: #000000;
  font-weight: 700;
  font-size: 16px;
  line-height: 175%;
}

.register-content .icons {
  margin-top: 16px;
  display: flex;
  justify-content: space-around;
}

.register-content .icons .icon {
  width: 54px;
  height: 54px;
  border-radius: 27px;
  background-color: #f2f4f6;
  display: flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
}

#benefit {
  margin: 32px 0 64px 0;
}

#benefit .title {
  position: relative;
  display: flex;
  justify-content: center;
  height: 164px;
  color: #ffffff;
}

#benefit .title .bg {
  text-align: center;
  width: 80%;
  position: absolute;
  top: 0;
  font-weight: 700;
  line-height: 60px;
  font-size: 70px;
}

#benefit .title .benefit {
  position: absolute;
  display: flex;
  align-items: center;
  justify-content: center;
  background-image: url("/wp-content/themes/favtown/assets/images/01_top/benefit-ttl-bg.svg");
  background-repeat: no-repeat;
  background-size: cover;
  top: 110px;
  width: 255px;
  height: 53px;
  font-weight: 700;
  font-size: 30px;
  line-height: 150%;
}

#benefit .slide-area {
  margin-top: 32px;
}

#benefit .slide-area .slide-container {
  display: flex;
  align-items: center;
  overflow: hidden;
}

#benefit .slide-area .slide-wrapper {
  display: flex;
  animation: slide-flow 20s infinite linear 0s both;
  padding-right: 8px;
}

#benefit .slide-area .slide-container.reverse .slide-wrapper {
  animation: slide-flow-reverse 20s infinite linear 0s both;
}

#benefit .slide-area .slide-container .slide {
  padding-right: 8px;
  height: 100px;
  display: flex;
  justify-content: center;
  align-items: center;
}

#benefit .slide-area .slide-container .slide img {
  transform: rotate(15deg);
}

#benefit .slide-area .slide-container .slide:nth-child(2n) img {
  transform: rotate(-15deg);
}

@keyframes slide-flow {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-100%);
  }
}

@keyframes slide-flow-reverse {
  0% {
    transform: translateX(-100%);
  }
  100% {
    transform: translateX(0);
  }
}

#benefit .slide-area .annotaion {
  font-size: 12px;
  font-weight: 500;
  line-height: 17px;
  letter-spacing: 0em;
  text-align: center;
}

#benefit .content {
  z-index: 0;
  display: flex;
  justify-content: center;
  overflow: hidden;
  margin-top: 32px;
  position: relative;
  height: 120vw;
  max-height: 600px;
}

#benefit .content .circle {
  z-index: -1;
  position: absolute;
  top: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #ffffff;
  width: 120vw;
  height: 120vw;
  max-width: 600px;
  max-height: 600px;
  border-radius: 50%;
  background-image: url("/wp-content/themes/favtown/assets/images/01_top/circle-main-copy.svg");
  background-repeat: no-repeat;
  background-size: cover;
  border: inset 10px transparent;
  animation: rotate 60s linear infinite;
}

@keyframes rotate {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

#benefit .content .wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  padding-bottom: 40px;
}

#benefit .content .illust {
  width: 120px;
  height: 120px;
  text-align: center;
}

#benefit .content .description {
  text-align: center;
  margin-top: 16px;
}

#benefit .content .description p {
  display: inline-block;
  background-color: #000000;
  color: #ffffff;
  font-weight: 700;
  font-size: 24px;
  line-height: 150%;
  margin-bottom: 8px;
  padding: 0 8px;
}

#benefit .content .detail {
  margin-bottom: 8px;
}

#benefit .content .detail p {
  font-weight: 500;
  font-size: 16px;
  line-height: 175%;
  text-align: center;
}

#benefit .content .button {
  margin-top: 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  background-color: #000000;
  width: 70%;
  color: #ffffff;
  font-weight: 700;
  font-size: 14px;
  line-height: 150%;
  height: 62px;
  width: 180px;
  padding: 16px 16px 16px 32px;
  border-radius: 31px;
}

#benefit .content .button .arrow {
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: #ffffff;
  width: 30px;
  height: 30px;
  border-radius: 15px;
}

#wakayama {
  margin: 32px 0;
  background-image: url("/wp-content/uploads/sites/2/2024/06/wakayama-bg.png");
  background-repeat: no-repeat;
  background-size: cover;
  background-position: top 256px center;
  padding-bottom: 40px;
  overflow: hidden;
}

#wakayama .bg {
  display: flex;
  justify-content: center;
}

#wakayama .bg .title {
  text-align: center;
  font-weight: 700;
  line-height: 60px;
  font-size: 70px;
  color: #ffffff;
}

#wakayama .content {
  background-color: #ffffff;
  border-radius: 24px;
  padding: 48px 24px;
  margin: 0 24px;
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
}

#wakayama .content .castle {
  width: 80%;
  margin-top: -120px;
  border-radius: 24px;
}

#wakayama .content .description {
  text-align: center;
  margin-top: 24px;
}

#wakayama .content .description p {
  display: inline-block;
  background-color: #000000;
  color: #ffffff;
  font-weight: 700;
  font-size: 24px;
  line-height: 150%;
  margin-bottom: 8px;
  padding: 0 8px;
}

#wakayama .content .slogan {
  width: 70%;
  margin-top: 8px;
  margin-bottom: 16px;
}

#partner .bg {
  display: flex;
  justify-content: center;
}

#partner .bg .title {
  text-align: center;
  font-weight: 700;
  line-height: 60px;
  font-size: 70px;
  color: #ffffff;
}

#partner .content {
  background-color: #ffffff;
  border-radius: 56px;
  padding: 48px 0;
}

#partner .content .partners {
  height: 243px;
  width: 100%;
  position: relative;
  overflow: hidden;
}

#partner .content .partners .slide-container {
  display: flex;
  align-items: center;
  overflow: hidden;
}

#partner .content .partners .slide-wrapper {
  display: flex;
  animation: slide-flow 120s infinite linear both;
  gap: 8px;
  margin-right: 8px;
}

#partner .content .partners .slide {
  width: 172px;
  height: 243px;
  object-fit: cover;
  border-radius: 24px;
}

@keyframes slide-flow {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-100%);
  }
}

#partner .content .description {
  padding: 16px;
  display: flex;
  flex-direction: column;
  align-items: center;
}

#partner .content .description .title {
  font-weight: 700;
  font-size: 30px;
  line-height: 150%;
  margin-bottom: 16px;
}
#partner .content .description .detail {
  font-weight: 500;
  font-size: 16px;
  line-height: 175%;
  text-align: center;
}

#partner .content .images {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: repeat(2, 1fr);
  grid-column-gap: 16px;
  grid-row-gap: 16px;
  padding: 0 24px;
  margin-bottom: 16px;
}

#partner .content .images a img {
  width: 100%;
  aspect-ratio: 103/50;
  border: 2px solid #f2f4f6;
  border-radius: 16px;
}

#partner .content .count {
  margin-bottom: 16px;
}

#partner .content .count p {
  font-weight: 500;
  font-size: 14px;
  line-height: 175%;
  text-align: center;
  color: #888888;
  font-weight: 700;
}

#partner .content .more,
#wakayama .content .more {
  display: flex;
  justify-content: center;
}

#partner .content .more .button,
#wakayama .content .more .button {
  height: 62px;
  display: flex;
  align-items: center;
  background-color: #000000;
  color: #ffffff;
  padding: 16px 16px 16px 32px;
  border-radius: 31px;
  width: 180px;
  justify-content: space-between;
  font-weight: 700;
  font-size: 14px;
  line-height: 150%;
}

#partner .content .more .button .arrow,
#wakayama .content .more .button .arrow {
  width: 30px;
  height: 30px;
  border-radius: 15px;
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: #ffffff;
}

#news {
  margin: 40px 0;
}

#news .bg {
  display: flex;
  justify-content: center;
}

#news .bg .title {
  text-align: center;
  font-weight: 700;
  line-height: 60px;
  font-size: 70px;
  color: #ffffff;
}

#news .content {
  background-color: #ffffff;
  border-radius: 56px;
  padding: 48px 0;
}

#news .content .description {
  padding: 16px;
  display: flex;
  flex-direction: column;
  align-items: center;
}

#news .content .description .title {
  font-weight: 700;
  font-size: 30px;
  color: #000;
  line-height: 150%;
  margin-bottom: 16px;
}

#news .content .items {
  padding: 0 24px 24px 24px;
}

#news .content .items .item {
  padding: 24px 0;
  border-bottom: 2px solid #f2f4f6;
  display: flex;
}

#news .content .items .item .image {
  margin-right: 24px;
}

#news .content .items .item .image img {
  border-radius: 16px;
  object-fit: cover;
}

#news .content .items .item .detail .dates {
  display: flex;
  margin-bottom: 6px;
  align-items: center;
}

#news .content .items .item .detail .dates .date {
  font-weight: 700;
  font-size: 14px;
  line-height: 18px;
  margin-right: 8px;
  color: #888888;
}

#news .content .items .item .detail .title {
  font-weight: 700;
  font-size: 14px;
  line-height: 175%;
  color: #000;
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

#news .content .items .item .dates .tag {
  font-weight: 700;
  font-size: 10px;
  line-height: 13px;
  color: #888888;
  padding: 0 8px;
  border: 1px solid #888888;
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 100px;
}

#news .content .more {
  display: flex;
  justify-content: center;
}

#news .content .more .button {
  height: 62px;
  display: flex;
  align-items: center;
  background-color: #000000;
  color: #ffffff;
  padding: 16px 16px 16px 32px;
  border-radius: 31px;
  width: 180px;
  justify-content: space-between;
  font-weight: 700;
  font-size: 14px;
  line-height: 150%;
}

#news .content .more .button .arrow {
  width: 30px;
  height: 30px;
  border-radius: 15px;
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: #ffffff;
}

#about_favtown {
  padding: 0 24px;
  height: 232px;
  width: 100%;
  margin-bottom: 40px;
}

#about_favtown a {
  border-radius: 24px;
  display: block;
  cursor: pointer;
  width: 100%;
  height: 100%;
  background-image: url("/wp-content/themes/favtown/assets/images/01_top/top-about.png");
  background-repeat: no-repeat;
  background-size: cover;
  position: relative;
  padding: 8px 16px;
}

#about_favtown a .contents {
  position: absolute;
  bottom: 8px;
  left: 16px;
}

#about_favtown a .contents .title {
  color: #ffffff;
  font-weight: 700;
  font-size: 24px;
  line-height: 175%;
}

#about_favtown a .contents .detail {
  color: #ffffff;
  font-weight: 700;
  font-size: 12px;
  line-height: 175%;
}

#about_favtown a .arrow {
  position: absolute;
  display: block;
  width: 30px;
  height: 30px;
  border-radius: 15px;
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: #ffffff;
  right: 16px;
  top: 105px;
}

#toast {
  visibility: hidden;
  z-index: 2;
  position: fixed;
  top: 24px;
  left: calc(50% - 112px);
  width: 224px;
  padding: 16px 24px;
  background: #ffffff;
  box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.05);
  border-radius: 16px;
}

#toast.show {
  visibility: visible;
  -webkit-animation: fadein 0.2s, fadeout 0.2s 3.5s;
  animation: fadein 0.2s, fadeout 0.2s 3.5s;
}

@-webkit-keyframes fadein {
  from {
    top: 0;
    opacity: 0;
  }
  to {
    top: 24px;
    opacity: 1;
  }
}

@keyframes fadein {
  from {
    top: 0;
    opacity: 0;
  }
  to {
    top: 24px;
    opacity: 1;
  }
}

@-webkit-keyframes fadeout {
  from {
    top: 24px;
    opacity: 1;
  }
  to {
    top: 0;
    opacity: 0;
  }
}

@keyframes fadeout {
  from {
    top: 24px;
    opacity: 1;
  }
  to {
    top: 0;
    opacity: 0;
  }
}
#partner {
  display: none;
}

#favtown-partners .bg {
  display: flex;
  justify-content: center;
}

#favtown-partners .bg .title {
  text-align: center;
  font-weight: 700;
  line-height: 60px;
  font-size: 70px;
  color: #ffffff;
}

#favtown-partners .content {
  background-color: #ffffff;
  border-radius: 56px;
  padding: 48px 0;
}

#favtown-partners .content .partners {
  height: 243px;
  width: 100%;
  position: relative;
  overflow: hidden;
}

#favtown-partners .content .partners .slide-container {
  display: flex;
  align-items: center;
  overflow: hidden;
}

#favtown-partners .content .partners .slide-wrapper {
  display: flex;
  animation: slide-flow 120s infinite linear both;
  gap: 8px;
  margin-right: 8px;
  will-change: transform;
}
@keyframes slide-flow {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(calc(-50%)); /* 複製分を考慮 */
  }
}

#favtown-partners .content .partners .slide {
  width: 172px;
  height: 243px;
  object-fit: cover;
  border-radius: 24px;
}

#favtown-partners .partners-container {
  padding: 0 24px;
}

#favtown-partners .year {
  text-align: center;
  position: relative;
}

#favtown-partners .year > p {
  background-color: rgb(0, 0, 0);
  color: rgb(255, 255, 255);
  font-size: var(--26px);
  font-weight: 700;
  display: inline-block;
  margin-bottom: 16px;
  position: relative;
  padding: 4px 16px;
  border-radius: 30px;
}

#favtown-partners .year > p::after {
  content: "";
  position: absolute;
  bottom: -8px;
  left: var(--40px);
  border-width: 8px 6px 0px;
  border-style: solid;
  border-color: rgb(0, 0, 0) transparent transparent;
}

#favtown-partners .partner-category {
  margin-top: 24px;
}

#favtown-partners .partner-category .title {
  font-size: var(--30px);
  font-weight: 700;
  line-height: 150%;
  text-align: center;
}

#favtown-partners .partner-category .badges {
  margin-bottom: 16px;
  text-align: center;
}

#favtown-partners .partner-category .about {
  text-align: center;
  font-size: 16px;
  font-style: normal;
  font-weight: 500;
  line-height: 175%;
  margin-bottom: 56px;
}

#favtown-partners .partner-category .pickup-partners {
  border-radius: 16px;
  border: 2px solid #000;
  background: #fff;
  margin: 0 auto 24px;
  width: var(--232px);
}

#favtown-partners .partner-category .pickup-partners .pickup-title {
  position: relative;
  text-align: center;
  padding-top: 8px;
  top: -34px;
  margin-bottom: -39px;
}

#favtown-partners .partner-category .pickup-partners .pickup-title span {
  position: relative;
  display: inline-block;
  background: url(/wp-content/uploads/sites/2/2025/05/benefit-ttl-bg.svg)
    no-repeat center center;
  background-size: contain;
  font-weight: 700;
  font-size: var(--18px);
  color: #fff;
  padding: 12px 40px;
  z-index: 1;
}

#favtown-partners
  .partner-category
  .pickup-partners
  .pickup-partner
  .partner-logo-item {
  display: flex;
  justify-content: space-around;
  align-items: center;
  padding: 10px 27px 16px 10px;
  gap: 8px;
}

#favtown-partners
  .partner-category
  .pickup-partners
  .pickup-partner
  .partner-logo-item
  img {
  height: 87px;
}

#favtown-partners .partner-category .partner-section.group-partners {
  padding: 16px 24px 24px 24px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  border-radius: 24px;
  background: #f2f4f6;
  margin-bottom: 24px;
}

#favtown-partners .group-partner-title-logo {
  width: var(--250px);
  height: var(--83px);
  display: flex;
  justify-content: center;
  align-items: center;
}

#favtown-partners .group-partner-title-logo img {
  width: 100%;
  object-fit: contain;
  max-height: 100%;
}

#favtown-partners .group-partner-list,
#favtown-partners .regional-partner-b ul,
#favtown-partners .regional-partner-c ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
  width: 100%;
}

#favtown-partners .group-partner-list li a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 5px 10px;
  background-color: #fff;
  border-radius: 16px;
  text-decoration: none;
  color: #1c1b1f;
}

#favtown-partners .regional-partner-b li .partner-logo-item,
#favtown-partners .regional-partner-c li .partner-logo-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 12px 12px 6px;
  background-color: #fff;
  border-radius: 16px;
  border: 2px solid #f2f4f6;
  text-decoration: none;
  color: #1c1b1f;
  box-sizing: border-box;
}

#favtown-partners .regional-partner-c li .partner-logo-item {
  padding: 8px 12px;
  gap: var(--6px);
}

#favtown-partners .group-partner-list li .partner-logo-item .partner-logo {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
}

#favtown-partners .regional-partner-b li .partner-logo-item .partner-logo {
  overflow: hidden;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 52px;
}

#favtown-partners .regional-partner-c li .partner-logo-item .partner-logo {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 34px;
  width: 80%;
  margin: auto;
  overflow: hidden;
}

#favtown-partners .furusato-partner-list li .partner-logo-item .partner-logo {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
}

#favtown-partners .group-partner-list li a .partner-logo-image {
  object-fit: contain;
  height: 50px;
}

#favtown-partners .regional-partner-b li .partner-logo-item .partner-logo-image,
#favtown-partners
  .regional-partner-c
  li
  .partner-logo-item
  .partner-logo-image {
  object-fit: contain;
  width: 90%;
}

#favtown-partners .group-partner-list li a .partner-logo-image img {
  object-fit: contain;
  height: 50px;
}

#favtown-partners .regional-partner-b {
  margin-bottom: 24px;
}

#favtown-partners .regional-partner-c {
  margin-bottom: 40px;
}

#favtown-partners .regional-partner-c ul {
  grid-template-columns: repeat(3, 1fr);
}

#favtown-partners .partner-section.furusato-partners {
  margin-bottom: 40px;
}

#favtown-partners .furusato-partner-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 16px;
}

#favtown-partners .furusato-partner-list li {
  flex-basis: calc(50% - 8px);
  max-width: calc(50% - 8px);
  box-sizing: border-box;
  display: flex;
}

#favtown-partners .furusato-partner-list li a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 15px 16px;
  background-color: #fff;
  border-radius: 16px;
  border: 1px solid #e0e0e0;
  text-decoration: none;
  color: #1c1b1f;
  width: 100%;
  box-sizing: border-box;
  gap: 8px;
}

#favtown-partners .furusato-partner-list li a .partner-logo {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
}

#favtown-partners .furusato-partner-list li a .partner-logo-image {
  object-fit: contain;
  height: 70px;
  max-width: 100%;
}

#favtown-partners .more {
  display: flex;
  justify-content: center;
}

#favtown-partners .more .button {
  height: 62px;
  display: flex;
  align-items: center;
  background-color: #000000;
  color: #ffffff;
  padding: 16px 16px 16px 32px;
  border-radius: 31px;
  width: 180px;
  justify-content: space-between;
  font-weight: 700;
  font-size: 14px;
  line-height: 150%;
}

#favtown-partners .more .button .arrow {
  width: 30px;
  height: 30px;
  border-radius: 15px;
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: #ffffff;
}

#favtown-partners .pickup-partner .partner-arrow,
#favtown-partners .group-partner-list li .partner-logo-item > .partner-arrow,
#favtown-partners .regional-partner-a li partner-logo-item > .partner-arrow,
#favtown-partners .regional-partner-b li partner-logo-item > .partner-arrow,
#favtown-partners .regional-partner-c li partner-logo-item > .partner-arrow {
  aspect-ratio: 1 / 1;
  height: 10px;
  width: 10px;
}

#regions {
  width: auto;
  margin: var(--30px) var(--24px);
}

#regions .region_wrap {
  background-image: url("/wp-content/uploads/sites/2/2025/09/300x300.png");
  background-repeat: no-repeat;
  background-size: cover;
  border-radius: var(--24px);
  padding: var(--35px) 0;
}

#regions .title {
  color: #fff;
  text-align: center;
  font-size: var(--28px);
  font-style: normal;
  font-weight: 700;
  line-height: 150%; /* 42px */
}

#regions .region_wrap .image {
  text-align: center;
}

#regions .region_wrap .region_list {
  margin: var(--30px) var(--24px);
}

#regions .region_wrap .region_list .item {
  border-top: 2px dotted #fff;
}

#regions .region_wrap .region_list .item:last-child {
  border-bottom: 2px dotted #fff;
}

#regions .region_wrap .region_list .item a {
  display: flex;
  justify-content: space-between;
  padding: var(--8px);
  list-style: none;
  align-items: center;
}

#regions .region_wrap .region_list .item a:visited {
  text-decoration: none;
}

#regions .region_wrap .region_list .item .number {
  display: inline-block;
  width: var(--24px);
  height: var(--24px);
  font-size: var(--16px);
  line-height: var(--20px);
  text-align: center;
  border: var(--2px) solid #fff;
  background-color: #fff;
  border-radius: 50%;
  margin-right: var(--8px);
  color: #000;
}

#regions .region_wrap .region_list .item .title {
  vertical-align: middle;
  font-size: var(--18px);
  line-height: 150%;
}

#regions .region_wrap .region_list .item .logo {
  bottom: -2.5rem;
  right: var(--20px);
  display: inline-flex;
  padding: var(--8px);
  align-items: flex-start;
  gap: var(--10px);
  border-radius: var(--8px);
  background: #fff;
  box-shadow: 0 var(--4px) var(--8px) 0 rgba(0, 0, 0, 0.1);
}

#regions .region_wrap .region_list .item .logo img {
  width: var(--50px);
  height: var(--50px);
  object-fit: contain;
  max-width: 100%;
  max-height: 100%;
}

#regions .detail {
  margin-top: var(--35px);
  margin-bottom: var(--35px);
  padding: 0 var(--24px);
}

#regions .detail p {
  font-size: var(--16px);
  line-height: var(--28px);
  margin-bottom: var(--24px);
  font-weight: 500;
}

#regions .btn {
  margin: 0 auto;
  width: fit-content;
}

#regions .btn a {
  display: inline-flex;
  color: #fff;
  padding: var(--16px) var(--32px);
  border: 2px solid #fff;
  border-radius: var(--100px);
  align-items: center;
  justify-content: space-around;
  gap: 32px;
}

#regions .btn.bg-black a {
  background-color: #000;
  font-size: var(--14px);
}

/** TOPページエリア一覧 **/
#local-government {
  position: relative;
  padding: 0 var(--24px);
}
#local-government .text {
  color: #000;
  font-size: 18px;
  text-align: center;
  line-height: 1.75;
}
#local-government .map {
  margin: 26px 0 32px;
  text-align: center;
}
#local-government .map img {
  max-width: 100%;
  height: auto;
}
#local-government .area-image {
  margin: 0 0 12px -24px;
}
#local-government .area-image img {
  width: 100%;
  height: auto;
  border-radius: 0 16px 16px 0;
}
#local-government .area-block {
  border-top: 2px dotted #fff;
  /* 下の余白調整 */
  margin-top: 12px;
}
#local-government .area-block.is-last {
  border-bottom: 2px dotted #fff; /* 最後のエリアのみ下線 */
  padding-bottom: 12px;
}
#local-government .area-header {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 12px 0 8px;
  padding: 16px 16px 0; /* 上余白を保持しつつ内部padding調整 */
}
#local-government .area-header .label.number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: #1b30f0;
  color: #fff;
  font-weight: 700;
}
#local-government .area-title {
  margin: 0;
  font-weight: 700;
  font-size: 18px;
  color: #fff;
}
#local-government .area-text {
  margin-bottom: 16px;
  text-align: left;
}
#local-government .municipalities {
  margin-top: 8px;
}
#local-government .municipality {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  border-top: 2px dashed #000;
  text-decoration: none;
  color: inherit;
}
#local-government .municipality:last-child {
  border-bottom: 2px dashed #000;
}
#local-government .municipality .left {
  display: flex;
  align-items: center;
  gap: 16px;
}
#local-government .municipality .logo {
  display: flex;
  width: 48px;
  height: 48px;
  padding: 4px;
  flex-direction: column;
  align-items: flex-start;
  gap: 5px;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
}
#local-government .municipality .logo img {
  width: 40px;
  height: 40px;
  aspect-ratio: 1/1;
}
#local-government .municipality .name {
  font-size: 18px;
}
#local-government .municipality .arrow {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: #000;
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  line-height: 1;
}

#regions .area-list-btn {
  margin: 24px auto 0;
  width: fit-content;
}

#regions .area-list-btn a {
  display: inline-flex;
  color: #000;
  background: #fff;
  padding: var(--16px) var(--32px);
  border: 2px solid #000;
  border-radius: var(--100px);
  align-items: center;
  justify-content: space-around;
  gap: 32px;
  font-size: var(--14px);
}

