@charset "UTF-8";
/* =========================================================
   FLEI / ILFE LP
   - 2026-06: PC全体のサイズ感を約90%へ調整
   - PC first
   - PC基準の共通CSS
   - レスポンシブ差分は assets/css/responsive.css に分離
   - フォントサイズは仕様書のpx指定を優先
========================================================= */ :root {
  --black: #111111;
  --white: #ffffff;
  --text: #333333;
  --cream: #f6f4ef;
  --cream2: #faf9f5;
  --yellow: #f2e900;
  --blue: #52c3f1;
  --pink: #c58bc3;
  --red: #ef5b61;
  --gold: #b98b2e;
  --line: #e8e6e0;
  --gray: #f4f4f4;
  --shadow: 0 19.8px 45px rgba(53, 43, 34, .12);
  --font-ja: "Zen Kaku Gothic New", sans-serif;
  --font-en: "Afacad Flux", sans-serif;
  --font-title: "ads-hikari", "Zen Kaku Gothic New", sans-serif;
}
* {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
}
body {
  margin: 0;
  color: var(--text);
  font-family: var(--font-ja);
  font-size: 14.4px;
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: .04em;
  background: #fff;
  overflow-x: hidden;
}
body.is-scroll-locked {
  overflow: hidden;
}
a {
  color: inherit;
  text-decoration: none;
}
img {
  max-width: 100%;
  height: auto;
  vertical-align: middle;
}
button, input, select, textarea {
  font: inherit;
  color: inherit;
}
button {
  appearance: none;
  cursor: pointer;
}
.l-container {
  width: min(1332px, calc(100% - 36px));
  margin-inline: auto;
}
.hikari {
  font-family: var(--font-title);
}
.afacad {
  font-family: var(--font-en);
}
/* =========================================================
   Header
========================================================= */
.site-header {
  position: absolute;
  left: 0;
  top: 0;
  z-index: 40;
  width: 100%;
  height: auto;
  background: rgba(255, 255, 255, .95);
}
.site-header__inner {
  width: calc(100% - 40px);
  height: 90px;
  margin-inline: auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 25.2px;
  padding-right: 360px;
  max-width: 1600px;
}
.site-header__logo {
  display: block;
  width: 324px;
  line-height: 0;
}
.site-header__nav {
  display: flex;
  align-items: center;
  gap: 30.6px;
  font-size: 14.4px;
  font-weight: 700;
  line-height: 1.4;
  color: #000;
  white-space: nowrap;
}
.site-header__nav-link {
  position: relative;
  padding: 16.2px 0;
}
.site-header__nav-link::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 10.8px;
  height: 2.7px;
  border-radius: 899.1px;
  background: linear-gradient(90deg, var(--red), var(--yellow), var(--blue));
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .24s;
}
.site-header__nav-link:hover::after {
  transform: scaleX(1);
}
.site-header__menu {
  display: none;
}
.fixed-contact {
  position: fixed;
  right: 27px;
  bottom: 27px;
  z-index: 35;
  width: 225px;
  filter: drop-shadow(0 9px 16.2px rgba(0, 0, 0, .18));
  opacity: 0;
  visibility: hidden;
  transform: translateY(21.6px);
  pointer-events: none;
  transition: opacity .45s ease, visibility .45s ease, transform .45s ease;
}
.fixed-contact.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  pointer-events: auto;
}
.fixed-contact.is-hidden {
  opacity: 0;
  visibility: hidden;
  transform: translateY(21.6px);
  pointer-events: none;
}
.fixed-contact.is-visible:hover {
  transform: translateY(-3.6px);
}

.fixed-contact img{
  width: 100%;
}
/* =========================================================
   FV
========================================================= */
.fv {
  position: relative;
  padding-top: 90px;
  background: #fff;
  overflow: hidden;
}
.fv__visual {
    position: initial;
    width: 100%;
    height: auto;
    overflow: hidden;
}
.fv__visual img {
  width: calc(100% - 40px);
  height: auto;
  object-fit: cover;
  object-position: center top;
  max-width: 1600px;
  margin: auto;
  display: block;
}
.fv__brand {
  position: absolute;
  right: 0px;
  top: 0px;
  z-index: 55;
  width: 355.5px;
  padding:27px;
  background: #ffffff;
  border-radius:0 0 0 27px;
}
.fv__catch {
  position: absolute;
  left: 50%;
  top: 45%;
  z-index: 2;
  width: min(586.8px, 84vw);
  margin: 0;
  transform: translateX(-50%) !important;
}
/* =========================================================
   Common heading
   仕様書: .section-heading__ja PC 66px / SP 34px → PC表示は今回約90%化して59.4px
========================================================= */
.section-heading {
  text-align: center;
  color: #000;
}
.section-heading__obj {
  display: block;
  width: 64.8px;
  margin: 0 auto 10.8px;
}
.section-heading__en {
  margin-top: 20px;
  color: var(--red);
  font-family: var(--font-en);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: .1em;
}
.section-heading__ja {
  margin: 0;
  font-family: var(--font-title);
  font-size: 59.4px;
  font-weight: 400;
  line-height: 1.35;
  letter-spacing: .02em;
}
.section-heading--white {
  color: #fff;
}
.section-heading--white .section-heading__en {
  color: #fff;
}
/* =========================================================
   Two Approaches
========================================================= */
.approaches {
  position: relative;
  margin: 60px 18px 0;
  padding: 91.8px 0 106.2px;
  background: var(--cream);
  border-radius: 16.2px;
}
.approaches__inner {
  position: relative;
  z-index: 2;
}
.approaches__decor {
  position: absolute;
  z-index: 1;
  pointer-events: none;
}
.approaches__decor--left {
  left: -153px;
  top: 395px;
  width: 378px;
}
@media screen and (min-width:1350px){
.approaches__decor--left {
    left: -23px;
    top: 395px;
    width: 378px;
}
}
.approaches__decor--right {
  right: -18px;
  top: 85.5px;
  width: 270px;
}
.approaches__body {
  text-align: center;
  margin-top: 72px;
}
.approaches__lead {
  margin: 0;
  font-size: 28.8px;
  font-weight: 700;
  line-height: 2;
  color: #000;
}
.approaches__sublead {
  margin: 9px 0 45px;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.8;
  color: #000;
}
.approaches__text {
  max-width: 630px;
  margin: 0 auto 12.6px;
  font-size: 16.2px;
  font-weight: 500;
  line-height: 2.75;
  color: #000;
}
.approaches__logo-img {
  display: block;
  width: 324px;
  margin: 49.5px auto 0;
}

.approaches__text.pt02:before{
  content:" ";
  width: 45px;
  height: 1px;
  background: #000000;
  display: inline-block;
  position: relative;
  top:-5.4px;
  margin-right: 2.7px;
}
/* =========================================================
   Therapy / Program
========================================================= */
.therapy {
  position: relative;
  background: #fff;
}
.therapy > .section-heading {
  position: relative;
  z-index: 2;
  margin-bottom: -27px;
  padding-top: 81px;
}
.program {
  position: relative;
  margin-top:216px;
  padding: 0 0 310px;
  background-color:rgba(239 232 0 / 100%);
}

.program-bg{
  position: absolute;
  width: 100%;
  top:-15vw;
  height: auto;
}

.program--ilfe {
  background-color: var(--blue);
  margin-top: 0;
  padding-top: 130px;
}
.program__wave {
  display: none;
}
.program__panel {
  position: relative;
  z-index: 2;
  margin-inline: auto;
  background: #fff;
  border-radius: 14.4px;
  padding: 55.8px 64.8px 70px;
  box-shadow: var(--shadow);
}
.program__label {
  width: max-content;
  margin: 0 auto 16.2px;
  padding: 6.3px 25.2px;
  border-radius: 899.1px;
  background: #fff;
  font-size: 23.4px;
  font-weight: 700;
  line-height: 1.4;
  color: #000;
  display: flex;
  align-content: center;
}
.program__logo {
  max-width: 558px;
  margin: 0 auto 32.4px;
  text-align: center;
}
.program__content {
  display: grid;
  grid-template-columns: 1fr 468px;
  align-items: center;
  gap: 36px;
  max-width: 1170px;
  margin: auto;
}
.program__concept-en {
  position: relative;
  margin: 0 0 8.1px;
  font-family: var(--font-en);
  font-size: 21.6px;
  font-weight: 700;
  line-height: 1.2;
  color: #c7c7c7;
}

.program__concept-title {
  margin: 0 0 22.5px;
  font-size: 36px;
  font-weight: 700;
  line-height: 1.7;
  letter-spacing: .02em;
  color: #000;
  padding-bottom: 22.5px;
  border-bottom: 1px solid #000000;
}
.program__text {
  margin: 0;
  font-size: 16.2px;
  font-weight: 500;
  line-height: 1.9;
  color: #333;
}
.program__photo {
  margin: 0;
}
.program__photo img {
  border-radius: 9px;
}
.program__thought {
  margin-top: 65px;
  padding: 60px 30.6px 70px;
  background: var(--cream2);
  border-radius: 10.8px;
  text-align: center;
}
.program__thought-title {
  display: inline-block;
  margin: 0 0 27px;
  padding: 0 18px;
  font-size: 21.6px;
  font-weight: 700;
  line-height: 1.5;
  color: #000;
}
.program--ilfe .program__thought-title {
  border-bottom-color: var(--blue);
}
.program-keyword {
  list-style: none;
  margin: 0 0 18px;
  padding: 0;
  display: flex;
  justify-content: center;
  gap:72px;
  flex-wrap: wrap;
  align-items: center;
}
.program-keyword li {
  position: relative;
  width: 180px;
  aspect-ratio: 1/1;
  padding: 12.6px 9px;
  border: 9px solid var(--line);
  border-radius: 50%;
  background: #fff;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  font-size: 14.4px;
  font-weight: normal;
  line-height: 1.4;
  color: #000;
}

.program-keyword li:not(:last-child):after{
  content:"+";
  font-size: 22.5px;
  position: absolute;
  right: -54px;
  top:50%;
  transform: translateY(-50%);
}
.program-keyword span {
  display: block;
  font-family: var(--font-en);
  font-size: 27px;
  font-weight: 700;
  line-height: 1.5;
}

.program-b-bg,
.program-last,
.contact-bg{
  position: absolute;
  bottom:-8vw;
  width: 100%;
}

.program__thought-text {
  max-width: 828px;
  margin: 0 auto;
  font-size: 14.4px;
  font-weight: 500;
  line-height: 1.9;
  text-align: left;
  color: #333;
}
.program-list {
  position: relative;
  z-index: 2;
  max-width: 1134px;
  margin: 90px auto 0;
}
.program-list__heading {
  margin: 0 0 45px;
  text-align: center;
  font-family: var(--font-title);
  font-size: 32.4px;
  font-weight: 400;
  line-height: 1.35;
  color: #000;
}
.program-card-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 14.4px;
}
.program-card {
  position: relative;
  min-height: 220.5px;
  padding: 37.8px 12.6px 49.5px;
  background: #fff;
  border-radius: 18px;
  text-align: center;
  box-shadow: 0 12.6px 21.6px rgba(0, 0, 0, .08);
}
.program-card__num {
  position: absolute;
  left: 50%;
  top: -28.8px;
  display: grid;
  place-items: center;
  width: 43.2px;
  height: 46.8px;
  transform: translateX(-50%);
  background: url(../images/program-list-num.webp) bottom / contain no-repeat;
  font-family: var(--font-en);
  font-size: 21.6px;
  font-weight: 700;
  line-height: 1;
  color: #000;
  background-color: #efe800;
  border-radius: 90px;
}
.program-card img {
  width: 99px;
  margin-bottom: 9px;
}
.program-card h4 {
  margin: 7.2px 0 13.5px;
  font-size: 19.8px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: .01em;
  color: #000;
  min-height: 2.5em;
  display: grid;
  align-items: center;
}
.program-card p {
  margin: 0;
  font-size: 14.4px;
  font-weight: 500;
  line-height: 1.7;
  color: #333;
  text-align: left;
}

.program--ilfe .program-card__num{
  background-color: #52c3f1;
}
/* Gallery */
.program-gallery {
  padding: 130px 0 150px;
  background: #fff;
  overflow: hidden;
}

.program-gallery__track {
  display: flex;
  gap: 28.8px;
  width: max-content;
  animation: galleryFlow 34s linear infinite;
  will-change: transform;
  align-items: flex-start;
}

.program-gallery__track img {
  flex: 0 0 auto;
  width: 378px;
  aspect-ratio: 420 / 550;
  object-fit: contain;
  border-radius: 9px;
}

.program-gallery__track img:nth-child(even) {
  margin-top: 65px;
}

/* 画像を2セット入れている前提で、1セット分だけ左に流す */
@keyframes galleryFlow {
  0% {
    transform: translate3d(calc(-50% - 14.4px), 0, 0);
  }
  100% {
    transform: translate3d(0, 0, 0);
  }
}
/* =========================================================
   Office
========================================================= */
.section-light {
  background: var(--cream);
}
.office {
  margin: 0 18px;
  padding: 100px 0;
  border-radius: 16.2px;
}
.office-grid {
  width: min(1134px, 100%);
  margin: 37.8px auto 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 41.4px 52.2px;
}
.office-card {
  position: relative;
  display: grid;
  grid-template-rows: auto 1fr;
  padding: 27px;
  background: #fff;
  border-radius: 0 18px 18px 0;
  border-left: 4.5px solid var(--red);
  box-shadow: 0 14.4px 27px rgba(0, 0, 0, .05);
}
.office-card--gold {
  border-left-color: var(--gold);
}
.office-card--yellow {
  border-left-color: #f0b400;
}
.office-card--purple {
  border-left-color: #c688c5;
}
.office-card > img {
  width: 100%;
  height: 270px;
  object-fit: cover;
  border-radius: 8.1px;
}
.office-card__body {
  position: relative;
  padding: 30.6px 0 0;
}
.office-card__info{
  display: flex;
  gap:18px;
}
.office-card__logo {
  position: absolute;
  right: 12.6px;
  top: -32.4px;
  width: 63px;
}
.office-card h3 {
  margin: 0 0 9px;
  font-size: 25.2px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0;
  color: #000;
}
.office-card__address {
  margin: 0 0 4.5px;
  font-size: 14.4px;
  font-weight: 500;
  line-height: 1.7;
  color: #333;
  letter-spacing: 0;
}
.office-card__contact {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10.8px;
  margin-top: 16.2px;
}
.office-card__contact span {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 49.5px;
  border: 1px solid #e7e7e7;
  border-radius: 899.1px;
  background: #fff;
  font-family: var(--font-en), var(--font-ja);
  font-size: 23.4px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: .02em;
  box-shadow: 0 3.6px 1px rgba(0, 0, 0, .035);
}
.office-card__contact b {
  margin-right: 6.3px;
  color: #e85b5f;
  font-size: 12.6px;
}

.office-card:nth-child(2) .office-card__contact b {
  color:var(--gold);
}

.office-card:nth-child(3) .office-card__contact b {
  color:#f0b400;
}

.office-card:nth-child(4) .office-card__contact b {
  color:#c688c5;;
}
/* =========================================================
   Flow / Download
========================================================= */
.flow {
  padding: 88.2px 0 79.2px;
  background: #fff;
}
.flow-list {
  counter-reset: flow;
  list-style: none;
  width: min(1134px, 100%);
  margin: 57.6px auto 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 21.6px;
}
.flow-card {
  position: relative;
  text-align: center;
}
.flow-card::after {
  content: "";
  position: absolute;
  right: -15.6px;
  top: 65px;
  width: 10px;
  height: 20px;
  background: #fedb2e;
  clip-path: polygon(0 0, 0% 100%, 100% 50%);
}
.flow-card:last-child::after {
  display: none;
}
.flow-card img {
  width: 100%;
  height: 144px;
  object-fit: cover;
  border-radius: 20px;
}
.flow-card__num {
  display: grid;
  place-items: center;
  width: 49.5px;
  height: 49.5px;
  margin: -19.8px auto 9px;
  border-radius: 50%;
  background: url(../images/program-list-num.webp) bottom / contain no-repeat;
  background-color: #fff;
  color: #000000;
  font-family: var(--font-en);
  font-size: 21.6px;
  font-weight: 700;
  line-height: 1;
  position: absolute;
  z-index: 4;
  top:-9px;
  left: 50%;
  transform: translateX(-50%);
}
.flow-card h3 {
  margin: 31.5px 0 13.5px;
  font-size: 19.8px;
  font-weight: 700;
  line-height: 1.5;
  color: #000;
}
.flow-card p {
  margin: 0;
  font-size: 14.4px;
  font-weight: 500;
  line-height: 1.7;
  text-align: left;
  color: #333;
}
.download-box {
  margin: 108px auto 0;
  padding: 67.5px 85.5px;
  background: #f7f7f7;
  border-radius: 12.6px;
  text-align: center;
  display: grid;
  grid-template-columns: 216px 1fr;
  gap: 27px;
  align-items: center;
}

.download-box__title {
    font-family: var(--font-title);
    font-size: 27px;
    font-weight: 400;
    line-height: 1.4;
    color: #000;
    text-align: left;
    display: flex;
    align-items: center;
  position: relative;
}

.download-box__title:before{
    content: " ";
    display: inline-block;
    background: #fedb2e;
    height: 27px;
    width: 4.5px;
    margin-right: 10.8px;
    position: relative;
}

.download-box__title:after{
    content: " ";
    display: inline-block;
    height: 90px;
    width: 1px;
    border-right: 1px dotted #000000;
    position: absolute;
    top: -22.5px;
    right: -13.5px;
}
.download-box__buttons {
  display: flex;
  justify-content: center;
  gap: 19.8px;
  flex-wrap: wrap;
}
.download-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 50.4px;
  padding: 23.4px 34.2px;
  border-radius: 899.1px;
  background: #111;
  color: #fff;
  font-size: 16.2px;
  font-weight: 700;
  line-height: 1.4;
  position: relative;
  width: 48%;
  box-shadow: 0 3.6px 14.4px rgba(0, 0, 0, .2);
}
.download-btn::after {
  content: "";
  width: 39.6px;
  height: 39.6px;
  margin-left: 12.6px;
  background: url('../images/btn-icon.webp') center/contain no-repeat;
  position: absolute;
  right: 18px;
  top:50%;
  transform: translateY(-50%);
}
/* =========================================================
   CTA / Company
========================================================= */
.cta {
  position: relative;
  padding: 0 18px 86.4px;
  background: #fff;
  overflow: hidden;
}
.cta__bg {
  position: relative;
  height: 600px;
  border-radius: 14.4px;
  overflow: hidden;
}
.cta__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 42%;
}
.cta__inner {
  position: relative;
  max-width: 1134px;
  margin: -180px auto 0;
  padding: 100px 36px 100px;
  background: #fff;
  border-radius: 9px;
  text-align: center;
  box-shadow: none;
}
.cta__inner::before {
  content: "";
  position: absolute;
  inset: -9.9px;
  border-radius: 10.8px;
  background: url('../images/cta-wrap.webp') center/100% 100% no-repeat;
  z-index: -1;
}
.cta__en {
  margin: 0 0 7.2px;
  font-family: var(--font-en);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.2;
  color: #000;
  letter-spacing: .08em;
}
.cta__title {
  margin: 0 0 21.6px;
  font-family: var(--font-title);
  font-size: 45px;
  font-weight: 400;
  line-height: 1.45;
  color: #000;
  letter-spacing: .06em;
}
.cta__text {
  margin: 0 0 28.8px;
  font-size: 16.2px;
  font-weight: 500;
  line-height: 1.8;
  color: #333;
}
.cta__actions {
  display: flex;
  justify-content: center;
  gap: 39.6px;
  flex-wrap: wrap;
}
.cta__button, .cta__tel {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 306px;
  min-height:72px;
  border-radius: 899.1px;
  font-size: 16.2px;
  font-weight: 700;
  line-height: 1;
  color: #fff;
  background: #111;
  position: relative;
}

.cta__button{
  padding-right: 36px;
}

.cta__button img{
  position: absolute;
  top:50%;
  transform: translateY(-50%);
  right: 18px;
}
.cta__tel {
  gap: 10.8px;
  color: #000;
  background: #fff;
  border: 1px solid #e3e3e3;
  box-shadow: 0 3.6px 14.4px rgba(0, 0, 0, .04);
  font-family: var(--font-en);
  font-size: 27px;
}
.cta__tel span {
  font-size: 14.4px;
  color: #bdbdbd;
}
.company {
  padding: 79.2px 0 290px;
  background: #fff;
  position: relative;
}
.company-table {
  width: min(738px, 100%);
  margin: 48.6px auto 0;
  border-collapse: collapse;
  border-top: 1px solid #dedede;
  z-index: 5;
  position: relative;
}
.company-table th, .company-table td {
  padding: 24.3px 32.4px;
  border-bottom: 1px solid #dedede;
  font-size: 13.5px;
  line-height: 1.8;
  vertical-align: middle;
}
.company-table th {
  width: 189px;
  background: #f5f5f5;
  text-align: center;
  font-weight: 700;
  color: #000;
}
.company-table td {
  text-align: left;
  font-weight: 500;
  color: #333;
  background: #ffffff;
}
/* =========================================================
   Contact / Form
========================================================= */
.contact {
  position: relative;
  padding: 21.6px 0 125px;
  background-color: #c28bbc;
  background-repeat: no-repeat;
  background-position: top center;
  background-size: 100% auto;
}
.contact__wave {
  display: none;
}
.contact-form {
  margin: 50.4px auto 0;
  padding: 68.4px 115.2px 64.8px;
  background: #fff;
  border-radius: 15.3px;
  box-shadow: none;
}
.contact__lead {
  margin: 0 0 48.6px;
  font-size: 14.4px;
  font-weight: 500;
  line-height: 1.8;
  color: #333;
  text-align: center;
}
.form-row {
  display: grid;
  grid-template-columns: 315px 1fr;
  gap: 28.8px;
  padding: 21.6px 0;
  border-bottom: 1px solid #e4e4e4;
  align-items: center;
  min-height: 117px;
}
.form-head {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 10.8px;
  align-items: center;
}
.form-label {
  font-size: 14.4px;
  font-weight: 700;
  line-height: 1.5;
  color: #000;
}
.form-required {
  display: inline-grid;
  place-items: center;
  min-width: 27px;
  height: 16.2px;
  padding: 1.8px 4.5px;
  background: #ff5962;
  color: #fff;
  font-size: 9px;
  font-weight: 700;
  line-height: 1;
}
.form-field--inline {
  display: flex;
  gap: 18px 30.6px;
  flex-wrap: wrap;
  align-items: center;
}
.form-input, .form-select, .form-textarea {
  width: 100%;
  border: 0;
  border-radius: 0;
  background: #f4f4f4;
  font-size: 13.5px;
  font-weight: 500;
  line-height: 1.5;
}
.form-input, .form-select {
  height: 67.5px;
  padding: 0 16.2px;
}

.form-select-wrap {
  position: relative;
  width: 315px;
}

.form-select {
  width: 100%;
  height: 64px;
  padding: 0 56px 0 24px;
  border: none;
  border-radius: 0;
  background: #f7f7f7;
  font-size: 16px;
  color: #333;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  cursor: pointer;
}

.form-select-wrap::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 15px;
  width: 0;
  height: 0;
  border-left: 5px solid transparent;
  border-right: 5px solid transparent;
  border-top: 8px solid #000;
  transform: translateY(-50%);
  pointer-events: none;
}
.form-textarea {
  min-height: 270px;
  padding: 16.2px;
  resize: vertical;
}
.form-input::placeholder, .form-textarea::placeholder {
  color: #bdbdbd;
}
.radio, .checkbox {
  display: inline-flex;
  align-items: center;
  gap: 7.2px;
  font-size: 13.5px;
  font-weight: 500;
  line-height: 1.5;
  color: #000;
}
.radio input, .checkbox input {
  width: 16.2px;
  height: 16.2px;
  accent-color: #111;
}
.form-error {
  display: none;
  width: 100%;
  margin: 5.4px 0 0;
  color: #e33;
  font-size: 10.8px;
  font-weight: 700;
  line-height: 1.5;
}
.form-error:not(:empty) {
  display: block;
}
.form-input[aria-invalid="true"],
.form-select[aria-invalid="true"],
.form-textarea[aria-invalid="true"] {
  border-color: #e33;
  background-color: #fff8f8;
}
.radio input[aria-invalid="true"],
.checkbox input[aria-invalid="true"] {
  outline: 1.8px solid #e33;
  outline-offset: 1.8px;
}
.form-privacy {
  width: min(882px, 100%);
  margin: 48.6px auto 0;
  padding: 27px 34.2px;
  border: 1px solid #111;
  text-align: center;
}
.form-privacy p {
  margin: 0 0 16.2px;
  font-size: 12.6px;
  font-weight: 500;
  line-height: 1.8;
  color: #333;
}
.form-privacy a {
  color: #38a9d5;
  text-decoration: underline;
}
.form-submit {
  text-align: center;
  margin-top: 30.6px;
}
.submit-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10.8px;
  min-width: 306px;
  height: 72px;
  border: 0;
  border-radius: 899.1px;
  background: #000;
  color: #fff;
  font-size: 16.2px;
  font-weight: 700;
  line-height: 1;
  padding-right: 36px;
  position: relative;
}

.submit-button span{
  position: absolute;
  right: 18px;
  top:50%;
  transform: translateY(-50%);
}
.form-message {
  margin: 12.6px 0 0;
  font-size: 12.6px;
  text-align: center;
}
.hp-field {
  position: absolute;
  left: -8999.1px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}
/* Confirm modal */
.confirm-modal {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 21.6px;
}
.confirm-modal.is-open {
  display: flex;
}
.confirm-modal__bg {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, .55);
}
.confirm-modal__panel {
  position: relative;
  z-index: 1;
  width: min(738px, 100%);
  max-height: 90vh;
  overflow: auto;
  background: #fff;
  border-radius: 10.8px;
  padding: 32.4px;
}
.confirm-modal__close {
  position: absolute;
  right: 14.4px;
  top: 14.4px;
  width: 32.4px;
  height: 32.4px;
  border: 0;
  background: #f1f1f1;
  border-radius: 50%;
  font-size: 19.8px;
}
.confirm-list {
  display: grid;
  gap: 0;
  margin: 19.8px 0;
  border-top: 1px solid #ddd;
}
.confirm-list > div {
  display: grid;
  grid-template-columns: 162px 1fr;
  border-bottom: 1px solid #ddd;
}
.confirm-list dt, .confirm-list dd {
  margin: 0;
  padding: 11.7px 14.4px;
  font-size: 12.6px;
  line-height: 1.7;
}
.confirm-list dt {
  background: #f7f7f7;
  font-weight: 700;
}
.confirm-actions {
  display: flex;
  justify-content: center;
  gap: 14.4px;
  flex-wrap: wrap;
}
.confirm-back {
  min-width: 144px;
  height: 45px;
  border: 1px solid #111;
  border-radius: 899.1px;
  background: #fff;
  font-weight: 700;
}
/* =========================================================
   Footer
========================================================= */
.site-footer {
  padding: 72px 0;
  background: var(--cream);
  margin: auto;
  margin-top: 72px;
  width: calc(100% - 36px);
  border-radius: 18px 18px 0 0;
}
.site-footer__inner {
  display: grid;
  grid-template-columns: 297px 1fr;
  align-items: center;
  gap: 30.6px;
  margin: auto;
  max-width:1000px;
  margin-bottom: 72px;
}
.site-footer__logo img {
  width: 297px;
}
.footer-nav {
  display: grid;
  justify-content: center;
  gap: 30.6px;
  flex-wrap: wrap;
  font-size: 14.4px;
  font-weight: 700;
  line-height: 1.6;
  color: #000;
  margin-bottom: 27px;
  width: 450px;
  justify-self: flex-end;
  grid-template-columns: repeat(3,1fr);
  position: relative;
  right: -67.5px;
}

.footer-nav a{
  display: block;
  position: relative;
}

.footer-nav a:before{
  content:" ";
  background: url("../images/foot-icon.webp");
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  height: 23.4px;
  width: 23.4px;
  position: absolute;
  left: -36px;
  top:50%;
  transform: translateY(-50%);
  display: block;
}

.to-top {
  display: block;
  line-height: 0;
  text-align: right;
}
.site-footer__copy {
  grid-column: 1/-1;
  margin: 10.8px 0 0;
  font-family: var(--font-en);
  font-size: 9.9px;
  font-weight: 500;
  line-height: 1.4;
  text-align: center;
  color: #333;
  padding-top: 72px;
  border-top:1px dashed #cccccc;
}
/* =========================================================
   Animation
========================================================= */
.js-fv-item {
  opacity: 0;
  transform: translateY(16.2px);
  transition: opacity .7s ease, transform .7s ease;
}
.is-loaded .js-fv-item {
  opacity: 1;
  transform: translateY(0);
}
.is-loaded .js-fv-item:nth-of-type(2) {
  transition-delay: .15s;
}
.js-fadeup, .js-fadeup-stagger > * {
  opacity: 0;
  transform: translateY(25.2px);
  transition: opacity .75s ease, transform .75s ease;
}
.js-fadeup.is-show, .js-fadeup-stagger.is-show > * {
  opacity: 1;
  transform: translateY(0);
}
.js-fadeup-stagger.is-show > *:nth-child(2) {
  transition-delay: .08s;
}
.js-fadeup-stagger.is-show > *:nth-child(3) {
  transition-delay: .16s;
}
.js-fadeup-stagger.is-show > *:nth-child(4) {
  transition-delay: .24s;
}
.js-fadeup-stagger.is-show > *:nth-child(5) {
  transition-delay: .32s;
}
@media (prefers-reduced-motion:reduce) {
  *, *::before, *::after {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }
  .js-fv-item, .js-fadeup, .js-fadeup-stagger > * {
    opacity: 1 !important;
    transform: none !important;
  }
}

/* SP/Tablet差分は assets/css/responsive.css に集約 */

.approaches__inner .section-heading__en,
.office .section-heading__en,
.company .section-heading__en{
    color: #c28bbc;
}

.therapy .section-heading__en,
.flow .section-heading__en{
    color: #b48330;
}

.confirm-back {
    min-width: 189px;
    height: 74.7px;
    border: 1px solid #111;
    border-radius: 899.1px;
    background: #fff;
    font-weight: 700;
}
/* =========================================================
   Thanks Page
========================================================= */
.thanks-page {
  min-height: 100vh;
  background: #fffdf4;
}
.thanks-page .thanks-header {
  position: fixed;
  background: rgba(255, 255, 255, .96);
  box-shadow: 0 3.6px 16.2px rgba(0, 0, 0, .04);
}
.thanks-page .thanks-header__inner {
  height: 90px;
  padding-right: 0;
  justify-content: center;
}
.thanks-page .thanks-header__logo {
  width: 324px;
}
.thanks-main {
  position: relative;
  display: grid;
  place-items: center;
  min-height: 100vh;
  padding: 162px 18px 86.4px;
  overflow: hidden;
}

.thanks-card {
  position: relative;
  z-index: 1;
  width: min(828px, 100%);
  padding: 64.8px 63px 68.4px;
  border: 2.7px solid #111;
  border-radius: 21.6px;
  background: rgba(255, 255, 255, .94);
  box-shadow: var(--shadow);
  text-align: center;
  opacity: 0;
  transform: translateY(23.4px);
  animation: thanksFadeUp .8s ease .12s forwards;
}

.thanks-card__en {
  margin: 0 0 12.6px;
  color: #c28bbc;
  font-size: 18px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: .08em;
}
.thanks-card__title {
  margin: 0;
  color: #111;
  font-size: 50.4px;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: .04em;
}
.thanks-card__lead {
  margin: 25.2px 0 0;
  color: #111;
  font-size: 21.6px;
  font-weight: 700;
  line-height: 1.7;
}
.thanks-card__text {
  margin: 12.6px auto 0;
  max-width: 576px;
  color: #333;
  font-size: 14.4px;
  font-weight: 500;
  line-height: 2;
}
.thanks-card__actions {
  margin-top: 37.8px;
}
.thanks-card__button {
  min-width: 279px;
}
@keyframes thanksFadeUp {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media screen and (min-width:600px){
  .fv__catch {
    position: absolute;
    left: 0;
    text-align: center;
    top: 45%;
    z-index: 2;
    margin: 0;
    transform: none !important;
    width: 100%;
}
  
  .fv__catch img{
    width:780px;
  }
}

@media screen and (min-width: 1350px) {
    .approaches__decor--left {
        left: -63px !important;
    }
}