@charset "UTF-8";
/* --------------------------
  共通
-------------------------- */
body {
  background: url(../img/pc-view.jpg) center center/100% 100% no-repeat;
}
@media screen and (max-width: 780px) {
  body {
    background: url(../img/sp-view.jpg) center center/100% 100% no-repeat;
  }
}

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

.sp-view {
  display: none;
}
@media screen and (max-width: 780px) {
  .sp-view {
    display: block;
  }
}

.page-title {
  font-size: 120px !important;
  line-height: 1.2 !important;
  margin-bottom: 0 !important;
}
@media screen and (max-width: 780px) {
  .page-title {
    font-size: 13vw !important;
  }
}

.page-sub-title {
  font-size: 28px !important;
  margin-left: 10px;
  margin-top: 0 !important;
}
@media screen and (max-width: 780px) {
  .page-sub-title {
    font-size: 5vw !important;
  }
}

.section-title {
  font-size: 72px !important;
  margin-bottom: 0 !important;
  margin-top: 0 !important;
  line-height: 1.2 !important;
}
@media screen and (max-width: 780px) {
  .section-title {
    font-size: 8vw !important;
  }
}
.section-title.no-wrap {
  white-space: nowrap;
}

.section-sub-title {
  font-size: 18px !important;
  margin-bottom: 0 !important;
  white-space: nowrap;
  margin-top: 10px;
}
@media screen and (max-width: 780px) {
  .section-sub-title {
    font-size: 2.6vw !important;
  }
}

#ripple-effect-layer {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 1;
  background: transparent;
  opacity: 1;
  mix-blend-mode: normal;
}

#ripple-effect-layer canvas {
  pointer-events: none;
  opacity: 0.3; /* 波紋の透明度を調整（0.1〜1.0） */
}

.swell-block-fullWide__inner {
  overflow: initial !important;
}

.text-under {
  position: relative;
}
.text-under::after {
  content: "";
  background: -webkit-gradient(linear, left top, right top, from(#0029ff), to(#5de0e6));
  background: linear-gradient(to right, #0029ff 0%, #5de0e6 100%);
  height: 1px;
  width: calc(100% + 20px);
  display: block;
  position: absolute;
  bottom: -10x;
  left: -10px;
}
.text-under.white::after {
  background: #fff;
}

.table table tbody {
  border-bottom: 1px solid #dcdcdc;
}
.table table tbody tr:nth-child(2n-1) {
  border-top: 1px solid #dcdcdc;
}
.table table tbody tr:nth-child(2n-1) td {
  padding-top: 30px;
}
@media screen and (max-width: 780px) {
  .table table tbody tr:nth-child(2n-1) td span {
    font-size: 6vw !important;
  }
}
.table table tbody tr:nth-child(2n) td {
  padding-bottom: 40px;
}
@media screen and (max-width: 780px) {
  .table table tbody tr:nth-child(2n) td span {
    font-size: 7vw !important;
  }
}
.table table tbody tr td {
  border: none;
  padding-left: 0;
  padding-right: 0;
}

@media screen and (max-width: 780px) {
  .table > table tr > :first-child:not(.-no1) {
    width: 15%;
  }
}

.head-flex {
  position: relative;
}
.head-flex div {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
.head-flex div p {
  margin-bottom: 0;
}
.head-flex::after {
  content: "";
  background: -webkit-gradient(linear, left top, right top, from(#0029ff), to(#5de0e6));
  background: linear-gradient(to right, #0029ff 0%, #5de0e6 100%);
  height: 1px;
  width: calc(100% + 20px);
  display: block;
  position: absolute;
  left: -10px;
}

.l-header {
  background: transparent;
}

.home .l-header .l-header__inner {
  max-width: calc(var(--container_size, 0px) + var(--swl-pad_container, 0px) * 2);
  padding-left: var(--swl-pad_container, 0);
  padding-right: var(--swl-pad_container, 0);
}

.l-header {
  -webkit-box-shadow: none;
          box-shadow: none;
}

.l-header__inner .c-gnav {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.l-header__inner .c-gnav .menu-item {
  height: 50%;
}
.l-header__inner .c-gnav .menu-item a::after {
  background: #fff;
}
.l-header__inner .c-gnav .menu-item a span {
  letter-spacing: 0.1em;
}
.l-header__inner .c-gnav .menu-item:last-child {
  border-radius: 100px;
  padding: 0 30px;
  -webkit-transition: 0.3s;
  transition: 0.3s;
  margin-left: 20px;
  position: relative;
  background: transparent;
  overflow: hidden;
}
.l-header__inner .c-gnav .menu-item:last-child::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  border-radius: 100px;
  padding: 2px;
  background: -webkit-gradient(linear, left top, right top, from(#6a82ff), to(#5de0e6));
  background: linear-gradient(to right, #6a82ff, #5de0e6);
  -webkit-mask: -webkit-gradient(linear, left top, left bottom, color-stop(0, #fff)) content-box, -webkit-gradient(linear, left top, left bottom, color-stop(0, #fff));
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: destination-out;
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
          mask: -webkit-gradient(linear, left top, left bottom, color-stop(0, #fff)) content-box, -webkit-gradient(linear, left top, left bottom, color-stop(0, #fff));
          mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
          mask-composite: exclude;
  z-index: -1;
}
.l-header__inner .c-gnav .menu-item:last-child::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  border-radius: 100px;
  background: -webkit-gradient(linear, left top, right top, from(#6a82ff), to(#5de0e6));
  background: linear-gradient(to right, #6a82ff, #5de0e6);
  opacity: 0;
  z-index: -1;
  -webkit-transition: opacity 0.6s ease;
  transition: opacity 0.6s ease;
}
.l-header__inner .c-gnav .menu-item:last-child:hover {
  background: transparent !important;
  color: #fff !important;
}
.l-header__inner .c-gnav .menu-item:last-child:hover::after {
  opacity: 1 !important;
}
.l-header__inner .c-gnav .menu-item:last-child:hover a::after {
  display: none;
}
.l-header__inner .c-gnav .menu-item:last-child a {
  position: relative;
  z-index: 1;
}
.l-header__inner .c-gnav .menu-item:last-child a span {
  font-weight: bold;
  font-size: 18px;
}
.l-header__inner .c-gnav .menu-item:last-child.-current {
  background: #45a0ff;
  color: #fff;
}
.l-header__inner .c-gnav .menu-item:last-child.-current a::after {
  display: none;
}

.c-gnav a::after {
  background: #45a0ff;
}

.c-gnav > .menu-item > a .ttl {
  font-size: 16px;
}

.-series .c-headLogo {
  min-width: 200px;
}

#breadcrumb {
  display: none;
}

.c-fixBtn {
  color: #0029ff;
  border-color: #0029ff;
}

.hov-bg-main:hover {
  background-color: #0029ff !important;
}

.footer-flex {
  gap: 0 !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.5019607843);
  padding-bottom: 50px;
}
.footer-flex .left {
  border-right: 1px solid rgba(255, 255, 255, 0.5019607843);
}

.l-footer {
  background: transparent;
  color: #fff;
}

.f-menu-hover a {
  -webkit-transition: opacity 0.3s ease, -webkit-transform 0.3s ease;
  transition: opacity 0.3s ease, -webkit-transform 0.3s ease;
  transition: opacity 0.3s ease, transform 0.3s ease;
  transition: opacity 0.3s ease, transform 0.3s ease, -webkit-transform 0.3s ease;
}
.f-menu-hover a:hover {
  opacity: 0.3;
}

.page .c-pageTitle {
  display: none;
}

.archive .c-pageTitle {
  font-size: 120px !important;
  line-height: 1.2 !important;
  padding: 0.5em 0 !important;
}
@media screen and (max-width: 780px) {
  .archive .c-pageTitle {
    font-size: 15vw !important;
  }
}
.archive .c-pageTitle__subTitle {
  display: none;
}
.archive .c-pageTitle[data-style=b_bottom] .c-pageTitle__inner,
.archive .c-pageTitle[data-style=b_bottom] {
  border: none;
  padding: 0;
}

.is-style-btn_line a {
  background: transparent !important;
  border: none !important;
  position: relative;
  overflow: hidden;
}

.is-style-btn_line a::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  border-radius: inherit;
  padding: 1px;
  background: -webkit-gradient(linear, left top, right top, from(#6a82ff), to(#5de0e6));
  background: linear-gradient(to right, #6a82ff, #5de0e6);
  -webkit-mask: -webkit-gradient(linear, left top, left bottom, color-stop(0, #fff)) content-box, -webkit-gradient(linear, left top, left bottom, color-stop(0, #fff));
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: destination-out;
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
          mask: -webkit-gradient(linear, left top, left bottom, color-stop(0, #fff)) content-box, -webkit-gradient(linear, left top, left bottom, color-stop(0, #fff));
          mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
          mask-composite: exclude;
  z-index: -1;
}

.is-style-btn_line a::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  border-radius: inherit;
  background: -webkit-gradient(linear, left top, right top, from(#6a82ff), to(#5de0e6));
  background: linear-gradient(to right, #6a82ff, #5de0e6);
  opacity: 0;
  z-index: -1;
  -webkit-transition: opacity 0.3s ease;
  transition: opacity 0.3s ease;
}

.is-style-btn_line a:hover::after {
  opacity: 1;
}

.hov-bg-main:hover {
  background-color: #45a0ff !important;
}

.hover-bg-w {
  -webkit-transition: 0.3s;
  transition: 0.3s;
}
.hover-bg-w:hover a {
  opacity: 0.3;
}

/* --------------------------
  フォント、構成、余白（カスタム調整）
-------------------------- */
@media screen and (max-width: 600px) {
  .fc-l .u-fz-xl {
    font-size: 1.2em !important;
  }
}
@media screen and (max-width: 600px) {
  .fc-l .u-fz-l {
    font-size: 1.1em !important;
  }
}

@media screen and (max-width: 600px) {
  .fc-xl .u-fz-xl {
    font-size: 1.2em !important;
  }
}

@media screen and (max-width: 1430px) {
  .wp-block-columns.flex-custom {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
}

/* フォント調整 */
@media screen and (max-width: 600px) {
  .pc-fz-80 span {
    font-size: 15vw !important;
  }
}

.pc-fz-90 span {
  line-height: 1.3;
}
@media screen and (max-width: 600px) {
  .pc-fz-90 span {
    font-size: 17vw !important;
  }
}

@media screen and (max-width: 600px) {
  .pc-fz-60 span {
    font-size: 9vw !important;
  }
}

/* --------------------------
  TOP
-------------------------- */
/* FVテキストアニメーション */
.top-fv {
  margin-bottom: 150px;
}
@media screen and (max-width: 780px) {
  .top-fv {
    margin-bottom: 4em;
  }
}
@media screen and (max-width: 780px) {
  .top-fv .fv-flex {
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse;
  }
}
.top-fv .fv-flex .fv-left {
  position: relative;
  white-space: nowrap;
}
.top-fv .fv-flex .fv-left h1 {
  position: relative;
  z-index: 1;
}
@media screen and (max-width: 1250px) {
  .top-fv .fv-flex .fv-left h1 span {
    font-size: 5.5vw !important;
  }
}
@media screen and (max-width: 780px) {
  .top-fv .fv-flex .fv-left h1 span {
    font-size: 10vw !important;
  }
}
.top-fv .fv-flex .fv-left .under-line {
  position: absolute;
  top: 62px;
  left: 0;
  width: 480px;
}
@media screen and (max-width: 1250px) {
  .top-fv .fv-flex .fv-left .under-line {
    width: 38vw;
    top: 5vw;
  }
}
@media screen and (max-width: 780px) {
  .top-fv .fv-flex .fv-left .under-line {
    width: 70vw;
    top: 10vw;
  }
}
.top-fv .fv-flex .fv-left .under-line img {
  display: block;
  width: 100%;
  -webkit-animation: underlineReveal 2.4s cubic-bezier(0.22, 0.61, 0.36, 1) infinite;
          animation: underlineReveal 2.4s cubic-bezier(0.22, 0.61, 0.36, 1) infinite;
}
@-webkit-keyframes underlineReveal {
  /* 右側を100%隠してゼロ幅 = まだ見えない */
  0% {
    clip-path: inset(0 100% 0 0);
    -webkit-clip-path: inset(0 100% 0 0);
  }
  /* 右側のマスクを引いていき、左→右に“表示” */
  40% {
    clip-path: inset(0 0 0 0);
    -webkit-clip-path: inset(0 0 0 0);
  }
  /* 少し見せておく */
  60% {
    clip-path: inset(0 0 0 0);
    -webkit-clip-path: inset(0 0 0 0);
  }
  /* 左側からマスクを増やしていき、左→右に“消える” */
  100% {
    clip-path: inset(0 0 0 100%);
    -webkit-clip-path: inset(0 0 0 100%);
  }
}
@keyframes underlineReveal {
  /* 右側を100%隠してゼロ幅 = まだ見えない */
  0% {
    clip-path: inset(0 100% 0 0);
    -webkit-clip-path: inset(0 100% 0 0);
  }
  /* 右側のマスクを引いていき、左→右に“表示” */
  40% {
    clip-path: inset(0 0 0 0);
    -webkit-clip-path: inset(0 0 0 0);
  }
  /* 少し見せておく */
  60% {
    clip-path: inset(0 0 0 0);
    -webkit-clip-path: inset(0 0 0 0);
  }
  /* 左側からマスクを増やしていき、左→右に“消える” */
  100% {
    clip-path: inset(0 0 0 100%);
    -webkit-clip-path: inset(0 0 0 100%);
  }
}
.top-fv .fv-flex .fv-right img {
  max-width: 100% !important;
}
/* FVテキストアニメーション*/
.fv-under {
  position: relative;
  z-index: 1;
}
.fv-under .marquee {
  display: inline-block;
  white-space: nowrap; /* 折り返さない */
  -webkit-animation: marquee 12s linear infinite;
          animation: marquee 12s linear infinite; /* ★ 速度は12秒で1周 */
  letter-spacing: 0.1em;
  line-height: 2.6;
}

@-webkit-keyframes marquee {
  0% {
    -webkit-transform: translateX(100%);
            transform: translateX(100%); /* 右端から出発 */
  }
  100% {
    -webkit-transform: translateX(-100%);
            transform: translateX(-100%); /* 左端に消える */
  }
}

@keyframes marquee {
  0% {
    -webkit-transform: translateX(100%);
            transform: translateX(100%); /* 右端から出発 */
  }
  100% {
    -webkit-transform: translateX(-100%);
            transform: translateX(-100%); /* 左端に消える */
  }
}
/* 親にオーバーフロー制御 */
.swell-block-fullWide__inner {
  overflow: hidden;
}

/* トップスクロールダウン */
.container_01 {
  margin: 0;
  padding: 0;
  height: 250px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  overflow: hidden;
}

.container_01 a:hover {
  opacity: 0.7;
}

.scroll-down_01 {
  position: relative;
  width: 160px;
  height: 160px;
  color: #fff;
  font-family: serif;
  text-decoration: none;
}

.circle-text_01 {
  position: absolute;
  width: 100%;
  height: 100%;
  -webkit-animation: rotate 20s linear infinite;
          animation: rotate 20s linear infinite;
}

.circle-text_01 span {
  position: absolute;
  left: 50%;
  font-size: 15px;
  -webkit-transform-origin: 0 80px;
          transform-origin: 0 80px;
}

.arrow_01 {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 30px;
  height: 50px;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  -webkit-animation: scroll_01 1.5s infinite;
          animation: scroll_01 1.5s infinite;
}

.arrow_01::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  height: 100%;
  width: 1px;
  background-color: #fff;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
}

.arrow_01::after {
  content: "";
  position: absolute;
  bottom: 2px;
  left: 50%;
  width: 12px;
  height: 12px;
  border-bottom: 1px solid #fff;
  -webkit-transform: translateX(-50%) rotate(-45deg);
          transform: translateX(-50%) rotate(-45deg);
}

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

@keyframes rotate {
  0% {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg);
  }
}
@-webkit-keyframes scroll_01 {
  0% {
    -webkit-transform: translate(-50%, -50%) translateY(-10px);
            transform: translate(-50%, -50%) translateY(-10px);
    opacity: 0;
  }
  30% {
    opacity: 1;
  }
  100% {
    -webkit-transform: translate(-50%, -50%) translateY(10px);
            transform: translate(-50%, -50%) translateY(10px);
    opacity: 0;
  }
}
@keyframes scroll_01 {
  0% {
    -webkit-transform: translate(-50%, -50%) translateY(-10px);
            transform: translate(-50%, -50%) translateY(-10px);
    opacity: 0;
  }
  30% {
    opacity: 1;
  }
  100% {
    -webkit-transform: translate(-50%, -50%) translateY(10px);
            transform: translate(-50%, -50%) translateY(10px);
    opacity: 0;
  }
}
/* short drama ハート／トップページ */
.sd-flex-left {
  position: relative;
}
.sd-flex-left .hart {
  position: absolute;
  right: 30%;
  top: -57px;
  z-index: 1;
}
@media screen and (max-width: 1500px) {
  .sd-flex-left .hart {
    right: 5%;
    top: -150px;
  }
}

.service-flex div {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
@media screen and (max-width: 780px) {
  .service-flex div {
    gap: 5%;
  }
}
.service-flex div figure {
  width: 180px;
}
@media screen and (max-width: 780px) {
  .service-flex div figure {
    width: 45%;
  }
}

.floating-btn {
  width: 120px;
  display: block;
  position: fixed;
  z-index: 10;
  margin-right: 30px;
  bottom: 150px !important;
  -webkit-transition: opacity 0.3s ease, -webkit-transform 0.3s ease;
  transition: opacity 0.3s ease, -webkit-transform 0.3s ease;
  transition: opacity 0.3s ease, transform 0.3s ease;
  transition: opacity 0.3s ease, transform 0.3s ease, -webkit-transform 0.3s ease;
}
.floating-btn:hover {
  opacity: 0.5;
}
@media screen and (max-width: 768px) {
  .floating-btn {
    width: 20vw;
    bottom: 20vw !important;
    margin-right: 1em !important;
  }
}

/* PICKUP SERVICE 動画 */
.movie-flex {
  gap: 70px !important;
}
@media screen and (max-width: 1300px) {
  .movie-flex {
    gap: 5% !important;
  }
}
@media screen and (max-width: 780px) {
  .movie-flex {
    margin: 0 auto;
  }
}
.movie-flex video {
  border-radius: 50px;
}
@media screen and (max-width: 1300px) {
  .movie-flex video {
    border-radius: 40px;
  }
}
@media screen and (max-width: 1050px) {
  .movie-flex video {
    border-radius: 30px;
  }
}
@media screen and (max-width: 780px) {
  .movie-flex video {
    border-radius: 60px;
    margin: 10% auto;
    width: 400px;
    max-width: 90%;
  }
}
@media screen and (max-width: 500px) {
  .movie-flex video {
    border-radius: 12vw;
  }
}

.top-voice {
  display: none;
}

/* ========== 投稿リストのスライダー ========== */
/* === WORKSスライダー 完全版 === */
/* 親枠の基本設定 */
.p-postListWrap.flickity-parent-postlist {
  position: relative;
  /* overflow と clip-path はJSで制御するため、ここでは指定不要 */
  width: 100%;
  max-width: 100vw;
  padding-left: 0;
  padding-right: 0;
}

/* Flickityのul要素 */
.p-postListWrap.flickity-parent-postlist .p-postList {
  list-style: none;
  margin: 0;
  padding: 0;
}

/* viewport設定 - デフォルトはPC用 */
.p-postListWrap.flickity-parent-postlist .flickity-viewport {
  overflow: visible; /* PC時：右はみ出しを見せる */
}

/* スライダー内アイテム - デフォルトサイズ */
.p-postListWrap.flickity-parent-postlist .p-postList__item {
  width: 40%; /* JSで上書きされるため初期値 */
  margin-right: 16px;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
}

/* サムネイル部分 */
.p-postListWrap.flickity-parent-postlist .p-postList__thumb {
  aspect-ratio: 16/9;
  overflow: hidden;
  border-radius: 10px;
}

.p-postListWrap.flickity-parent-postlist .p-postList__thumb img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}

/* ナビゲーションボタン（必要に応じて） */
.p-postListWrap.flickity-parent-postlist .flickity-button {
  top: 45%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  background: rgba(255, 255, 255, 0.8);
  border-radius: 50%;
  width: 36px;
  height: 36px;
  display: none; /* JSで制御 */
}

.p-postListWrap.flickity-parent-postlist .flickity-prev-next-button.previous {
  left: 10px;
}

.p-postListWrap.flickity-parent-postlist .flickity-prev-next-button.next {
  right: 10px;
}

/* ========== レスポンシブ対応 ========== */
/* タブレット以下 (780px以下) */
@media (max-width: 780px) {
  /* SP時のviewport - はみ出しを隠す */
  .p-postListWrap.flickity-parent-postlist .flickity-viewport {
    overflow: hidden !important;
    width: 100% !important;
    margin-right: 0 !important;
  }
  /* SP時のアイテム幅 */
  .p-postListWrap.flickity-parent-postlist .p-postList__item {
    width: 96%; /* 左右2%余白を考慮 */
    margin-right: 12px;
  }
  /* SP時の親要素パディング */
  .p-postListWrap.flickity-parent-postlist {
    padding-left: 2%;
    padding-right: 2%;
  }
}
/* ========== Flickityページドット（必要に応じて） ========== */
.p-postListWrap.flickity-parent-postlist .flickity-page-dots {
  bottom: -30px;
  text-align: center;
}

.p-postListWrap.flickity-parent-postlist .flickity-page-dots .dot {
  width: 8px;
  height: 8px;
  margin: 0 4px;
  background: #ccc;
  border-radius: 50%;
  opacity: 0.5;
  cursor: pointer;
}

.p-postListWrap.flickity-parent-postlist .flickity-page-dots .dot.is-selected {
  opacity: 1;
  background: #333;
}

/* --------------------------
  COMPANY
-------------------------- */
.page .post_content {
  margin-top: 0;
}

.sub-title h1 {
  margin-bottom: 0;
  line-height: 1.5;
}
@media screen and (max-width: 600px) {
  .sub-title h1 span {
    font-size: 15vw;
  }
}

.lh-adjust {
  line-height: 1.2;
}
@media screen and (max-width: 600px) {
  .lh-adjust span {
    font-size: 12vw !important;
  }
}

.mission-section {
  position: relative;
}
@media screen and (max-width: 780px) {
  .mission-section {
    padding-bottom: 0 !important;
  }
}
.mission-section .mission-img img {
  position: absolute;
  right: -30px;
  bottom: -96px;
  width: 400px;
  z-index: -1;
}
@media screen and (max-width: 1150px) {
  .mission-section .mission-img img {
    width: 30vw;
    right: -2vw;
  }
}
@media screen and (max-width: 960px) {
  .mission-section .mission-img img {
    bottom: -7vw;
  }
}
@media screen and (max-width: 780px) {
  .mission-section .mission-img img {
    max-width: 80%;
    width: 300px;
    position: initial;
  }
}

@media screen and (max-width: 600px) {
  .profile-table > table tr > :first-child:not(.-no1) {
    width: 35%;
  }
}

.cp-line tr td {
  border: none !important;
  background: transparent !important;
}

/* Googleマップ共通スタイル */
.custom-map {
  position: relative;
  width: 100%;
  aspect-ratio: 10/5; /* 横10：縦5の比率 */
  overflow: hidden;
}
@media screen and (max-width: 780px) {
  .custom-map {
    aspect-ratio: 5/7;
  }
}

/* iframeサイズを親にフィットさせる */
.custom-map iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: none;
}

.page-id-216 .company-footer {
  display: none;
}

/* --------------------------
  CONTACT
-------------------------- */
.red {
  background: #45a0ff;
  color: #fff;
  border-radius: 10px;
  padding: 2px 10px;
  font-size: 13px;
  display: inline-block;
  margin-left: 10px;
}

.smf-form .smf-text-control__control {
  border: none;
  border-bottom: 1px solid #333;
  border-radius: 0;
  -webkit-box-shadow: none;
          box-shadow: none;
}
.smf-form .smf-text-control__control::-webkit-input-placeholder {
  color: #aaaaaa;
}
.smf-form .smf-text-control__control::-moz-placeholder {
  color: #aaaaaa;
}
.smf-form .smf-text-control__control:-ms-input-placeholder {
  color: #aaaaaa;
}
.smf-form .smf-text-control__control::-ms-input-placeholder {
  color: #aaaaaa;
}
.smf-form .smf-text-control__control::placeholder {
  color: #aaaaaa;
}

.smf-form .smf-textarea-control__control::-webkit-input-placeholder {
  color: #aaaaaa;
}

.smf-form .smf-textarea-control__control::-moz-placeholder {
  color: #aaaaaa;
}

.smf-form .smf-textarea-control__control:-ms-input-placeholder {
  color: #aaaaaa;
}

.smf-form .smf-textarea-control__control::-ms-input-placeholder {
  color: #aaaaaa;
}

.smf-form .smf-textarea-control__control::placeholder {
  color: #aaaaaa;
}

.birth-flex > div {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 20px;
}
.birth-flex > div > div, .birth-flex > div > p {
  margin-bottom: 0;
}

.smf-radio-buttons-control__control {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 20px;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.smf-form .smf-radio-button-control {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.smf-form .smf-radio-button-control input {
  margin-top: 2px;
}

.r-line tr td {
  border-left: none !important;
  border-right: none !important;
  border-color: #fff !important;
  background: transparent !important;
}

/*-------------------------------------------*/
/* ローディングアニメーション（安定版・1.5秒速版）
/*-------------------------------------------*/
html.is-loading {
  overflow: hidden !important;
}

#loading-screen {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #055ee6;
  z-index: 9999;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-transition: opacity 1s ease-out, visibility 1s ease-out;
  transition: opacity 1s ease-out, visibility 1s ease-out;
  opacity: 1;
  visibility: visible;
}

#loading-screen.is-hidden {
  opacity: 0;
  visibility: hidden;
}

.animation-container {
  position: relative;
  width: 600px;
  height: 400px;
}

.drop {
  position: absolute;
  width: 20px;
  height: 20px;
  top: -30px;
  left: 50%;
  margin-left: -10px;
  background: #fff;
  border-radius: 20px;
  opacity: 0;
  -webkit-transition: opacity 0.5s ease-out;
  transition: opacity 0.5s ease-out;
}

/* ★変更：アニメーション周期を1.5秒に戻します */
#loading-screen.is-active .drop {
  opacity: 1;
  -webkit-animation: drip 1.5s linear infinite;
          animation: drip 1.5s linear infinite;
}

.drop:before {
  content: "";
  position: absolute;
  width: 0;
  height: 0;
  border-left: 10px solid transparent;
  border-right: 10px solid transparent;
  border-bottom: 30px solid rgb(255, 255, 255);
  top: -22px;
}

.ripple-main,
.ripple-sub {
  position: absolute;
  top: 190px;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  border: solid #fff;
  border-radius: 300px/150px;
  opacity: 0;
}

/* ★変更：アニメーション周期を1.5秒に戻します */
#loading-screen.is-active .ripple-main {
  -webkit-animation: ripple-expand-main 1.5s ease-out infinite;
          animation: ripple-expand-main 1.5s ease-out infinite;
}

#loading-screen.is-active .ripple-sub {
  -webkit-animation: ripple-expand-sub 1.5s ease-out infinite;
          animation: ripple-expand-sub 1.5s ease-out infinite;
}

/* キーフレーム（アニメーションの動き）*/
@-webkit-keyframes drip {
  0% {
    top: -30px;
    opacity: 1;
  }
  50% {
    top: 190px;
    opacity: 1;
  }
  51% {
    opacity: 0;
  }
  100% {
    top: 190px;
    opacity: 0;
  }
}
@keyframes drip {
  0% {
    top: -30px;
    opacity: 1;
  }
  50% {
    top: 190px;
    opacity: 1;
  }
  51% {
    opacity: 0;
  }
  100% {
    top: 190px;
    opacity: 0;
  }
}
@-webkit-keyframes ripple-expand-main {
  0%, 50% {
    width: 0;
    height: 0;
    opacity: 0;
    border-width: 7px;
  }
  51% {
    opacity: 1;
  }
  100% {
    width: 600px;
    height: 300px;
    opacity: 0;
    border-width: 1px;
  }
}
@keyframes ripple-expand-main {
  0%, 50% {
    width: 0;
    height: 0;
    opacity: 0;
    border-width: 7px;
  }
  51% {
    opacity: 1;
  }
  100% {
    width: 600px;
    height: 300px;
    opacity: 0;
    border-width: 1px;
  }
}
@-webkit-keyframes ripple-expand-sub {
  0%, 55% {
    width: 0;
    height: 0;
    opacity: 0;
    border-width: 5px;
  }
  56% {
    opacity: 1;
  }
  100% {
    width: 400px;
    height: 200px;
    opacity: 0;
    border-width: 1px;
  }
}
@keyframes ripple-expand-sub {
  0%, 55% {
    width: 0;
    height: 0;
    opacity: 0;
    border-width: 5px;
  }
  56% {
    opacity: 1;
  }
  100% {
    width: 400px;
    height: 200px;
    opacity: 0;
    border-width: 1px;
  }
}
/*-------------------------------------------*/
/* 投稿一覧ページ カスタマイズ
/*-------------------------------------------*/
.archive .p-postList.-type-card,
.archive .p-postList.-type-thumb {
  gap:1.25%;
}

@media (min-width: 600px) {
  .-sidebar-off .-type-card.-pc-col3 .p-postList__item,
  .-sidebar-off .-type-thumb.-pc-col3 .p-postList__item {
    width: 49%;
  }
}
@media (min-width: 1020px) {
  .-sidebar-off .-type-card.-pc-col3 .p-postList__item,
  .-sidebar-off .-type-thumb.-pc-col3 .p-postList__item {
    width: 32.5%;
  }
}

.p-postListWrap.flickity-parent-postlist {
	text-align: center;
}