@charset "UTF-8";
/* global */
/* foundation */
html.lenis {
  height: auto;
}
html.lenis body {
  height: auto;
}

.lenis .lenis-smooth {
  scroll-behavior: auto !important;
}
.lenis .lenis-smooth [data-lenis-prevent] {
  overscroll-behavior: contain;
}
.lenis .lenis-stopped {
  overflow: hidden;
}
.lenis iframe {
  pointer-events: none;
}

@media (width >= 768px) {
  a[href^="tel:"] {
    pointer-events: none;
  }
}
:root {
  --color-pink: #e73bd6;
  --color-red: #de0033;
  --color-orange: #fd8700;
  --color-skyblue: #75e1fe;
  --color-blue: #62a4fe;
  --color-purple: #907eff;
  --color-yellow: #f6d94d;
  --color-limegreen: #a8f72f;
  --color-grad: linear-gradient(45deg, #75e1fe 0%, #62a4fe 40%, #907eff 100%) !important;
  --color-black: #3a3a3a;
  --color-white: #ffffff;
  --color-lightgray: #f7f7f7;
  --color-gray: #c3c3c3;
  --swl-font_family: "Yakuhan JP", "Noto Sans JP", sans-serif;
  --fs-section-title: 3.375rem;
  --fs-section-title-jp: 1.0625rem;
  --fs-heading: 1.125rem;
  --fs-page-title: 3em;
  --fs-small: 0.9em;
  --ff-section-title: "Josefin Sans", sans-serif;
  --fw-normal: 400;
  --fw-bold: 700;
  --mg-unit: 100px;
  --mg-block: 70px;
  --mg-xs: 20px;
  --pd-unit: 100px;
  --pd-block: 70px;
  --pd-xs: 20px;
  --button-pd-sm: 0.625em 1.25em;
}

@media (width <= 959.98px) {
  :root {
    --mg-unit: 70px;
    --mg-block: 40px;
    --pd-unit: 70px;
    --pd-block: 40px;
    --button-pd-sm: 0.3125em 1em;
    --pd-xs: 10px;
  }
}
@font-face {
  font-family: "Josefin Sans";
  src: url("../font/JosefinSans-Medium.woff2") format("woff2");
  font-style: normal;
  font-weight: 500;
}
@font-face {
  font-family: "Yakuhan JP";
  src: url("../font/YakuHanJP-Regular.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
}
@font-face {
  font-family: "Yakuhan JP";
  src: url("../font/YakuHanJP-Bold.woff2") format("woff2");
  font-style: normal;
  font-weight: 700;
}
.navfadeUpTrigger {
  opacity: 0;
}
@media (width >= 768px) {
  .navfadeUpTrigger {
    opacity: 1;
  }
}

.navfadeUp {
  animation-delay: 0.5s;
  animation-name: navfadeUpAnime;
  animation-duration: 0.5s;
  animation-fill-mode: forwards;
  opacity: 0;
}

@keyframes navfadeUpAnime {
  from {
    opacity: 0;
    transform: translateY(50px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.slide-in {
  overflow: hidden;
  display: inline-block;
}

.slide-in_inner {
  display: inline-block;
}

.js-downAnime {
  opacity: 0;
}

.slideAnimeDownUp {
  animation-name: slideTextY100;
  animation-duration: 0.8s;
  animation-fill-mode: forwards;
  opacity: 0;
}

@keyframes slideTextY100 {
  from {
    transform: translateY(100%);
    opacity: 0;
  }
  to {
    transform: translateY(0);
    opacity: 1;
  }
}
.slideAnimeUpDown {
  animation-name: slideTextY-100;
  animation-duration: 0.8s;
  animation-fill-mode: forwards;
  opacity: 0;
}

@keyframes slideTextY-100 {
  from {
    transform: translateY(-100%);
    opacity: 0;
  }
  to {
    transform: translateY(0);
    opacity: 1;
  }
}
.js-upAnime {
  opacity: 0;
}

.slideAnimeDownUp {
  animation-name: slideTextY100;
  animation-duration: 0.8s;
  animation-fill-mode: forwards;
  opacity: 0;
}

@keyframes slideTextY100 {
  from {
    transform: translateY(100%);
    opacity: 0;
  }
  to {
    transform: translateY(0);
    opacity: 1;
  }
}
.slideAnimeUpDown {
  animation-name: slideTextY-100;
  animation-duration: 0.8s;
  animation-fill-mode: forwards;
  opacity: 0;
}

@keyframes slideTextY-100 {
  from {
    transform: translateY(-100%);
    opacity: 0;
  }
  to {
    transform: translateY(0);
    opacity: 1;
  }
}
.js-leftAnime {
  opacity: 0;
}

.slideAnimeLeftRight {
  animation-name: slideTextX100;
  animation-duration: 0.8s;
  animation-fill-mode: forwards;
  opacity: 0;
}

@keyframes slideTextX100 {
  from {
    transform: translateX(-100%);
    opacity: 0;
  }
  to {
    transform: translateX(0);
    opacity: 1;
  }
}
.slideAnimeRightLeft {
  animation-name: slideTextX-100;
  animation-duration: 0.8s;
  animation-fill-mode: forwards;
  opacity: 0;
}

@keyframes slideTextX-100 {
  from {
    transform: translateX(100%);
    opacity: 0;
  }
  to {
    transform: translateX(0);
    opacity: 1;
  }
}
/* fadeIn */
.fadeIn {
  animation-name: fadeInAnime;
  animation-duration: 1s;
  animation-fill-mode: forwards;
  opacity: 0;
}

@keyframes fadeInAnime {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
/* fadeUp */
.fadeUp {
  animation-name: fadeUpAnime;
  animation-duration: 0.5s;
  animation-fill-mode: forwards;
  transition: ease-out;
  opacity: 0;
}

@keyframes fadeUpAnime {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
/* fadeDown */
.fadeDown {
  animation-name: fadeDownAnime;
  animation-duration: 0.5s;
  animation-fill-mode: forwards;
  transition: ease-out;
  opacity: 0;
}

@keyframes fadeDownAnime {
  from {
    opacity: 0;
    transform: translateY(-20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
/* fadeLeft */
.fadeLeft {
  animation-name: fadeLeftAnime;
  animation-duration: 0.5s;
  animation-fill-mode: forwards;
  transition: ease-out;
  opacity: 0;
}

@keyframes fadeLeftAnime {
  from {
    opacity: 0;
    transform: translateX(-20px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
/* fadeRight */
.fadeRight {
  animation-name: fadeRightAnime;
  animation-duration: 0.5s;
  animation-fill-mode: forwards;
  transition: ease-out;
  opacity: 0;
}

@keyframes fadeRightAnime {
  from {
    opacity: 0;
    transform: translateX(20px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
.js-fadeInTrigger,
.js-fadeUpTrigger,
.js-fadeDownTrigger,
.js-fadeLeftTrigger,
.js-fadeRightTrigger {
  opacity: 0;
}

.delay01 {
  animation-delay: 0.1s;
}

.delay02 {
  animation-delay: 0.2s;
}

.delay03 {
  animation-delay: 0.3s;
}

.delay04 {
  animation-delay: 0.4s;
}

.delay05 {
  animation-delay: 0.5s;
}

.delay06 {
  animation-delay: 0.6s;
}

.delay07 {
  animation-delay: 0.7s;
}

.delay08 {
  animation-delay: 0.8s;
}

.delay09 {
  animation-delay: 0.9s;
}

.delay10 {
  animation-delay: 1s;
}

.delay11 {
  animation-delay: 1.1s;
}

.delay12 {
  animation-delay: 1.2s;
}

.delay13 {
  animation-delay: 1.3s;
}

.delay14 {
  animation-delay: 1.4s;
}

.delay15 {
  animation-delay: 1.5s;
}

.delay16 {
  animation-delay: 1.6s;
}

.delay17 {
  animation-delay: 1.7s;
}

.delay18 {
  animation-delay: 1.8s;
}

.delay19 {
  animation-delay: 1.9s;
}

.delay20 {
  animation-delay: 2s;
}

/* layout */
.c-widget__title {
  font-family: var(--ff-section-title);
  text-transform: uppercase;
  font-weight: 500;
}
.c-widget__title::before {
  width: 100% !important;
}
.c-widget__title::after {
  display: none;
}
.c-widget__title.-side {
  padding: 0.25em 0;
}

.c-searchForm__s:focus {
  outline: var(--color-pink) 1px solid;
  border-radius: 0px;
}

.l-articleBottom__title::after {
  position: absolute;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  content: "";
  background-color: var(--color-black);
  width: calc(100% - 179px);
  height: 1px;
}
@media (width <= 598.98px) {
  .l-articleBottom__title::after {
    width: calc(100% - 39vw);
  }
}

.c-secTitle {
  font-family: var(--ff-section-title);
  text-transform: uppercase;
  font-weight: 500;
}

.hov-flash-up:hover {
  animation: none;
  box-shadow: none;
  text-decoration: underline;
}

.l-footer__nav {
  gap: 1em;
  padding: 1em 0 4em;
  justify-content: space-between;
}
@media (width <= 959.98px) {
  .l-footer__nav {
    gap: 0.5em;
    flex-direction: column;
  }
}
.l-footer__nav a {
  border-right: none;
  position: relative;
}
.l-footer__nav a:hover {
  text-decoration: none;
}
@media (width <= 959.98px) {
.l-footer__nav a:hover {
  opacity: 0.8;
}
}
.l-footer__nav a::after {
  bottom: 0;
  content: "";
  display: block;
  left: 0;
  position: absolute;
  transition: transform 0.25s, width 0.25s, height 0.25s;
  background: var(--color_footer_text);
  width: 0%;
  height: 2px;
}
@media (width <= 959.98px) {
.l-footer__nav a::after {
  display: none;
}
}
.l-footer__nav a:hover::after {
  width: 100%;
}
.l-footer__nav li:first-child a {
  border-left: none;
}
.l-footer__nav > li > a {
  font-weight: var(--fw-bold);
  font-size: 0.875rem;
  color: var(--color-white);
}
.l-footer__nav .sub-menu {
  margin-top: 0.25em;
  display: grid;
  gap: 0.15em;
}
@media (width <= 959.98px) {
  .l-footer__nav .sub-menu {
    margin-top: 0.2em;
    gap: 0.5em;
    grid-template-columns: repeat(2, 1fr);
  }
}
.l-footer__nav .sub-menu > li {
  margin-left: 0.75em;
}
.l-footer__nav .sub-menu > li a {
  padding: 0 0.75em;
  position: relative;
  font-size: 0.8125rem;
  color: var(--color-white);
}
@media (width <= 959.98px) {
  .l-footer__nav .sub-menu > li a {
    font-size: 0.75rem;
  }
}
.l-footer__nav .sub-menu > li a::before {
  content: "";
  width: 5px;
  height: 1px;
  background-color: var(--color_footer_text);
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
}

#media_image-10 {
  display: flex;
  justify-content: center;
}
#media_image-10 img {
  width: 300px;
}

.l-header__customBtn {
  display: none !important;
}
.l-header__menuBtn.sp_ {
  position: fixed;
  left: 50%;
  translate: -50% 0;
  bottom: 1dvh;
  background-color: var(--color-black);
  color: var(--color-white);
  min-width: 110px;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.2s ease-out, visibility 0.2s ease-out !important;
}
.l-header__menuBtn.sp_.is-active {
  transition: opacity 0.2s ease-out, visibility 0.2s ease-out !important;
  opacity: 1;
  visibility: visible;
  pointer-events: cursor;
}
.l-header__menuBtn.sp_ .c-iconBtn {
  display: flex;
  align-items: center;
  text-transform: uppercase;
  font-size: 1.1rem;
  gap: 0.3125rem;
  font-family: "Josefin Sans";
  line-height: 1;
  font-weight: 500;
  padding: 3px;
}
.l-header__menuBtn.sp_ .menuBtnText {
  padding-top: 3px;
}
.l-header .l-header__inner {
  justify-content: center;
}

[class*=" icon-"]:before,
[class^=icon-]:before {
  font-weight: 600;
}

.p-spMenu {
  transition: opacity 0.2s ease-out !important;
  border: var(--color-white) solid 6px;
}
.p-spMenu__inner {
  padding-top: 20px;
}
.p-spMenu .p-spMenu__closeBtn {
  position: fixed;
  left: 50%;
  translate: -50% 0;
  top: auto;
  bottom: 1.26dvh;
  background-color: var(--color-white);
  color: var(--color-black);
  min-width: 110px;
}
.p-spMenu .p-spMenu__closeBtn .c-iconBtn {
  display: flex;
  align-items: center;
  text-transform: uppercase;
  font-size: 1.1rem;
  gap: 0.3125rem;
  font-family: "Josefin Sans";
  line-height: 1;
  font-weight: 500;
  padding: 3px;
}
.p-spMenu .p-spMenu__closeBtn .closeBtnText {
  padding-top: 3px;
}
.p-spMenu__inner {
  width: 100%;
}
.p-spMenu__inner::before {
  background-color: var(--color-black);
}
.p-spMenu__bottom {
  margin-top: 0.125em;
}

.c-spnav .sub-menu {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr);
}
.c-spnav .sub-menu a {
  border-bottom: none;
  border-top: none;
}
.c-spnav a {
  color: var(--color-white);
  border-top: var(--color-white) solid 1px;
  border-bottom: none;
}

.c-listMenu a {
  padding: 1.5em 1.5em 1.5em 2.5em;
  border-bottom: none;
}
.c-listMenu .sub-menu a {
  padding: 1.5em 1.5em 1.5em 2.5em;
}

.-link-web a::before {
  color: var(--color-pink);
}

.-link-dtp a::before {
  color: var(--color-skyblue);
}

.-link-contents a::before {
  color: var(--color-blue);
}

.-link-vi a::before {
  color: var(--color-limegreen);
}

.-link-system a::before {
  color: var(--color-yellow);
}

.c-widget__title.-spmenu {
  padding: 0em 0.5em 0em;
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: relative;
}
.c-widget__title.-spmenu::after {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  display: block;
  content: "";
  height: 34px;
  width: 1px;
  background-color: var(--color-white);
}
.c-widget__title.-spmenu .spNav__logo {
  height: 2.2rem;
  width: auto;
  aspect-ratio: 4.728/1;
}
.c-widget__title.-spmenu .spNav__catch {
  font-size: 0.9rem;
  font-weight: 400;
  font-family: var(--swl-font_family) !important;
  text-transform: none !important;
}

.nav__contact {
  font-size: 0.875em;
}
.nav__contact > .swell-block-button__link::after {
  display: none;
}
.nav__contact.-sp {
  font-size: 1em;
}
.nav__contact.-sp a {
  color: var(--color-white) !important;
}

/* component */
.c-term-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5em;
}
.c-term-list.-cat::before {
  display: grid;
  place-items: center;
  content: "\e92f";
  color: inherit;
  font-family: icomoon !important;
  font-size: 0.875rem;
}
.c-term-list__link {
  text-decoration: none;
  font-size: 0.75rem;
  background-color: var(--color-lightgray);
  padding: 0.125em 0.35em;
  transition: var();
}
.c-term-list__link:hover {
  text-decoration: underline;
}
.c-term-list.-tag::before {
  display: grid;
  place-items: center;
  content: "\e935";
  color: inherit;
  font-family: icomoon !important;
  font-size: 0.875rem;
  margin-bottom: -2px;
}

.post_content h2.c-section-title {
  display: flex;
  flex-direction: column;
  align-items: start;
  color: var(--color_text);
  padding: 0 !important;
}
.post_content h2.c-section-title::before {
  display: none !important;
}
.post_content h2.c-section-title .-en {
  font-size: var(--fs-section-title) !important;
  font-family: var(--ff-section-title);
  font-weight: 500;
  font-style: normal;
  text-align: left;
  margin-bottom: 0 !important;
  line-height: 1;
  text-transform: uppercase;
}
.post_content h2.c-section-title .-jp {
  font-size: var(--fs-section-title-jp) !important;
  font-style: normal;
  font-weight: var(--fw-bold);
  text-align: left;
  padding-left: 3px;
}
.post_content h2.c-section-title.-white {
  color: var(--color-white);
}
.post_content h2.c-section-title.-center {
  text-align: center;
  align-items: center;
}
.post_content h2.c-section-title.c-page-title {
  font-size: var(--fs-page-title);
  margin-top: clamp(-53px, -4.7vw, -25px);
}
.post_content h2.c-section-title.-white {
  color: var(--color-white);
}

.post_content h3.c-card__heading {
  margin: 0;
}

.c-card {
  display: flex;
  justify-content: center;
  align-items: stretch;
  height: 350px;
  text-decoration: none !important;
  color: var(--color-black);
  padding: var(--pd-xs);
  position: relative;
}
@media (width <= 959.98px) {
  .c-card {
    min-height: 250px;
    height: auto;
  }
}
@media (width <= 959.98px) {
  .c-card {
    padding: var(--pd-xs) 0;
  }
}
.c-card__img {
  width: min(40%, 160px);
}
@media (width <= 959.98px) {
  .c-card__img {
    width: max(35%, 110px);
  }
}
.c-card__img img {
  width: 100%;
  height: 100%;
  aspect-ratio: 1;
  vertical-align: bottom;
}
.c-card:not(.c-card:has(.c-card__img)) .c-card__body {
  width: 100%;
}
.c-card__body {
  width: 60%;
  padding: 0.625em 1.25em;
}
@media (width <= 959.98px) {
  .c-card__body {
    width: 100%;
    padding: 0.625em 0;
  }
}
.c-card:not(.c-card:has(.c-card__img)) .c-card__heading {
  border-bottom: solid 1px var(--color-black);
  padding: 0 !important;
}
.c-card:not(.c-card:has(.c-card__img)) .c-card__heading.num {
  padding: 0 0 8px 4.45em !important;
}
.c-card__heading {
  position: relative;
  font-size: var(--fs-heading) !important;
  margin-top: var(--mg-xs) !important;
  word-break: keep-all;
  z-index: 1;
  padding: 0 !important;
}
.c-card__heading::before {
  background: none !important;
  height: auto !important;
  width: auto !important;
  content: attr(data-number) !important;
  display: block;
  position: absolute !important;
  bottom: -16px !important;
  left: 0 !important;
  font-size: 3.3em !important;
  font-weight: var(--fw-normal) !important;
  font-family: var(--ff-section-title) !important;
  color: var(--color-black) !important;
  z-index: -1 !important;
}
.c-card__text {
  margin-top: var(--mg-xs);
}
.c-card__text p {
  margin-block: var(--mg-xs);
}
.c-card__text a {
  text-decoration: underline;
  cursor: pointer;
}
.c-card__list {
  display: flex;
  flex-wrap: wrap;
  gap: 1em;
  margin-top: 1em;
  list-style-type: none;
  padding-left: 0 !important;
}
@media (width <= 959.98px) {
  .c-card__list {
    gap: 0.3625em;
  }
}
.c-card__item {
  background-color: var(--color-white);
  padding: 0.2625em 0.625em;
  font-size: 0.875rem;
}
@media (width <= 959.98px) {
  .c-card__item {
    padding: 0.1625em 0.3625em;
  }
}
.c-card__item::before {
  display: inline;
  content: "#";
  font-size: 1rem;
  font-weight: var(--fw-bold);
  margin-right: 0.1625em;
}
.c-card__item.pink::before {
  color: var(--color-pink);
}
.c-card__item.skyblue::before {
  color: var(--color-skyblue);
}
.c-card__item.blue::before {
  color: var(--color-blue);
}
.c-card__item.yellow::before {
  color: var(--color-yellow);
}
.c-card__item.limegreen::before {
  color: var(--color-limegreen);
}
.c-card:not(.c-card:has(.c-card__img))::before, .c-card:not(.c-card:has(.c-card__img))::after {
  display: none;
}
.c-card:has(.c-card__list)::after, .c-card:has(.c-card__list)::before {
  display: none;
}
.c-card:has(.c-card__list) .c-card__img {
  background-color: var(--color-white);
  border-radius: 50%;
  padding: 0.625em;
}
@media (width <= 959.98px) {
  .c-card:has(.c-card__list) {
    flex-direction: column;
  }
}
.c-card::after {
  display: block;
  background: var(--color-black);
  content: "";
  border: solid 1px var(--color-black);
  border-radius: 50%;
  position: absolute;
  aspect-ratio: 1;
  width: 30px;
  bottom: 10px;
  right: 13px;
  transition: ease-out 0.2s;
}
@media (width <= 959.98px) {
  .c-card::after {
    bottom: 0;
    right: 10px;
  }
}
.c-card::before {
  display: block;
  content: "";
  background-color: transparent;
  width: 7px;
  aspect-ratio: 1/1;
  border: solid var(--color-white);
  border-width: 0 1px 1px 0;
  bottom: 21px;
  right: 26px;
  transform: rotate(-45deg);
  position: absolute;
  z-index: 2;
}
@media (width <= 959.98px) {
  .c-card::before {
    bottom: 11px;
    right: 23px;
  }
}
.c-card:hover::after {
  background-color: transparent;
}
.c-card:hover::before {
  border: solid var(--color-black);
  border-width: 0 1px 1px 0;
}
@media (width <= 959.98px) {
  .c-card {
    font-size: 15px;
  }
}

.c-cta {
  padding: 70px 0;
  width: 100%;
  position: relative;
  background-color: var(--color-black);
  color: var(--color-white);
}
.c-cta__inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: min(90%, 900px);
  margin-inline: auto;
  flex-direction: column;
  gap: 2em 0;
}
.c-cta__text {
  font-size: 1.3rem;
  font-weight: var(--fw-bold);
}
.c-cta__button {
  background: var(--color-white);
  border: solid 1px var(--color-white);
  display: inline-block;
  line-height: 1.5;
  margin: 0;
  width: min(100%, 400px);
  padding: 0.75em 1.5em;
  position: relative;
  color: var(--color-black);
  font-size: 1.3rem;
  font-weight: var(--fw-bold);
  text-align: center;
  text-decoration: none;
}
.c-cta__button:hover {
  background-color: transparent;
  color: var(--color-white);
}
@media (width <= 959.98px) {
  .c-cta__button {
    font-size: 15px;
  }
}
.c-cta::before {
  background: url("https://grafru.jp/wp-content/uploads/2024/12/cta-question.svg") no-repeat;
  display: block;
  background-size: contain;
  content: "";
  width: 200px;
  aspect-ratio: 1;
  position: absolute;
  top: 80%;
  left: -3%;
  transition: 0.2s ease-out;
}
@media (width <= 959.98px) {
  .c-cta::before {
    background: url("https://grafru.jp/wp-content/uploads/2024/12/cta-question.svg") no-repeat;
    width: 110px;
    top: 85%;
  }
}
.c-cta:hover::before {
  transform: rotate(-15deg);
}
.c-cta::after {
  background: url("https://grafru.jp/wp-content/uploads/2024/12/cta-plain.svg") no-repeat;
  display: block;
  background-size: contain;
  content: "";
  width: 200px;
  aspect-ratio: 1;
  position: absolute;
  top: -10%;
  right: -3%;
  transition: 0.2s ease-out;
  transition-delay: 0.15s;
}
@media (width <= 959.98px) {
  .c-cta::after {
    background: url("https://grafru.jp/wp-content/uploads/2024/12/cta-plain.svg") no-repeat;
    width: 110px;
    top: -5%;
  }
}
.c-cta:hover::after {
  transform: translateX(25px) translateY(-25px);
}

/* project */
.p-top-mv {
  position: relative;
  height: calc(100svh - 92px);
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 2em;
}
@media (width <= 1023.98px) {
  .p-top-mv {
    padding: 0 1em;
  }
}
@media (width <= 959.98px) {
  .p-top-mv {
    padding: 2em 1em 0;
    height: calc(100svh - 51px);
    flex-direction: column;
    justify-content: center;
    align-items: center;
  }
}
.p-top-mv__text {
  width: min(95%, 600px);
}
.p-top-mv__desc {
  width: min(100%, 490px);
  margin-inline: auto;
  font-weight: var(--fw-bold);
  font-size: 0.9375rem;
}
.p-top-mv__obj {
  width: min(115%, 1000px);
}
@media (width <= 1439.98px) {
  .p-top-mv__obj {
    width: min(115%, 830px);
  }
}
.p-top-mv__obj img {
  width: 100%;
}
.p-top-mv .news-ticker {
  bottom: 0;
  left: -2px;
  position: absolute;
  height: 3em; /* 表示領域の高さ（li要素1つ分） */
  overflow: hidden;
  width: min(500px, 90%);
  background-color: var(--color-white);
  border: solid 1px var(--color-black);
}
.p-top-mv .news-ticker::before {
  display: block;
  content: "News";
  font-family: var(--ff-section-title);
  text-transform: uppercase;
  position: absolute;
  top: 50%;
  left: 3%;
  transform: translate(0, -50%);
}
.p-top-mv .news-ticker ul {
  height: 3em; /* 表示領域の高さ（li要素1つ分） */
  margin: 0;
  padding: 0;
  list-style: none;
  position: absolute;
  bottom: 0;
  width: 100%;
}
.p-top-mv .news-ticker li {
  height: 3em;
  padding-left: 4.675em;
  box-sizing: border-box;
}
.p-top-mv .news-ticker li .p-postList__body {
  display: flex;
}
.p-top-mv .news-ticker li a {
  line-height: 1;
  font-size: 0.8375rem;
}
.p-top-mv .news-ticker li a.p-postList__link {
  border-bottom: none !important;
}

.js-catch {
  display: inline-block;
  overflow: hidden;
}

.p-top-mv__catch {
  position: relative;
  margin: 0 0 1em !important;
  top: 70%;
  left: 10%;
  transform: translateY(-50%);
  font-weight: var(--fw-bold);
  padding: 0 !important;
}
.p-top-mv__catch::before {
  display: none !important;
}
@media (width <= 1535.98px) {
  .p-top-mv__catch {
    top: 70%;
    left: 4%;
  }
}
@media (width <= 1439.98px) {
  .p-top-mv__catch {
    top: 70%;
    left: 0%;
  }
}
@media (width <= 959.98px) {
  .p-top-mv__catch {
    top: 0%;
    left: 0%;
    transform: translateY(0%);
  }
}

.p-top-mv__catch br {
  display: block;
  margin-bottom: 10px;
}

.p-top-mv__catch span {
  display: inline-block;
  font-size: clamp(2.313rem, 1.819rem + 1.85vw, 3rem);
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.5s ease-out, transform 0.5s ease-out;
  color: var(--color-black);
}
.p-top-mv__catch span.catch-is-active {
  opacity: 1;
  transform: translateY(0);
}

.home .c-card {
  align-items: center;
}
.home .c-card__body {
  width: 60%;
  padding: 0 1.25em 0.625em;
}
@media (width <= 959.98px) {
  .home .c-card__body {
    width: 100%;
    padding: 0.625em;
  }
}

.p-top-about {
  padding: 60px 0 80px !important;
  position: relative;
}
@media (width <= 959.98px) {
  .p-top-about {
    padding: 60px 0 !important;
  }
}
.p-top-about__heading {
  font-size: 7em;
  font-family: var(--ff-section-title);
  text-transform: uppercase;
  text-align: center;
  text-wrap: nowrap;
  position: absolute;
  top: -20px;
  left: 50%;
  transform: translateX(-50%);
}
@media (width <= 959.98px) {
  .p-top-about__heading {
    font-size: 3.95em;
  }
}
.p-top-about__text {
  font-size: 1.4em;
  font-style: normal;
  font-weight: var(--fw-bold);
  text-align: center;
  display: block;
  word-break: keep-all;
  margin-top: 140px;
  padding-top: 100px;
  position: relative;
}
@media (width <= 959.98px) {
  .p-top-about__text {
    font-size: 0.8em;
    padding-top: 70px;
    font-size: 1rem;
    margin-top: 80px;
  }
}
.p-top-about__text::before {
  width: 100%;
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  display: block;
  content: "Graceful × Fruitful";
  text-transform: uppercase;
  color: var(--color-white);
  -webkit-text-stroke: var(--color-black) 3px;
  -webkit-background-clip: text;
          background-clip: text;
  font-size: 3.2rem;
}
@media (width <= 959.98px) {
  .p-top-about__text::before {
    -webkit-text-stroke: var(--color-black) 2px;
    font-size: 2rem;
  }
}
.p-top-about__text::after {
  width: 100%;
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  display: block;
  content: "Graceful × Fruitful";
  text-transform: uppercase;
  color: var(--color-white);
  font-size: 3.2rem;
}
@media (width <= 959.98px) {
  .p-top-about__text::after {
    font-size: 2rem;
  }
}
.p-top-about__text p {
  margin-block: var(--mg-xs);
}

.p-top-works__container .swiper-controller {
  display: flex;
  gap: 1.6rem;
  align-items: center;
  justify-content: flex-end;
  margin: 3.2rem auto 0;
  max-width: calc(var(--container_size, 0px) + var(--swl-pad_container, 0px) * 2);
  padding-inline: var(--swl-pad_container, 0);
}
.p-top-works__container .swiper-button-prev,
.p-top-works__container .swiper-button-next {
  display: grid;
  place-content: center;
  width: 3rem;
  height: 3rem;
  cursor: pointer;
  transition: var(--transition);
  background: transparent;
  position: relative;
  flex-shrink: 0;
  margin: 0;
}
@media (width <= 959.98px) {
  .p-top-works__container .swiper-button-prev,
  .p-top-works__container .swiper-button-next {
    width: 3rem;
    height: 3rem;
  }
}
.p-top-works__container .swiper-button-prev::before,
.p-top-works__container .swiper-button-next::before {
  position: absolute;
  inset: 0;
  content: "";
  background-color: transparent;
  border: solid 1px var(--color-white);
  border-radius: 50%;
  transition: 0.2s ease-in-out;
}
.p-top-works__container .swiper-button-prev::after,
.p-top-works__container .swiper-button-next::after {
  width: 0.6rem;
  height: 0.6rem;
  content: "";
  border: solid var(--color-white);
  border-width: 1px 1px 0 0;
  transition: 0.2s ease-in-out;
}
@media (width <= 959.98px) {
  .p-top-works__container .swiper-button-prev::after,
  .p-top-works__container .swiper-button-next::after {
    width: 0.5rem;
    height: 0.5rem;
  }
}
.p-top-works__container .swiper-button-prev::after {
  margin-left: 0.15rem;
  transform: rotate(-135deg);
}
@media (width <= 959.98px) {
  .p-top-works__container .swiper-button-prev::after {
    margin-left: 0;
  }
}
.p-top-works__container .swiper-button-next::after {
  margin-right: 0.15rem;
  transform: rotate(45deg);
}
@media (width <= 959.98px) {
  .p-top-works__container .swiper-button-next::after {
    margin-right: 0;
  }
}
.p-top-works__container .swiper-button-disabled {
  pointer-events: none;
  opacity: 0.2;
}
.p-top-works__container .swiper-button-prev:hover::before,
.p-top-works__container .swiper-button-next:hover::before {
  background-color: var(--color-white);
}
.p-top-works__container .swiper-button-prev:hover::after,
.p-top-works__container .swiper-button-next:hover::after {
  border: solid var(--color-black);
  border-width: 1px 1px 0 0;
}
.p-top-works__container .swiper-pagination {
  display: flex;
  flex-wrap: wrap;
  gap: 1.2rem 0.16rem;
  justify-content: flex-start;
  margin: 0 auto 0 0;
  top: 77%;
  text-align: center;
  padding-left: calc(var(--swl-pad_container, 0) + 11.9vw);
}
@media (width <= 1535.98px) {
  .p-top-works__container .swiper-pagination {
    padding-left: calc(var(--swl-pad_container, 0) + 2vw);
  }
}
@media (width <= 1439.98px) {
  .p-top-works__container .swiper-pagination {
    padding-left: var(--swl-pad_container, 0);
  }
}
.p-top-works__container .swiper-pagination-bullet {
  width: 1.6rem;
  height: 4px;
  border-radius: 2px;
  cursor: pointer;
  transition: 0.2s ease-in-out;
  vertical-align: top;
  background-color: var(--color-gray);
}
.p-top-works__container .swiper-pagination-bullet-active {
  width: 4rem;
  background: var(--color-white);
}
.p-top-works__list {
  padding-left: calc(var(--swl-pad_container, 0) + 11.9vw);
}
@media (width <= 1535.98px) {
  .p-top-works__list {
    padding-left: calc(var(--swl-pad_container, 0) + 2vw);
  }
}
@media (width <= 1439.98px) {
  .p-top-works__list {
    padding-left: var(--swl-pad_container, 0);
  }
}
.p-top-works__item {
  width: 430px;
  position: relative;
  aspect-ratio: 1;
}
@media (width <= 1439.98px) {
  .p-top-works__item {
    width: 350px;
  }
}
.p-top-works__item:hover .p-top-works__thumbnail img {
  transform: scale(1.06);
}
@media (width <= 959.98px) {
  .p-top-works__item {
    width: 300px;
  }
}
.p-top-works__item a {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  text-decoration: none !important;
}
.p-top-works__thumbnail {
  width: 100%;
  aspect-ratio: 16/9;
  position: relative;
  overflow: hidden;
}
.p-top-works__thumbnail img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  transition: 0.2s ease-in-out;
}
.p-top-works__body {
  color: var(--color-white);
  padding: 7px 0.3625em 10px;
}
.p-top-works__heading {
  margin: 0 !important;
  font-size: 0.8em !important;
  font-weight: var(--fw-normal) !important;
  padding: 0 !important;
}
.p-top-works__heading::before {
  display: none !important;
}
.p-top-works__copy {
  font-size: 1.2rem;
  font-weight: var(--fw-bold);
  margin-block: 0.1625em;
}
.p-top-works__categories {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 5px;
  margin-block: 0.1625em;
  justify-content: flex-start;
  align-items: flex-start;
}
.p-top-works__category {
  font-size: 0.9em;
}

.p-top-blog__list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(380px, 1fr));
  gap: 40px;
}
@media (width <= 1439.98px) {
  .p-top-blog__list {
    grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));
    gap: 2rem;
  }
}
@media (width <= 598.98px) {
  .p-top-blog__list {
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 1rem;
  }
}
.p-top-blog__item {
  position: relative;
  aspect-ratio: 4/3;
}
@media (width <= 959.98px) {
  .p-top-blog__item {
    aspect-ratio: 1;
  }
}
.p-top-blog__item:hover .p-top-blog__thumbnail img {
  transform: scale(1.06);
}
.p-top-blog__item a {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  text-decoration: none !important;
}
.p-top-blog__thumbnail {
  width: 100%;
  aspect-ratio: 16/9;
  position: relative;
  overflow: hidden;
}
.p-top-blog__thumbnail img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  transition: 0.2s ease-in-out;
}
.p-top-blog__body {
  padding: 7px 0.3625em 10px;
}
.p-top-blog__heading {
  margin: 0 !important;
  font-size: 1.1rem !important;
  padding: 0 !important;
}
.p-top-blog__heading::before {
  display: none !important;
}
.p-top-blog__categories {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 5px;
  margin-block: 0.1625em;
  justify-content: flex-start;
  align-items: flex-start;
}
.p-top-blog__category {
  font-size: 0.85em;
}

.page-id-615 .c-pageTitle {
  color: var(--color-black);
}
.page-id-615 .c-pageTitle::before {
  display: block;
  visibility: visible;
  content: "Service";
  text-transform: uppercase;
  font-family: var(--ff-section-title);
  color: var(--color-black);
  text-shadow: none;
  width: -moz-max-content;
  width: max-content;
  font-size: var(--fs-page-title) !important;
  font-weight: 500;
  font-style: normal;
  text-align: left;
  margin-bottom: 0 !important;
  margin-left: -3px;
  line-height: 1;
}

.page-id-615 .c-card {
  align-items: center;
}
.page-id-615 .c-card__body {
  width: 60%;
  padding: 0 1.25em 0.625em;
}
@media (width <= 959.98px) {
  .page-id-615 .c-card__body {
    width: 100%;
    padding: 0.625em;
  }
}

div.has-background:has(.c-card__list) {
  padding: 1.5em 0;
}

.page-id-1627 .c-pageTitle {
  color: var(--color-black);
}
.page-id-1627 .c-pageTitle::before {
  display: block;
  visibility: visible;
  content: "About";
  text-transform: uppercase;
  font-family: var(--ff-section-title);
  color: var(--color-black);
  text-shadow: none;
  width: -moz-max-content;
  width: max-content;
  font-size: var(--fs-page-title) !important;
  font-weight: 500;
  font-style: normal;
  text-align: left;
  margin-bottom: 0 !important;
  margin-left: -3px;
  line-height: 1;
}

.page-id-1627 .c-card {
  align-items: center;
}
.page-id-1627 .c-card__body {
  width: 60%;
  padding: 0 1.25em 0.625em;
}
@media (width <= 959.98px) {
  .page-id-1627 .c-card__body {
    width: 100%;
    padding: 0.625em;
  }
}

.p-about-vision__heading {
  padding: 0 !important;
  margin: 0 0 1em !important;
}
.p-about-vision__heading::before {
  display: none !important;
}

.p-about-overview .wp-block-columns {
  gap: 0.5em !important;
  padding: 1.5em 0.125em;
  margin-bottom: 0;
}

.p-about-overview .wp-block-columns:not(:last-of-type) {
  border-bottom: var(--color-black) solid 1px;
}

.page-id-769 .c-pageTitle {
  color: var(--color-black);
}
.page-id-769 .c-pageTitle::before {
  display: block;
  visibility: visible;
  content: "Webdesign";
  text-transform: uppercase;
  font-family: var(--ff-section-title);
  color: var(--color-black);
  text-shadow: none;
  width: -moz-max-content;
  width: max-content;
  font-size: var(--fs-page-title) !important;
  font-weight: 500;
  font-style: normal;
  text-align: left;
  margin-bottom: 0 !important;
  margin-left: -3px;
  line-height: 1;
}

div.has-background:has(.c-card__list) {
  padding: 1.5em 0;
}

.is-style-check_list.-pink li:before {
  color: var(--color-pink);
}

.p-web-read__container {
  justify-content: space-between;
}
.p-web-read__heading {
  text-align: left;
}
@media (width <= 959.98px) {
  .p-web-read__heading {
    text-align: center !important;
  }
}

.p-web-price .heading-en {
  color: var(--color-pink);
  text-transform: uppercase;
  font-size: 0.8em;
}
.p-web-price__item {
  background-color: var(--color-white);
  border: solid 1px var(--color-black);
}
.p-web-price__item.-highlight {
  border: solid 3px var(--color-pink);
  position: relative;
}
.p-web-price__item.-highlight::before {
  position: absolute;
  content: "依頼数\aNo.1";
  white-space: pre;
  border-radius: 50%;
  aspect-ratio: 1;
  text-align: center;
  width: 55px;
  height: 55px;
  line-height: 1.3;
  display: grid;
  place-items: center;
  background-color: var(--color-black);
  color: var(--color-white);
  font-size: 0.775em;
  top: 9px;
  right: 2px;
  padding: 0.5em;
}
.p-web-price__item th {
  font-weight: var(--fw-normal) !important;
}
.p-web-price__heading {
  margin: 1em 0 0.5em !important;
  padding: 0 !important;
}
.p-web-price__heading::before {
  display: none !important;
}
.p-web-price__price {
  text-align: center;
  font-weight: var(--fw-bold);
  border-bottom: solid 1px var(--color-black);
}
.p-web-price__price .-large {
  font-size: 2em;
  margin-right: 4px;
}

.page-id-1206 .c-pageTitle {
  color: var(--color-black);
}
.page-id-1206 .c-pageTitle::before {
  display: block;
  visibility: visible;
  content: "DTP and Print";
  text-transform: uppercase;
  font-family: var(--ff-section-title);
  color: var(--color-black);
  text-shadow: none;
  width: -moz-max-content;
  width: max-content;
  font-size: var(--fs-page-title) !important;
  font-weight: 500;
  font-style: normal;
  text-align: left;
  margin-bottom: 0 !important;
  margin-left: -3px;
  line-height: 1;
}
@media (width <= 598.98px) {
  .page-id-1206 .c-pageTitle::before {
    content: "DTP and \aPrint";
    white-space: pre;
  }
}

div.has-background:has(.c-card__list) {
  padding: 1.5em 0;
}

.is-style-check_list.-skyblue li:before {
  color: var(--color-skyblue);
}

.p-dtp-read__container {
  justify-content: space-between;
}
.p-dtp-read__heading {
  text-align: left;
}
@media (width <= 959.98px) {
  .p-dtp-read__heading {
    text-align: center !important;
  }
}

.p-dtp-price .heading-en {
  color: var(--color-skyblue);
  text-transform: uppercase;
  font-size: 0.8em;
}
.p-dtp-price__item {
  background-color: var(--color-white);
  border: solid 1px var(--color-black);
}
.p-dtp-price__item.-highlight {
  border: solid 3px var(--color-skyblue);
  position: relative;
}
.p-dtp-price__item.-highlight::before {
  position: absolute;
  content: "依頼数\aNo.1";
  white-space: pre;
  border-radius: 50%;
  aspect-ratio: 1;
  text-align: center;
  width: 55px;
  height: 55px;
  line-height: 1.3;
  display: grid;
  place-items: center;
  background-color: var(--color-black);
  color: var(--color-white);
  font-size: 0.775em;
  top: 9px;
  right: 2px;
  padding: 0.5em;
}
.p-dtp-price__item th {
  font-weight: var(--fw-normal) !important;
}
.p-dtp-price__heading {
  margin: 1em 0 !important;
  padding: 0 !important;
}
.p-dtp-price__heading::before {
  display: none !important;
}
.p-dtp-price__price {
  text-align: center;
  font-weight: var(--fw-bold);
  border-bottom: solid 1px var(--color-black);
}
.p-dtp-price__price .-large {
  font-size: 2em;
  margin-right: 4px;
}

.page-id-1305 .c-pageTitle {
  color: var(--color-black);
}
.page-id-1305 .c-pageTitle::before {
  display: block;
  visibility: visible;
  content: "Contents";
  text-transform: uppercase;
  font-family: var(--ff-section-title);
  color: var(--color-black);
  text-shadow: none;
  width: -moz-max-content;
  width: max-content;
  font-size: var(--fs-page-title) !important;
  font-weight: 500;
  font-style: normal;
  text-align: left;
  margin-bottom: 0 !important;
  margin-left: -3px;
  line-height: 1;
}

div.has-background:has(.c-card__list) {
  padding: 1.5em 0;
}

.is-style-check_list.-blue li:before {
  color: var(--color-blue);
}

.p-contents-read__container {
  justify-content: space-between;
}
.p-contents-read__heading {
  text-align: left;
}
@media (width <= 959.98px) {
  .p-contents-read__heading {
    text-align: center !important;
  }
}

.p-contents-items .heading-en {
  color: var(--color-blue);
  text-transform: uppercase;
  font-size: 0.8em;
}
.p-contents-items__item {
  background-color: var(--color-white);
  border: solid 1px var(--color-black);
}
.p-contents-items__item.-highlight {
  border: solid 3px var(--color-blue);
  position: relative;
}
.p-contents-items__item.-highlight::before {
  position: absolute;
  content: "依頼数\aNo.1";
  white-space: pre;
  border-radius: 50%;
  aspect-ratio: 1;
  text-align: center;
  width: 55px;
  height: 55px;
  line-height: 1.3;
  display: grid;
  place-items: center;
  background-color: var(--color-black);
  color: var(--color-white);
  font-size: 0.775em;
  top: 9px;
  right: 2px;
  padding: 0.5em;
}
.p-contents-items__item th {
  font-weight: var(--fw-normal) !important;
}
.p-contents-items__heading {
  margin: 1em 0 !important;
  padding: 0 !important;
}
.p-contents-items__heading::before {
  display: none !important;
}

.page-id-1350 .c-pageTitle {
  color: var(--color-black);
}
.page-id-1350 .c-pageTitle::before {
  display: block;
  visibility: visible;
  content: "Visual Identity";
  text-transform: uppercase;
  font-family: var(--ff-section-title);
  color: var(--color-black);
  text-shadow: none;
  width: -moz-max-content;
  width: max-content;
  font-size: var(--fs-page-title) !important;
  font-weight: 500;
  font-style: normal;
  text-align: left;
  margin-bottom: 0 !important;
  margin-left: -3px;
  line-height: 1;
}
@media (width <= 598.98px) {
  .page-id-1350 .c-pageTitle::before {
    content: "Visual \aIdentity";
    white-space: pre;
  }
}

div.has-background:has(.c-card__list) {
  padding: 1.5em 0;
}

.is-style-check_list.-limegreen li:before {
  color: var(--color-limegreen);
}

.p-vi-read__container {
  justify-content: space-between;
}
.p-vi-read__heading {
  text-align: left;
}
@media (width <= 959.98px) {
  .p-vi-read__heading {
    text-align: center !important;
  }
}

.p-vi-items .heading-en {
  color: var(--color-limegreen);
  text-transform: uppercase;
  font-size: 0.8em;
}
.p-vi-items__item {
  background-color: var(--color-white);
  border: solid 1px var(--color-black);
}
.p-vi-items__item.-highlight {
  border: solid 3px var(--color-limegreen);
  position: relative;
}
.p-vi-items__item.-highlight::before {
  position: absolute;
  content: "依頼数\aNo.1";
  white-space: pre;
  border-radius: 50%;
  aspect-ratio: 1;
  text-align: center;
  width: 55px;
  height: 55px;
  line-height: 1.3;
  display: grid;
  place-items: center;
  background-color: var(--color-black);
  color: var(--color-white);
  font-size: 0.775em;
  top: 9px;
  right: 2px;
  padding: 0.5em;
}
.p-vi-items__item th {
  font-weight: var(--fw-normal) !important;
}
.p-vi-items__heading {
  margin: 1em 0 !important;
  padding: 0 !important;
}
.p-vi-items__heading::before {
  display: none !important;
}

.page-id-1401 .c-pageTitle {
  color: var(--color-black);
}
.page-id-1401 .c-pageTitle::before {
  display: block;
  visibility: visible;
  content: "System";
  text-transform: uppercase;
  font-family: var(--ff-section-title);
  color: var(--color-black);
  text-shadow: none;
  width: -moz-max-content;
  width: max-content;
  font-size: var(--fs-page-title) !important;
  font-weight: 500;
  font-style: normal;
  text-align: left;
  margin-bottom: 0 !important;
  margin-left: -3px;
  line-height: 1;
}

div.has-background:has(.c-card__list) {
  padding: 1.5em 0;
}

.is-style-check_list.-yellow li:before {
  color: var(--color-yellow);
}

.p-system-read__container {
  justify-content: space-between;
}
.p-system-read__heading {
  text-align: left;
}
@media (width <= 959.98px) {
  .p-system-read__heading {
    text-align: center !important;
  }
}

.p-system-items .heading-en {
  color: var(--color-yellow);
  text-transform: uppercase;
  font-size: 0.8em;
}
.p-system-items__item {
  background-color: var(--color-white);
  border: solid 1px var(--color-black);
}
.p-system-items__item.-highlight {
  border: solid 3px var(--color-yellow);
  position: relative;
}
.p-system-items__item.-highlight::before {
  position: absolute;
  content: "依頼数\aNo.1";
  white-space: pre;
  border-radius: 50%;
  aspect-ratio: 1;
  text-align: center;
  width: 55px;
  height: 55px;
  line-height: 1.3;
  display: grid;
  place-items: center;
  background-color: var(--color-black);
  color: var(--color-white);
  font-size: 0.775em;
  top: 9px;
  right: 2px;
  padding: 0.5em;
}
.p-system-items__item th {
  font-weight: var(--fw-normal) !important;
}
.p-system-items__heading {
  margin: 1em 0 !important;
  padding: 0 !important;
}
.p-system-items__heading::before {
  display: none !important;
}

.post-type-archive-works {
  padding: 0 var(--swl-fw_inner_pad, 0);
  position: relative;
  z-index: 1;
}
.post-type-archive-works .c-pageTitle {
  color: var(--color-black);
}
.post-type-archive-works .c-pageTitle::before {
  display: block;
  visibility: visible;
  content: "Works";
  text-transform: uppercase;
  font-family: var(--ff-section-title);
  color: var(--color-black);
  text-shadow: none;
  width: -moz-max-content;
  width: max-content;
  font-size: var(--fs-page-title) !important;
  font-weight: 500;
  font-style: normal;
  text-align: left;
  margin-bottom: 0 !important;
  margin-left: -3px;
  line-height: 1;
}
.post-type-archive-works .p-postList__meta {
  display: none !important;
}

.single-works .post_content {
  width: min(1000px, 100%);
  margin-inline: auto;
}
.single-works .c-postTimes {
  display: none;
}
.single-works .wp-block-table {
  font-size: 1rem;
  background-color: var(--color-white);
  padding: 1em;
}
.single-works .wp-block-table a[target=_blank]::after {
  content: "";
  background: url(https://grafru.jp/wp-content/uploads/2025/08/t-blank-icon.svg) no-repeat;
  background-position: center;
  background-size: contain;
  width: 1em;
  height: auto;
  aspect-ratio: 1;
  color: inherit;
  display: inline-block;
  margin-left: 5px;
  margin-bottom: -2px;
}
.single-works .wp-block-table > table tr > :first-child:not(.-no1) {
  --swl-cell1-width: 30%;
}
@media (width <= 959.98px) {
  .single-works .wp-block-table > table tr > :first-child:not(.-no1) {
    --swl-cell1-width: 45%;
  }
}
.single-works .is-style-simple th {
  border-top: none !important;
}
.single-works .is-style-simple td {
  border-top: none !important;
}

.page-id-1570 .c-pageTitle {
  color: var(--color-black);
}
.page-id-1570 .c-pageTitle::before {
  display: block;
  visibility: visible;
  content: "Request contact";
  text-transform: uppercase;
  font-family: var(--ff-section-title);
  color: var(--color-black);
  text-shadow: none;
  width: -moz-max-content;
  width: max-content;
  font-size: var(--fs-page-title) !important;
  font-weight: 500;
  font-style: normal;
  text-align: left;
  margin-bottom: 0 !important;
  margin-left: -3px;
  line-height: 1;
}
@media (width <= 598.98px) {
  .page-id-1570 .c-pageTitle::before {
    content: "Request \a contact";
    white-space: pre;
  }
}

.page-id-1572 .c-pageTitle {
  color: var(--color-black);
}
.page-id-1572 .c-pageTitle::before {
  display: block;
  visibility: visible;
  content: "Other inquiries";
  text-transform: uppercase;
  font-family: var(--ff-section-title);
  color: var(--color-black);
  text-shadow: none;
  width: -moz-max-content;
  width: max-content;
  font-size: var(--fs-page-title) !important;
  font-weight: 500;
  font-style: normal;
  text-align: left;
  margin-bottom: 0 !important;
  margin-left: -3px;
  line-height: 1;
}
@media (width <= 598.98px) {
  .page-id-1572 .c-pageTitle::before {
    content: "Other \ainquiries";
    white-space: pre;
  }
}

.p-form__label {
  display: block;
  margin-top: 1.5em;
  margin-bottom: 0.5em;
  color: var(--color-black);
}
.p-form__heading {
  font-weight: 600;
}
.p-form__input, .p-form__select, .p-form__textarea {
  width: 100%;
  padding: 0.75em;
  border: 1px solid var(--color-gray);
  border-radius: 0px;
  font-size: 16px;
  box-sizing: border-box;
  margin-top: 0.625rem;
  margin-bottom: 1.3rem;
}
.p-form__input:focus, .p-form__select:focus, .p-form__textarea:focus {
  outline: var(--color-pink) 1px solid;
  border-radius: 0px;
}
.p-form #your_category {
  margin-top: 0.625rem;
  margin-bottom: 1.3rem;
}
.p-form__textarea {
  min-height: 150px;
}
.p-form__checklist, .p-form__checkboxes {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 1em;
  margin-bottom: 1em;
}
.p-form__privacyBox {
  border: 1px solid var(--color-gray);
  padding: 1em;
  max-height: 200px;
  overflow-y: scroll;
  transform: translateZ(0);
  background: var(--color-lightgray);
  margin-bottom: 1em;
}
.p-form__privacyBox h4 {
  font-size: 0.975em;
  text-align: center;
  border-left: none !important;
}
.p-form__privacyBox h5 {
  margin-top: 1.25rem;
  margin-bottom: 0.3625rem;
  font-size: 0.95em;
}
.p-form__privacyBox p {
  line-height: 1.2;
  font-size: 0.9375em;
}
.p-form__acceptance {
  text-align: center;
  margin-top: 2rem;
}
.p-form__acceptance .wpcf7-list-item {
  margin: 0;
}
.p-form__checkbox {
  margin-right: 0.5em;
}
.p-form__submit {
  margin-top: 2em;
  text-align: center;
}
.p-form__submitBtn {
  background: var(--color-black);
  color: var(--color-white);
  padding: 1em 2em;
  border: none;
  border-radius: 0px;
  font-size: 1rem;
  cursor: pointer;
  text-align: center;
  display: block;
  width: min(250px, 95%);
  margin-inline: auto;
}
.p-form__submitBtn:disabled {
  opacity: 0.8;
}

.wpcf7-list-item input[type=checkbox] {
  position: relative;
  width: 1.3rem;
  height: 1.3rem;
  border: 1px solid var(--color-gray);
  vertical-align: -0.275rem;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}
.wpcf7-list-item input[type=checkbox]:checked::before {
  position: absolute;
  top: 0.1965rem;
  left: 0.4125rem;
  transform: rotate(50deg);
  width: 0.3275rem;
  height: 0.675rem;
  border-right: 2px solid var(--color-white);
  border-bottom: 2px solid var(--color-white);
  content: "";
  z-index: 2;
}
.wpcf7-list-item input[type=checkbox]:checked::after {
  position: absolute;
  inset: 0;
  background-color: var(--color-black);
  z-index: 1;
  content: "";
}

.form-notes {
  background-color: var(--color-lightgray);
  font-size: 0.85rem;
  padding: 1em;
}
.form-notes a {
  text-decoration: underline;
}

.required-red {
  font-size: 1.3rem;
  color: var(--color-red);
}

.page-id-1743 .c-pageTitle {
  color: var(--color-black);
}
.page-id-1743 .c-pageTitle::before {
  display: block;
  visibility: visible;
  content: "Thanks for contact";
  text-transform: uppercase;
  font-family: var(--ff-section-title);
  color: var(--color-black);
  text-shadow: none;
  width: -moz-max-content;
  width: max-content;
  font-size: var(--fs-page-title) !important;
  font-weight: 500;
  font-style: normal;
  text-align: left;
  margin-bottom: 0 !important;
  margin-left: -3px;
  line-height: 1;
}
@media (width <= 598.98px) {
  .page-id-1743 .c-pageTitle::before {
    content: "Thanks for\a contact";
    white-space: pre;
  }
}

.p-thanks__heading {
  display: block;
  position: relative;
  margin-inline: auto !important;
  width: -moz-max-content;
  width: max-content;
  padding: 0 !important;
}
.p-thanks__heading::before {
  display: block;
  position: absolute;
  top: 50%;
  left: -10px !important;
  transform: translateY(-50%) rotate(-30deg);
  content: "";
  background-color: var(--color-black) !important;
  width: 2px !important;
  height: 1.125em !important;
}
.p-thanks__heading::after {
  display: block;
  position: absolute;
  top: 50%;
  right: -10px !important;
  transform: translateY(-50%) rotate(30deg);
  content: "";
  background-color: var(--color-black);
  width: 2px;
  height: 1.125em;
}
.p-thanks__container {
  padding: 1em 2em;
  background-color: var(--color-lightgray);
}
@media (width <= 959.98px) {
  .p-thanks__container {
    padding: 1em;
  }
}
.p-thanks__container a[href^="tel:"] {
  text-decoration: underline;
}

.page-id-3 .c-pageTitle {
  color: var(--color-black);
}
.page-id-3 .c-pageTitle::before {
  display: block;
  visibility: visible;
  content: "Privacy policy";
  text-transform: uppercase;
  font-family: var(--ff-section-title);
  color: var(--color-black);
  text-shadow: none;
  width: -moz-max-content;
  width: max-content;
  font-size: var(--fs-page-title) !important;
  font-weight: 500;
  font-style: normal;
  text-align: left;
  margin-bottom: 0 !important;
  margin-left: -3px;
  line-height: 1;
}
@media (width <= 598.98px) {
  .page-id-3 .c-pageTitle::before {
    content: "Privacy \apolicy";
    white-space: pre;
  }
}

/* utility */
:where(.wp-block-cover-image.is-light:not(.has-text-color)),
:where(.wp-block-cover.is-light:not(.has-text-color)) {
  color: var(--color_main);
}

.l-article {
  max-width: none !important;
  padding-left: 0;
  padding-right: 0;
}

.l-content {
  padding-top: 1em;
}
@media (min-width: 600px) {
  .l-content {
    padding-top: 2em;
  }
}

.c-pageTitle__subTitle {
  display: none !important;
}

.post_content .is-style-section_ttl,
li {
  color: var(--color_main);
}

@media (width >= 600px) {
  .l-topTitleArea {
    min-height: 200px;
  }
}
.l-topTitleArea__body {
  text-shadow: none;
}

.c-filterLayer__img {
  display: none !important;
  visibility: hidden;
  opacity: 0;
}
.c-filterLayer::before {
  display: none;
}
.c-filterLayer.-texture-dot:after {
  display: none;
}

.icon-home:before {
  display: none;
}

.swell-block-button__link {
  text-transform: uppercase !important;
  border-radius: 0 !important;
}
.swell-block-button__link::after {
  display: block;
  content: "";
  background-color: transparent;
  width: 9px;
  aspect-ratio: 1/1;
  border: solid var(--color-white);
  border-width: 0 1px 1px 0;
  top: 50%;
  right: 34px;
  transform: translateY(-50%) rotate(-45deg);
  position: absolute;
  z-index: 2;
}
@media (width <= 959.98px) {
  .swell-block-button__link::after {
    width: 7px;
    right: 14px;
  }
}
@media (width <= 598.98px) {
  .swell-block-button__link::after {
    right: 13px;
  }
}
.swell-block-button__link:hover::after {
  border: solid var(--color-black);
  border-width: 0 1px 1px 0;
}

.is-style-btn_normal a {
  border: 1px solid var(--color_main);
  font-weight: var(--fw-normal);
}
.is-style-btn_normal a:hover {
  background-color: var(--color-white) !important;
  color: var(--color_main) !important;
  box-shadow: none;
}

.is-style-btn_line a {
  font-weight: var(--fw-normal);
}
.is-style-btn_line a:hover {
  color: var(--color_main) !important;
}

.c-anker__button .swell-block-button__link {
  padding-top: 1.1625em;
  padding-bottom: 1.4625em;
  border-radius: 0;
  position: relative;
  background-color: var(--color-white);
}
.c-anker__button .swell-block-button__link::after {
  display: block;
  content: "";
  background-color: transparent;
  width: 7px;
  aspect-ratio: 1/1;
  border: solid var(--color-black);
  border-width: 0 1px 1px 0;
  top: 41px;
  left: 50%;
  transform: translateX(-50%) rotate(45deg);
  position: absolute;
  z-index: 2;
}
@media (width <= 959.98px) {
  .c-anker__button .swell-block-button__link::after {
    top: 40px;
  }
}
.c-anker__button .swell-block-button__link:hover {
  color: var(--color-white) !important;
}
.c-anker__button .swell-block-button__link:hover::after {
  border-color: var(--color-white);
}

.c-tabList__button {
  border-radius: var(--br-xs);
}

.p-fixBtnWrap {
  right: 0.625rem;
  bottom: 0.625rem;
}

[data-scrolled=true] .p-fixBtnWrap {
  mix-blend-mode: difference;
}

.c-fixBtn {
  background: transparent;
  border: 1px solid var(--color-white);
  box-shadow: none;
  color: var(--color-white);
  height: 40px;
  width: 40px;
}
.c-fixBtn__icon {
  font-size: 16px;
}
.c-fixBtn:hover {
  background-color: var(--color-white) !important;
  color: var(--color-black) !important;
}

.c-postTimes__posted:before {
  display: none !important;
}

/* カラムブロックのブレイクポイントを960pxに設定 */
@media (width <= 959.98px) {
  .wp-block-columns {
    flex-wrap: wrap !important;
  }
  .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column {
    flex-basis: 100% !important;
  }
}
@media (min-width: 960px) {
  /* 960px以上でカラムが横並びになるように設定 */
  .wp-block-columns {
    flex-wrap: nowrap !important;
  }
  .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column {
    flex-basis: 0 !important;
    flex-grow: 1 !important;
  }
}
.wp-block-table.is-style-stripes tbody tr:nth-child(odd) {
  background-color: var(--color-white);
}

.wp-block-table td,
.wp-block-table th {
  vertical-align: middle;
}

.swell-block-step__item {
  padding: 0 0 5em 64px;
}

.swell-block-step__number {
  font-family: var(--ff-section-title);
  font-weight: var(--fw-normal);
}
.swell-block-step__number::after {
  font-size: 1.625rem;
}

.swell-block-step__item:before {
  border-left: 1px solid var(--color-black);
}

.c-scrollHint {
  display: none;
}

.grf-swell-block-column {
  background-color: var(--color-white);
  border: solid 1px var(--color-black) !important;
}

.post_content h2:where(:not([class^=swell-block-]):not(.faq_q):not(.p-postList__title):not(.c-section-title))::before {
  position: absolute;
  display: block;
  pointer-events: none;
  content: "";
  left: 0;
  top: 0;
  width: 8px;
  height: 100%;
  background: repeating-linear-gradient(var(--color_htag) 0%, var(--color_htag) 50%, rgba(58, 58, 58, 0.15) 50%, rgba(58, 58, 58, 0.15) 100%);
}

.post_content h3:where(:not([class^=swell-block-]):not(.faq_q):not(.p-postList__title):not(.c-card__heading):not(.p-thanks__heading))::before {
  content: "";
  width: 100%;
  height: 2px;
  background: repeating-linear-gradient(90deg, var(--color_htag) 0%, var(--color_htag) 29.3%, rgba(150, 150, 150, 0.2) 29.3%, rgba(150, 150, 150, 0.2) 100%);
}

.p-breadcrumb__text:hover {
  text-decoration: underline;
}
.p-breadcrumb__text:hover span {
  opacity: 1 !important;
}

.wp-block-search__button {
  background-color: var(--color-black);
  box-shadow: none;
  border-radius: 0;
  color: var(--color-black);
  border: 1px solid var(--color-black) !important;
}
.wp-block-search__button svg {
  fill: var(--color-white);
  color: var(--color-white);
}
.wp-block-search__button:hover {
  background-color: var(--color-white);
}
.wp-block-search__button:hover svg {
  fill: var(--color-black);
  color: var(--color-black);
}

.p-articleFoot {
  border-top: 1px solid var(--color-lightgray);
}

.post_content a[target=_blank]::after {
  content: "";
  background: url(https://grafru.jp/wp-content/uploads/2025/08/t-blank-icon.svg) no-repeat;
  background-position: center;
  background-size: contain;
  width: 1em;
  height: auto;
  aspect-ratio: 1;
  color: inherit;
  display: inline-block;
  margin-left: 5px;
  margin-bottom: -2px;
}

.p-blogCard {
  max-width: 1000px;
  background-color: var(--color-white);
  transition: .2s ease-out ;
}
.p-blogCard:hover {
  box-shadow:none;
}
.p-blogCard:hover .u-obf-cover {
  transform: scale(1.06);
}
.p-blogCard__caption {
  background: var(--color-white);
}

.-sticky {
  position: sticky;
  top: 28%;
}
@media (width <= 959.98px) {
  .-sticky {
    position: static;
  }
}

.sub-text {
  word-break: keep-all;
}

.-br-sm {
  border-radius: var(--br-sm);
}
.u-tag__box {
  border-radius: 0 !important;
  padding: .25em .3625em;
  display: inline-block;
  margin: 5px 5px 0 0;
}/*# sourceMappingURL=style.css.map */