@charset "UTF-8";
:root {
  --bg1: #DDE3E5;
  --bg: #f7f4ec;
  --green-1: #e3f3e0;
  --green-2: #d9f0d6;
  --green-3: #c8ebc5;
  --pink-1: #faeae8;
  --pink-2: #f4dbd7;
  --text: #333333;
  --text-muted: #767c76;
  --text-sub: #4f564f;
  --line: #e2e5e2;
  --line-strong: #cfd4cf;
  --accent: #c98f83;
  --accent-dark: #a25764;
  --accent-hover: #874755;
  --fv-green: #bfd9b8;
  --fv-pink: #e8c5c0;
  --green-dark: #28745f;
  --blue-1: #dde3f0;
  --blue-dark: #4a5a8a;
}

html {
  scroll-behavior: smooth;
  font-size: 62.5%;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}
* {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

body {
  padding: 0;
  margin: 0;
  font-family: "Zen Kaku Gothic New", "Hiragino Kaku Gothic ProN", "Yu Gothic Medium", "Yu Gothic", system-ui, sans-serif;
  font-size: 2rem;
  line-height: 1.7;
  color: var(--text);
  letter-spacing: 0.06em;
  background: url("../img/bg-paper.webp") repeat;
  -webkit-font-smoothing: antialiased;
}
@media screen and (max-width: 768px) {
  body {
    font-size: 1.6rem;
  }
}

body.is-drawer-open {
  position: fixed;
  right: 0;
  left: 0;
  width: 100%;
}

img {
  display: block;
  width: 100%;
  height: auto;
}

a {
  color: inherit;
  text-decoration: none;
}

button {
  font-family: inherit;
  color: inherit;
  cursor: pointer;
  background: none;
  border: none;
}

button:focus-visible,
a:focus-visible,
input[type=submit]:focus-visible,
input[type=button]:focus-visible {
  outline: 2px solid var(--green-dark);
  outline-offset: 4px;
}

.en {
  font-family: "Century Gothic", "Avenir Next", "Futura", system-ui, sans-serif;
  font-weight: 400;
}

[id] {
  scroll-margin-top: 15rem;
}

.site {
  position: relative;
  max-width: 100%;
  overflow: clip;
}

section {
  position: relative;
  z-index: 1;
  max-width: 124rem;
  padding: 12rem 6rem;
  margin: 4rem auto 0;
}
@media screen and (max-width: 768px) {
  section {
    padding: 6rem 2.4rem;
    margin-top: 2.4rem;
  }
}

main > section:first-child {
  margin-top: 0;
}

h1,
h2,
h3 {
  text-wrap: balance;
}

p,
li,
dd {
  text-wrap: pretty;
}

.keep {
  display: inline-block;
}

.br-sp {
  display: none;
}
@media screen and (max-width: 768px) {
  .br-sp {
    display: inline;
  }
}

.br-sp-m {
  display: none;
}
@media screen and (max-width: 480px) {
  .br-sp-m {
    display: inline;
  }
}

.br-sp-s {
  display: none;
}
@media screen and (max-width: 370px) {
  .br-sp-s {
    display: inline;
  }
}

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

.sec-heading {
  margin: 0 0 4.4rem;
  font-family: "Jost", "Century Gothic", "Avenir Next", "Futura", system-ui, sans-serif;
  font-size: 7.2rem;
  font-weight: 400;
  line-height: 1.1;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.2em;
}
@media screen and (max-width: 768px) {
  .sec-heading {
    font-size: 3.6rem;
  }
}
@media screen and (max-width: 480px) {
  .sec-heading {
    font-size: 3.2rem;
  }
}

.sec-heading__note {
  display: block;
  -webkit-margin-before: 1.6rem;
          margin-block-start: 1.6rem;
  font-family: "Zen Kaku Gothic New", "Hiragino Kaku Gothic ProN", "Yu Gothic Medium", "Yu Gothic", system-ui, sans-serif;
  font-size: 2rem;
  line-height: 1.5;
  color: var(--text-sub);
  text-transform: none;
  letter-spacing: 0.1em;
}
@media screen and (max-width: 768px) {
  .sec-heading__note {
    font-size: 1.6rem;
  }
}

.sec-heading__sub {
  display: block;
  -webkit-margin-before: 1.2rem;
          margin-block-start: 1.2rem;
  font-family: "Zen Kaku Gothic New", "Hiragino Kaku Gothic ProN", "Yu Gothic Medium", "Yu Gothic", system-ui, sans-serif;
  font-size: 2.7rem;
  line-height: 1.5;
  letter-spacing: 0.1em;
}
@media screen and (max-width: 768px) {
  .sec-heading__sub {
    font-size: 1.8rem;
  }
}

.mark {
  font-weight: 500;
  color: var(--text);
  background: -webkit-gradient(linear, left top, left bottom, color-stop(58%, transparent), color-stop(58%, var(--pink-2)));
  background: linear-gradient(transparent 58%, var(--pink-2) 58%);
  -webkit-box-decoration-break: clone;
          box-decoration-break: clone;
}
.mark--plain {
  color: inherit;
}

.emph {
  font-weight: 500;
  color: var(--accent-dark);
}

/* Slider */
.slick-slider {
  position: relative;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  display: block;
  -ms-touch-action: pan-y;
  touch-action: pan-y;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
  -webkit-tap-highlight-color: transparent;
}

.slick-list {
  position: relative;
  display: block;
  padding: 0;
  margin: 0;
  overflow: hidden;
}
.slick-list:focus {
  outline: none;
}
.slick-list.dragging {
  cursor: pointer;
}

.slick-slider .slick-track,
.slick-slider .slick-list {
  -webkit-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
}

.slick-track {
  position: relative;
  top: 0;
  left: 0;
  display: block;
  margin-right: auto;
  margin-left: auto;
}
.slick-track:before, .slick-track:after {
  display: table;
  content: "";
}
.slick-track:after {
  clear: both;
}
.slick-loading .slick-track {
  visibility: hidden;
}

.slick-slide {
  display: none;
  float: left;
  height: 100%;
  min-height: 1px;
}
[dir=rtl] .slick-slide {
  float: right;
}
.slick-slide img {
  display: block;
}
.slick-slide.slick-loading img {
  display: none;
}
.slick-slide.dragging img {
  pointer-events: none;
}
.slick-initialized .slick-slide {
  display: block;
}
.slick-loading .slick-slide {
  visibility: hidden;
}
.slick-vertical .slick-slide {
  display: block;
  height: auto;
  border: 1px solid transparent;
}

.slick-arrow.slick-hidden {
  display: none;
}

.deco {
  position: absolute;
  z-index: 0;
  pointer-events: none;
  border-radius: 50%;
}

.site > .deco {
  opacity: 0;
  -webkit-transition: opacity 0.8s ease;
  transition: opacity 0.8s ease;
}

.site.is-fv-done > .deco {
  opacity: 1;
}

.deco-04,
.deco-11,
.deco-15,
.deco-05,
.deco-10 {
  display: none;
}

.deco--square {
  border-radius: 3.2rem;
}

.deco-01 {
  top: 18vh;
  right: 6%;
  width: 22rem;
  height: 22rem;
  background: var(--green-1);
  border-radius: 58% 42% 47% 53%/42% 58% 53% 47%;
}
@media screen and (max-width: 768px) {
  .deco-01 {
    top: 22vh;
    right: 22%;
    width: 3rem;
    height: 3rem;
  }
}
@media screen and (max-width: 370px) {
  .deco-01 {
    top: 18vh;
    right: 6%;
    width: 10rem;
    height: 10rem;
  }
}

.deco-02 {
  top: 40vh;
  right: 2%;
  width: 6rem;
  height: 6rem;
  background: var(--pink-1);
  border-radius: 44% 56% 60% 40%/58% 42% 46% 54%;
}
@media screen and (max-width: 768px) {
  .deco-02 {
    top: 52vh;
    right: 9%;
  }
}
@media screen and (max-width: 370px) {
  .deco-02 {
    top: 40vh;
    right: 2%;
  }
}

.deco-15 {
  top: 36vh;
  left: -11rem;
  width: 34rem;
  height: 34rem;
  background: var(--green-2);
  border-radius: 54% 46% 40% 60%/46% 54% 62% 38%;
}
@media screen and (max-width: 768px) {
  .deco-15 {
    left: -6rem;
    width: 15rem;
    height: 15rem;
  }
}

.deco-03 {
  top: 66vh;
  right: -2%;
  width: 18rem;
  height: 18rem;
  background: var(--green-2);
  border-radius: 42% 58% 54% 46%/56% 44% 45% 55%;
}
@media screen and (max-width: 768px) {
  .deco-03 {
    display: none;
  }
}

.deco-04 {
  top: 62vh;
  left: 8%;
  width: 4rem;
  height: 4rem;
  background: var(--pink-2);
  border-radius: 55% 45% 40% 60%/46% 54% 58% 42%;
}

.deco-05 {
  top: 78vh;
  left: 12%;
  width: 26rem;
  height: 26rem;
  background: var(--pink-2);
  border-radius: 46% 54% 58% 42%/55% 45% 42% 58%;
}

.deco-06 {
  top: 96vh;
  right: 30%;
  width: 9rem;
  height: 9rem;
  background: var(--pink-1);
  border-radius: 60% 40% 46% 54%/44% 56% 55% 45%;
}
@media screen and (max-width: 1024px) {
  .deco-06 {
    display: none;
  }
}
@media screen and (max-width: 768px) {
  .deco-06 {
    display: inline;
  }
}
@media screen and (max-width: 370px) {
  .deco-06 {
    top: 65vh;
    right: 12%;
  }
}

.deco-07 {
  top: 122vh;
  left: 4%;
  width: 14rem;
  height: 14rem;
  background: var(--green-1);
  border-radius: 42% 58% 54% 46%/56% 44% 45% 55%;
}
@media screen and (max-width: 768px) {
  .deco-07 {
    width: 10rem;
    height: 10rem;
  }
}

.deco-08 {
  top: 150vh;
  right: 16%;
  width: 7rem;
  height: 7rem;
  background: var(--pink-2);
  border-radius: 56% 44% 42% 58%/48% 52% 60% 40%;
}
@media screen and (max-width: 768px) {
  .deco-08 {
    top: 88vh;
    right: 68%;
    width: 5rem;
    height: 5rem;
  }
}
@media screen and (max-width: 370px) {
  .deco-08 {
    top: 82vh;
    right: 63%;
    width: 7rem;
    height: 7rem;
  }
}

.deco-09 {
  top: 171vh;
  left: 30%;
  width: 12rem;
  height: 12rem;
  background: var(--green-2);
  border-radius: 48% 52% 62% 38%/54% 46% 44% 56%;
}
@media screen and (max-width: 768px) {
  .deco-09 {
    top: 7vh;
    width: 9rem;
    height: 9rem;
  }
}
@media screen and (max-width: 370px) {
  .deco-09 {
    top: 106vh;
  }
}

.deco-10 {
  top: 208vh;
  left: 6%;
  width: 20rem;
  height: 20rem;
  background: var(--green-1);
  border-radius: 62% 38% 44% 56%/40% 60% 52% 48%;
}
@media screen and (max-width: 768px) {
  .deco-10 {
    width: 11rem;
    height: 11rem;
  }
}

.deco-11 {
  top: 234vh;
  left: 10%;
  width: 5rem;
  height: 5rem;
  background: var(--pink-1);
  border-radius: 40% 60% 56% 44%/60% 40% 48% 52%;
}

#works .deco {
  z-index: -1;
}

.bg-fixed-blobs {
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
}

.bg-fixed-blob {
  position: absolute;
}

.bg-fixed-blob--a {
  right: 23%;
  bottom: 6%;
  width: min(18vw, 12rem);
  aspect-ratio: 1;
  background: var(--green-1);
  border-radius: 58% 42% 47% 53%/42% 58% 53% 47%;
}

.bg-fixed-blob--b {
  top: 17%;
  left: -3%;
  display: none;
  width: min(13vw, 11rem);
  aspect-ratio: 1;
  background: var(--pink-1);
  border-radius: 44% 56% 60% 40%/58% 42% 46% 54%;
}

.bg-fixed-blob--c {
  top: 70%;
  right: -3%;
  width: min(10vw, 8rem);
  aspect-ratio: 1;
  background: var(--pink-2);
  border-radius: 48% 52% 62% 38%/54% 46% 44% 56%;
}
@media screen and (max-width: 768px) {
  .bg-fixed-blob--c {
    top: 31%;
    right: -3%;
  }
}

.bg-fixed-blob--d {
  bottom: 28%;
  left: -2%;
  width: min(8vw, 6rem);
  aspect-ratio: 1;
  background: var(--green-3);
  border-radius: 60% 40% 46% 54%/44% 56% 55% 45%;
}
@media screen and (max-width: 768px) {
  .bg-fixed-blob--d {
    top: -2%;
    right: -3%;
  }
}

.bg-fixed-blob--e {
  top: 38%;
  right: 33%;
  width: min(9vw, 7rem);
  aspect-ratio: 1;
  background: var(--green-1);
  border-radius: 46% 54% 58% 42%/55% 45% 42% 58%;
}

.bg-fixed-blob--f {
  bottom: 45%;
  left: 3%;
  width: min(50vw, 22rem);
  aspect-ratio: 1;
  background: var(--pink-1);
  border-radius: 58% 42% 47% 53%/42% 58% 53% 47%;
}

.bg-fixed-blob--g {
  top: 21%;
  left: 38%;
  display: none;
  width: min(18vw, 14rem);
  aspect-ratio: 1;
  background: var(--green-2);
  border-radius: 54% 46% 40% 60%/46% 54% 62% 38%;
}
@media screen and (max-width: 768px) {
  .bg-fixed-blob--g {
    top: 50%;
    left: 8%;
    display: inline;
  }
}

@media screen and (max-width: 768px) {
  .bg-fixed-blob--a {
    width: min(40vw, 18rem);
  }
  .bg-fixed-blob--b {
    width: min(18vw, 7rem);
  }
  .bg-fixed-blob--c {
    width: min(14vw, 6rem);
  }
  .bg-fixed-blob--d {
    width: min(11vw, 4.5rem);
  }
  .bg-fixed-blob--e,
  .bg-fixed-blob--f {
    display: none;
  }
  .bg-fixed-blob--g {
    width: min(16vw, 6.5rem);
  }
}
#works .deco-w1 {
  top: -6rem;
  right: -6rem;
  width: 19rem;
  height: 19rem;
  background: var(--green-1);
  border-radius: 40% 60% 54% 46%/48% 52% 58% 42%;
}
@media screen and (max-width: 768px) {
  #works .deco-w1 {
    top: -6rem;
    right: 14.8rem;
    width: 11rem;
    height: 11rem;
  }
}
@media screen and (max-width: 370px) {
  #works .deco-w1 {
    top: -1.7rem;
  }
}
#works .deco-w2 {
  bottom: 6%;
  left: -29rem;
  width: 30rem;
  height: 30rem;
  background: var(--green-2);
  border-radius: 56% 44% 48% 52%/42% 58% 46% 54%;
}
#works .deco-w3 {
  top: 55%;
  right: -14%;
  width: 5.5rem;
  height: 5.5rem;
  background: var(--green-3);
  border-radius: 48% 52% 56% 44%/54% 46% 42% 58%;
}
#works .deco-w4 {
  top: 62%;
  left: 8%;
  width: min(46vw, 34rem);
  aspect-ratio: 1;
  background: var(--pink-1);
  border-radius: 57% 43% 40% 60%/44% 56% 62% 38%;
  -webkit-transform: translate(-50vw, -50%);
          transform: translate(-50vw, -50%);
}
#works .deco-w5 {
  top: 12%;
  left: 32%;
  width: 7rem;
  height: 7rem;
  background: var(--green-3);
}
@media screen and (max-width: 768px) {
  #works .deco-w5 {
    display: none;
  }
}
#works .deco-w6 {
  top: 20%;
  right: -4rem;
  width: 9rem;
  height: 9rem;
  background: var(--pink-2);
  border-radius: 44% 56% 60% 40%/58% 42% 46% 54%;
}
@media screen and (max-width: 768px) {
  #works .deco-w6 {
    right: -0.2rem;
    background: var(--pink-1);
  }
}
@media screen and (max-width: 370px) {
  #works .deco-w6 {
    top: 13%;
    right: -1.6rem;
  }
}
#works .deco-w7 {
  right: 20%;
  bottom: -3rem;
  width: 13rem;
  height: 13rem;
  background: var(--pink-1);
  border-radius: 58% 42% 47% 53%/42% 58% 53% 47%;
}
#works .deco-w8 {
  top: 6%;
  right: 4%;
  width: min(50vw, 40rem);
  aspect-ratio: 1;
  background: var(--green-1);
  border-radius: 55% 45% 52% 48%/48% 52% 45% 55%;
  -webkit-transform: translate(50vw, -30%);
          transform: translate(50vw, -30%);
}
@media screen and (max-width: 768px) {
  #works .deco-w8 {
    display: none;
  }
}

#about .about__illust .deco-a1 {
  top: 50%;
  left: 60%;
  width: min(60vw, 48rem);
  aspect-ratio: 1;
  background: var(--green-2);
  border-radius: 65% 35% 58% 42%/42% 58% 38% 62%;
  -webkit-transform: translate(50vw, -50%);
          transform: translate(50vw, -50%);
}
#about .about__illust .deco-a2 {
  top: 8%;
  left: -14%;
  width: 5rem;
  height: 5rem;
  background: var(--pink-1);
  border-radius: 44% 56% 62% 38%/56% 44% 48% 52%;
}
#about .about__illust .deco-a3 {
  bottom: -4rem;
  left: -6%;
  width: 10rem;
  height: 10rem;
  background: var(--green-3);
  border-radius: 48% 52% 62% 38%/54% 46% 44% 56%;
}
#about .about__illust .deco-a4 {
  top: -4rem;
  right: -4%;
  width: 7rem;
  height: 7rem;
  background: var(--pink-2);
  border-radius: 42% 58% 54% 46%/56% 44% 45% 55%;
}

.deco-12 {
  top: 190vh;
  left: 20%;
  width: 6rem;
  height: 6rem;
  background: var(--pink-2);
}
@media screen and (max-width: 768px) {
  .deco-12 {
    display: none;
  }
}

.hamburger {
  position: relative;
  display: none;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 4rem;
  height: 4rem;
}
@media screen and (max-width: 1200px) {
  .hamburger {
    display: block;
  }
}
.hamburger__icon {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
}
.hamburger__line {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 2.6rem;
  height: 1px;
  background: var(--text);
  -webkit-transition: opacity 0.4s ease, background 0.25s ease, -webkit-transform 0.4s ease;
  transition: opacity 0.4s ease, background 0.25s ease, -webkit-transform 0.4s ease;
  transition: transform 0.4s ease, opacity 0.4s ease, background 0.25s ease;
  transition: transform 0.4s ease, opacity 0.4s ease, background 0.25s ease, -webkit-transform 0.4s ease;
}
.hamburger__line:nth-child(1) {
  -webkit-transform: translate(-50%, -50%) translateY(-0.8rem);
          transform: translate(-50%, -50%) translateY(-0.8rem);
}
.hamburger__line:nth-child(2) {
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
}
.hamburger__line:nth-child(3) {
  -webkit-transform: translate(-50%, -50%) translateY(0.8rem);
          transform: translate(-50%, -50%) translateY(0.8rem);
}
@media screen and (min-width: 1025px) and (any-hover: hover) {
  .hamburger:hover .hamburger__line {
    background: var(--accent-dark);
  }
}
:root:not(.is-using-keyboard) .hamburger:focus-visible {
  outline: none;
}
.hamburger.is-active .hamburger__line:nth-child(1) {
  -webkit-transform: translate(-50%, -50%) rotate(45deg);
          transform: translate(-50%, -50%) rotate(45deg);
}
.hamburger.is-active .hamburger__line:nth-child(2) {
  opacity: 0;
}
.hamburger.is-active .hamburger__line:nth-child(3) {
  -webkit-transform: translate(-50%, -50%) rotate(-45deg);
          transform: translate(-50%, -50%) rotate(-45deg);
}

.drawer {
  position: fixed;
  inset: 0;
  z-index: 200;
  pointer-events: none;
  visibility: hidden;
  -webkit-transition: visibility 0s linear 0.4s;
  transition: visibility 0s linear 0.4s;
}
.drawer__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.4);
  opacity: 0;
  -webkit-transition: opacity 0.4s ease;
  transition: opacity 0.4s ease;
}
.drawer__nav {
  position: absolute;
  top: 0;
  right: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: safe center;
      -ms-flex-align: safe center;
          align-items: safe center;
  width: min(80vw, 32rem);
  height: 100%;
  -webkit-padding-before: 12rem;
          padding-block-start: 12rem;
  overflow: hidden;
}
@media screen and (max-width: 768px) {
  .drawer__nav {
    -webkit-padding-before: 8rem;
            padding-block-start: 8rem;
  }
}
.drawer__nav {
  background: var(--bg);
  -webkit-transition: -webkit-transform 0.4s ease;
  transition: -webkit-transform 0.4s ease;
  transition: transform 0.4s ease;
  transition: transform 0.4s ease, -webkit-transform 0.4s ease;
  -webkit-transform: translateX(100%);
          transform: translateX(100%);
}
.drawer__circle {
  position: absolute;
  bottom: -6rem;
  left: -6rem;
  z-index: 0;
  width: 22rem;
  height: 22rem;
  background: var(--green-1);
  border-radius: 50%;
}
.drawer__nav-list {
  position: relative;
  z-index: 1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 3.2rem;
  max-height: 100%;
  padding-block: 2.4rem;
  padding-inline: 5rem;
  overflow-y: auto;
}
.drawer__nav-item a {
  font-family: "Century Gothic", "Avenir Next", "Futura", system-ui, sans-serif;
  font-size: 2rem;
  color: var(--text);
  text-transform: uppercase;
  letter-spacing: 0.16em;
  -webkit-transition: color 0.25s ease;
  transition: color 0.25s ease;
}
:root:not(.is-using-keyboard) .drawer__nav-item a:focus-visible {
  outline: none;
}
@media (any-hover: hover) {
  .drawer__nav-item a:hover {
    color: var(--accent);
  }
}
.drawer.is-open {
  pointer-events: auto;
  visibility: visible;
  -webkit-transition-delay: 0s;
          transition-delay: 0s;
}
.drawer.is-open .drawer__overlay {
  opacity: 1;
}
.drawer.is-open .drawer__nav {
  -webkit-transform: translateX(0);
          transform: translateX(0);
}

@media (prefers-reduced-motion: reduce) {
  .drawer,
  .drawer__overlay,
  .drawer__nav {
    -webkit-transition: none;
    transition: none;
  }
}
.page-top {
  position: fixed;
  bottom: -4.8rem;
  left: -3.8rem;
  z-index: 90;
  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;
  width: 15rem;
  height: 15rem;
  visibility: hidden;
  background: var(--fv-pink);
  border-radius: 60% 42% 60% 30%/52% 58% 59% 30%;
  opacity: 0;
  -webkit-transition: opacity 0.3s ease, visibility 0.3s ease, -webkit-transform 0.3s ease;
  transition: opacity 0.3s ease, visibility 0.3s ease, -webkit-transform 0.3s ease;
  transition: opacity 0.3s ease, transform 0.3s ease, visibility 0.3s ease;
  transition: opacity 0.3s ease, transform 0.3s ease, visibility 0.3s ease, -webkit-transform 0.3s ease;
  -webkit-transform: translateY(1rem) scale(1);
          transform: translateY(1rem) scale(1);
}
.page-top.is-show {
  visibility: visible;
  opacity: 0.85;
  -webkit-transform: translateY(0) scale(1);
          transform: translateY(0) scale(1);
}
.page-top__icon {
  position: relative;
  top: -1.7rem;
  left: 0.5rem;
  width: 3rem;
  height: 3rem;
  color: var(--bg);
}
@media (hover: hover) and (pointer: fine) {
  .page-top:hover {
    opacity: 1;
    -webkit-transform: translateY(0) scale(1.1);
            transform: translateY(0) scale(1.1);
  }
}
@media screen and (max-width: 768px) {
  .page-top {
    bottom: -3rem;
    left: -3rem;
    width: 10rem;
    height: 10rem;
  }
  .page-top .page-top__icon {
    top: -0.9rem;
    left: 0.5rem;
    width: 2rem;
    height: 2rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .page-top {
    -webkit-transition: none;
    transition: none;
  }
}
/* 各パーツが独自にtransition: opacity(ホバー用)を持つと後勝ちで上書きされるため、
   別プロパティのanimationを使う */
@-webkit-keyframes slidein-up {
  from {
    opacity: 0;
    -webkit-transform: translateY(3rem);
            transform: translateY(3rem);
  }
  to {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}
@keyframes slidein-up {
  from {
    opacity: 0;
    -webkit-transform: translateY(3rem);
            transform: translateY(3rem);
  }
  to {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}
.slidein {
  opacity: 0;
  -webkit-transform: translateY(3rem);
          transform: translateY(3rem);
}
.slidein.is-show {
  opacity: 1;
  -webkit-transform: translateY(0);
          transform: translateY(0);
  -webkit-animation: slidein-up 1s ease-out;
          animation: slidein-up 1s ease-out;
}

.delay-1 {
  -webkit-animation-delay: 0.1s;
          animation-delay: 0.1s;
}

.delay-2 {
  -webkit-animation-delay: 0.2s;
          animation-delay: 0.2s;
}

.delay-3 {
  -webkit-animation-delay: 0.3s;
          animation-delay: 0.3s;
}

.delay-4 {
  -webkit-animation-delay: 0.4s;
          animation-delay: 0.4s;
}

.delay-5 {
  -webkit-animation-delay: 0.5s;
          animation-delay: 0.5s;
}

.delay-6 {
  -webkit-animation-delay: 0.6s;
          animation-delay: 0.6s;
}

@media (prefers-reduced-motion: reduce) {
  .slidein {
    opacity: 1;
    -webkit-transform: none;
            transform: none;
  }
  .slidein.is-show {
    -webkit-animation: none;
            animation: none;
  }
}
@-webkit-keyframes sec-heading-char-in {
  from {
    opacity: 0;
    -webkit-transform: translateY(0.6em);
            transform: translateY(0.6em);
  }
  to {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}
@keyframes sec-heading-char-in {
  from {
    opacity: 0;
    -webkit-transform: translateY(0.6em);
            transform: translateY(0.6em);
  }
  to {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}
.sec-heading__word {
  display: inline-block;
  white-space: nowrap;
}

.sec-heading__char {
  display: inline-block;
}

.sec-heading--split.is-armed .sec-heading__char {
  opacity: 0;
  -webkit-transform: translateY(0.6em);
          transform: translateY(0.6em);
}

.sec-heading--split.is-armed.is-show .sec-heading__char {
  opacity: 1;
  -webkit-transform: translateY(0);
          transform: translateY(0);
  -webkit-animation: sec-heading-char-in 0.9s ease-out backwards;
          animation: sec-heading-char-in 0.9s ease-out backwards;
  -webkit-animation-delay: calc(var(--i) * 0.06s);
          animation-delay: calc(var(--i) * 0.06s);
}

.icon-circle {
  -webkit-box-sizing: content-box;
          box-sizing: content-box;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 3rem;
  height: 3rem;
  padding: 1.4rem;
  color: var(--green-dark);
  background: var(--bg);
  border-radius: 50%;
  -webkit-box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
          box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}
@media screen and (max-width: 768px) {
  .icon-circle {
    width: 2.4rem;
    height: 2.4rem;
    padding: 1.1rem;
  }
}

.link-button {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  gap: 1.6rem;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  min-width: 20rem;
  padding: 1.2rem 1.6rem 1.2rem 3.2rem;
  font-family: "Century Gothic", "Avenir Next", "Futura", system-ui, sans-serif;
  font-size: 2rem;
  line-height: 1.5;
  color: var(--bg);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  background: var(--accent-dark);
  border: 1px solid var(--accent-dark);
  border-radius: 20rem;
  -webkit-transition: background 0.25s ease, border-color 0.25s ease;
  transition: background 0.25s ease, border-color 0.25s ease;
}
@media screen and (max-width: 768px) {
  .link-button {
    gap: 1rem;
    min-width: 13.6rem;
    padding: 0.4rem 0.6rem 0.4rem 2rem;
    font-size: 1.5rem;
  }
}
@media (any-hover: hover) {
  .link-button:hover {
    background: var(--accent-hover);
    border-color: var(--accent-hover);
  }
}
.link-button--outline {
  color: var(--accent-dark);
  background: transparent;
}
@media (any-hover: hover) {
  .link-button--outline:hover {
    background: rgba(162, 87, 100, 0.12);
    border-color: var(--accent-dark);
  }
}
.link-button--outline .link-button__icon {
  background: var(--accent-dark);
}
.link-button--outline .link-button__icon::before {
  border-color: var(--bg);
}
.link-button__icon {
  display: grid;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  place-items: center;
  width: 3.6rem;
  height: 3.6rem;
  background: var(--bg);
  border-radius: 50%;
}
@media screen and (max-width: 768px) {
  .link-button__icon {
    width: 1.8rem;
    height: 1.8rem;
  }
}
.link-button__icon::before {
  width: 0.9rem;
  height: 0.9rem;
  -webkit-margin-end: 0.3rem;
          margin-inline-end: 0.3rem;
}
@media screen and (max-width: 768px) {
  .link-button__icon::before {
    width: 0.6rem;
    height: 0.6rem;
    -webkit-margin-end: 0.15rem;
            margin-inline-end: 0.15rem;
  }
}
.link-button__icon::before {
  content: "";
  border-top: 1px solid var(--accent-dark);
  border-right: 1px solid var(--accent-dark);
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
}

.header {
  position: fixed;
  top: 0;
  right: 0;
  left: 0;
  z-index: 300;
  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;
  padding: 0 6rem;
  background: rgba(255, 255, 255, 0.3);
  backdrop-filter: blur(6px);
}
@media screen and (max-width: 1024px) {
  .header {
    gap: 2rem;
    padding: 0 2.4rem;
  }
}
.header__brand-link {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 1.5rem;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-transition: opacity 0.25s ease;
  transition: opacity 0.25s ease;
}
@media screen and (max-width: 768px) {
  .header__brand-link {
    gap: 1.6rem;
  }
}
@media (any-hover: hover) {
  .header__brand-link:hover {
    opacity: 0.75;
  }
}
.header__logo-icon {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: auto;
  height: 12rem;
}
@media screen and (max-width: 768px) {
  .header__logo-icon {
    height: 8rem;
  }
}
@media screen and (max-width: 370px) {
  .header__logo-icon {
    height: 7rem;
  }
}
@media screen and (max-width: 1200px) {
  .header__nav {
    display: none;
  }
}
.header__nav-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 3.2rem;
}
.header__nav-item a:not(.header__button) {
  font-family: "Century Gothic", "Avenir Next", "Futura", system-ui, sans-serif;
  font-size: 2rem;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.16em;
  -webkit-transition: color 0.25s ease;
  transition: color 0.25s ease;
}
@media (any-hover: hover) {
  .header__nav-item a:not(.header__button):hover {
    color: var(--accent);
  }
}
.header__button {
  padding-block: 1rem;
  padding-inline: 3rem;
  font-family: "Century Gothic", "Avenir Next", "Futura", system-ui, sans-serif;
  font-size: 2rem;
  color: var(--bg);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  overflow-wrap: break-word;
  background: var(--accent-dark);
  border: 1px solid var(--accent-dark);
  border-radius: 20rem;
  -webkit-transition: background 0.25s ease, border-color 0.25s ease;
  transition: background 0.25s ease, border-color 0.25s ease;
}
@media (any-hover: hover) {
  .header__button:hover {
    background: var(--accent-hover);
    border-color: var(--accent-hover);
  }
}

.footer {
  position: relative;
  z-index: 1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0.4rem;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  padding-block: 2rem;
  padding-inline: 6rem;
  text-align: center;
  background: var(--bg);
}
@media screen and (max-width: 1024px) {
  .footer {
    padding-inline: 2.4rem;
  }
}
@media screen and (max-width: 768px) {
  .footer {
    padding-inline: 2rem;
  }
}
.footer__top {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 1rem;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
@media screen and (max-width: 768px) {
  .footer__top {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    gap: 0 2.4rem;
  }
}
.footer__logo a {
  display: block;
  -webkit-transition: opacity 0.25s ease;
  transition: opacity 0.25s ease;
}
@media (any-hover: hover) {
  .footer__logo a:hover {
    opacity: 0.75;
  }
}
.footer__logo-icon {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: auto;
  height: 15rem;
}
@media screen and (max-width: 768px) {
  .footer__logo-icon {
    height: 10rem;
  }
}
@media screen and (max-width: 370px) {
  .footer__logo-icon {
    height: 7rem;
  }
}
.footer__links {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0.8rem;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
}
.footer__nav-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 0.4rem 3.2rem;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
}
@media screen and (max-width: 1024px) {
  .footer__nav-list {
    gap: 0.4rem 1rem;
  }
}
@media screen and (max-width: 768px) {
  .footer__nav-list {
    display: grid;
    grid-template-columns: repeat(2, auto);
    gap: 0.8rem 3.2rem;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: start;
    justify-items: start;
  }
}
.footer__nav-break {
  display: none;
}
@media screen and (min-width: 1025px) {
  .footer__nav-break {
    display: block;
    -ms-flex-preferred-size: 100%;
        flex-basis: 100%;
    height: 0;
  }
}
.footer__nav-item a {
  font-family: "Century Gothic", "Avenir Next", "Futura", system-ui, sans-serif;
  font-size: 1.6rem;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.16em;
  -webkit-transition: color 0.25s ease;
  transition: color 0.25s ease;
}
@media (any-hover: hover) {
  .footer__nav-item a:hover {
    color: var(--accent);
  }
}
.footer__legal {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 2rem;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
}
@media screen and (max-width: 1024px) {
  .footer__legal {
    gap: 1.5rem;
  }
}
@media screen and (max-width: 768px) {
  .footer__legal {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 0.8rem;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
  }
}
.footer__legal a {
  font-family: "Century Gothic", "Avenir Next", "Futura", system-ui, sans-serif;
  font-size: 1.6rem;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  white-space: nowrap;
  -webkit-transition: color 0.25s ease;
  transition: color 0.25s ease;
}
@media (any-hover: hover) {
  .footer__legal a:hover {
    color: var(--accent);
  }
}
.footer__copyright {
  margin-top: 0;
  font-family: "Century Gothic", "Avenir Next", "Futura", system-ui, sans-serif;
  font-size: 1.6rem;
  color: var(--text-muted);
  letter-spacing: 0.04em;
}

.fv {
  position: relative;
  z-index: 1;
  max-width: none;
  height: calc(100vh + var(--fv-paper-end));
  padding: 0;
  margin: 0;
  overflow: hidden;
  --fv-paper-end: 170vh;
}
@media screen and (max-width: 768px) {
  .fv {
    --fv-paper-end: 145vh;
    height: calc(100vh + var(--fv-paper-end));
  }
}

@media (prefers-reduced-motion: reduce) {
  .fv {
    height: auto;
    min-height: 100vh;
  }
}
.fv-stage {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  width: 100%;
  height: 100vh;
  overflow: hidden;
}
@media screen and (max-width: 768px) {
  .fv-stage {
    background-size: 126rem auto;
  }
}

.fv-s1 {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.fv-s1__message {
  position: absolute;
  top: 30%;
  left: 20%;
  z-index: 3;
}
@media screen and (max-width: 1024px) {
  .fv-s1__message {
    right: 0;
    left: 0;
    width: -webkit-max-content;
    width: -moz-max-content;
    width: max-content;
    max-width: calc(100% - 4.8rem);
    margin-inline: auto;
  }
}
@media screen and (max-width: 768px) {
  .fv-s1__message {
    top: 16%;
    right: auto;
    left: 50%;
    width: auto;
    max-width: none;
    margin-inline: 0;
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%);
  }
}
.fv-s1__message-scroll {
  display: block;
}
.fv-s1__message-inner {
  display: block;
  margin-block: 3.2rem;
  font-size: clamp(3.6rem, 4.6vw, 6.4rem);
  font-weight: 500;
  line-height: 1.6;
  color: var(--text);
  letter-spacing: 0.1em;
  white-space: nowrap;
}
@media screen and (max-width: 768px) {
  .fv-s1__message-inner {
    margin-block: 3.6rem;
    font-size: 3.2rem;
    letter-spacing: 0.06em;
  }
}
@media screen and (max-width: 480px) {
  .fv-s1__message-inner {
    font-size: 2.5rem;
  }
}
@media screen and (max-width: 370px) {
  .fv-s1__message-inner {
    font-size: 2rem;
  }
}
.fv-s1__mark {
  color: var(--accent-dark);
}
.fv-s1__char {
  display: inline-block;
  opacity: 0;
  -webkit-transform: translateY(0.6em);
          transform: translateY(0.6em);
}
.fv.is-h2-scene .fv-s1__char {
  -webkit-animation: fv-char-in 0.9s ease-out forwards;
          animation: fv-char-in 0.9s ease-out forwards;
  -webkit-animation-delay: calc(0.6s + var(--i) * 0.04s);
          animation-delay: calc(0.6s + var(--i) * 0.04s);
}
.fv-s1__eyebrow {
  width: 0;
  min-width: 100%;
  margin: 0 0 0.8rem;
  font-family: "Jost", "Century Gothic", "Avenir Next", "Futura", system-ui, sans-serif;
  font-size: 2.4rem;
  line-height: 1.6;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  opacity: 0;
  -webkit-transform: translateY(1.6rem);
          transform: translateY(1.6rem);
}
@media screen and (max-width: 768px) {
  .fv-s1__eyebrow {
    font-size: clamp(1.2rem, 4vw, 1.6rem);
    white-space: nowrap;
  }
}
.fv.is-h2-scene .fv-s1__eyebrow {
  -webkit-animation: fv-fade-up 1.2s ease-out 0.6s forwards;
          animation: fv-fade-up 1.2s ease-out 0.6s forwards;
}
.fv-s1__medical {
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  margin: 2.4rem 0 0;
  font-size: clamp(1.8rem, 2.4vw, 2.4rem);
  font-weight: 500;
  line-height: 1.6;
  color: var(--text);
  letter-spacing: 0.1em;
  opacity: 0;
  -webkit-transform: translateY(1.6rem);
          transform: translateY(1.6rem);
}
@media screen and (max-width: 768px) {
  .fv-s1__medical {
    width: 0;
    min-width: 100%;
    -webkit-margin-before: 3.6rem;
            margin-block-start: 3.6rem;
    font-size: 1.6rem;
  }
}
@media screen and (max-width: 370px) {
  .fv-s1__medical {
    font-size: 1.4rem;
  }
}
.fv-s1__accent {
  color: var(--accent-dark);
}
.fv-s1__marker {
  position: relative;
  display: inline-block;
  isolation: isolate;
}
.fv-s1__marker::after {
  position: absolute;
  inset-block-end: 0.1em;
  inset-inline: -0.1em;
  z-index: -1;
  height: 0.42em;
  content: "";
  background: var(--pink-2);
  -webkit-transform: scaleX(0);
          transform: scaleX(0);
  -webkit-transform-origin: left center;
          transform-origin: left center;
}
.fv.is-h2-scene .fv-s1__marker::after {
  -webkit-animation: fv-marker 0.9s ease-out 3s forwards;
          animation: fv-marker 0.9s ease-out 3s forwards;
}
.fv-s1__medical-item {
  display: block;
}
.fv.is-h2-scene .fv-s1__medical {
  -webkit-animation: fv-fade-up 1.2s ease-out 2.2s forwards;
          animation: fv-fade-up 1.2s ease-out 2.2s forwards;
}
.fv-s1__sub {
  position: relative;
  width: 0;
  min-width: 100%;
  -webkit-margin-before: 3.2rem;
          margin-block-start: 3.2rem;
  opacity: 0;
  -webkit-transform: translateY(1.6rem);
          transform: translateY(1.6rem);
}
@media screen and (max-width: 768px) {
  .fv-s1__sub {
    -webkit-margin-before: 4.4rem;
            margin-block-start: 4.4rem;
  }
}
.fv.is-h2-scene .fv-s1__sub {
  -webkit-animation: fv-fade-up 1.2s ease-out 3.4s forwards;
          animation: fv-fade-up 1.2s ease-out 3.4s forwards;
}
.fv-s1__links {
  display: grid;
  grid-auto-columns: 1fr;
  grid-auto-flow: column;
  gap: 1.2rem;
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  padding: 0;
  margin: 0;
  list-style: none;
}
.fv-s1__links .link-button {
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  width: 100%;
  pointer-events: auto;
}
.fv-s1__links.is-side {
  position: absolute;
  top: var(--fv-links-top);
  left: var(--fv-links-left);
  grid-auto-flow: row;
  gap: 1rem;
}

.fv-s2 {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  width: 100%;
  height: 100%;
  pointer-events: none;
}
.fv-s2__deco {
  position: absolute;
  opacity: 0;
}
.fv-s2__deco--r-mid {
  top: 12%;
  right: 18%;
  width: min(9vw, 13rem);
  aspect-ratio: 1;
  background: var(--pink-1);
  border-radius: 46% 54% 58% 42%/55% 45% 42% 58%;
}
.fv-s2__deco--under-h2 {
  top: 67%;
  left: 18%;
  width: min(14vw, 10rem);
  aspect-ratio: 1;
  background: var(--green-1);
  border-radius: 54% 46% 40% 60%/46% 54% 62% 38%;
}
@media screen and (max-width: 768px) {
  .fv-s2__deco--under-h2 {
    top: 64%;
    left: -3%;
    width: min(50vw, 3.5rem);
    background: var(--pink-1);
  }
}
.fv.is-h2-scene .fv-s2__deco--r-big {
  -webkit-animation: fv-deco-in 1s ease-out forwards;
          animation: fv-deco-in 1s ease-out forwards;
}
.fv.is-h2-scene .fv-s2__deco--r-mid {
  -webkit-animation: fv-deco-in 1s ease-out 0.15s forwards;
          animation: fv-deco-in 1s ease-out 0.15s forwards;
}
.fv.is-h2-scene .fv-s2__deco--under-h2 {
  -webkit-animation: fv-deco-in 1s ease-out 0.3s forwards;
          animation: fv-deco-in 1s ease-out 0.3s forwards;
}

@-webkit-keyframes fv-deco-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes fv-deco-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@-webkit-keyframes fv-marker {
  to {
    -webkit-transform: scaleX(1);
            transform: scaleX(1);
  }
}
@keyframes fv-marker {
  to {
    -webkit-transform: scaleX(1);
            transform: scaleX(1);
  }
}
@-webkit-keyframes fv-char-in {
  from {
    opacity: 0;
    -webkit-transform: translateY(0.6em);
            transform: translateY(0.6em);
  }
  to {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}
@keyframes fv-char-in {
  from {
    opacity: 0;
    -webkit-transform: translateY(0.6em);
            transform: translateY(0.6em);
  }
  to {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}
@-webkit-keyframes fv-fade-up {
  from {
    opacity: 0;
    -webkit-transform: translateY(1.6rem);
            transform: translateY(1.6rem);
  }
  to {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}
@keyframes fv-fade-up {
  from {
    opacity: 0;
    -webkit-transform: translateY(1.6rem);
            transform: translateY(1.6rem);
  }
  to {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}
@media (prefers-reduced-motion: reduce) {
  .fv-s1__char,
  .fv-s1__eyebrow,
  .fv-s1__medical,
  .fv-s1__sub {
    opacity: 1;
    -webkit-transform: none;
            transform: none;
    -webkit-animation: none;
            animation: none;
  }
  .fv-s2 {
    display: none;
  }
}
#about {
  padding: 12rem 6rem 16rem;
  margin-top: 0;
}
@media screen and (max-width: 768px) {
  #about {
    padding: 6rem 2.4rem 8rem;
  }
}

.about__layout {
  display: grid;
  grid-template-columns: 1fr 1.3fr;
  gap: 0;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  max-width: 100rem;
  margin-inline: auto;
}
@media screen and (max-width: 1024px) {
  .about__layout {
    grid-template-columns: 1fr;
    gap: 4rem;
  }
}
.about__illust {
  position: relative;
}
.about__illust img {
  position: relative;
  z-index: 1;
  max-width: 36rem;
  height: auto;
}
@media screen and (max-width: 1024px) {
  .about__illust img {
    margin-inline: auto;
  }
}
@media screen and (max-width: 768px) {
  .about__illust img {
    max-width: 22rem;
  }
}
.about__name {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 2rem;
  -webkit-box-align: baseline;
      -ms-flex-align: baseline;
          align-items: baseline;
  margin: 0 0 0.8rem;
  font-family: "Jost", "Century Gothic", "Avenir Next", "Futura", system-ui, sans-serif;
  font-size: 3.6rem;
  font-weight: 300;
  letter-spacing: 0.1em;
  white-space: nowrap;
}
@media screen and (max-width: 768px) {
  .about__name {
    gap: 1.6rem;
    font-size: 2.8rem;
  }
}
.about__real-name {
  font-family: "Zen Kaku Gothic New", "Hiragino Kaku Gothic ProN", "Yu Gothic Medium", "Yu Gothic", system-ui, sans-serif;
  font-size: 1.8rem;
  color: var(--text-muted);
  letter-spacing: 0.1em;
}
.about__role {
  margin: 0 0 2.4rem;
  font-family: "Century Gothic", "Avenir Next", "Futura", system-ui, sans-serif;
  font-size: 1.8rem;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.2em;
}
.about__link {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  -webkit-margin-before: 2.4rem;
          margin-block-start: 2.4rem;
  -webkit-margin-start: auto;
          margin-inline-start: auto;
}
.about__body p:not(.about__role) {
  max-width: 60rem;
}
.about__body p:not(.about__role):last-child {
  margin-bottom: 0;
}

.about__info {
  margin: 3.6rem 0 0;
}

#about.p-about {
  -webkit-padding-before: 20rem;
          padding-block-start: 20rem;
}
@media screen and (max-width: 768px) {
  #about.p-about {
    -webkit-padding-before: 10rem;
            padding-block-start: 10rem;
  }
}

.p-about .about__info {
  max-width: 100rem;
  margin: 6.4rem auto 0;
}
@media screen and (max-width: 768px) {
  .p-about .about__info {
    -webkit-margin-before: 4rem;
            margin-block-start: 4rem;
  }
}
.p-about .about__body p:not(.about__role) + p {
  -webkit-margin-before: 1.6rem;
          margin-block-start: 1.6rem;
}
.p-about .about__info .approach__strength {
  grid-template-areas: "icon title" "desc desc";
  gap: 1.2rem 1.2rem;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.p-about .about__info .approach__strength-icon {
  -ms-flex-item-align: center;
      align-self: center;
  width: 2.8rem;
  height: 2.8rem;
  padding: 0;
  background: none;
  -webkit-box-shadow: none;
          box-shadow: none;
}
@media screen and (max-width: 768px) {
  .p-about .about__info .approach__strength-icon {
    width: 2.4rem;
    height: 2.4rem;
  }
}

.about__chips {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 0.4rem 2rem;
  padding: 0;
  margin: 0;
  list-style: none;
}
@media screen and (max-width: 768px) {
  .about__chips {
    gap: 0.2rem 1.6rem;
  }
}
.about__chips li {
  font-size: 2rem;
  line-height: 1.7;
  color: var(--text-sub);
}
@media screen and (max-width: 768px) {
  .about__chips li {
    font-size: 1.6rem;
  }
}
@media screen and (max-width: 370px) {
  .about__chips li {
    font-size: 1.3rem;
  }
}

.service-wrap {
  position: relative;
  display: flow-root;
  background: url("../img/bg-service.webp") center/300rem auto repeat fixed;
}
@media screen and (max-width: 768px) {
  .service-wrap {
    background-size: 180rem auto;
  }
}

#service {
  padding-block: 0 12rem;
  -webkit-margin-before: calc(55rem - 115vh);
          margin-block-start: calc(55rem - 115vh);
  background: none;
}
#service .sec-heading {
  margin-bottom: 4rem;
}
@media screen and (max-width: 768px) {
  #service {
    padding-block: 0 6rem;
    -webkit-margin-before: calc(29rem - 115vh);
            margin-block-start: calc(29rem - 115vh);
  }
  #service .sec-heading {
    margin-bottom: 2.4rem;
  }
}

.service-wrap__curve {
  position: absolute;
  left: 0;
  z-index: 1;
  width: 100%;
  line-height: 0;
  pointer-events: none;
}
.service-wrap__curve--top {
  top: -115vh;
  height: 115vh;
}
.service-wrap__curve--bottom {
  bottom: -30rem;
  height: 30rem;
}
@media screen and (max-width: 768px) {
  .service-wrap__curve--bottom {
    bottom: -15rem;
    height: 15rem;
  }
}
.service-wrap__curve-bg {
  display: block;
  width: 100%;
  height: 100%;
  background: url("../img/bg-service.webp") center/300rem auto repeat fixed;
}
@media screen and (max-width: 768px) {
  .service-wrap__curve-bg {
    background-size: 180rem auto;
  }
}

.service-wrap__curve--top .service-wrap__curve-bg {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1000 300' preserveAspectRatio='none'%3E%3Cpath d='M0,300 L0,170 C110,90 200,150 330,120 C460,90 540,30 670,60 C790,90 860,160 1000,110 L1000,300 Z' fill='white'/%3E%3C/svg%3E"), -webkit-gradient(linear, left top, left bottom, from(#fff), to(#fff));
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1000 300' preserveAspectRatio='none'%3E%3Cpath d='M0,300 L0,170 C110,90 200,150 330,120 C460,90 540,30 670,60 C790,90 860,160 1000,110 L1000,300 Z' fill='white'/%3E%3C/svg%3E"), linear-gradient(#fff, #fff);
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1000 300' preserveAspectRatio='none'%3E%3Cpath d='M0,300 L0,170 C110,90 200,150 330,120 C460,90 540,30 670,60 C790,90 860,160 1000,110 L1000,300 Z' fill='white'/%3E%3C/svg%3E"), -webkit-gradient(linear, left top, left bottom, from(#fff), to(#fff));
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1000 300' preserveAspectRatio='none'%3E%3Cpath d='M0,300 L0,170 C110,90 200,150 330,120 C460,90 540,30 670,60 C790,90 860,160 1000,110 L1000,300 Z' fill='white'/%3E%3C/svg%3E"), linear-gradient(#fff, #fff);
  -webkit-mask-repeat: no-repeat, no-repeat;
  mask-repeat: no-repeat, no-repeat;
  -webkit-mask-position: top, bottom;
  mask-position: top, bottom;
  -webkit-mask-size: 100% 52rem, 100% calc(100% - 52rem);
  mask-size: 100% 52rem, 100% calc(100% - 52rem);
}
@media screen and (max-width: 768px) {
  .service-wrap__curve--top .service-wrap__curve-bg {
    -webkit-mask-size: 100% 26rem, 100% calc(100% - 26rem);
    mask-size: 100% 26rem, 100% calc(100% - 26rem);
  }
}

.service-wrap__curve--bottom .service-wrap__curve-bg {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1000 300' preserveAspectRatio='none'%3E%3Cpath d='M0,0 L0,90 C160,140 260,190 400,160 C540,130 620,60 760,90 C860,110 930,150 1000,130 L1000,0 Z' fill='white'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1000 300' preserveAspectRatio='none'%3E%3Cpath d='M0,0 L0,90 C160,140 260,190 400,160 C540,130 620,60 760,90 C860,110 930,150 1000,130 L1000,0 Z' fill='white'/%3E%3C/svg%3E");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
}

.service__types {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2.4rem;
  padding: 0;
  margin: 0 0 5.6rem;
  list-style: none;
}
@media screen and (max-width: 1200px) {
  .service__types {
    grid-template-columns: 1fr;
    gap: 3.2rem;
  }
}
@media screen and (max-width: 768px) {
  .service__types {
    -webkit-margin-after: 4rem;
            margin-block-end: 4rem;
  }
}
.service__type {
  padding: 3rem 2.4rem;
  background-image: url("../img/paper-texture.webp");
  background-repeat: no-repeat;
  background-size: cover;
  -webkit-box-shadow: 6px 10px 12px rgba(0, 0, 0, 0.15);
          box-shadow: 6px 10px 12px rgba(0, 0, 0, 0.15);
}
.service__type:nth-child(1) {
  background-position: 20% center;
  -webkit-transform: rotate(-1deg) translateY(0.4rem);
          transform: rotate(-1deg) translateY(0.4rem);
}
.service__type:nth-child(2) {
  background-position: 80% center;
  -webkit-transform: rotate(0.7deg) translateY(-0.6rem);
          transform: rotate(0.7deg) translateY(-0.6rem);
}
.service__type:nth-child(3) {
  background-position: 50% center;
  -webkit-transform: rotate(-0.5deg) translateY(0.2rem);
          transform: rotate(-0.5deg) translateY(0.2rem);
}
@media screen and (max-width: 768px) {
  .service__type {
    padding: 1.6rem 2rem;
  }
}
@media screen and (max-width: 370px) {
  .service__type {
    padding-inline: 1.6rem;
  }
}
.service__type-name {
  margin: 0 0 0.4rem;
  font-family: "Century Gothic", "Avenir Next", "Futura", system-ui, sans-serif;
  font-size: 3.6rem;
  font-weight: 400;
  line-height: 1.3;
  letter-spacing: 0.1em;
}
@media screen and (max-width: 768px) {
  .service__type-name {
    font-size: 2.6rem;
  }
}
.service__type-desc {
  margin: 0;
  font-size: 1.6rem;
  color: var(--text-sub);
}
@media screen and (max-width: 768px) {
  .service__type-desc {
    font-size: 1.5rem;
  }
}
@media screen and (max-width: 480px) {
  .service__type-desc {
    font-size: 1.4rem;
  }
}
@media screen and (max-width: 370px) {
  .service__type-desc {
    font-size: 1.3rem;
  }
}
@media screen and (max-width: 340px) {
  .service__type-desc {
    font-size: 1.2rem;
  }
}
.service__points {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 2.4rem;
  padding: 0;
  margin: 0 0 6.4rem;
  list-style: none;
}
@media screen and (max-width: 1200px) {
  .service__points {
    gap: 1.2rem;
  }
}
@media screen and (max-width: 768px) {
  .service__points {
    grid-template-columns: repeat(6, 1fr);
    gap: 2.4rem 0.8rem;
    -webkit-margin-after: 2.4rem;
            margin-block-end: 2.4rem;
  }
}
.service__point {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0.4rem;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  text-align: center;
}
@media screen and (max-width: 768px) {
  .service__point {
    grid-column: span 2;
  }
  .service__point:nth-child(4) {
    grid-column: 2/span 2;
  }
  .service__point:nth-child(5) {
    grid-column: 4/span 2;
  }
}
.service__point-icon {
  width: 4rem;
  height: 4rem;
  padding: 1.6rem;
  -webkit-margin-after: 0.8rem;
          margin-block-end: 0.8rem;
}
@media screen and (max-width: 768px) {
  .service__point-icon {
    width: 3rem;
    height: 3rem;
    padding: 1.2rem;
    -webkit-margin-after: 0.4rem;
            margin-block-end: 0.4rem;
  }
}
.service__point-label {
  font-size: 2.4rem;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.04em;
  overflow-wrap: anywhere;
}
@media screen and (max-width: 1200px) {
  .service__point-label {
    font-size: clamp(1.5rem, 2vw, 2.4rem);
    white-space: nowrap;
  }
}
@media screen and (max-width: 768px) {
  .service__point-label {
    font-size: 1.7rem;
  }
}
@media screen and (max-width: 480px) {
  .service__point-label {
    font-size: clamp(1.3rem, 4vw, 1.7rem);
    letter-spacing: 0;
    white-space: nowrap;
  }
}
.service__point-sub {
  font-size: 1.8rem;
  line-height: 1.4;
  color: var(--text-sub);
}
@media screen and (max-width: 1200px) {
  .service__point-sub {
    font-size: clamp(1.1rem, 1.6vw, 1.8rem);
    white-space: nowrap;
  }
}
@media screen and (max-width: 768px) {
  .service__point-sub {
    font-size: 1.4rem;
  }
}
@media screen and (max-width: 480px) {
  .service__point-sub {
    font-size: clamp(0.95rem, 2.9vw, 1.2rem);
    white-space: nowrap;
  }
}
.service__request-block {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  max-width: 100%;
  margin-inline: auto;
}
.service__request-title {
  margin: 0 0 2.4rem;
  font-size: 2.4rem;
  font-weight: 500;
  color: var(--green-dark);
  text-align: center;
}
@media screen and (max-width: 768px) {
  .service__request-title {
    -webkit-margin-after: 1.6rem;
            margin-block-end: 1.6rem;
    font-size: 1.8rem;
  }
}
.service__request {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 1.6rem;
  padding: 0;
  margin: 0;
  list-style: none;
}
@media screen and (max-width: 768px) {
  .service__request {
    gap: 1.2rem;
  }
}
.service__request-item {
  --box: 2.2rem;
  position: relative;
  -webkit-padding-start: 3.8rem;
          padding-inline-start: 3.8rem;
  line-height: 1.6;
}
@media screen and (max-width: 768px) {
  .service__request-item {
    --box: 1.8rem;
    -webkit-padding-start: 3rem;
            padding-inline-start: 3rem;
  }
}
@media screen and (max-width: 480px) {
  .service__request-item {
    font-size: 1.5rem;
  }
}
@media screen and (max-width: 370px) {
  .service__request-item {
    font-size: 1.4rem;
  }
}
.service__request-item::before {
  position: absolute;
  inset-block-start: calc((1lh - var(--box)) / 2);
  inset-inline-start: 0;
  width: var(--box);
  height: var(--box);
  content: "";
  background: var(--bg);
  border: 1px solid var(--green-dark);
  border-radius: 0.4rem;
}
.service__request-item::after {
  position: absolute;
  inset-block-start: calc((1lh - var(--box)) / 2 + var(--box) * 0.14);
  inset-inline-start: calc(var(--box) * 0.34);
  width: calc(var(--box) * 0.3);
  height: calc(var(--box) * 0.55);
  content: "";
  border-right: 0.2rem solid var(--accent-dark);
  border-bottom: 0.2rem solid var(--accent-dark);
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
}
.service__info {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  margin: 4.8rem 0 0;
}
.service__info-row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 3.2rem;
  padding-block: 2.4rem;
}
.service__info-title {
  margin: 0;
  font-size: 3.2rem;
  font-weight: 500;
  line-height: 1.6;
  color: var(--green-dark);
}
@media screen and (max-width: 768px) {
  .service__info-title {
    font-size: 1.8rem;
  }
}
.service__info-body {
  min-width: 0;
  color: var(--text);
  overflow-wrap: anywhere;
}
.service__info-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0.8rem;
  padding: 0;
  margin: 0;
  list-style: none;
}
@media screen and (max-width: 768px) {
  .service__info-list {
    gap: 1.2rem;
  }
}
.service__info-list li {
  position: relative;
  -webkit-padding-start: 1.6rem;
          padding-inline-start: 1.6rem;
}
.service__info-list li::before {
  position: absolute;
  inset-block-start: 1em;
  inset-inline-start: 0.2rem;
  width: 0.5rem;
  height: 0.5rem;
  content: "";
  background: var(--green-dark);
  border-radius: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}
.service__detail-link {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  -webkit-margin-before: 4rem;
          margin-block-start: 4rem;
  -webkit-margin-start: auto;
          margin-inline-start: auto;
}
@media screen and (max-width: 768px) {
  .service__detail-link {
    -webkit-margin-before: 3.2rem;
            margin-block-start: 3.2rem;
  }
}
.service__info-amount {
  white-space: nowrap;
}
.service__info-sub {
  display: block;
  font-size: 1.8rem;
  line-height: 1.7;
  color: var(--text-sub);
}
.service__info-note {
  margin: 0.8rem 0 0;
  font-size: 1.6rem;
  color: var(--text-sub);
}
@media screen and (max-width: 768px) {
  .service__info-note {
    font-size: 1.2rem;
  }
}
.service__info-lead {
  margin: 0 0 1.6rem;
}
.service__faq {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 1.6rem;
  margin: 0;
}
.service__faq-answer {
  margin: 0;
}
.service__faq-answer a {
  color: var(--accent-dark);
  text-decoration: underline;
}
.service__notes {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 4rem;
  margin: 2.4rem 0 0;
}
.service__note-block .service__note-list {
  padding: 0;
}
.service__note-heading {
  margin: 0 0 1.6rem;
  font-size: 2.4rem;
  font-weight: 500;
  color: var(--green-dark);
}
@media screen and (max-width: 768px) {
  .service__note-heading {
    font-size: 1.8rem;
  }
}
.service__table-wrap {
  -webkit-padding-after: 1.2rem;
          padding-block-end: 1.2rem;
  overflow: hidden;
  background: var(--bg);
  border-radius: 0.8rem;
  -webkit-box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
          box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}
@media screen and (max-width: 768px) {
  .service__table-wrap {
    -webkit-padding-after: 0.4rem;
            padding-block-end: 0.4rem;
  }
}
.service__note, .service__more {
  background: var(--bg);
  border-radius: 0.8rem;
  -webkit-box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
          box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
  -webkit-transition: -webkit-transform 0.3s ease, -webkit-box-shadow 0.3s ease;
  transition: -webkit-transform 0.3s ease, -webkit-box-shadow 0.3s ease;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  transition: transform 0.3s ease, box-shadow 0.3s ease, -webkit-transform 0.3s ease, -webkit-box-shadow 0.3s ease;
}
.service__note:has(:focus-visible), .service__more:has(:focus-visible) {
  outline: 2px solid var(--green-dark);
  outline-offset: 2px;
}
@media (any-hover: hover) {
  .service__note:hover:not([open]), .service__more:hover:not([open]) {
    -webkit-box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    -webkit-transform: translateY(-0.3rem);
            transform: translateY(-0.3rem);
  }
}
.service__note, .service__more {
  interpolate-size: allow-keywords;
}
.service__note::details-content, .service__more::details-content {
  block-size: 0;
  overflow: hidden;
  -webkit-transition: block-size 0.4s cubic-bezier(0.4, 0.4, 0, 1), content-visibility 0.4s cubic-bezier(0.4, 0.4, 0, 1) allow-discrete;
  transition: block-size 0.4s cubic-bezier(0.4, 0.4, 0, 1), content-visibility 0.4s cubic-bezier(0.4, 0.4, 0, 1) allow-discrete;
}
.service__note[open]::details-content, .service__more[open]::details-content {
  block-size: auto;
}
@media (prefers-reduced-motion: reduce) {
  .service__note::details-content, .service__more::details-content {
    -webkit-transition: none;
    transition: none;
  }
}
.service__more-toggle {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 1.2rem;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  padding: 1.6rem 2rem;
  text-wrap: balance;
  list-style: none;
  cursor: pointer;
}
.service__more-toggle:focus-visible {
  outline: none;
}
.service__more-toggle::-webkit-details-marker {
  display: none;
}
.service__more-toggle::after {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 0.8rem;
  height: 0.8rem;
  content: "";
  border-right: 1px solid currentColor;
  border-bottom: 1px solid currentColor;
  -webkit-transition: -webkit-transform 0.3s ease;
  transition: -webkit-transform 0.3s ease;
  transition: transform 0.3s ease;
  transition: transform 0.3s ease, -webkit-transform 0.3s ease;
  -webkit-transform: translateY(-0.2rem) rotate(45deg);
          transform: translateY(-0.2rem) rotate(45deg);
}
.service__more[open] .service__more-toggle::after {
  -webkit-transform: translateY(0.2rem) rotate(-135deg);
          transform: translateY(0.2rem) rotate(-135deg);
}
@media screen and (max-width: 768px) {
  .service__more-toggle {
    padding: 1.6rem;
  }
}
@media screen and (max-width: 480px) {
  .service__more-toggle {
    font-size: 1.5rem;
  }
}
.service__more-body {
  padding: 0 2rem 1.6rem;
}
@media screen and (max-width: 768px) {
  .service__more-body {
    padding: 0 1.6rem 0.8rem;
  }
}
.service__more-body .service__info-row {
  grid-template-columns: 16rem 1fr;
  padding-block: 2.8rem;
}
@media screen and (max-width: 768px) {
  .service__more-body .service__info-row {
    padding-block: 2rem;
  }
}
@media screen and (max-width: 1024px) {
  .service__more-body .service__info-row {
    grid-template-columns: 1fr;
  }
}
.service__more-body .service__info-title {
  font-size: 2rem;
}
@media screen and (max-width: 768px) {
  .service__more-body .service__info-title {
    font-size: 1.6rem;
  }
}
.service__note-toggle {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 1.2rem;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  padding: 1.6rem 2rem;
  list-style: none;
  cursor: pointer;
}
.service__note-toggle:focus-visible {
  outline: none;
}
.service__note-toggle::-webkit-details-marker {
  display: none;
}
.service__note-toggle::after {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 0.8rem;
  height: 0.8rem;
  content: "";
  border-right: 1px solid currentColor;
  border-bottom: 1px solid currentColor;
  -webkit-transition: -webkit-transform 0.3s ease;
  transition: -webkit-transform 0.3s ease;
  transition: transform 0.3s ease;
  transition: transform 0.3s ease, -webkit-transform 0.3s ease;
  -webkit-transform: translateY(-0.2rem) rotate(45deg);
          transform: translateY(-0.2rem) rotate(45deg);
}
.service__note[open] .service__note-toggle::after {
  -webkit-transform: translateY(0.2rem) rotate(-135deg);
          transform: translateY(0.2rem) rotate(-135deg);
}
.service__note-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0.8rem;
  padding: 0 2rem 1.6rem;
  margin: 0;
  font-size: 2rem;
  line-height: 1.7;
  color: var(--text);
  list-style: none;
}
@media screen and (max-width: 768px) {
  .service__note-list {
    font-size: 1.6rem;
    color: var(--text-sub);
  }
}
.service__note-list li {
  position: relative;
  -webkit-padding-start: 1.6rem;
          padding-inline-start: 1.6rem;
}
.service__note-list li::before {
  position: absolute;
  inset-block-start: 1em;
  inset-inline-start: 0.2rem;
  width: 0.5rem;
  height: 0.5rem;
  content: "";
  background: var(--green-dark);
  border-radius: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}

.service__price-table {
  width: 100%;
  border-spacing: 0;
  border-collapse: separate;
}
.service__price-table th,
.service__price-table td {
  padding: 1.6rem 1.2rem;
  line-height: 1.7;
  text-align: left;
  vertical-align: top;
}
.service__price-table thead th {
  padding-block: 1.2rem;
  font-size: 1.6rem;
  font-weight: 500;
  color: var(--green-dark);
  white-space: nowrap;
  background: var(--green-2);
}
.service__price-table th:first-child,
.service__price-table td:first-child {
  -webkit-padding-start: 2rem;
          padding-inline-start: 2rem;
}
.service__price-table th:last-child,
.service__price-table td:last-child {
  -webkit-padding-end: 2rem;
          padding-inline-end: 2rem;
}
.service__price-table tbody th {
  font-size: 1.6rem;
  font-weight: 500;
  white-space: nowrap;
}
@media screen and (max-width: 768px) {
  .service__price-table tbody th {
    font-size: 1.4rem;
  }
}
.service__price-table td:last-child {
  font-size: 1.6rem;
  line-height: 1.7;
  color: var(--text-sub);
}
@media screen and (max-width: 768px) {
  .service__price-table td:last-child {
    font-size: 1.4rem;
  }
}
@media screen and (max-width: 1200px) {
  .service__price-table thead {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
  }
  .service__price-table tbody tr {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 0.4rem 1.6rem;
    padding-block: 1.6rem;
  }
  .service__price-table tbody tr {
    padding-inline: 1.6rem;
  }
  .service__price-table th,
  .service__price-table td,
  .service__price-table th:first-child,
  .service__price-table td:first-child,
  .service__price-table th:last-child,
  .service__price-table td:last-child {
    padding: 0;
  }
  .service__price-table tbody th {
    word-break: keep-all;
    white-space: normal;
  }
}
@media screen and (max-width: 1200px) and (max-width: 400px) {
  .service__price-table tbody tr {
    grid-template-columns: 1fr;
  }
}
@media screen and (max-width: 1200px) {
  .service__price-table td:last-child {
    grid-column: 1/-1;
  }
}

.service__price-line,
.service__line {
  display: block;
}

@media screen and (max-width: 480px) {
  .service__detail {
    display: block;
    -webkit-padding-start: 1em;
            padding-inline-start: 1em;
  }
}

.service__price-amount {
  font-family: "Century Gothic", "Avenir Next", "Futura", system-ui, sans-serif;
  font-size: 1.6rem;
  white-space: nowrap;
}
@media screen and (max-width: 768px) {
  .service__price-amount {
    font-size: 1.4rem;
  }
}

.service__table-wrap--scroll {
  overflow-x: auto;
  overflow-y: hidden;
}

.service__plan-table,
.service__check-table {
  width: 100%;
  min-width: 64rem;
  border-spacing: 0;
  border-collapse: separate;
}
.service__plan-table th,
.service__plan-table td,
.service__check-table th,
.service__check-table td {
  padding: 1.2rem;
  font-size: 1.6rem;
  line-height: 1.6;
  text-align: center;
  vertical-align: middle;
}
.service__plan-table thead th,
.service__check-table thead th {
  font-size: 1.6rem;
  font-weight: 500;
  color: var(--green-dark);
  white-space: nowrap;
  background: var(--green-2);
}
.service__plan-table tbody th,
.service__check-table tbody th {
  font-weight: 500;
  text-align: left;
  white-space: nowrap;
}
.service__plan-table th:first-child,
.service__check-table th:first-child {
  -webkit-padding-start: 2rem;
          padding-inline-start: 2rem;
}
.service__plan-table td:last-child,
.service__check-table td:last-child {
  -webkit-padding-end: 2rem;
          padding-inline-end: 2rem;
}
.service__plan-table td,
.service__check-table td {
  color: var(--text);
  white-space: nowrap;
}
@media screen and (max-width: 768px) {
  .service__plan-table,
  .service__check-table {
    min-width: 56rem;
  }
  .service__plan-table th,
  .service__plan-table td,
  .service__check-table th,
  .service__check-table td {
    padding: 1rem 0.8rem;
    font-size: 1.4rem;
  }
  .service__plan-table th:first-child,
  .service__check-table th:first-child {
    -webkit-padding-start: 1.2rem;
            padding-inline-start: 1.2rem;
  }
}

.service__plan-notes {
  -webkit-margin-before: 1.6rem;
          margin-block-start: 1.6rem;
  font-size: 1.6rem;
  color: var(--text-sub);
}
@media screen and (max-width: 370px) {
  .service__plan-notes {
    font-size: 1.4rem;
  }
}

.service__check-table {
  min-width: 0;
}
.service__check-table thead th,
.service__check-table td {
  text-align: left;
}
.service__check-table td {
  white-space: normal;
}
.service__check-table tbody th,
.service__check-table tbody td {
  vertical-align: top;
}
.service__check-table .service__paren {
  display: block;
  font-size: 1.4rem;
}
@media screen and (max-width: 768px) {
  .service__check-table .service__paren {
    font-size: 1.2rem;
  }
}
@media screen and (max-width: 480px) {
  .service__check-table .service__paren {
    -webkit-padding-start: 1em;
            padding-inline-start: 1em;
  }
}
@media screen and (max-width: 768px) {
  .service__check-table {
    min-width: 0;
  }
  .service__check-table thead {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
  }
  .service__check-table tbody tr {
    display: grid;
    gap: 0.4rem;
    padding: 1.6rem;
  }
  .service__check-table tbody th,
  .service__check-table tbody td,
  .service__check-table tbody th:first-child,
  .service__check-table tbody td:last-child {
    padding: 0;
  }
  .service__check-table tbody th {
    white-space: normal;
  }
}

#works {
  padding: 28rem 6rem 8rem;
}
@media screen and (max-width: 768px) {
  #works {
    padding: 17rem 2rem 6rem;
  }
}

.works__head {
  padding: 0;
  margin-bottom: 8rem;
}
.works__head .sec-heading {
  margin-bottom: 0;
}
@media screen and (max-width: 768px) {
  .works__head {
    padding: 0 2.4rem;
    margin-bottom: 4.8rem;
  }
}
.works__empty {
  padding: 0;
  color: var(--text-muted);
}
@media screen and (max-width: 768px) {
  .works__empty {
    padding: 0 2.4rem;
  }
}

.works__slider-wrap {
  position: relative;
}

.works__prev,
.works__next {
  position: absolute;
  top: var(--works-arrow-top, 50%);
  z-index: 3;
  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;
  width: 4rem;
  height: 4rem;
  background: var(--bg);
  border: 1px solid var(--line-strong);
  border-radius: 50%;
  -webkit-box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
          box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
  -webkit-transition: -webkit-box-shadow 0.25s ease, -webkit-transform 0.25s ease;
  transition: -webkit-box-shadow 0.25s ease, -webkit-transform 0.25s ease;
  transition: box-shadow 0.25s ease, transform 0.25s ease;
  transition: box-shadow 0.25s ease, transform 0.25s ease, -webkit-box-shadow 0.25s ease, -webkit-transform 0.25s ease;
}
.works__prev svg,
.works__next svg {
  width: 1.4rem;
  height: 1.4rem;
}

.works__prev {
  left: 0;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
}
@media (any-hover: hover) {
  .works__prev:hover {
    -webkit-box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2);
            box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2);
    -webkit-transform: translate(-50%, calc(-50% - 0.3rem));
            transform: translate(-50%, calc(-50% - 0.3rem));
  }
}

.works__next {
  right: 0;
  -webkit-transform: translate(50%, -50%);
          transform: translate(50%, -50%);
}
@media (any-hover: hover) {
  .works__next:hover {
    -webkit-box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2);
            box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2);
    -webkit-transform: translate(50%, calc(-50% - 0.3rem));
            transform: translate(50%, calc(-50% - 0.3rem));
  }
}

.js-works-slider {
  margin: 0 -1.6rem;
}
.js-works-slider .slick-track {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
.js-works-slider .slick-track::before, .js-works-slider .slick-track::after {
  display: none;
}
.js-works-slider .slick-slide {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  float: none;
  height: auto;
}
.js-works-slider .slick-slide > div {
  height: 100%;
}

.works__card {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  height: 100%;
  padding: 0.8rem 1.6rem 1.6rem;
}

.works__card-link {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  clip-path: inset(0 -0.8rem -1.2rem -0.8rem);
  -webkit-filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.12));
          filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.12));
  -webkit-transition: -webkit-transform 0.3s ease, -webkit-filter 0.3s ease;
  transition: -webkit-transform 0.3s ease, -webkit-filter 0.3s ease;
  transition: transform 0.3s ease, filter 0.3s ease;
  transition: transform 0.3s ease, filter 0.3s ease, -webkit-transform 0.3s ease, -webkit-filter 0.3s ease;
}
@media (any-hover: hover) {
  .works__card-link:hover {
    -webkit-filter: drop-shadow(0 5px 8px rgba(0, 0, 0, 0.18));
            filter: drop-shadow(0 5px 8px rgba(0, 0, 0, 0.18));
    -webkit-transform: translateY(-0.8rem);
            transform: translateY(-0.8rem);
  }
}

.works__thumb {
  position: relative;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 100%;
  aspect-ratio: 1280/652;
  overflow: hidden;
  background: var(--green-1);
  border-radius: 1.5rem 1.5rem 0 0;
}
.works__thumb img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.works__overlay {
  position: relative;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  padding: 4.4rem 2.4rem 5.6rem;
  margin-top: -1.6rem;
  overflow: hidden;
  border-radius: 0 0 1.5rem 1.5rem;
}
.works__overlay::before {
  position: absolute;
  inset: 0;
  content: "";
  background-image: url("../img/paper-texture.webp");
  background-repeat: no-repeat;
  background-size: cover;
  border-radius: inherit;
  -webkit-mask-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, rgb(0, 0, 0)), color-stop(rgb(0, 0, 0)), to(rgba(0, 0, 0, 0)));
  -webkit-mask-image: linear-gradient(to top, rgb(0, 0, 0) 0, rgb(0, 0, 0) calc(100% - 1.6rem), rgba(0, 0, 0, 0) 100%);
  mask-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, rgb(0, 0, 0)), color-stop(rgb(0, 0, 0)), to(rgba(0, 0, 0, 0)));
  mask-image: linear-gradient(to top, rgb(0, 0, 0) 0, rgb(0, 0, 0) calc(100% - 1.6rem), rgba(0, 0, 0, 0) 100%);
}
@media screen and (max-width: 768px) {
  .works__overlay {
    padding: 5rem 2rem 4.8rem;
  }
}
@media screen and (max-width: 768px) and (max-width: 430px) {
  .works__overlay {
    padding-inline: 1.6rem;
  }
}

.works__thumb--empty {
  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;
  padding: 2.4rem;
  text-align: center;
  background: var(--bg);
  border: 1px solid var(--line);
}

.works__private {
  font-size: 2rem;
  line-height: 1.6;
  color: var(--text-muted);
  letter-spacing: 0.1em;
}
@media screen and (max-width: 768px) {
  .works__private {
    font-size: 1.7rem;
  }
}

.works__click {
  position: absolute;
  right: 2rem;
  bottom: 1.6rem;
  z-index: 3;
  display: block;
  pointer-events: none;
  opacity: 0;
  -webkit-transition: opacity 0.25s ease;
  transition: opacity 0.25s ease;
}
@media (any-hover: none) {
  .works__click {
    opacity: 1;
  }
}

.works__click-label {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  gap: 1.2rem;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 0.4rem 0.6rem 0.4rem 2.8rem;
  font-family: "Century Gothic", "Avenir Next", "Futura", system-ui, sans-serif;
  font-size: 2rem;
  color: var(--bg);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  white-space: nowrap;
  background: var(--accent-dark);
  border-radius: 99.9rem;
}
.works__click-label .link-button__icon {
  width: 2.8rem;
  height: 2.8rem;
}
@media screen and (max-width: 768px) {
  .works__click-label {
    gap: 1rem;
    padding: 0.2rem 0.4rem 0.2rem 2rem;
    font-size: 1.6rem;
  }
  .works__click-label .link-button__icon {
    width: 1.8rem;
    height: 1.8rem;
  }
}
@media screen and (max-width: 768px) and (max-width: 370px) {
  .works__click-label {
    gap: 0.8rem;
    padding: 0.2rem 0.3rem 0.2rem 1.4rem;
    font-size: 1.2rem;
  }
  .works__click-label .link-button__icon {
    width: 1.6rem;
    height: 1.6rem;
  }
}

.works__card-link::after {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  content: "";
  background: rgba(60, 40, 44, 0.32);
  border-radius: 1.5rem;
  opacity: 0;
  -webkit-transition: opacity 0.25s ease;
  transition: opacity 0.25s ease;
}
@media (any-hover: hover) {
  .works__card-link:hover::after {
    opacity: 1;
  }
  .works__card-link:hover .works__click {
    opacity: 1;
  }
}
.works__card-link:focus-visible::after, .works__card-link:focus-visible .works__click {
  opacity: 1;
}

.works__name {
  position: relative;
  z-index: 1;
  margin: 0 0 1.6rem;
  font-size: 2.4rem;
  line-height: 1.4;
  color: var(--text);
  letter-spacing: 0.1em;
}
@media screen and (max-width: 768px) {
  .works__name {
    -webkit-margin-after: 1.6rem;
            margin-block-end: 1.6rem;
    font-size: 2rem;
  }
}

.works__cats {
  position: absolute;
  top: 1.2rem;
  right: 1.2rem;
  z-index: 1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 0.4rem;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  margin: 0;
}
@media screen and (max-width: 768px) {
  .works__cats {
    top: 0.9rem;
    right: 0.9rem;
  }
}

.works__cat {
  min-width: 10rem;
  padding: 0.4rem 1.6rem;
  font-family: "Century Gothic", "Avenir Next", "Futura", system-ui, sans-serif;
  font-size: 1.8rem;
  color: var(--accent-dark);
  text-align: center;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  background: rgba(255, 255, 255, 0.85);
  border: 1px solid currentColor;
  border-radius: 99.9rem;
}
@media screen and (max-width: 768px) {
  .works__cat {
    min-width: 8rem;
    padding: 0.2rem 1.2rem;
    font-size: 1.4rem;
    letter-spacing: 0.16em;
  }
}
.works__cat--wp {
  color: var(--green-dark);
  background: var(--green-3);
}
.works__cat--lp {
  color: var(--accent-dark);
  background: var(--pink-2);
}
.works__cat--ec {
  color: var(--blue-dark);
  background: var(--blue-1);
}

.works__industry,
.works__period,
.works__role,
.works__design {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 12rem 1fr;
  gap: 1.2rem;
  margin: 0.8rem 0 0;
  font-size: 2rem;
  line-height: 1.6;
  color: var(--text-muted);
  letter-spacing: 0.08em;
}
@media screen and (max-width: 768px) {
  .works__industry,
  .works__period,
  .works__role,
  .works__design {
    grid-template-columns: 10rem 1fr;
    font-size: 1.6rem;
  }
}
@media (max-width: 430px) {
  .works__industry,
  .works__period,
  .works__role,
  .works__design {
    grid-template-columns: 8.8rem 1fr;
    gap: 0.8rem;
    font-size: 1.5rem;
    letter-spacing: 0.08em;
  }
}

.works__label {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  font-family: "Century Gothic", "Avenir Next", "Futura", system-ui, sans-serif;
  font-weight: 700;
  letter-spacing: 0.16em;
}

.works__value {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  min-width: 0;
}

.works__decos {
  position: absolute;
  inset-inline: 0;
  top: 0;
  height: var(--works-deco-h, 100%);
  pointer-events: none;
}

.p-work {
  padding: 0;
  -webkit-padding-before: 20rem;
          padding-block-start: 20rem;
  padding-inline: 15rem;
  -webkit-margin-after: 5rem;
          margin-block-end: 5rem;
  color: var(--text);
}
@media screen and (max-width: 1024px) {
  .p-work {
    padding-inline: 6rem;
  }
}
@media screen and (max-width: 768px) {
  .p-work {
    -webkit-padding-before: 10rem;
            padding-block-start: 10rem;
    padding-inline: 2.4rem;
  }
}
.p-work {
  max-width: 124rem;
  margin-inline: auto;
}
.p-work__heading {
  margin: 0 0 2.4rem;
  font-family: "Zen Kaku Gothic New", "Hiragino Kaku Gothic ProN", "Yu Gothic Medium", "Yu Gothic", system-ui, sans-serif;
  font-size: 5.6rem;
  font-weight: 400;
  line-height: 1.3;
  color: var(--text);
  letter-spacing: 0.1em;
}
@media screen and (max-width: 768px) {
  .p-work__heading {
    font-size: 3.2rem;
  }
}
.p-work__cats {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 0.8rem;
  padding: 0;
  margin: 0 0 4rem;
  list-style: none;
}
.p-work__visual {
  width: 100%;
  margin: 0 0 4.8rem;
  overflow: hidden;
  background: var(--green-1);
  border-radius: 1.5rem;
}
.p-work__visual img {
  display: block;
  width: 100%;
  height: auto;
}
.p-work__visual--empty {
  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;
  aspect-ratio: 1280/652;
  text-align: center;
  background: var(--bg);
}
.p-work__visual--empty span {
  font-size: 3.2rem;
  line-height: 1.6;
  color: var(--text-muted);
  letter-spacing: 0.1em;
}
@media screen and (max-width: 768px) {
  .p-work__visual--empty span {
    font-size: 1.8rem;
  }
}
.p-work__meta {
  padding: 2rem 4rem;
  margin: 0 0 4.8rem;
  background: var(--bg);
  border-radius: 1.5rem;
  -webkit-box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
          box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}
@media screen and (max-width: 768px) {
  .p-work__meta {
    padding: 1.2rem 2rem;
  }
}
.p-work__meta-row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 2.4rem;
  padding-block: 1.6rem;
  font-size: 2.4rem;
  line-height: 1.6;
}
.p-work__meta-row dt {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 16rem;
  font-family: "Century Gothic", "Avenir Next", "Futura", system-ui, sans-serif;
  font-weight: 700;
  color: var(--text-muted);
  letter-spacing: 0.16em;
}
.p-work__meta-row dd {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  min-width: 0;
  margin: 0;
  color: var(--text);
  overflow-wrap: anywhere;
}
@media screen and (max-width: 768px) {
  .p-work__meta-row {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 0.4rem;
    font-size: 1.8rem;
  }
  .p-work__meta-row dt {
    width: auto;
  }
}
.p-work__points {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0.8rem;
  padding: 0;
  margin: 0;
  list-style: none;
}
.p-work__points li {
  position: relative;
  -webkit-padding-start: 2rem;
          padding-inline-start: 2rem;
}
.p-work__points li::before {
  position: absolute;
  inset-block-start: 1em;
  inset-inline-start: 0.2rem;
  width: 0.6rem;
  height: 0.6rem;
  content: "";
  background: var(--green-dark);
  border-radius: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}
.p-work__url {
  color: var(--text);
  text-decoration: underline;
  text-underline-offset: 0.4rem;
  -webkit-transition: color 0.25s ease;
  transition: color 0.25s ease;
}
@media (any-hover: hover) {
  .p-work__url:hover {
    color: var(--accent);
  }
}
.p-work__body {
  margin: 0 0 4.8rem;
  font-size: 2rem;
  line-height: 1.7;
  overflow-wrap: anywhere;
}
@media screen and (max-width: 768px) {
  .p-work__body {
    font-size: 1.6rem;
  }
}
.p-work__body > * + * {
  -webkit-margin-before: 1.5em;
          margin-block-start: 1.5em;
}
.p-work__body a {
  color: var(--accent-dark);
  text-decoration: underline;
  text-underline-offset: 0.4rem;
}
.p-work__pager {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 2.4rem;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  margin: 0 0 4rem;
}
.p-work__pager-link {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  gap: 1.6rem;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 1.6rem 3.2rem;
  font-family: "Century Gothic", "Avenir Next", "Futura", system-ui, sans-serif;
  font-size: 2.4rem;
  color: var(--accent-dark);
  text-transform: uppercase;
  letter-spacing: 0.16em;
  background: var(--bg);
  border-radius: 99.9rem;
  -webkit-box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
          box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
  -webkit-transition: background 0.25s ease, color 0.25s ease;
  transition: background 0.25s ease, color 0.25s ease;
}
.p-work__pager-link--next {
  -webkit-margin-start: auto;
          margin-inline-start: auto;
}
@media (any-hover: hover) {
  .p-work__pager-link:hover {
    color: #fff;
    background: var(--accent);
  }
}
@media screen and (max-width: 768px) {
  .p-work__pager-link {
    padding: 1.2rem 2rem;
    font-size: 1.8rem;
  }
}
.p-work__chevron {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 1rem;
  height: 1rem;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
}
.p-work__pager-link--prev .p-work__chevron {
  -webkit-transform: rotate(-135deg);
          transform: rotate(-135deg);
}
.p-work__pager-link--next .p-work__chevron {
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
}
.p-work__buttons {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 1.6rem;
  margin: 0;
}

.approach__strengths {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 4rem 4.8rem;
  margin: 0;
}
@media screen and (max-width: 1024px) {
  .approach__strengths {
    grid-template-columns: 1fr;
    gap: 3.2rem;
  }
}
@media screen and (max-width: 768px) {
  .approach__strengths {
    gap: 2.4rem;
  }
}
.approach__strength {
  display: grid;
  grid-template-areas: "icon title" ". desc";
  grid-template-columns: auto 1fr;
  gap: 0.8rem 2rem;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
@media screen and (max-width: 768px) {
  .approach__strength {
    grid-template-areas: "icon title" "desc desc";
    gap: 1.2rem 1.6rem;
  }
}
.approach__strength-icon {
  grid-area: icon;
  align-self: center;
  width: 2.8rem;
  height: 2.8rem;
  padding: 0;
  background: none;
  -webkit-box-shadow: none;
          box-shadow: none;
}
@media screen and (max-width: 768px) {
  .approach__strength-icon {
    width: 2.4rem;
    height: 2.4rem;
  }
}
.approach__strength-title {
  grid-area: title;
  margin: 0;
  font-size: 2.4rem;
  font-weight: 500;
  color: var(--text);
}
@media screen and (max-width: 768px) {
  .approach__strength-title {
    font-size: 1.8rem;
  }
}
@media screen and (max-width: 480px) {
  .approach__strength-title {
    font-size: 1.6rem;
  }
}
@media screen and (max-width: 370px) {
  .approach__strength-title {
    font-size: 1.4rem;
  }
}
@media screen and (max-width: 340px) {
  .approach__strength-title {
    font-size: 1.2rem;
  }
}
.approach__strength-desc {
  grid-area: desc;
  margin: 0;
  font-size: 2rem;
  color: var(--text-sub);
  text-wrap: pretty;
}
@media screen and (max-width: 768px) {
  .approach__strength-desc {
    font-size: 1.6rem;
  }
}
@media screen and (max-width: 370px) {
  .approach__strength-desc {
    font-size: 1.3rem;
  }
}
.approach__guideline {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  margin: 4.8rem 0 0;
  font-size: 2rem;
}
@media screen and (max-width: 768px) {
  .approach__guideline {
    -webkit-margin-before: 3.2rem;
            margin-block-start: 3.2rem;
    font-size: 1.6rem;
  }
}

#blog {
  padding: 12rem 6rem 16rem;
}
@media screen and (max-width: 768px) {
  #blog {
    padding: 6rem 2.4rem 8rem;
  }
}

.blog__layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 2.2fr);
  gap: 8rem;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: start;
  max-width: 112rem;
  margin-inline: auto;
}
@media screen and (max-width: 1024px) {
  .blog__layout {
    grid-template-columns: minmax(0, 1fr);
    gap: 1.6rem;
  }
}
.blog__more {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  -webkit-margin-before: 3.2rem;
          margin-block-start: 3.2rem;
}

.blog-list {
  display: grid;
  gap: 1.2rem;
  padding: 0;
  margin: 0;
  list-style: none;
}

.blog-row {
  position: relative;
  display: block;
  padding: 2.4rem 7.2rem 2.4rem 0;
}
@media screen and (max-width: 768px) {
  .blog-row {
    -webkit-padding-end: 4rem;
            padding-inline-end: 4rem;
  }
}
.blog-row__meta {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 1.2rem;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  margin: 0 0 0.8rem;
  font-size: 1.4rem;
  line-height: 1.6;
  color: var(--text-muted);
  letter-spacing: 0.08em;
}
.blog-row__badge {
  padding: 0.2rem 1.2rem;
  font-size: 1.4rem;
  line-height: 1.6;
  color: var(--accent-dark);
  background: var(--pink-1);
  border-radius: 20rem;
}
.blog-row__title {
  margin: 0;
  font-size: 3.2rem;
  font-weight: 500;
  line-height: 1.5;
  color: var(--text);
  text-wrap: pretty;
  -webkit-transition: color 0.25s ease;
  transition: color 0.25s ease;
}
@media screen and (max-width: 768px) {
  .blog-row__title {
    font-size: 1.8rem;
  }
}
.blog-row__summary {
  display: -webkit-box;
  margin: 0.8rem 0 0;
  overflow: hidden;
  font-size: 1.6rem;
  line-height: 1.8;
  color: var(--text-sub);
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
}
.blog-row__arrow {
  position: absolute;
  inset-block-start: 50%;
  inset-inline-end: 0;
  display: grid;
  place-items: center;
  width: 4.4rem;
  height: 4.4rem;
  border: 1px solid var(--accent);
  border-radius: 50%;
  -webkit-transition: background 0.25s ease, border-color 0.25s ease;
  transition: background 0.25s ease, border-color 0.25s ease;
  translate: 0 -50%;
}
@media screen and (max-width: 768px) {
  .blog-row__arrow {
    width: 2.8rem;
    height: 2.8rem;
  }
}
.blog-row__arrow::before {
  width: 0.9rem;
  height: 0.9rem;
  -webkit-margin-end: 0.3rem;
          margin-inline-end: 0.3rem;
  content: "";
  border-top: 1px solid var(--accent-dark);
  border-right: 1px solid var(--accent-dark);
  -webkit-transition: border-color 0.25s ease;
  transition: border-color 0.25s ease;
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
}
@media screen and (max-width: 768px) {
  .blog-row__arrow::before {
    width: 0.7rem;
    height: 0.7rem;
    -webkit-margin-end: 0.2rem;
            margin-inline-end: 0.2rem;
  }
}
.blog-row:focus-visible {
  outline: 2px solid var(--accent-dark);
  outline-offset: 0.4rem;
}
@media (any-hover: hover) {
  .blog-row:hover .blog-row__title {
    color: var(--accent-dark);
  }
  .blog-row:hover .blog-row__arrow {
    background: var(--accent-dark);
    border-color: var(--accent-dark);
  }
  .blog-row:hover .blog-row__arrow::before {
    border-color: var(--bg);
  }
}

section.p-blog-archive {
  -webkit-padding-before: 20rem;
          padding-block-start: 20rem;
}
@media screen and (max-width: 768px) {
  section.p-blog-archive {
    -webkit-padding-before: 10rem;
            padding-block-start: 10rem;
  }
}

.p-blog-archive__inner {
  max-width: 88rem;
  margin-inline: auto;
}
.p-blog-archive__empty {
  font-size: 1.8rem;
  color: var(--text-muted);
}

.pager {
  -webkit-margin-before: 4.8rem;
          margin-block-start: 4.8rem;
}
.pager__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 1.2rem;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  padding: 0;
  margin: 0;
  list-style: none;
}
.pager .page-numbers {
  display: grid;
  place-items: center;
  min-width: 4.4rem;
  height: 4.4rem;
  padding-inline: 0.8rem;
  font-size: 1.6rem;
  line-height: 1;
  color: var(--text);
  border-radius: 50%;
}
.pager .page-numbers.current {
  color: var(--bg);
  background: var(--accent-dark);
}
.pager .page-numbers.prev span[aria-hidden], .pager .page-numbers.next span[aria-hidden] {
  display: block;
  width: 0.9rem;
  height: 0.9rem;
  border-top: 1px solid var(--accent-dark);
  border-right: 1px solid var(--accent-dark);
}
.pager .page-numbers.prev span[aria-hidden] {
  -webkit-transform: translateX(0.2rem) rotate(-135deg);
          transform: translateX(0.2rem) rotate(-135deg);
}
.pager .page-numbers.next span[aria-hidden] {
  -webkit-transform: translateX(-0.2rem) rotate(45deg);
          transform: translateX(-0.2rem) rotate(45deg);
}

.p-blog {
  padding: 0;
  -webkit-padding-before: 20rem;
          padding-block-start: 20rem;
  padding-inline: 15rem;
  -webkit-margin-after: 5rem;
          margin-block-end: 5rem;
  color: var(--text);
}
@media screen and (max-width: 1024px) {
  .p-blog {
    padding-inline: 6rem;
  }
}
@media screen and (max-width: 768px) {
  .p-blog {
    -webkit-padding-before: 10rem;
            padding-block-start: 10rem;
    padding-inline: 2.4rem;
  }
}
.p-blog {
  max-width: 124rem;
  margin-inline: auto;
  overflow-x: clip;
}
.p-blog p,
.p-blog li,
.p-blog dd {
  text-wrap: wrap;
}
.p-blog__inner {
  margin-inline: auto;
}
.p-blog__badge {
  display: inline-block;
  padding: 0.2rem 1.2rem;
  margin: 0 0 1.6rem;
  font-size: 1.4rem;
  line-height: 1.6;
  color: var(--accent-dark);
  background: var(--pink-1);
  border-radius: 20rem;
}
.p-blog__title {
  margin: 0;
  font-size: 3.6rem;
  font-weight: 500;
  line-height: 1.5;
  color: var(--text);
  text-wrap: pretty;
}
@media screen and (max-width: 768px) {
  .p-blog__title {
    font-size: 2.4rem;
  }
}
.p-blog__meta {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 0.8rem 3.2rem;
  padding: 0;
  margin: 2.4rem 0 0;
  font-size: 1.8rem;
  color: var(--text-sub);
  list-style: none;
}
@media screen and (max-width: 768px) {
  .p-blog__meta {
    font-size: 1.6rem;
  }
}
.p-blog__meta-label {
  -webkit-margin-end: 0.8rem;
          margin-inline-end: 0.8rem;
  font-weight: 700;
  color: var(--accent);
}
.p-blog__summary {
  max-width: none;
  padding: 3.2rem;
  margin: 4.8rem 0 0;
  background: var(--green-1);
  border-radius: 1.6rem;
}
@media screen and (max-width: 768px) {
  .p-blog__summary {
    padding: 2.4rem 2rem;
  }
}
.p-blog__summary-title {
  margin: 0;
  font-size: 1.8rem;
  font-weight: 500;
  line-height: 1.6;
}
.p-blog__summary-list {
  display: grid;
  gap: 2rem;
  margin: 2rem 0 0;
}
.p-blog__summary-list dt {
  font-size: 1.6rem;
  font-weight: 500;
  color: var(--accent-dark);
}
.p-blog__summary-list dd {
  margin: 0.4rem 0 0;
  font-size: 1.8rem;
  line-height: 1.8;
}
@media screen and (max-width: 768px) {
  .p-blog__summary-list dd {
    font-size: 1.6rem;
  }
}
.p-blog__toc {
  -webkit-margin-before: 4.8rem;
          margin-block-start: 4.8rem;
}
.p-blog__toc-details {
  padding: 1.2rem 3.2rem 2rem;
  background: rgba(255, 255, 255, 0.7);
  border: 1px solid var(--line-strong);
  border-radius: 1.6rem;
}
@media screen and (max-width: 768px) {
  .p-blog__toc-details {
    padding: 0.8rem 2rem 1.6rem;
  }
}
.p-blog__toc-summary {
  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;
  min-height: 4.8rem;
  font-size: 2.4rem;
  font-weight: 500;
  list-style: none;
  cursor: pointer;
}
@media screen and (max-width: 768px) {
  .p-blog__toc-summary {
    font-size: 2rem;
  }
}
.p-blog__toc-summary {
  -webkit-transition: color 0.25s ease;
  transition: color 0.25s ease;
}
.p-blog__toc-summary::-webkit-details-marker {
  display: none;
}
.p-blog__toc-summary::after {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 0.9rem;
  height: 0.9rem;
  -webkit-margin-end: 0.4rem;
          margin-inline-end: 0.4rem;
  content: "";
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  -webkit-transition: -webkit-transform 0.25s ease;
  transition: -webkit-transform 0.25s ease;
  transition: transform 0.25s ease;
  transition: transform 0.25s ease, -webkit-transform 0.25s ease;
  -webkit-transform: translateY(-0.2rem) rotate(45deg);
          transform: translateY(-0.2rem) rotate(45deg);
}
.p-blog__toc-summary:focus-visible {
  outline: 2px solid var(--accent-dark);
  outline-offset: 0.4rem;
}
@media (any-hover: hover) {
  .p-blog__toc-summary:hover {
    color: var(--accent-dark);
  }
}
.p-blog__toc-details[open] .p-blog__toc-summary::after {
  -webkit-transform: translateY(0.2rem) rotate(-135deg);
          transform: translateY(0.2rem) rotate(-135deg);
}
.p-blog__toc ol {
  padding: 0;
  margin: 0.8rem 0 0;
  list-style: none;
  counter-reset: toc;
}
.p-blog__toc ol ol {
  -webkit-margin-before: 0;
          margin-block-start: 0;
  -webkit-margin-start: 2.4rem;
          margin-inline-start: 2.4rem;
}
.p-blog__toc ol li {
  counter-increment: toc;
}
.p-blog__toc ol a {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  min-height: 4.4rem;
  font-size: 2rem;
  line-height: 1.6;
  color: var(--text);
}
@media screen and (max-width: 768px) {
  .p-blog__toc ol a {
    font-size: 1.8rem;
  }
}
.p-blog__toc ol a {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.3em;
  -webkit-transition: color 0.25s ease, text-decoration-thickness 0.25s ease;
  transition: color 0.25s ease, text-decoration-thickness 0.25s ease;
}
@media (any-hover: hover) {
  .p-blog__toc ol a:hover {
    color: var(--accent-dark);
    text-decoration-thickness: 2px;
  }
}
.p-blog__checklist {
  max-width: none;
  padding: 0;
  margin: 6.4rem 0 0;
}
.p-blog__checklist-title {
  margin: 0;
  font-size: 2.4rem;
  font-weight: 500;
  line-height: 1.5;
}
@media screen and (max-width: 768px) {
  .p-blog__checklist-title {
    font-size: 1.8rem;
  }
}
.p-blog__checklist-list {
  -webkit-padding-start: 2.4rem;
          padding-inline-start: 2.4rem;
  margin: 1.6rem 0 0;
  font-size: 1.8rem;
  line-height: 1.8;
  list-style: disc;
}
@media screen and (max-width: 768px) {
  .p-blog__checklist-list {
    font-size: 1.6rem;
  }
}
.p-blog__checklist-list li + li {
  -webkit-margin-before: 0.8rem;
          margin-block-start: 0.8rem;
}
.p-blog__pager {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 2.4rem;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  margin: 6.4rem 0 0;
}
.p-blog__pager-link {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  gap: 1.6rem;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  min-height: 4.4rem;
  padding: 1.6rem 3.2rem;
  font-family: "Century Gothic", "Avenir Next", "Futura", system-ui, sans-serif;
  font-size: 2.4rem;
  color: var(--accent-dark);
  text-transform: uppercase;
  letter-spacing: 0.16em;
  background: var(--bg);
  border-radius: 99.9rem;
  -webkit-box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
          box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
  -webkit-transition: background 0.25s ease, color 0.25s ease;
  transition: background 0.25s ease, color 0.25s ease;
}
.p-blog__pager-link--next {
  -webkit-margin-start: auto;
          margin-inline-start: auto;
}
@media (any-hover: hover) {
  .p-blog__pager-link:hover {
    color: #fff;
    background: var(--accent);
  }
}
@media screen and (max-width: 768px) {
  .p-blog__pager-link {
    padding: 1.2rem 2rem;
    font-size: 1.8rem;
  }
}
.p-blog__chevron {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 1rem;
  height: 1rem;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
}
.p-blog__pager-link--prev .p-blog__chevron {
  -webkit-transform: rotate(-135deg);
          transform: rotate(-135deg);
}
.p-blog__pager-link--next .p-blog__chevron {
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
}
.p-blog__buttons {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 1.6rem;
  margin: 4rem 0 0;
}

.entry-content {
  -webkit-margin-before: 4.8rem;
          margin-block-start: 4.8rem;
  font-size: 2rem;
  line-height: 1.9;
  overflow-wrap: anywhere;
}
@media screen and (max-width: 768px) {
  .entry-content {
    font-size: 1.8rem;
  }
}
.entry-content > * + * {
  -webkit-margin-before: 1.6rem;
          margin-block-start: 1.6rem;
}
.entry-content h2 {
  padding: 0.4rem 0 1.2rem 1.6rem;
  -webkit-margin-before: 6.4rem;
          margin-block-start: 6.4rem;
  font-size: 3.2rem;
  font-weight: 500;
  line-height: 1.5;
  -webkit-border-after: 1px solid var(--line-strong);
          border-block-end: 1px solid var(--line-strong);
  -webkit-border-start: 6px solid var(--accent);
          border-inline-start: 6px solid var(--accent);
}
@media screen and (max-width: 768px) {
  .entry-content h2 {
    -webkit-padding-start: 1.2rem;
            padding-inline-start: 1.2rem;
    font-size: 2.4rem;
  }
}
.entry-content h3 {
  -webkit-padding-start: 1.2rem;
          padding-inline-start: 1.2rem;
  -webkit-margin-before: 4rem;
          margin-block-start: 4rem;
  font-size: 2.4rem;
  font-weight: 500;
  line-height: 1.5;
  -webkit-border-start: 3px solid var(--accent);
          border-inline-start: 3px solid var(--accent);
}
@media screen and (max-width: 768px) {
  .entry-content h3 {
    font-size: 1.8rem;
  }
}
.entry-content h4,
.entry-content h5,
.entry-content h6 {
  -webkit-margin-before: 3.2rem;
          margin-block-start: 3.2rem;
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.6;
}
.entry-content ul,
.entry-content ol {
  -webkit-padding-start: 2.4rem;
          padding-inline-start: 2.4rem;
}
.entry-content ul {
  list-style: disc;
}
.entry-content ol {
  list-style: decimal;
}
.entry-content li + li {
  -webkit-margin-before: 0.6rem;
          margin-block-start: 0.6rem;
}
.entry-content a {
  color: var(--accent-dark);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.3em;
  -webkit-transition: color 0.25s ease, text-decoration-thickness 0.25s ease;
  transition: color 0.25s ease, text-decoration-thickness 0.25s ease;
}
@media (any-hover: hover) {
  .entry-content a:hover {
    color: var(--accent-hover);
    text-decoration-thickness: 2px;
  }
}
.entry-content img {
  width: auto;
  max-width: 100%;
  height: auto;
}
.entry-content blockquote {
  -webkit-padding-start: 2rem;
          padding-inline-start: 2rem;
  color: var(--text-sub);
  -webkit-border-start: 1px solid var(--accent);
          border-inline-start: 1px solid var(--accent);
}
.entry-content pre {
  max-width: 100%;
  padding: 1.6rem 2rem;
  overflow-x: auto;
  font-family: ui-monospace, Consolas, monospace;
  font-size: 1.8rem;
  line-height: 1.7;
  background: rgba(0, 0, 0, 0.05);
  border-radius: 0.8rem;
}
@media screen and (max-width: 768px) {
  .entry-content pre {
    font-size: 1.6rem;
  }
}
.entry-content code {
  padding: 0.1em 0.4em;
  font-family: ui-monospace, Consolas, monospace;
  font-size: 0.9em;
  background: rgba(0, 0, 0, 0.05);
  border-radius: 0.4rem;
}
.entry-content pre code {
  padding: 0;
  background: none;
}
.entry-content table {
  display: block;
  width: 100%;
  overflow-x: auto;
  border-collapse: collapse;
}
.entry-content th,
.entry-content td {
  padding: 1rem 1.2rem;
  text-align: left;
  border: 1px solid var(--line-strong);
}

.faq__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 3rem;
  max-width: 90rem;
  margin: 0 auto;
}
@media screen and (max-width: 768px) {
  .faq__list {
    gap: 2rem;
  }
}
.faq__item {
  overflow: hidden;
  background: var(--bg);
  border-radius: 0.8rem;
  -webkit-box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
          box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
  -webkit-transition: -webkit-transform 0.3s ease, -webkit-box-shadow 0.3s ease;
  transition: -webkit-transform 0.3s ease, -webkit-box-shadow 0.3s ease;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  transition: transform 0.3s ease, box-shadow 0.3s ease, -webkit-transform 0.3s ease, -webkit-box-shadow 0.3s ease;
}
.faq__item:has(:focus-visible) {
  outline: 2px solid var(--green-dark);
  outline-offset: -2px;
}
@media (any-hover: hover) {
  .faq__item:hover:not(.is-open) {
    -webkit-box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    -webkit-transform: translateY(-0.3rem);
            transform: translateY(-0.3rem);
  }
}
.faq__question {
  display: grid;
  grid-template-columns: auto 1fr auto;
  -webkit-column-gap: 1.2rem;
     -moz-column-gap: 1.2rem;
          column-gap: 1.2rem;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 100%;
  padding: 1.6rem 2.4rem;
  text-align: left;
}
.faq__question:focus-visible {
  outline: none;
}
@media screen and (max-width: 768px) {
  .faq__question {
    padding: 1.4rem 1.6rem;
  }
}
@media screen and (max-width: 370px) {
  .faq__question {
    padding: 1.4rem 1rem;
  }
}
.faq__label {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  font-family: "Century Gothic", "Avenir Next", "Futura", system-ui, sans-serif;
  font-weight: 700;
  line-height: 1;
}
.faq__label--q {
  color: var(--green-dark);
}
.faq__label--a {
  color: var(--accent-dark);
}
.faq__question-text {
  color: var(--text);
}
.faq__icon {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 2.4rem;
  height: 2.4rem;
}
.faq__icon::before {
  display: block;
  width: 0;
  height: 0;
  content: "";
  -webkit-border-before: 0.8rem solid var(--green-dark);
          border-block-start: 0.8rem solid var(--green-dark);
  border-inline: 0.7rem solid transparent;
  -webkit-transition: -webkit-transform 0.3s ease;
  transition: -webkit-transform 0.3s ease;
  transition: transform 0.3s ease;
  transition: transform 0.3s ease, -webkit-transform 0.3s ease;
}
.faq__item.is-open .faq__icon::before {
  -webkit-transform: rotate(180deg);
          transform: rotate(180deg);
}
.faq__answer {
  display: grid;
  grid-template-rows: 0fr;
  -webkit-transition: grid-template-rows 0.4s cubic-bezier(0.4, 0.4, 0, 1);
  transition: grid-template-rows 0.4s cubic-bezier(0.4, 0.4, 0, 1);
  transition: grid-template-rows 0.4s cubic-bezier(0.4, 0.4, 0, 1), -ms-grid-rows 0.4s cubic-bezier(0.4, 0.4, 0, 1);
}
.faq__item.is-open .faq__answer {
  grid-template-rows: 1fr;
}
.faq__answer-clip {
  min-height: 0;
  overflow: hidden;
}
.faq__answer-inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 1.2rem;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  padding: 0 2.4rem 1.8rem;
  cursor: pointer;
}
@media screen and (max-width: 768px) {
  .faq__answer-inner {
    padding: 0 1.6rem 1.6rem;
  }
}
.faq__answer-inner .faq__label {
  line-height: 1.8;
}
.faq__answer-body {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  min-width: 0;
}
.faq__answer-text {
  margin: 0 0 0.8rem;
  color: var(--text);
}
.faq__answer-text:last-child {
  margin-bottom: 0;
}
.faq__price-list {
  margin: 0 0 0.8rem;
  color: var(--text);
}
.faq__price-list:last-child {
  margin-bottom: 0;
}
.faq__price-list li {
  margin-bottom: 0.8rem;
}
.faq__price-list li:last-child {
  margin-bottom: 0;
}
.faq__answer-note {
  font-size: 1.8rem;
  color: var(--text-muted);
}
.faq p.faq__answer-note {
  margin: 0;
}
.faq__link {
  color: var(--text);
  text-decoration: none;
  -webkit-transition: color 0.25s ease;
  transition: color 0.25s ease;
}
@media screen and (max-width: 768px) {
  .faq__link {
    text-decoration: underline;
    text-underline-offset: 0.2em;
  }
}
@media (any-hover: hover) {
  .faq__link:hover {
    color: var(--accent);
  }
}
.faq__price-amount {
  white-space: nowrap;
}

.contact-wrap {
  position: relative;
  z-index: 2;
  margin-top: 15rem;
  background: url("../img/bg-contact.webp") center/300rem auto repeat fixed;
  border-bottom: 1px solid var(--green-2);
}
@media screen and (max-width: 768px) {
  .contact-wrap {
    margin-top: 12rem;
    background-size: 180rem auto;
  }
}
.contact-wrap--page {
  margin-top: 26rem;
}
@media screen and (max-width: 768px) {
  .contact-wrap--page {
    margin-top: 15rem;
  }
}
.contact-wrap__curve {
  position: absolute;
  top: -26rem;
  left: 0;
  width: 100%;
  height: 26rem;
  line-height: 0;
  pointer-events: none;
}
@media screen and (max-width: 768px) {
  .contact-wrap__curve {
    top: -15rem;
    height: 15rem;
  }
}
.contact-wrap__curve-bg {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  background: url("../img/bg-contact.webp") center/300rem auto repeat fixed;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1000 300' preserveAspectRatio='none'%3E%3Cpath d='M0,260 C90,260 160,190 250,190 C300,190 350,220 400,220 C470,220 530,130 600,130 C650,130 700,160 750,160 C830,160 900,40 1000,40 L1000,300 L0,300 Z' fill='white'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1000 300' preserveAspectRatio='none'%3E%3Cpath d='M0,260 C90,260 160,190 250,190 C300,190 350,220 400,220 C470,220 530,130 600,130 C650,130 700,160 750,160 C830,160 900,40 1000,40 L1000,300 L0,300 Z' fill='white'/%3E%3C/svg%3E");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
}
@media screen and (max-width: 768px) {
  .contact-wrap__curve-bg {
    background-size: 180rem auto;
  }
}

.contact-cta__lead {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
  margin-bottom: 3.6rem;
  font-size: 2rem;
  line-height: 1.7;
  color: var(--text);
  text-align: left;
}
@media screen and (max-width: 768px) {
  .contact-cta__lead {
    margin-bottom: 2.8rem;
    font-size: 1.5rem;
  }
}
.contact-cta__buttons {
  display: grid;
  grid-auto-columns: 1fr;
  gap: 1.6rem;
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  max-width: 100%;
  margin-inline: auto;
}
.contact-cta__buttons .link-button {
  width: 100%;
}

#contact {
  padding-top: 7.2rem;
  padding-bottom: 7.2rem;
  margin-top: 0;
  letter-spacing: 0.06em;
}
#contact .sec-heading,
#contact .sec-heading__sub {
  text-align: center;
}

.contact__lead {
  margin-bottom: 6.2rem;
  font-size: 2rem;
  line-height: 1.7;
  color: var(--text);
}
@media screen and (max-width: 768px) {
  .contact__lead {
    margin-bottom: 3.6rem;
    font-size: 1.5rem;
  }
}
.contact__lead:not(:last-of-type) {
  margin-bottom: 2rem;
}
.contact__message {
  font-size: 1.8rem;
}
.contact__errors {
  padding-left: 1.6rem;
  margin: 0 0 3.2rem;
  font-size: 1.8rem;
  color: #b3441f;
}
.contact__form-wrap {
  padding: 4rem 7rem;
  background-image: url("../img/paper-texture.webp");
  background-repeat: no-repeat;
  background-size: cover;
  border-radius: 3rem;
}
@media screen and (max-width: 768px) {
  .contact__form-wrap {
    padding: 3rem 2rem;
    border-radius: 1.5rem;
  }
}
@media screen and (max-width: 370px) {
  .contact__form-wrap {
    padding: 2rem 1.5rem;
  }
}
.contact__form {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 2rem;
}
@media screen and (max-width: 768px) {
  .contact__form {
    gap: 1.6rem;
  }
}
@media screen and (max-width: 370px) {
  .contact__form {
    gap: 1.2rem;
  }
}
.contact__row label {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 0.8rem;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  margin-block: 0.6rem;
  font-family: "Zen Kaku Gothic New", "Hiragino Kaku Gothic ProN", "Yu Gothic Medium", "Yu Gothic", system-ui, sans-serif;
  font-size: 2rem;
  line-height: 1;
  color: var(--text-muted);
  text-transform: uppercase;
}
@media screen and (max-width: 768px) {
  .contact__row label {
    font-size: 1.6rem;
  }
}
.contact__row input:not([type=checkbox]),
.contact__row textarea,
.contact__row select {
  width: 100%;
  padding: 0.8rem 1.2rem;
  font-family: inherit;
  font-size: 2rem;
  color: var(--text);
  letter-spacing: 0.05em;
  overflow-wrap: break-word;
  background: #fbf9f3;
  border: 1px solid var(--line-strong);
  border-radius: 0.8rem;
  -webkit-transition: border-color 0.25s ease;
  transition: border-color 0.25s ease;
}
@media screen and (max-width: 768px) {
  .contact__row input:not([type=checkbox]),
  .contact__row textarea,
  .contact__row select {
    font-size: 1.6rem;
  }
}
.contact__row input:not([type=checkbox]):focus,
.contact__row textarea:focus,
.contact__row select:focus {
  border-color: var(--green-dark);
  outline: none;
}
.contact__row input[type=text],
.contact__row input[type=email],
.contact__row input[type=tel],
.contact__row textarea,
.contact__row select {
  font-family: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
}
.contact__row textarea {
  min-height: 12rem;
  resize: none;
}
.contact__row--privacy {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
.contact__row--privacy label {
  position: relative;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  max-width: 100%;
  padding-left: 2.8rem;
  font-size: 2rem;
  text-transform: none;
  overflow-wrap: break-word;
  cursor: pointer;
}
@media screen and (max-width: 768px) {
  .contact__row--privacy label {
    font-size: 1.6rem;
  }
}
@media screen and (max-width: 340px) {
  .contact__row--privacy label {
    font-size: 1.4rem;
  }
}
.contact__row--privacy label::before {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 2rem;
  height: 2rem;
  margin: auto 0;
  content: "";
  background: #fbf9f3;
  border: 1px solid var(--text-muted);
  border-radius: 0.3rem;
  -webkit-transition: background 0.2s ease;
  transition: background 0.2s ease;
}
.contact__row--privacy label::after {
  position: absolute;
  top: 50%;
  left: 0.7rem;
  width: 0.6rem;
  height: 1.1rem;
  content: "";
  border-right: 2px solid var(--bg);
  border-bottom: 2px solid var(--bg);
  opacity: 0;
  -webkit-transition: opacity 0.2s ease;
  transition: opacity 0.2s ease;
  -webkit-transform: translateY(-70%) rotate(45deg);
          transform: translateY(-70%) rotate(45deg);
}
.contact__row--privacy label:has(input:checked)::before {
  background: var(--accent);
  border-color: var(--accent);
}
.contact__row--privacy label:has(input:focus-visible)::before {
  outline: 2px solid var(--green-dark);
  outline-offset: 2px;
}
.contact__row--privacy label:has(input:checked)::after {
  opacity: 1;
}
.contact__row--privacy input[type=checkbox] {
  position: absolute;
  top: 50%;
  left: 0;
  width: 2rem;
  height: 2rem;
  margin: 0;
  cursor: pointer;
  opacity: 0;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}
.contact__row--privacy a {
  color: var(--accent);
  text-decoration: underline;
}
.contact__row .wpcf7-form-control-wrap:has(select) {
  position: relative;
}
.contact__row .wpcf7-form-control-wrap:has(select) .wpcf7-not-valid-tip {
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
}
.contact__custom-select {
  position: relative;
  width: 100%;
}
.contact__custom-select__trigger {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 100%;
  padding: 0.8rem 3.6rem 0.8rem 1.2rem;
  font-family: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
  font-size: 2rem;
  color: var(--text-muted);
  letter-spacing: 0.05em;
  cursor: pointer;
  background: #fbf9f3;
  border: 1px solid var(--line-strong);
  border-radius: 0.8rem;
  -webkit-transition: border-color 0.25s ease;
  transition: border-color 0.25s ease;
}
@media screen and (max-width: 768px) {
  .contact__custom-select__trigger {
    font-size: 1.6rem;
  }
}
.contact__custom-select__trigger.is-selected {
  color: var(--text);
}
.contact__custom-select__trigger:focus {
  border-color: var(--green-dark);
  outline: none;
}
.contact__custom-select__trigger::after {
  position: absolute;
  top: 0;
  right: 1.6rem;
  bottom: 0;
  width: 0;
  height: 0;
  margin: auto 0;
  pointer-events: none;
  content: "";
  border-top: 0.6rem solid var(--text);
  border-right: 0.6rem solid transparent;
  border-left: 0.6rem solid transparent;
  -webkit-transition: -webkit-transform 0.25s ease;
  transition: -webkit-transform 0.25s ease;
  transition: transform 0.25s ease;
  transition: transform 0.25s ease, -webkit-transform 0.25s ease;
}
.contact__custom-select.is-open .contact__custom-select__trigger::after {
  -webkit-transform: rotate(180deg);
          transform: rotate(180deg);
}
.contact__custom-select__dropdown {
  position: absolute;
  top: calc(100% + 0.8rem);
  left: 0;
  z-index: 10;
  display: none;
  width: 100%;
  overflow: hidden;
  background: #fbf9f3;
  border: 1px solid var(--line-strong);
  border-radius: 0.8rem;
}
.contact__custom-select.is-open .contact__custom-select__dropdown {
  display: block;
}
.contact__custom-select__option {
  padding: 0.8rem 1.2rem;
  font-family: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
  font-size: 2rem;
  color: var(--text);
  letter-spacing: 0.05em;
  cursor: pointer;
  -webkit-transition: background-color 0.15s ease;
  transition: background-color 0.15s ease;
}
.contact__custom-select__option:not(:last-child) {
  border-bottom: 1px solid var(--line-strong);
}
.contact__custom-select__option:hover, .contact__custom-select__option.is-selected, .contact__custom-select__option.is-highlighted {
  background-color: var(--green-1);
}
@media screen and (max-width: 768px) {
  .contact__custom-select__option {
    font-size: 1.6rem;
  }
}
.contact__row fieldset {
  padding: 0;
  margin: 0;
  border: none;
}
.contact__row fieldset legend {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 0.8rem;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 0;
  -webkit-margin-after: 1rem;
          margin-block-end: 1rem;
  font-family: "Zen Kaku Gothic New", "Hiragino Kaku Gothic ProN", "Yu Gothic Medium", "Yu Gothic", system-ui, sans-serif;
  font-size: 2rem;
  line-height: 1;
  color: var(--text-muted);
  text-transform: uppercase;
}
@media screen and (max-width: 768px) {
  .contact__row fieldset legend {
    font-size: 1.6rem;
  }
}
.contact__checkbox-dropdown {
  position: relative;
  width: 100%;
}
.contact__checkbox-dropdown__trigger {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 100%;
  padding: 0.8rem 3.6rem 0.8rem 1.2rem;
  font-family: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
  font-size: 2rem;
  color: var(--text-muted);
  text-align: left;
  letter-spacing: 0.05em;
  cursor: pointer;
  background: #fbf9f3;
  border: 1px solid var(--line-strong);
  border-radius: 0.8rem;
  -webkit-transition: border-color 0.25s ease;
  transition: border-color 0.25s ease;
}
@media screen and (max-width: 768px) {
  .contact__checkbox-dropdown__trigger {
    font-size: 1.6rem;
  }
}
.contact__checkbox-dropdown__trigger.is-selected {
  color: var(--text);
}
.contact__checkbox-dropdown__trigger:focus {
  border-color: var(--green-dark);
  outline: none;
}
.contact__checkbox-dropdown__trigger::after {
  position: absolute;
  top: 0;
  right: 1.6rem;
  bottom: 0;
  width: 0;
  height: 0;
  margin: auto 0;
  pointer-events: none;
  content: "";
  border-top: 0.6rem solid var(--text);
  border-right: 0.6rem solid transparent;
  border-left: 0.6rem solid transparent;
  -webkit-transition: -webkit-transform 0.25s ease;
  transition: -webkit-transform 0.25s ease;
  transition: transform 0.25s ease;
  transition: transform 0.25s ease, -webkit-transform 0.25s ease;
}
.contact__checkbox-dropdown.is-open .contact__checkbox-dropdown__trigger::after {
  -webkit-transform: rotate(180deg);
          transform: rotate(180deg);
}
.contact__checkbox-dropdown__value {
  min-width: 0;
  overflow-wrap: break-word;
}
.contact__checkbox-dropdown__panel {
  position: absolute;
  top: calc(100% + 0.8rem);
  left: 0;
  z-index: 10;
  width: 100%;
}
.contact__checkbox-dropdown__panel .wpcf7-not-valid-tip {
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
}
.contact__checkbox-dropdown__panel .wpcf7-list-item {
  display: block;
  margin: 0;
}
.contact__checkbox-dropdown__panel .wpcf7-checkbox {
  display: none;
}
.contact__checkbox-dropdown__panel label {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 0.8rem;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 0.8rem 1.2rem;
  font-family: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
  font-size: 2rem;
  color: var(--text);
  text-transform: none;
  cursor: pointer;
}
@media screen and (max-width: 768px) {
  .contact__checkbox-dropdown__panel label {
    font-size: 1.6rem;
  }
}
.contact__checkbox-dropdown.is-open .contact__checkbox-dropdown__panel .wpcf7-checkbox {
  display: block;
  overflow: hidden;
  background: #fbf9f3;
  border: 1px solid var(--line-strong);
  border-radius: 0.8rem;
}
.contact__checkbox-dropdown input[type=checkbox] {
  position: relative;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 2rem;
  height: 2rem;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  cursor: pointer;
  background: #fbf9f3;
  border: 1px solid var(--line-strong);
  border-radius: 0.3rem;
  -webkit-transition: background-color 0.2s ease, border-color 0.2s ease;
  transition: background-color 0.2s ease, border-color 0.2s ease;
}
.contact__checkbox-dropdown input[type=checkbox]:checked {
  background: var(--accent);
  border-color: var(--accent);
}
.contact__checkbox-dropdown input[type=checkbox]:checked::before {
  position: absolute;
  top: 50%;
  left: 0.7rem;
  width: 0.6rem;
  height: 1.1rem;
  content: "";
  border-right: 2px solid var(--bg);
  border-bottom: 2px solid var(--bg);
  -webkit-transform: translateY(-70%) rotate(45deg);
          transform: translateY(-70%) rotate(45deg);
}
.contact__checkbox-dropdown input[type=checkbox]:focus-visible {
  outline: 2px solid var(--green-dark);
  outline-offset: 2px;
}
.contact__badge {
  display: inline-block;
  padding: 0.4rem 0.8rem;
  font-size: 1.6rem;
  line-height: 1;
  text-transform: none;
  overflow-wrap: break-word;
  border: 1px solid var(--line-strong);
  border-radius: 0.5rem;
}
.contact__badge--required {
  color: var(--accent);
  border-color: var(--accent);
}
@media screen and (max-width: 768px) {
  .contact__badge {
    font-size: 1.2rem;
  }
}
.contact__submit-wrap {
  position: relative;
  -ms-flex-item-align: center;
      align-self: center;
}
.contact__submit {
  padding-block: 1rem;
  padding-inline: 6rem;
  font-family: "Zen Kaku Gothic New", "Hiragino Kaku Gothic ProN", "Yu Gothic Medium", "Yu Gothic", system-ui, sans-serif;
  font-size: 2rem;
  color: var(--bg);
  overflow-wrap: break-word;
  -webkit-appearance: none;
  -moz-appearance: none;
       appearance: none;
  cursor: pointer;
  background: var(--accent-dark);
  border: 1px solid var(--accent-dark);
  border-radius: 20rem;
  -webkit-transition: background 0.25s ease, border-color 0.25s ease;
  transition: background 0.25s ease, border-color 0.25s ease;
}
@media (any-hover: hover) {
  .contact__submit:hover {
    background: var(--accent-hover);
    border-color: var(--accent-hover);
  }
}
@media screen and (max-width: 768px) {
  .contact__submit {
    padding-block: 0.5rem;
    padding-inline: 4rem;
    font-size: 1.8rem;
  }
}

#contact .wpcf7-spinner {
  position: absolute;
  top: 50%;
  left: 100%;
  margin: 0 0 0 1.2rem;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}

#contact .wpcf7-response-output {
  margin: 0 0 3.2rem;
  font-size: 1.8rem;
}

#contact form.sent .wpcf7-response-output {
  text-align: center;
  border-color: var(--accent-dark);
}

#contact form.invalid .wpcf7-response-output,
#contact form.unaccepted .wpcf7-response-output,
#contact form.payment-required .wpcf7-response-output {
  text-align: center;
  border-color: #c98f83;
}

#contact .wpcf7-list-item {
  margin: 0;
}

#contact .wpcf7-not-valid-tip {
  display: block;
  font-size: 1.6rem;
  color: #b3441f;
}

.p-contact-thanks {
  padding-top: 20rem;
  padding-bottom: 20rem;
  text-align: center;
}
@media screen and (max-width: 768px) {
  .p-contact-thanks {
    padding-top: 10rem;
  }
}
.p-contact-thanks__heading {
  margin: 0 0 1.6rem;
  font-size: 4rem;
  font-weight: 400;
}
@media screen and (max-width: 768px) {
  .p-contact-thanks__heading {
    font-size: 2.4rem;
  }
}
.p-contact-thanks__br {
  display: none;
}
@media screen and (max-width: 768px) {
  .p-contact-thanks__br {
    display: inline;
  }
}
.p-contact-thanks__text {
  margin: 0 0 4rem;
  color: var(--text-muted);
  text-align: left;
}

.p-404 {
  padding-top: 20rem;
  padding-bottom: 20rem;
  text-align: center;
}
@media screen and (max-width: 768px) {
  .p-404 {
    padding-top: 10rem;
  }
}
.p-404__code {
  margin: 0 0 2rem;
  font-family: "Jost", "Century Gothic", "Avenir Next", "Futura", system-ui, sans-serif;
  font-size: 10rem;
  font-weight: 300;
  color: var(--green-dark);
  letter-spacing: 0.05em;
}
.p-404__heading {
  margin: 0 0 1.6rem;
  font-size: 4rem;
  font-weight: 400;
}
@media screen and (max-width: 768px) {
  .p-404__heading {
    font-size: 3.2rem;
  }
}
@media screen and (max-width: 480px) {
  .p-404__heading {
    font-size: 2.8rem;
  }
}
@media screen and (max-width: 370px) {
  .p-404__heading {
    font-size: 2.4rem;
  }
}
.p-404__br {
  display: none;
}
@media screen and (max-width: 768px) {
  .p-404__br {
    display: inline;
  }
}
.p-404__text {
  margin: 0 0 4rem;
  color: var(--text-muted);
}

.p-privacy {
  padding: 0;
  -webkit-padding-before: 20rem;
          padding-block-start: 20rem;
  padding-inline: 15rem;
  -webkit-margin-after: 5rem;
          margin-block-end: 5rem;
  color: var(--text);
}
@media screen and (max-width: 1024px) {
  .p-privacy {
    padding-inline: 6rem;
  }
}
@media screen and (max-width: 768px) {
  .p-privacy {
    -webkit-padding-before: 10rem;
            padding-block-start: 10rem;
    padding-inline: 2.4rem;
  }
}
.p-privacy__heading {
  margin: 0 0 3.2rem;
  font-family: "Jost", "Century Gothic", "Avenir Next", "Futura", system-ui, sans-serif;
  font-size: 7.2rem;
  font-weight: 400;
  line-height: 1.1;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.2em;
}
@media screen and (max-width: 768px) {
  .p-privacy__heading {
    font-size: 3.6rem;
  }
}
.p-privacy__lead {
  margin: 0 0 8rem;
  font-size: 2rem;
  color: var(--text);
}
@media screen and (max-width: 768px) {
  .p-privacy__lead {
    font-size: 1.6rem;
  }
}
.p-privacy__body {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 7.2rem;
}
.p-privacy__block h2 {
  margin: 0 0 3.2rem;
  font-family: "Zen Kaku Gothic New", "Hiragino Kaku Gothic ProN", "Yu Gothic Medium", "Yu Gothic", system-ui, sans-serif;
  font-size: 4.8rem;
  font-weight: 400;
  color: var(--text);
  letter-spacing: 0.05em;
}
@media screen and (max-width: 768px) {
  .p-privacy__block h2 {
    font-size: 3.2rem;
  }
}
.p-privacy__block p {
  margin: 0;
  font-size: 2rem;
  color: var(--text);
}
@media screen and (max-width: 768px) {
  .p-privacy__block p {
    font-size: 1.6rem;
  }
}
.p-privacy__block > * + * {
  -webkit-margin-before: 1.6rem;
          margin-block-start: 1.6rem;
}
.p-privacy__block p + .p-privacy__ul {
  -webkit-margin-before: 3.2rem;
          margin-block-start: 3.2rem;
}
.p-privacy__ul {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0.8rem;
  padding: 0;
  margin: 0;
  list-style: none;
}
.p-privacy__ul li {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 0.8rem;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  font-size: 2rem;
  color: var(--text);
}
@media screen and (max-width: 768px) {
  .p-privacy__ul li {
    font-size: 1.6rem;
  }
}
.p-privacy__ul li::before {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 0.5rem;
  height: 0.5rem;
  margin-top: 0.9em;
  content: "";
  background: var(--text-muted);
  border-radius: 50%;
}
.p-privacy__ul a {
  color: var(--text);
  text-decoration: underline;
  text-underline-offset: 0.2em;
  -webkit-transition: color 0.25s ease;
  transition: color 0.25s ease;
}
@media (any-hover: hover) {
  .p-privacy__ul a:hover {
    color: var(--accent);
  }
}

.p-guidelines {
  padding: 0;
  -webkit-padding-before: 20rem;
          padding-block-start: 20rem;
  padding-inline: 15rem;
  -webkit-margin-after: 5rem;
          margin-block-end: 5rem;
  color: var(--text);
}
@media screen and (max-width: 1024px) {
  .p-guidelines {
    padding-inline: 6rem;
  }
}
@media screen and (max-width: 768px) {
  .p-guidelines {
    -webkit-padding-before: 10rem;
            padding-block-start: 10rem;
    padding-inline: 2.4rem;
  }
}
.p-guidelines__heading {
  margin: 0 0 3.2rem;
  font-family: "Jost", "Century Gothic", "Avenir Next", "Futura", system-ui, sans-serif;
  font-size: 7.2rem;
  font-weight: 400;
  line-height: 1.1;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.2em;
}
@media screen and (max-width: 768px) {
  .p-guidelines__heading {
    font-size: 3.6rem;
  }
}
.p-guidelines__tags {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 0.8rem;
  padding: 0;
  margin: 0 0 2.4rem;
  list-style: none;
}
.p-guidelines__tags a {
  display: block;
  padding: 1rem 2rem;
  font-size: 1.6rem;
  line-height: 1.5;
  color: var(--text);
  white-space: nowrap;
  background: var(--bg);
  border-radius: 99.9rem;
  -webkit-box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
          box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
  -webkit-transition: color 0.25s ease;
  transition: color 0.25s ease;
}
@media screen and (max-width: 768px) {
  .p-guidelines__tags a {
    padding: 0.8rem 1.6rem;
    font-size: 1.4rem;
  }
}
@media (any-hover: hover) {
  .p-guidelines__tags a:hover {
    color: var(--accent);
  }
}
.p-guidelines__figure {
  margin: 1.6rem 0 0;
}
.p-guidelines__figure img {
  border: 1px solid var(--line);
  border-radius: 0.8rem;
}
.p-guidelines__lead {
  margin: 0 0 8rem;
  font-size: 2rem;
  color: var(--text);
}
@media screen and (max-width: 768px) {
  .p-guidelines__lead {
    font-size: 1.6rem;
  }
}
.p-guidelines__body {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 7.2rem;
}
.p-guidelines__block h2 {
  margin: 0 0 3.2rem;
  font-family: "Zen Kaku Gothic New", "Hiragino Kaku Gothic ProN", "Yu Gothic Medium", "Yu Gothic", system-ui, sans-serif;
  font-size: 4.8rem;
  font-weight: 400;
  color: var(--text);
  letter-spacing: 0.05em;
}
@media screen and (max-width: 768px) {
  .p-guidelines__block h2 {
    font-size: 3.2rem;
  }
}
.p-guidelines__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 2.8rem;
}
.p-guidelines__item h3 {
  margin: 0 0 0.8rem;
  font-size: 2.4rem;
  font-weight: 500;
  color: var(--text);
}
@media screen and (max-width: 768px) {
  .p-guidelines__item h3 {
    font-size: 1.8rem;
  }
}
.p-guidelines__item p {
  margin: 0;
  font-size: 2rem;
  color: var(--text);
}
@media screen and (max-width: 768px) {
  .p-guidelines__item p {
    font-size: 1.6rem;
  }
}
.p-guidelines__item p code {
  font-family: "Century Gothic", "Avenir Next", "Futura", system-ui, sans-serif;
  white-space: nowrap;
}
.p-guidelines__code {
  padding: 1.6rem 2rem;
  margin: 1.2rem 0 0;
  overflow-x: auto;
  font-family: monospace;
  font-size: 1.8rem;
  line-height: 1.6;
  color: var(--text);
  white-space: pre;
  background: rgba(255, 255, 255, 0.6);
  border: 1px solid var(--line-strong);
  border-radius: 0.8rem;
}
@media screen and (max-width: 768px) {
  .p-guidelines__code {
    padding: 1.2rem 1.4rem;
    font-size: 1.4rem;
  }
}
.p-guidelines__code code {
  font-family: inherit;
  letter-spacing: 0;
}

.p-service {
  padding: 0;
  -webkit-padding-before: 20rem;
          padding-block-start: 20rem;
  padding-inline: 15rem;
  -webkit-margin-after: 5rem;
          margin-block-end: 5rem;
  color: var(--text);
}
@media screen and (max-width: 1024px) {
  .p-service {
    padding-inline: 6rem;
  }
}
@media screen and (max-width: 768px) {
  .p-service {
    -webkit-padding-before: 10rem;
            padding-block-start: 10rem;
    padding-inline: 2.4rem;
  }
}
.p-service {
  padding-inline: 6rem;
}
@media screen and (max-width: 768px) {
  .p-service {
    -webkit-padding-before: 10rem;
            padding-block-start: 10rem;
    padding-inline: 2.4rem;
    -webkit-margin-after: 2.4rem;
            margin-block-end: 2.4rem;
  }
}
.p-service__heading {
  margin: 0 0 3.2rem;
  font-family: "Jost", "Century Gothic", "Avenir Next", "Futura", system-ui, sans-serif;
  font-size: 7.2rem;
  font-weight: 400;
  line-height: 1.1;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.2em;
}
@media screen and (max-width: 768px) {
  .p-service__heading {
    font-size: 3.6rem;
  }
}
@media screen and (max-width: 768px) {
  .p-service__heading {
    -webkit-margin-after: 2.4rem;
            margin-block-end: 2.4rem;
  }
}
.p-service__lead {
  margin: 0 0 4rem;
  font-size: 2rem;
  color: var(--text);
}
@media screen and (max-width: 768px) {
  .p-service__lead {
    -webkit-margin-after: 2rem;
            margin-block-end: 2rem;
    font-size: 1.6rem;
  }
}
.p-service__overview .service__request-title {
  font-size: 3.2rem;
  text-align: center;
}
@media screen and (max-width: 768px) {
  .p-service__overview .service__request-title {
    -webkit-margin-after: 4rem;
            margin-block-end: 4rem;
    font-size: 2.4rem;
  }
}
@media screen and (max-width: 370px) {
  .p-service__overview .service__request-title {
    font-size: 2rem;
  }
}
.p-service__overview {
  -webkit-margin-after: 8rem;
          margin-block-end: 8rem;
}
@media screen and (max-width: 768px) {
  .p-service__overview {
    -webkit-margin-after: 4.8rem;
            margin-block-end: 4.8rem;
  }
}
.p-service__body {
  min-width: 0;
  margin: 0;
}
.p-service__body .service__info-row {
  display: grid;
  grid-template-columns: 18rem 1fr;
  gap: 0 3.2rem;
  -webkit-box-align: baseline;
      -ms-flex-align: baseline;
          align-items: baseline;
  padding-block: 8rem 0;
  scroll-margin-top: 15rem;
}
@media screen and (max-width: 1024px) {
  .p-service__body .service__info-row {
    grid-template-columns: 1fr;
    gap: 0.6rem;
  }
}
.p-service__body .service__info-row--wide {
  grid-template-columns: 1fr;
  gap: 1.2rem;
}
.p-service__body .service__info-title {
  font-size: 3.2rem;
}
@media screen and (max-width: 768px) {
  .p-service__body .service__info-title {
    font-size: 2.4rem;
  }
}
@media screen and (max-width: 370px) {
  .p-service__body .service__info-title {
    font-size: 2rem;
  }
}
.p-service__body .service__info-lead {
  font-size: 1.6rem;
}
@media screen and (max-width: 768px) {
  .p-service__body .service__info-row {
    -webkit-padding-before: 4.8rem;
            padding-block-start: 4.8rem;
  }
  .p-service__body .service__info-row:first-child {
    -webkit-padding-before: 0;
            padding-block-start: 0;
  }
}