@charset "UTF-8";@import url("https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&family=Zen+Kaku+Gothic+New&display=swap");
/* ==========================================================================
  Foundation
============================================================================*/

html {
  font-size: 62.5%;
}

body {
  width: 100%;
  background-color: #01478E;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-feature-settings: "palt";
  font-size: 1.6rem;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.5;
  color: #FFFFFF;
}

main {
  font-weight: 500;
  font-size: 1.6em;
  line-height: 1.67;
}

img {
  width: 100%;
  max-width: 100%;
  height: auto;
}

@media screen and (max-width: 766px) {
  .pc-only {
    display: none;
  }
}

@media screen and (min-width: 767px) {
  .sp-only {
    display: none;
  }
}

p{
  font-size: 16px;
}
@media screen and (max-width: 766px) {
  p{
    font-size: 15px;
  }
}

/* ==========================================================================
  layout
============================================================================*/
.l-main {
  margin-top: clamp(54px, 6.25vw, 90px);
}

.l-header {
  margin: 20px auto 0;
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  position: fixed;
  z-index: 10;
  padding: 0 64px;
  max-width: 1440px;
}
@media screen and (min-width: 1251px) {
  .l-header {
    left: 50%;
    transform: translateX(-50%);
  }
}
@media screen and (max-width: 766px) {
  .l-header {
    padding: 0 15px;
  }
}
.l-header__logo {
  max-width: 191px;
  position: relative;
  z-index: 100;
}
.l-header__nav {
  position: relative;
}
.l-header__nav--ul li {
  font-size: 16px;
  font-weight: bold;
}
.l-header .contact {
  font-size: 15px;
  border: 2px solid #167AE0;
}
.l-header .contact.c-button:hover{
  border: 2px solid #FBAF21;
}
@media screen and (max-width: 1250px) {
  .l-header .contact {
    border: none;
    font-size: 18px;
    color: #FFFFFF;
    background-color: #FBAF21;
    width: 280px;
    padding: 15px;
    border: none;
    margin: 0 auto;
  }
}

@media screen and (min-width: 1249px) {
  .nav-only {
    display: none;
  }
}

.sns__list {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 24px;
}
.sns__list li {
  max-width: 40px;
}

.l-footer {
  display: block;
  width: 100%;
  background-color: #002E5C;
  color: #FFFFFF;
  position: relative;
}
.l-footer .l-container {
  padding: 80px clamp(32px, 11.11vw, 160px);
}
@media screen and (max-width: 766px) {
  .l-footer .l-container {
    padding: 60px 32px 30px;
  }
}
.l-footer__logo {
  width: 191px;
  margin: 0 auto;
  display: block;
}
.l-footer__sns {
  margin-top: 60px;
  border-bottom: 1px solid #FFFFFF;
}
@media screen and (max-width: 766px) {
  .l-footer__sns {
    margin-top: 30px;
  }
}
.l-footer__sns ul {
  padding-bottom: 40px;
}
@media screen and (max-width: 766px) {
  .l-footer__sns ul {
    padding-bottom: 30px;
  }
}
.l-footer__nav ul {
  margin-top: 35px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 36px;
  flex-wrap: wrap;
}
@media screen and (max-width: 766px) {
  .l-footer__nav ul {
    gap: 20px 25px;
  }
}
.l-footer__nav ul li a {
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.05em;
  line-height: 1.5;
}
.l-footer__top {
  width: 100px;
  position: absolute;
  z-index: 1;
}
@media screen and (max-width: 766px) {
  .l-footer__top {
    width: 70px;
  }
}
.l-footer__top.absolute {
  top: -98px;
}
@media screen and (max-width: 766px) {
  .l-footer__top.absolute {
    top: -69px;
  }
}
.l-footer__copyright {
  margin-top: 40px;
  font-size: 12px;
  text-align: center;
}

.l-container {
  max-width: 1440px;
  margin: 0 auto;
  padding: clamp(60px, 9.03vw, 130px) clamp(32px, 11.11vw, 160px);
}
@media screen and (max-width: 766px) {
  .l-container {
    padding: 60px 32px;
  }
}

/* ==========================================================================
  object
============================================================================*/
.c-ham {
  position: fixed;
  top: 2rem;
  right: 2rem;
  width: 50px;
  height: 50px;
  z-index: 12;
  box-sizing: border-box;
  cursor: pointer;
  -webkit-transition: all 400ms;
  transition: all 400ms;
  background-color: #509DD8;
  border-radius: 5px;
}
.c-ham span {
  position: absolute;
  width: 70%;
  height: 2px;
  left: 50%;
  transform: translateX(-50%);
  background: #ffffff;
  border-radius: 1rem;
  -webkit-transition: all 400ms;
  transition: all 400ms;
}
.c-ham span:nth-child(1) {
  top: 2rem;
}
.c-ham span:nth-child(2) {
  top: 3rem;
}
.c-ham.open span:nth-child(1) {
  background: #ffffff;
  top: 2.6rem;
  -webkit-transform: rotate(-35deg);
  -moz-transform: rotate(-35deg);
  transform: rotate(-35deg);
  left: 20%;
}
.c-ham.open span:nth-child(2) {
  top: 2.6rem;
  background: #ffffff;
  -webkit-transform: rotate(35deg);
  -moz-transform: rotate(35deg);
  transform: rotate(35deg);
  left: 20%;
}
@media screen and (max-width: 1250px) {
  .c-ham__nav {
    position: fixed;
    top: 0;
    right: -100%;
    width: 100%;
    height: 100%;
    background: #509DD8;
    font-size: 1.6rem;
    box-sizing: border-box;
    z-index: 1;
    padding-top: 2rem;
    transition: 0.3s;
  }
}
@media screen and (max-width: 1250px) {
  .c-ham__nav.open {
    right: 0;
    overflow-y: auto;
  }
}
.c-ham__nav--menu {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 34px;
}
@media screen and (max-width: 1250px) {
  .c-ham__nav--menu {
    max-width: 400px;
    margin: 100px auto 0;
    padding: 0;
    width: 100%;
    display: block;
    flex-direction: column;
    text-align: center;
  }
}
.c-ham__nav--menu li {
  margin: 0 auto;
}
@media screen and (max-width: 1250px) {
  .c-ham__nav--menu li {
    margin-bottom: 20px;
    font-size: 18px;
  }
}
.c-ham__nav--menu li:last-child {
  margin-left: -30px;
}
@media screen and (max-width: 1250px) {
  .c-ham__nav--menu li:last-child {
    margin: 40px 0;
  }
}
.c-ham__nav--menu .l-header__sns-icon {
  margin: 0;
}

.c-ham {
  display: none;
}
@media screen and (max-width: 1250px) {
  .c-ham {
    display: block;
  }
}

.scroll-prevent {
  overflow: hidden;
  position: fixed;
  z-index: -1;
  width: 100%;
  height: 100%;
}

.c-title {
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
}
.c-title__en {
  font-family: "Poppins", sans-serif;
  font-size: clamp(34px, 4.86vw, 70px);
  font-weight: 600;
  color: #509DD8;
  line-height: 1.3;
}
.c-title__ja {
  font-size: clamp(20px, 1.81vw, 26px);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.06em;
}

.c-lead {
  text-align: center;
  font-size: clamp(15px, 1.25vw, 18px);
  letter-spacing: 0.04em;
  line-height: 1.6;
  max-width: 800px;
  margin: 50px auto 0;
}
@media screen and (max-width: 766px) {
  .c-lead {
    text-align: left;
    margin-top: 40px;
    line-height: 1.8;
  }
}

.c-button {
  background-color: #FFFFFF;
  color: #01478E;
  padding: 5px 20px;
  border-radius: 50vh;
  font-size: 18px;
  font-weight: bold;
  display: block;
  width: fit-content;
  transition: all 0.2s ease-in-out;
}
.c-button:hover {
  background-color: #509DD8;
  color: #FFFFFF;
}
.c-button.--blue {
  background-color: #01478E;
  color: #FFFFFF;
  border: 2px solid #01478E;
  padding: 11px 45px;
}
.c-button.--blue:hover {
  background-color: #FFFFFF;
  color: #01478E;
}
.c-button.--gray{
  background-color: #B4B4B4;
  color: #FFFFFF;
}
.c-button.--gray:hover{
  background-color: #509DD8;
  color: #FFFFFF;
}

.c-card {
  margin-top: 75px;
  display: grid;
  grid-template-columns: repeat(auto-fit, 330px);
  justify-content: center;
  grid-gap: 3.6vw;
}
@media screen and (max-width: 766px) {
  .c-card {
    grid-template-columns: repeat(auto-fit, 326px);
    max-width: 400px;
    margin: 40px auto 0;
    flex-direction: column;
    gap: 40px;
  }
}
.c-card li {
  overflow: hidden;
  border-radius: 4px;
  background-color: #FFFFFF;
  color: #000000;
}
@media screen and (max-width: 766px) {
  .c-card li {
    max-width: 100%;
    background-color: inherit;
  }
}
.c-card li a {
  display: block;
  height: 100%;
}
.c-card li:hover .c-card__thumbnail,
.c-card li:hover .c-card__thumbnail--wrap img {
  transform: scale(1.1);
}
.c-card__thumbnail,
.c-card__thumbnail--wrap img {
  transition: all 0.2s ease-in-out;
}
@media screen and (max-width: 766px) {
  .c-card__thumbnail,
  .c-card__thumbnail--wrap img {
    border-radius: 4px;
  }
}
.c-card__thumbnail--wrap {
  overflow: hidden;
}
.c-card__thumbnail,
.c-card__thumbnail--wrap img {
  aspect-ratio: 256/171;
  width: 100%;
  height: auto;
  object-fit: cover;
}
.c-card__dsc {
  padding: 20px 24px 28px;
}
@media screen and (max-width: 766px) {
  .c-card__dsc {
    padding: 15px 0 0;
    color: #FFFFFF;
  }
}

.c-to-top {
  position: fixed;
  bottom: 0;
  right: 0;
  z-index: 10;
  transition: 0.3s;
  opacity: 0;
  visibility: hidden;
}

.c-to-top.active {
  opacity: 1;
  visibility: visible;
  position: fixed;
}

.c-to-top.absolute {
  position: absolute;
  bottom: auto;
}

.c-infinite-loop {
  overflow: hidden;
  width: 100%;
  position: relative;
  display: flex;
}

.c-infinite-loop__text {
  display: inline-block;
  white-space: nowrap;
  font-weight: bold;
  letter-spacing: 0.05em;
  font-size: 13.88889vw;
  will-change: transform;
}

@keyframes loop {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-100%);
  }
}
@media screen and (max-width: 768px) {
  .c-infinite-loop__text {
    font-size: 8vw;
  }
}
.c-under {
  padding-top: clamp(60px,6.67vw,96px);
}
.c-under__ttl {
  padding: clamp(60px,9.03vw,130px) clamp(32px,4.44vw,64px) 0;
}
.c-under__ttl .c-title {
  align-items: flex-start;
}

.p-about .c-lead {
  font-size: clamp(15px, 1.39vw, 20px);
  margin-top: 70px;
  line-height: 2;
}
@media screen and (max-width: 766px) {
  .p-about .c-lead {
    padding: 0 17px;
    margin-top: 40px;
  }
}

.p-mv {
  padding: 89px 0 0;
  margin-bottom: 60px;
}
@media screen and (max-width: 766px) {
  .p-mv {
    padding: 45px 0 0;
  }
}
.p-mv__inner {
  position: relative;
}
.p-mv__splide {
  padding: 0 clamp(15px, 4.44vw, 64px);
}
.p-mv__infinite-loop {
  position: absolute;
  bottom: -3em;
}
@media screen and (max-width: 766px) {
  .p-mv__infinite-loop {
    bottom: -1.5em;
  }
}
.p-mv__infinite-loop .c-infinite-loop__text {
  font-family: "Poppins", sans-serif;
  font-size: clamp(54px, 6.94vw, 100px);
  font-weight: 600;
  padding-left: 0.5em;
}

.p-blooming {
  background-color: #fff;
  padding: 130px 0;
  position: relative;
}
@media screen and (max-width: 766px) {
  .p-blooming {
    padding: 60px 0;
  }
}
.p-blooming::before {
  content: "";
  background-color: #509DD8;
  width: 1px;
  height: 64px;
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
}
@media screen and (max-width: 766px) {
  .p-blooming::before {
    height: 32px;
  }
}
.p-blooming .c-title {
  font-style: italic;
}
.p-blooming .c-title__en {
  color: #01478E;
  position: relative;
  font-size: clamp(56px, 5.69vw, 82px);
  z-index: 1;
}
@media screen and (max-width: 766px) {
  .p-blooming .c-title__en {
    font-size: 56px;
  }
}
.p-blooming .c-title__en--sub {
  font-size: clamp(50px, 4.86vw, 70px);
}
@media screen and (max-width: 766px) {
  .p-blooming .c-title__en--sub {
    font-size: 50px;
  }
}
.p-blooming .c-title__en::before {
  position: absolute;
  bottom: 2px;
  width: 100%;
  height: 48px;
  transform: skew(-15deg);
  background-image: repeating-linear-gradient(90deg, #B7E0FF 5px 10px);
  content: "";
  z-index: -1;
}
@media screen and (max-width: 766px) {
  .p-blooming .c-title__en::before {
    bottom: 72px;
    height: 28px;
  }
}
@media screen and (max-width: 766px) {
  .p-blooming .c-title__en::after {
    position: absolute;
    bottom: 2px;
    left: 0;
    width: 100%;
    height: 28px;
    transform: skew(-15deg);
    background-image: repeating-linear-gradient(90deg, #B7E0FF 5px 10px);
    content: "";
    z-index: -1;
  }
}
.p-blooming .c-title__ja {
  position: relative;
  font-size: clamp(24px, 2.5vw, 36px);
  color: #01478E;
  z-index: 1;
}
@media screen and (max-width: 766px) {
  .p-blooming .c-title__ja {
    font-size: 24px;
  }
}
.p-blooming .c-title__ja::before {
  position: absolute;
  bottom: -8px;
  width: 100%;
  height: 20px;
  transform: skew(-15deg);
  background-image: repeating-linear-gradient(90deg, #B7E0FF 5px 10px);
  content: "";
  z-index: -1;
}
.p-blooming__img img {
  display: block;
  max-width: 400px;
  margin: 68px auto 0;
}
@media screen and (max-width: 766px) {
  .p-blooming__img img {
    padding: 0 32px;
  }
}

.p-story {
  display: flex;
  align-items: start;
  padding: clamp(60px, 12.85vw, 185px) 0 clamp(32px, 11.11vw, 160px);
  gap: 2%;
}
@media screen and (max-width: 766px) {
  .p-story {
    flex-direction: column;
  }
}
.p-story__inner {
  padding-left: 4.44vw;
  width: 57%;
  display: block;
}
@media screen and (max-width: 766px) {
  .p-story__inner {
    padding-left: 32px;
    width: 100%;
  }
}
.p-story .c-title {
  align-items: flex-start;
}
.p-story__text {
  margin-top: 73px;
  margin-left: clamp(15px, 7vw, 96px);
  max-width: 544px;
  font-size: clamp(15px, 1.11vw, 16px);
  letter-spacing: 0.04em;
  line-height: 1.6;
}
@media screen and (max-width: 766px) {
  .p-story__text {
    max-width: 100%;
    margin-top: 40px;
    margin-right: 32px;
    margin-left: 0;
  }
}
.p-story img {
  margin-top: 80px;
  width: 42%;
  position: sticky;
  top: calc((100vw - 0px) / 29);
}
@media screen and (max-width: 766px) {
  .p-story img {
    margin: 20px 0 35px;
    width: 100%;
    position: relative;
    right: -32px;
  }
}

.p-wedo {
  background-image: url(../img/top/wedo_bg.png);
}
.p-wedo .c-title__ja {
  color: #01478E;
}
.p-wedo .c-lead {
  color: #000000;
}
.p-wedo__list {
  margin-top: 50px;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 60px 0;
}
@media screen and (max-width: 766px) {
  .p-wedo__list {
    margin-top: 40px;
    flex-direction: column;
    gap: 40px 0;
  }
}
.p-wedo__list li {
  width: 46%;
  color: #000000;
}
@media screen and (max-width: 766px) {
  .p-wedo__list li {
    width: 100%;
  }
}
.p-wedo__list li h4 {
  margin-top: 30px;
  text-align: center;
  color: #01478E;
  font-size: clamp(20px, 1.67vw, 24px);
  letter-spacing: 0.06em;
  line-height: 1.4;
  font-weight: bold;
}
@media screen and (max-width: 766px) {
  .p-wedo__list li h4 {
    margin-top: 20px;
  }
}
.p-wedo__list li p {
  margin-top: 20px;
  font-size: clamp(15px, 1.11vw, 16px);
  line-height: 1.6;
}
@media screen and (max-width: 766px) {
  .p-wedo__list li p {
    margin-top: 15px;
  }
}

.p-news.top {
  background-image: url(../img/top/news_bg.png);
  background-size: cover;
}
.p-news.top .c-title__ja {
  color: #01478E;
}
@media screen and (max-width: 766px) {
  .p-news.top .c-title__ja {
    color: #FFFFFF;
  }
}
.p-news.top .c-card {
  grid-template-columns: repeat(auto-fit, 256px);
  grid-gap: 1.6vw;
}
@media screen and (max-width: 766px) {
  .p-news.top .c-card {
    grid-gap: 40px;
  }
}
.p-news.top .c-card li {
  background-color: rgba(255, 255, 255, 0.7);
}
@media screen and (max-width: 766px) {
  .p-news.top {
    background-image: url(../img/top/news_bg_sp.png);
  }
  .p-news.top .c-card li{
    background-color: inherit;
  }
  .p-news.top .c-card li .c-card__dsc{
    padding: 15px 0 0;
  }
}
.p-news.top .c-button{
  margin-top: 60px;
}
.p-news__category {
  font-size: 12px;
  background-color: #509DD8;
  width: fit-content;
  border-radius: 3px;
  color: #FFFFFF;
  padding: 2px 10px;
}
@media screen and (max-width: 766px) {
  .p-news__category {
    font-size: 11px;
    padding: 1px 8px;
  }
}
.p-news__date {
  margin-top: 10px;
  font-size: 13px;
  color: #676767;
  font-family: "Poppins", sans-serif;
}
@media screen and (max-width: 766px) {
  .p-news__date {
    margin-top: 2px;
    font-size: 12px;
    color: #FFFFFF;
  }
}
.p-news__ttl {
  margin-top: 4px;
  font-size: 16px;
  line-height: 1.6;
}
@media screen and (max-width: 766px) {
  .p-news__ttl {
    font-size: 15px;
  }
}
.p-news .c-button {
  margin: 0 auto;
  padding: 15px 45px;
}
@media screen and (max-width: 766px) {
  .p-news .c-button {
    background-color: #FFFFFF;
    color: #01478E;
    border: none;
  }
}
.p-news__category-area{
  display: flex;
  flex-wrap: wrap;
  gap: 5px 15px;
}
.p-news__category-area li a{
  font-size: 16px;
  color: #676767;
  background-color: #FFFFFF;
  padding: 2px 20px;
  border-radius: 50vh;
  transition: all 0.3s ease-in-out;
}
.p-news__category-area li a:hover{
  background-color: #509DD8;
  color: #FFFFFF;
}
.p-news__category-area li a.current{
  background-color: #509DD8;
  color: #FFFFFF;
}
.p-news__pagination{
  margin-top: 100px;
  text-align: center;
}
.page-numbers{
  background-color: #B4B4B4;
  display: inline-block;
  width: 50px;
  height: 50px;
  border-radius: 50vh;
}
@media screen and (max-width: 766px) {
  .page-numbers{
    width: 40px;
    height: 40px;
    font-size: 22px;
  }
  .p-news__pagination{
    margin-top: 60px;
    margin-bottom: 60px;
  }
}
.nav-links {
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  justify-content: center;
}
.page-numbers.current{
  background-color: #509DD8;
  color: #FFFFFF;
}
.p-news__category-day{
  display: flex;
  align-items: center;
  gap: 20px;
}
.p-news__category-day .p-news__date{
  margin: 0;
  color: #FFFFFF;
}
.news-article__area{
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.04em;
  margin: 60px 0 clamp(32px,6.94vw,100px);
  padding: 0 clamp(32px,6.94vw,100px) clamp(32px,6.94vw,100px);
  border-bottom: 1px solid #FFFFFF;
}
@media screen and (max-width: 766px) {
  .news-article__area{
    margin-top: 30px;
    padding: 0 0 30px;
  }
}
.news-ttl{
  margin: 32px 0 60px;
  padding: 0 10px 32px;
  font-size: 36px;
  font-weight: bold;
  border-bottom: 1px solid #FFFFFF;
}
@media screen and (max-width: 766px) {
  .news-ttl{
    font-size: 24px;
    margin: 12px 0 30px;
    padding: 0 5px 22px;
  }
}
.news-article__area figure{
  margin: 60px 0;
}
@media screen and (max-width: 766px) {
  .news-article__area figure{
    margin: 30px 0;
  }
}
.news-article__area p{
  margin: 32px 0;
}
.p-article__nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin: 40px 0;
  padding: 20px 0;
  position: relative;
}
.p-article__nav .c-button{
  font-size: clamp(12px,1.25vw,18px);
  padding: 10px 25px;
  text-align: center;
}
.box_btn{
  width: 44px;
}
.box_btn a{
  width: 44px;
  height: 44px;
  background: url(../img/common/arrow_next.png) no-repeat center center / contain;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  transition: all 0.3s ease;
}
.box_btn a:hover {
  transform: scale(1.1);
}
.box_btn.next a{
  transform: rotate(180deg);
}
.box_btn.next a:hover{
  transform: rotate(180deg) scale(1.1);
}
.btn__to-archive{
  margin: 0 20px;
}
@media screen and (max-width: 766px) {
  .btn__to-archive{
  }
}

@media screen and (max-width: 766px) {
  .p-partner {
    padding: 60px 25px;
  }
}
@media screen and (max-width: 766px) {
  .p-partner .c-title__en {
    white-space: nowrap;
  }
}
.p-partner__list {
  margin-top: 85px;
  display: grid;
  grid-template-columns: repeat(auto-fit, 198px);
  justify-content: center;
  grid-gap: 32px;
}
@media screen and (max-width: 766px) {
  .p-partner__list {
    margin-top: 60px;
    grid-template-columns: repeat(auto-fit, 153px);
    grid-gap: 15px;
  }
}

.p-partner__list li:has(p){
  text-align: center;
  background-color: #FFF;
  color: #002E5C;
  font-weight: bold;
  display: flex;
  align-items: center;
  justify-content: center;
}

.p-organization {
  max-width: 1440px;
  padding: 0 clamp(15px, 11.11vw, 64px);
  margin: 0 auto;
}
@media screen and (max-width: 766px) {
  .p-organization {
    padding: 0 15px;
  }
}
.p-organization__inner {
  /* background-image: url(../img/top/organization_bg.png); */
  background-color: #FFF;  
  border-radius: 20px;
  padding: clamp(60px, 9.03vw, 130px) clamp(17px, 6.67vw, 96px);
  color: #000000;
}
@media screen and (max-width: 766px) {
  .p-organization__inner {
    padding: 60px 17px;
  }
}
.p-organization .c-title__ja {
  color: #01478E;
}
.p-organization table {
  margin: 70px auto 0;
  max-width: 800px;
  width: 100%;
  font-size: clamp(14px, 1.11vw, 16px);
  line-height: 1.4;
}
.p-organization table th,
.p-organization table td{
  vertical-align: middle;
}
.p-organization table th {
  width: 20%;
  padding-bottom: 12px;
  padding: 12px 20px;
  border-bottom: 2px solid #01478E;
}
@media screen and (max-width: 766px) {
  .p-organization table th {
    padding: 12px 10px;
  }
}
.p-organization table td {
  width: 80%;
  padding: 8px 20px;
  border-bottom: 2px solid #B4B4B4;
}
@media screen and (max-width: 766px) {
  .p-organization table td {
    padding: 8px 10px;
  }
}
.p-organization__message {
  margin-top: 75px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 46px;
}
@media screen and (max-width: 766px) {
  .p-organization__message {
    flex-direction: column;
  }
}
.p-organization__message img {
  width: 43%;
}
@media screen and (max-width: 766px) {
  .p-organization__message img {
    width: 100%;
  }
}
.p-organization__message--text {
  width: 48%;
}
@media screen and (max-width: 766px) {
  .p-organization__message--text {
    width: 100%;
  }
}
.p-organization__message--text p {
  font-size: 16px;
  line-height: 1.6;
}
@media screen and (max-width: 766px) {
  .p-organization__message--text p {
    font-size: 15px;
  }
}
.p-organization__message--name {
  margin-top: 13px;
  text-align: right;
}
@media screen and (max-width: 766px) {
  .p-organization__message--name {
    font-size: 13px !important;
  }
}

@media screen and (max-width: 766px) {
  .p-contact {
    padding: 60px 15px 120px;
  }
}
.p-contact__lead {
  text-align: center;
  font-size: clamp(26px, 2.5vw, 36px);
  font-weight: bold;
  width: fit-content;
  margin: 0 auto 65px;
  position: relative;
}
.p-contact__lead::before {
  content: "";
  background-color: #FFFFFF;
  width: 1px;
  height: 63px;
  transform: skew(45deg);
  position: absolute;
  top: 0;
  left: -54px;
}
@media screen and (max-width: 766px) {
  .p-contact__lead::before {
    left: 0;
    top: 40px;
  }
}
.p-contact__lead::after {
  content: "";
  background-color: #FFFFFF;
  width: 1px;
  height: 63px;
  transform: skew(-45deg);
  position: absolute;
  top: 0;
  right: -54px;
}
@media screen and (max-width: 766px) {
  .p-contact__lead::after {
    right: 0;
    top: 40px;
  }
}
.p-contact .c-lead {
  max-width: 100%;
}
@media screen and (max-width: 766px) {
  .p-contact .c-lead {
    padding: 0 17px;
  }
}
.p-contact__inner {
  border-radius: 20px;
  border: 1px solid #FFFFFF;
  margin-top: 80px;
  padding: clamp(60px, 6.94vw, 100px) clamp(17px, 4.44vw, 64px);
}
@media screen and (max-width: 766px) {
  .p-contact__inner {
    padding: 60px 17px 40px;
  }
}
.p-contact__title {
  font-size: clamp(26px, 2.22vw, 32px);
  font-weight: bold;
  letter-spacing: 0.06em;
  text-align: center;
}
@media screen and (max-width: 766px) {
  .p-contact__title {
    font-size: 26px;
  }
}
.p-contact__note {
  margin-top: 55px;
  line-height: 1.6;
  letter-spacing: 0.1em;
  font-size: 16px;
  margin-bottom: 57px;
  color: #FFFFFF;
}
@media screen and (max-width: 766px) {
  .p-contact__note {
    margin-top: 35px;
    font-size: 15px;
  }
}

.c-form dl{
  font-size: 16px;
  letter-spacing: 0.12em;
  color: #FFFFFF;
}
@media screen and (max-width: 766px) {
  .c-form dl{
    font-size: 15px;
  }
}
form#mail_form *{
  box-sizing: inherit;
}
form#mail_form dl{
  width: 100%;
  border: inherit;
  margin-bottom: 33px;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
}
@media screen and (max-width: 1300px) {
  form#mail_form dl{
    flex-direction: column;
    align-items: flex-start;
    gap: 20px;
  }
}
@media screen and (max-width: 766px) {
  form#mail_form dl{
    gap: 7px;
    margin-bottom: 19px;
  }
}
form#mail_form dl dt{
  width: 22.6%;
  color: #FFFFFF;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0;
  margin-top: -5px;
}
@media screen and (max-width: 1300px) {
  form#mail_form dl dt{
    width: 100%;
  }
}
form#mail_form dl dt i{
  font-style: normal;
}
form#mail_form dl dt span.required, form#mail_form dl dt span.optional{
  font-size: 12px;
  letter-spacing: 0.12em;
  padding: 0 4px 1px;
  font-weight: bold;
}
@media screen and (max-width: 766px) {
  form#mail_form dl dt span.required, form#mail_form dl dt span.optional{
    font-size: 10px;
  }
}
form#mail_form dl dt span.required{
  background: #EA0000;
  border: indianred;
}
form#mail_form dl dt span.optional{
  display: none;
}
form#mail_form dl dd{
  float: inherit;
  padding: 0;
  width: 77.4%;
}
@media screen and (max-width: 1300px) {
  form#mail_form dl dd{
    width: 100%;
  }
}
@media screen and (max-width: 766px) {
  form#mail_form dl dd{
    font-size: 14px;
  }
}
.c-form__radio ul{
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 25px;
}
@media screen and (max-width: 766px) {
  form#mail_form .c-form__radio ul{
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }
}
form#mail_form ul li label{
  padding: 0;
  border-radius: inherit;
  background: inherit;
  margin: 0;
  display: flex;
  gap: 8px;
  align-items: center;
}
form#mail_form ul li input[type="radio"], form#mail_form ul li input[type="checkbox"]{
  margin: 0;
}
form#mail_form input[type="text"], form#mail_form input[type="email"], form#mail_form input[type="tel"]{
  height: 50px;
  width: 100%;
  border-radius: 4px;
  color: #000000;
}
form#mail_form textarea{
  width: 100%;
  border-radius: 4px;
}
form#mail_form .c-form__contents{
  align-items: flex-start;
}
form#mail_form dl.c-form__contents dt{
  margin-top: 14px;
}
form#mail_form textarea{
  color: #000000;
}
div#agreement{
  text-align: center;
  font-size: 16px;
  letter-spacing: 0.1em;
  border-bottom: inherit;
  margin-bottom: 30px;
  padding: 7px 0;
  color: #FFFFFF;
}
@media screen and (max-width: 766px) {
  div#agreement{
    margin: 0;
    font-size: 15px;
    line-height: 2.3;
    width: 100%;
    margin-top: -20px;
  }
}
div#agreement a{
  line-height: 2;
  font-weight: bold;
  text-decoration: underline;
}
#agree_check{
  margin-top: 25px;
  font-weight: 600;
}
@media screen and (max-width: 766px) {
  #agree_check{
    margin-top: 16px;
  }
}
.c-form .c-button{
  margin: 0 auto;
  padding: 15px 45px;
}
form#mail_form dl dd span.error_blank, form#mail_form dl dd span.error_format, form#mail_form dl dd span.error_match,form#mail_form div#agreement span.error_check{
  color: #ff0000;
  font-weight: 500;
}
@media screen and (max-width: 766px) {
  form#mail_form dl dd span.error_blank, form#mail_form dl dd span.error_format, form#mail_form dl dd span.error_match,form#mail_form div#agreement span.error_check{
    font-size: 15px;
  }
}
@media screen and (max-width: 1080px) {
  form#mail_form input[type="button"] {
      margin: 0 auto;
  }
}
#confirm_window{
  margin-top: -20px;
}
#confirm_window dl{
  display: flex;
  align-items: center;
  padding: 20px 0;
  border-bottom: 1px solid #FFFFFF;
  font-size: 16px;
  letter-spacing: 0.12em;
  line-height: 1.4;
}
@media screen and (max-width: 766px) {
  #confirm_window dl{
    flex-direction: column;
    gap: 10px;
    align-items: flex-start;
  }
}
#confirm_window dl dt{
  width: 22.6%;
  font-weight: 600;
}
#confirm_window dl dd{
  width: 77.4%;
}
@media screen and (max-width: 766px) {
  div#confirm_field dl dt, div#confirm_field dl dd{
    width: 100%;
  }
}
#confirm_submit{
  margin-top: 44px;
  display: flex;
  flex-wrap: wrap;
  gap: 40px;
  justify-content: center;
}
#confirm_submit .c-button{
  padding: 15px 45px;
  min-width: 216px;
  text-align: center;
}

.p-thanks__inner{
  border: 1px solid #FFFFFF;
  border-radius: 20px;
  text-align: center;
  padding: 100px 62px;
  margin: clamp(60px, 9.03vw, 130px) auto 50px;
}
@media screen and (max-width: 766px) {
  .p-thanks__inner{
    padding: 60px 17px;
  }
  .p-thanks.l-container{
    padding: 60px 15px;
  }
}
.p-thanks__ttl{
  font-size: clamp(26px, 2.22vw, 32px);
  font-weight: bold;
}
.p-thanks__txt{
  font-size: clamp(15px, 1.11vw, 16px);
  letter-spacing: 0.1em;
  line-height: 1.6;
  margin: 60px auto;
}
@media screen and (max-width: 766px) {
  .p-thanks__txt{
    text-align: left;
  }
}
.p-thanks__btn .c-button{
  margin: 0 auto;
  padding: 15px 45px;
}

.p-policy__inner h3{
  font-size: clamp(20px, 2.22vw, 32px);
  font-weight: bold;
  line-height: 1.6;
  margin: 70px 0 30px;
  padding-left: 0.5em;
  border-left: 5px solid #509DD8;
}

.p-policy__inner ol,
.p-policy__inner ul{
  margin: 20px 0 0 50px;
  font-size: 16px;
  line-height: 2;
}
@media screen and (max-width: 766px) {
  .p-policy__inner ol,
  .p-policy__inner ul{
    margin: 20px 0 0 30px;
  }
}

.p-policy__inner ol li{
  position: relative;
  list-style: outside decimal;
  padding: 0 0 0 5px;
}

.p-policy__inner ol li::marker {
  font-size: 130%;
  font-weight: 700;
  color: #509DD8;
}

.p-policy__note{
  text-align: right;
  margin-top: 60px;
}




/* 20251010モーダル追加 */
.c-partner-modal {
  position: fixed;
  inset: 0;
  display: none;
  z-index: 9999;
}
.c-partner-modal.is-open { display: flex; } /* ← 中央寄せに変更 */
.c-partner-modal {
  justify-content: center;
  align-items: center;
}

/* 背景オーバーレイ */
.c-partner-modal__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
}

/* モーダル本体 */
.c-partner-modal__dialog {
  position: relative;
  background: #fff;
  width: min(900px, 90vw);
  max-height: 90vh;
  padding: 48px 32px;
  border-radius: 16px;
  box-shadow: 0 8px 30px rgba(0,0,0,0.3);
  z-index: 1;
  overflow: auto;
}

@media screen and (max-width: 766px) {
  .c-partner-modal__dialog {
    padding: 40px 20px;
  }
}

/* 閉じるボタン（丸＋バツ） */
.c-partner-modal__close {
  position: absolute;
  top: 16px;
  right: 16px;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: #01478E;
  color: #fff;
  border: none;
  font-size: 24px;
  line-height: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: opacity 0.2s ease;
}
.c-partner-modal__close:hover {
  opacity: 0.8;
}

/* タイトル（会社名） */
.c-partner-modal__title {
  font-size: 22px;
  font-weight: 700;
  margin: 20px 0 24px;
  text-align: center;
  color: #01478E; /* ←指定色 */
}

/* 画像 */
.c-partner-modal__image img {
  width: 100%;
  border-radius: 8px;
  display: block;
  object-fit: cover;
  max-height: 70vh;
}

/* リストクリック可能 */
.p-partner__list li {
  cursor: pointer;
}

.p-partner__list li.is-disabled {
  cursor: default;
  pointer-events: auto;
}

.cb-list--dot {
  list-style: disc;  
}

.p-policy__inner ul.cb-list--dot li {
  list-style: disc;  
}

.p-policy__inner ul.cb-list--dot li::marker {
  color: #fff;
}

.p-policy__inner ul.cb-list--dot {
  margin-top: 10px;

}

.p-policy__inner ul.cb-list--dot2 {
  margin-top: 10px;
}

.p-policy__inner ul.cb-list--dot2 li::marker {
  color: #fff;
}

.p-policy__inner ul.cb-list--dot2 li {
  list-style: circle;
}

.p-policy__inner ul.cb-list--note li {
  position: relative;
  padding-left: .5em;
}

.p-policy__inner ul.cb-list--note li::before {
  position: absolute;
  content: "※";
  color: #fff;
  font-size: 1em;
  left: -20px;
}

.p-policy__inner.p-membership h3 {
  padding-bottom: 0.5em;
  border-bottom: 2px solid #fff;
  padding-left: 0;
  border-left: none;
}

.p-membership.p-policy__inner ol, .p-policy__inner ul {
  margin: 20px 0 0 20px;
}

.c-button.--blue.--modal {
  margin: 0 auto 20px;
}

.membership-pdf {
  text-decoration: underline;
}