@charset "UTF-8";
/*
---------------------------------------------------------------------------------------------------------------------
フォーム送信
---------------------------------------------------------------------------------------------------------------------
*/
.grecaptcha-badge {
  left: 0px !important;
  width: 70px !important; }

.grecaptcha-badge:hover {
  left: 0px !important;
  width: 256px !important; }

.form-section {
  position: relative;
  min-height: 100vh;
  overflow: hidden; }
  .form-section::before {
    content: "";
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    opacity: 0.15;
    z-index: -1;
    mask-image: linear-gradient(transparent 0%, black 50%, black 80%, transparent 100%); }
    @media (min-width: 768px) {
      .form-section::before {
        background-position: center top;
        opacity: 0.15; } }
  .form-section__inner {
    position: relative; }

.entry-form {
  background-color: #000;
  max-width: 1000px;
  margin: 40px auto;
  padding: 40px 20px 0; }
  @media (min-width: 768px) {
    .entry-form {
      padding: 60px 40px 0;
      margin: 100px auto; } }
  @media (min-width: 1200px) {
    .entry-form {
      padding: 60px 60px 0; } }
  .entry-form__title {
    font-size: 1.125em;
    font-weight: 700;
    color: #e4007f;
    margin: 0 0 16px; }
    @media (min-width: 768px) {
      .entry-form__title {
        font-size: 1.25em;
        margin: 0 0 20px; } }
  .entry-form__divider {
    border: none;
    height: 1px;
    background-color: #e4007f;
    margin: 0; }
  .entry-form__body {
    max-width: 1000px; }
  .entry-form__row {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 24px 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1); }
    @media (min-width: 768px) {
      .entry-form__row {
        flex-direction: row;
        align-items: center;
        gap: 0;
        padding: 32px 0; } }
  .entry-form__label-wrap {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-shrink: 0; }
    @media (min-width: 768px) {
      .entry-form__label-wrap {
        width: 240px;
        gap: 14px; } }
    .entry-form__label-wrap p {
      display: flex;
      align-items: center;
      gap: 12px;
      margin: 0; }
      @media (min-width: 768px) {
        .entry-form__label-wrap p {
          gap: 14px; } }
    .entry-form__label-wrap br {
      display: none; }
  .entry-form__label {
    font-size: 0.9em;
    color: #ffffff; }
    @media (min-width: 768px) {
      .entry-form__label {
        font-size: 1em; } }
  .entry-form__badge {
    padding: 2px 8px;
    font-size: 0.7em;
    font-weight: 700;
    line-height: 1.4em; }
    @media (min-width: 768px) {
      .entry-form__badge {
        font-size: 0.75em;
        padding: 3px 10px; } }
    .entry-form__badge--required {
      border: 1px solid #e4007f;
      color: #e4007f; }
    .entry-form__badge--optional {
      color: #888888; }
  .entry-form__field {
    flex: 1;
    position: relative; }
    .entry-form__field--date .entry-form__input {
      padding-right: 56px;
      cursor: pointer; }
    .entry-form__field--date .wpcf7-form-control-wrap {
      display: block;
      width: 100%;
      overflow: hidden; }
    .entry-form__field--date input[type="date"] {
      min-width: 0; }
    .entry-form__field input {
      background-color: #fff;
      border: 1px solid #fff;
      border-radius: 10px;
      height: 50px;
      width: 100%;
      padding: 0 20px;
      font-size: 0.9em;
      color: #000;
      box-shadow: none;
      box-sizing: border-box; }
      @media (min-width: 1024px) {
        .entry-form__field input {
          font-size: 1.0em;
          height: 60px;
          border-radius: 16px; } }
      .entry-form__field input::placeholder {
        color: #A0A0A0; }
    .entry-form__field input:focus, .entry-form__field textarea:focus {
      border-color: #E7E7E7;
      box-shadow: 0 0 8px 0 #E7E7E7; }
    .entry-form__field textarea {
      background-color: #fff;
      border: 1px solid #fff;
      border-radius: 10px;
      height: 90px !important;
      width: 100% !important;
      padding: 20px 20px;
      font-size: 0.85em;
      color: #000;
      box-shadow: none;
      margin-bottom: -5px; }
      @media (min-width: 1024px) {
        .entry-form__field textarea {
          font-size: 1.125em;
          height: 110px !important;
          border-radius: 16px; } }
    .entry-form__field .Select-arrow {
      position: relative;
      width: 100%; }
      .entry-form__field .Select-arrow::before {
        position: absolute;
        top: 20px;
        margin: auto;
        right: 20px;
        width: 10px;
        height: 10px;
        content: '';
        border-bottom: solid 1px #000;
        border-right: solid 1px #000;
        transform: rotate(45deg);
        pointer-events: none;
        z-index: 1; }
        @media (min-width: 1024px) {
          .entry-form__field .Select-arrow::before {
            top: 23px; } }
    .entry-form__field .mfp_err {
      margin-top: 5px;
      font-size: 0.9em; }
    .entry-form__field select {
      background-color: #fff;
      border: 1px solid #fff;
      border-radius: 10px;
      height: 50px;
      width: 100%;
      padding: 0 20px;
      font-size: 0.9em;
      color: #000;
      box-shadow: none;
      -webkit-appearance: none;
      appearance: none; }
      @media (min-width: 1024px) {
        .entry-form__field select {
          font-size: 1.0em;
          border-radius: 16px;
          height: 60px; } }
      .entry-form__field select::-ms-expand {
        display: none; }
    .entry-form__field .select {
      color: #000; }
    .entry-form__field select option:first-child {
      color: #707070; }
    .entry-form__field select option {
      color: #000066; }
  .entry-form__input {
    width: 100%;
    padding: 16px 20px;
    background-color: #1e1e1e;
    border: none;
    color: #ffffff;
    font-size: 0.9375em;
    font-family: inherit;
    box-sizing: border-box;
    appearance: none; }
    @media (min-width: 768px) {
      .entry-form__input {
        padding: 18px 24px;
        font-size: 1em; } }
    .entry-form__input::placeholder {
      color: #555555; }
    .entry-form__input:focus {
      outline: 1px solid #e4007f;
      outline-offset: 0; }
  .entry-form__date-icon {
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    color: #ffffff;
    pointer-events: none;
    display: flex;
    align-items: center; }
    .entry-form__date-icon svg {
      width: 20px;
      height: 20px; }
      @media (min-width: 768px) {
        .entry-form__date-icon svg {
          width: 22px;
          height: 22px; } }
  .entry-form__textarea {
    width: 100%;
    padding: 16px 20px;
    background-color: #1e1e1e;
    border: none;
    color: #ffffff;
    font-size: 0.9em;
    font-family: inherit;
    line-height: 1.7;
    min-height: 160px;
    resize: vertical;
    box-sizing: border-box; }
    @media (min-width: 768px) {
      .entry-form__textarea {
        padding: 18px 24px;
        min-height: 200px;
        font-size: 1em; } }
    .entry-form__textarea::placeholder {
      color: #A0A0A0; }
    .entry-form__textarea:focus {
      outline: 1px solid #e4007f;
      outline-offset: 0; }
  .entry-form__privacy {
    padding: 48px 0 40px;
    text-align: center; }
    @media (min-width: 768px) {
      .entry-form__privacy {
        padding: 20px 0 60px; } }
  .entry-form__privacy-note {
    font-size: 0.8em;
    color: #ffffff;
    line-height: 1.6em;
    margin: 0 0 10px; }
    @media (min-width: 768px) {
      .entry-form__privacy-note {
        font-size: 0.9em;
        margin: 0 0 20px; } }
  .entry-form .agreement {
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 10px auto 20px; }
    @media (min-width: 1024px) {
      .entry-form .agreement {
        margin: 20px auto 40px; } }
    .entry-form .agreement label {
      font-family: "Cormorant Garamond", serif;
      font-weight: 400;
      font-size: 0.85em;
      line-height: 1.2em;
      font-feature-settings: "palt";
      letter-spacing: 0.05em;
      color: #fff; }
      @media (min-width: 1024px) {
        .entry-form .agreement label {
          font-size: 1.0em; } }
      .entry-form .agreement label a {
        color: #fff;
        position: relative; }
        .entry-form .agreement label a::after {
          position: absolute;
          bottom: 0;
          left: 0;
          content: '';
          width: 100%;
          height: 1px;
          background: #fff;
          transform: scale(0, 1);
          transform-origin: right top;
          transition: transform .3s; }
        .entry-form .agreement label a:hover::after {
          transform-origin: left top;
          transform: scale(1, 1); }
    .entry-form .agreement input {
      width: 20px;
      height: 20px;
      border: none;
      margin: 0px 5px 0 0;
      position: relative;
      top: 3.5px; }
    .entry-form .agreement p {
      font-family: "Cormorant Garamond", serif;
      font-weight: 400;
      font-size: 0.85em;
      line-height: 1.2em;
      font-feature-settings: "palt";
      letter-spacing: 0.05em;
      color: #fff; }
      @media (min-width: 1024px) {
        .entry-form .agreement p {
          font-size: 1.0em; } }
      .entry-form .agreement p a {
        color: #fff;
        position: relative; }
        .entry-form .agreement p a::after {
          position: absolute;
          bottom: 0;
          left: 0;
          content: '';
          width: 100%;
          height: 1px;
          background: #fff;
          transform: scale(0, 1);
          transform-origin: right top;
          transition: transform .3s; }
        .entry-form .agreement p a:hover::after {
          transform-origin: left top;
          transform: scale(1, 1); }
  .entry-form .mf_button {
    text-align: center; }
    .entry-form .mf_button button, .entry-form .mf_button p input {
      background-color: unset;
      border: none;
      color: #000;
      text-align: center;
      font-size: 0.9em;
      font-weight: bold;
      max-width: 300px;
      width: 90%;
      height: 50px;
      position: relative;
      background-color: #fff;
      border-radius: 50px;
      transition: .5s; }
      @media (min-width: 1250px) {
        .entry-form .mf_button button, .entry-form .mf_button p input {
          font-size: 1.0em;
          height: 60px; } }
      .entry-form .mf_button button:hover, .entry-form .mf_button p input:hover {
        color: #fff;
        background-color: #e6007e; }
      .entry-form .mf_button button span, .entry-form .mf_button p input span {
        display: inline-block; }
      .entry-form .mf_button button .arrow, .entry-form .mf_button p input .arrow {
        position: absolute;
        top: 0;
        bottom: 0;
        right: 15px;
        margin: auto;
        display: flex;
        justify-content: center;
        transition: .5s; }
        @media (min-width: 768px) {
          .entry-form .mf_button button .arrow, .entry-form .mf_button p input .arrow {
            right: 20px; } }
        .entry-form .mf_button button .arrow img, .entry-form .mf_button p input .arrow img {
          width: 35px; }
          @media (min-width: 1250px) {
            .entry-form .mf_button button .arrow img, .entry-form .mf_button p input .arrow img {
              width: 50px; } }

.wpcf7-not-valid-tip {
  font-size: 0.7em; }

.wpcf7-list-item {
  display: inline-block;
  margin: 0 0 0 0 !important; }

.wpcf7 form.spam .wpcf7-response-output {
  color: #fff; }

.wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.unaccepted .wpcf7-response-output, .wpcf7 form.payment-required .wpcf7-response-output {
  color: #fff; }

.wpcf7 form.failed .wpcf7-response-output, .wpcf7 form.aborted .wpcf7-response-output {
  color: #fff; }

/*
---------------------------------------------------------------------------------------------------------------------
サンクスページ
---------------------------------------------------------------------------------------------------------------------
*/
.thanks-next {
  background: #050505;
  color: #fff;
  padding: 40px 24px 80px; }
  .thanks-next__inner {
    position: relative;
    overflow: hidden;
    border: 1px solid #e6007e;
    padding: 32px 24px; }
    .thanks-next__inner::before {
      content: "";
      position: absolute;
      right: -120px;
      top: -80px;
      width: 260px;
      height: 260px;
      background: #e6007e;
      filter: blur(100px);
      opacity: .4;
      pointer-events: none; }
    .thanks-next__inner::after {
      content: "";
      position: absolute;
      inset: 0;
      background-image: radial-gradient(circle, rgba(230, 0, 126, 0.35) 1px, transparent 1px);
      background-size: 8px 8px;
      opacity: .12;
      pointer-events: none; }
    @media screen and (min-width: 768px) {
      .thanks-next__inner {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 40px;
        max-width: 1200px;
        margin: 0 auto;
        padding: 48px 56px; } }
  .thanks-next__content {
    position: relative;
    z-index: 1; }
  .thanks-next__lead {
    margin: 0 0 12px;
    color: #e6007e;
    font-size: .9em;
    letter-spacing: .16em; }
    @media screen and (min-width: 768px) {
      .thanks-next__lead {
        font-size: 1em; } }
  .thanks-next__copy {
    margin: 0;
    font-family: "Zen Old Mincho", serif;
    font-size: 1.7em;
    line-height: 1.5;
    letter-spacing: .08em; }
    @media screen and (min-width: 768px) {
      .thanks-next__copy {
        font-size: 2.2em; } }
    @media screen and (min-width: 1024px) {
      .thanks-next__copy {
        font-size: 2.6em; } }
  .thanks-next__button {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    min-height: 56px;
    margin-top: 32px;
    padding: 0 24px;
    border: 1px solid #e6007e;
    color: #e6007e;
    text-decoration: none;
    letter-spacing: .14em;
    transition: background .3s ease, color .3s ease; }
    @media screen and (min-width: 768px) {
      .thanks-next__button {
        width: 280px;
        min-height: 64px;
        margin-top: 0;
        padding: 0 32px; } }
    .thanks-next__button span {
      font-size: .82em; }
      @media screen and (min-width: 768px) {
        .thanks-next__button span {
          font-size: .9em; } }
    .thanks-next__button::after {
      content: "→";
      font-size: 1.1em;
      line-height: 1;
      transition: transform .3s ease; }
      @media screen and (min-width: 768px) {
        .thanks-next__button::after {
          font-size: 1.2em; } }
    .thanks-next__button:hover {
      background: #e6007e;
      color: #fff; }
      .thanks-next__button:hover::after {
        transform: translateX(6px); }
