@charset "UTF-8";
/*//////////////////////////////////////////////////////////

Copyright (C) apricot-design All Rights Reserved.
------------------------------------------------------------
CSS COMPANY
 file name  :  reset.css
 style info :  リセットファイル
 admin info :  apricot-design

//////////////////////////////////////////////////////////*/
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
nav,
section {
  display: block;
}

audio[controls],
canvas,
video {
  display: inline-block;
  *display: inline;
  zoom: 1;
}

html {
  overflow-y: scroll;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
}

body,
div,
dl,
dt,
dd,
h1,
h2,
h3,
h4,
h5,
h6,
pre,
form,
fieldset,
input,
textarea,
p,
blockquote,
th,
td,
ul {
  margin: 0;
  padding: 0;
}

body,
button,
input,
select,
textarea {
  font-size: 100%;
}

abbr[title] {
  border-bottom: 1px dotted;
}

b,
strong {
  font-weight: bold;
}

blockquote {
  margin: 1em 40px;
}

dfn {
  font-style: italic;
}

mark {
  background: #ff0;
  color: #000;
}

pre,
code,
kbd,
samp {
  font-family: monospace, monospace;
  _font-family: "courier new", monospace;
  font-size: 1em;
}

pre {
  white-space: pre;
  white-space: pre-wrap;
  word-wrap: break-word;
}

q {
  quotes: none;
}
q:before, q:after {
  content: "";
  content: none;
}

small {
  font-size: 75%;
}

sub {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
  top: -0.5em;
}

sub {
  bottom: -0.25em;
}

ul,
ol {
  margin: 0;
  padding: 0;
}

dd {
  margin: 0px;
}

nav ul,
nav ol {
  list-style: none;
}

img {
  border: 0;
  -ms-interpolation-mode: bicubic;
}

svg:not(:root) {
  overflow: hidden;
}

figure,
form {
  margin: 0;
}

fieldset {
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em;
}

legend {
  border: 0;
  *margin-left: -7px;
}

button,
input,
select,
textarea {
  font-size: 100%;
  margin: 0;
  vertical-align: baseline;
  *vertical-align: middle;
}

button,
input {
  line-height: normal;
  *overflow: visible;
}

button {
  cursor: pointer;
  -webkit-appearance: button;
}

input[type=button], input[type=reset], input[type=submit] {
  cursor: pointer;
  -webkit-appearance: button;
}
input[type=checkbox], input[type=radio] {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
input[type=search] {
  -webkit-appearance: textfield;
  -webkit-box-sizing: content-box;
  box-sizing: content-box;
}
input[type=search]::-webkit-search-decoration {
  -webkit-appearance: none;
}

button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0;
}

textarea {
  overflow: auto;
  vertical-align: top;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

address,
caption,
cite,
code,
dfn,
em,
strong,
th,
var {
  font-style: normal;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-weight: normal;
  font-size: 100%;
}

img,
abbr,
acronym,
fieldset {
  border: 0;
}

li {
  list-style: none;
}

/*画像を縦に並べた時に余白が出ないように*/
img {
  vertical-align: top;
  font-size: 0;
  line-height: 0;
}

/*box-sizingを全ブラウザに対応*/
* {
  -webkit-box-sizing: border-box;
  -ms-box-sizing: border-box;
  -o-box-sizing: border-box;
  box-sizing: border-box;
}
*:before, *:after {
  -webkit-box-sizing: border-box;
  -ms-box-sizing: border-box;
  -o-box-sizing: border-box;
  box-sizing: border-box;
}

.ie6_error,
.no_script {
  background: #f66;
  padding: 100px;
  text-align: center;
  font-size: 150%;
  color: #333;
}

.flt {
  float: left;
}

.flr {
  float: right;
}

.txt_l,
td.txt_l,
.txt_l td {
  text-align: left;
}

.txt_r,
td.txt_r,
.txt_r td {
  text-align: right;
}

.txt_c,
td.txt_c,
.txt_c td {
  text-align: center;
}

.valign_t,
td.valign_t,
.valign_t td {
  vertical-align: top;
}

.valign_m,
td.valign_m,
.valign_m td {
  vertical-align: middle;
}

.valign_b,
td.valign_b,
.valign_b td {
  vertical-align: bottom;
}

.clear {
  clear: both;
}

.clearfix:before {
  content: "";
  display: block;
}
.clearfix:after {
  content: "";
  display: block;
  clear: both;
}
.clearfix {
  zoom: 1;
}

.img_bd {
  border: solid 1px #e8e8e8;
}

.c_red {
  color: #ff3425;
}

/* ----- break point ----- */
/* ----- fluid-size ----- */
/* ----- line-height, letter-spacing ----- */
html {
  width: 100%;
}

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

.pc {
  display: block;
}
@media only screen and (max-width: 1024px) {
  .pc {
    display: none;
  }
}

.caption {
  font-size: calc(16 * 100vw / 1440);
  letter-spacing: 0.08em;
}
@media only screen and (max-width: 1024px) {
  .caption {
    font-size: calc(16 * 100vw / 375);
  }
}

.textS {
  font-size: calc(12 * 100vw / 1440);
  letter-spacing: 0.05em;
}
@media only screen and (max-width: 1024px) {
  .textS {
    font-size: calc(12 * 100vw / 375);
  }
}

.textN {
  font-size: calc(22 * 100vw / 1440);
  letter-spacing: 0.08em;
}
@media only screen and (max-width: 1024px) {
  .textN {
    font-size: calc(18 * 100vw / 375);
  }
}

.txt_normal,
.mfp_confirm_table {
  font-size: calc(14 * 100vw / 1440);
  letter-spacing: 0.05em;
  line-height: 2em;
  margin-bottom: calc(40 * 100vw / 1440);
}
@media only screen and (max-width: 1024px) {
  .txt_normal,
  .mfp_confirm_table {
    font-size: calc(14 * 100vw / 375);
    margin-bottom: calc(40 * 100vw / 375);
  }
}

a {
  text-decoration: none;
}

.en {
  font-family: "Inter", sans-serif;
  font-weight: 600;
  letter-spacing: 0.04em;
}

.ttl_top {
  font-size: calc(80 * 100vw / 1440);
  text-align: center;
  position: relative;
  padding-bottom: calc(80 * 100vw / 1440);
}
@media only screen and (max-width: 1024px) {
  .ttl_top {
    font-size: calc(30 * 100vw / 375);
    padding-bottom: calc(30 * 100vw / 375);
  }
}
.ttl_top .action {
  position: relative;
}
.ttl_top .action svg {
  width: 20.8333333333vw;
  position: absolute;
  left: -4%;
  z-index: -1;
  opacity: 0;
  bottom: -3%;
  overflow: visible;
}
@media only screen and (max-width: 1024px) {
  .ttl_top .action svg {
    width: 29.3333333333vw;
  }
}
.ttl_top .action svg path {
  width: 100%;
  stroke: #cbda00;
  stroke-width: 8;
  stroke-linecap: round;
  stroke-linejoin: round;
  fill: transparent;
}
.ttl_top .action.is-active svg {
  -webkit-animation: opacity 0.2s ease-in 0.3s forwards;
          animation: opacity 0.2s ease-in 0.3s forwards;
}
.ttl_top .action.is-active svg path {
  -webkit-animation: writing 2.2s ease-in 0.3s forwards;
          animation: writing 2.2s ease-in 0.3s forwards;
  stroke-dasharray: 4000px;
}

.ttl_sub {
  text-align: center;
  font-size: 4.1666666667vw;
  letter-spacing: 0.08em;
  color: var(--main);
  padding-bottom: 4.1666666667vw;
  line-height: 1;
}
.ttl_sub.green {
  color: #cbda00;
}

@media (max-width: 1024px) {
  .ttl_sub {
    font-size: 13.8666666667vw;
    padding-bottom: 10.6666666667vw;
  }
}
.home_mission .ttl_top .action svg {
  width: 13.8888888889vw;
}
@media only screen and (max-width: 1024px) {
  .home_mission .ttl_top .action svg {
    width: 22.4vw;
  }
}
.home_mission .ttl_top .action svg path {
  stroke-width: 5;
  left: -6%;
}

.border span {
  opacity: 0;
}
.border::after {
  content: "";
  background: #fff100;
  width: 100%;
  height: 100%;
  color: transparent;
  display: block;
  position: absolute;
  top: 50%;
  -webkit-transform: translate(0%, -50%);
  transform: translate(0%, -50%);
  width: 0;
  -webkit-transition: 0.4s;
  transition: 0.4s;
}
.border.is-active span {
  -webkit-animation: opacity 0.4s ease-in 0.5s forwards;
          animation: opacity 0.4s ease-in 0.5s forwards;
  color: #2a2b1b;
}
.border.is-active::after {
  width: 100%;
  -webkit-animation: late 0.4s ease-in 0.8s forwards;
          animation: late 0.4s ease-in 0.8s forwards;
}
.border.is-active::before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #fff100;
  z-index: -1;
  opacity: 0;
  -webkit-animation: opacity 0.4s ease-in 0.5s forwards;
          animation: opacity 0.4s ease-in 0.5s forwards;
}
@-webkit-keyframes late {
  to {
    width: 0%;
  }
}
@keyframes late {
  to {
    width: 0%;
  }
}
@-webkit-keyframes opacity {
  to {
    opacity: 1;
  }
}
@keyframes opacity {
  to {
    opacity: 1;
  }
}

body {
  color: #2a2b1b;
  text-align: left;
  position: relative;
  height: 100vh; /* 古いブラウザ用 */
  height: 100dvh; /* モダンブラウザ用（こちらが優先される） */
  font-family: YakuHanJP, "Zen Kaku Gothic Antique", sans-serif, "ＭＳ ゴシック", sans-serif;
}

.slider .swiper-wrapper,
.slider2 .swiper-wrapper {
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  /* 画像のサイズ調整 */
}
.slider .swiper-wrapper .swiper-slide,
.slider2 .swiper-wrapper .swiper-slide {
  padding-left: calc(20 * 100vw / 1440);
  padding-right: calc(20 * 100vw / 1440);
  width: auto !important;
}
@media only screen and (max-width: 1024px) {
  .slider .swiper-wrapper .swiper-slide,
  .slider2 .swiper-wrapper .swiper-slide {
    padding-left: calc(10 * 100vw / 375);
    padding-right: calc(10 * 100vw / 375);
  }
}
.slider .swiper-wrapper .swiper-slide img,
.slider2 .swiper-wrapper .swiper-slide img {
  height: 96px;
  width: auto;
}
@media only screen and (max-width: 1024px) {
  .slider .swiper-wrapper .swiper-slide img,
  .slider2 .swiper-wrapper .swiper-slide img {
    height: 66px;
  }
}

.header {
  position: fixed;
  z-index: 10;
  width: 100%;
  -webkit-transition: 1s;
  transition: 1s;
  top: -20%;
}
.header.is-active {
  top: 2%;
}
.header .menu {
  width: 100%;
  margin: auto;
}
.header .menu_btn {
  width: 8.3333333333vw;
  margin: auto;
  color: #2a2b1b;
  text-align: center;
  border: 2px solid #2a2b1b;
  border-radius: 50%;
  padding: 10px 0;
  cursor: pointer;
  -webkit-animation: rotate-8s 10s ease-in-out infinite;
          animation: rotate-8s 10s ease-in-out infinite;
  position: relative;
  overflow: hidden;
  -webkit-transition: 0.2s;
  transition: 0.2s;
}
@media only screen and (max-width: 1024px) {
  .header .menu_btn {
    width: 32vw;
  }
}
@-webkit-keyframes rotate-8s {
  0% {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg);
  }
  10% {
    /* 8秒の25%（＝2秒）で回転が完了 */
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg);
  }
  100% {
    /* 100%まで360度を維持することで、残りの6秒間は停止する */
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg);
  }
}
@keyframes rotate-8s {
  0% {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg);
  }
  10% {
    /* 8秒の25%（＝2秒）で回転が完了 */
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg);
  }
  100% {
    /* 100%まで360度を維持することで、残りの6秒間は停止する */
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg);
  }
}
.header .menu_btn p.caption {
  -webkit-transition: 0.2s;
  transition: 0.2s;
}
.header .menu_btn:hover {
  background: #ffffff;
}
.header .menu_btn:hover p.caption {
  opacity: 0;
}
.header .menu_btn:hover .scroll-infinity {
  opacity: 1;
}
.header .menu_inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 100%;
  text-align: center;
  top: 0;
  left: 0;
  height: 100vh; /* 古いブラウザ用 */
  height: 100dvh; /* モダンブラウザ用（こちらが優先される） */
  position: fixed;
  background: #a3a199;
  z-index: 99999999;
  opacity: 0;
  visibility: hidden;
  -webkit-transition: opacity 0.6s ease, visibility 0.6s ease;
  transition: opacity 0.6s ease, visibility 0.6s ease;
}
.header .menu_inner.is-show {
  opacity: 1;
  visibility: visible;
}
.header .menu_inner .btn_close {
  position: relative;
  width: 28px;
  height: 28px;
  cursor: pointer;
  -webkit-transition: 0.2s;
  transition: 0.2s;
  position: absolute;
  right: 0;
  left: 0;
  margin: auto;
  top: 3%;
}
.header .menu_inner .btn_close span {
  position: absolute;
  top: 50%;
  left: 0;
  display: block;
  width: 100%;
  height: 2px; /* 線の太さ */
  background-color: #2a2b1b; /* 線の色（$mainColorなどに変更してください） */
  border-radius: 2px;
  /* 1枚目の線を45度回転 */
}
.header .menu_inner .btn_close span:nth-child(1) {
  -webkit-transform: translateY(-50%) rotate(45deg);
          transform: translateY(-50%) rotate(45deg);
}
.header .menu_inner .btn_close span {
  /* 2枚目の線をマイナス45度回転 */
}
.header .menu_inner .btn_close span:nth-child(2) {
  -webkit-transform: translateY(-50%) rotate(-45deg);
          transform: translateY(-50%) rotate(-45deg);
}
.header .menu_inner a {
  color: #2a2b1b;
  display: block;
  font-size: calc(60 * 100vw / 1440);
}
@media only screen and (max-width: 1024px) {
  .header .menu_inner a {
    font-size: calc(26 * 100vw / 375);
  }
}

.btn_under {
  color: #2a2b1b;
  text-decoration: underline;
}

.btn_contact {
  position: fixed;
  margin: auto;
  color: #2a2b1b;
  display: block;
  z-index: 9999999;
  bottom: -20%;
  left: 0;
  right: 0;
  width: 10.2777777778vw;
  -webkit-transition: 1s;
  transition: 1s;
  pointer-events: auto !important; /* クリックを有効にする */
}
@media only screen and (max-width: 1024px) {
  .btn_contact {
    width: 39.4666666667vw;
  }
}
.btn_contact svg {
  position: relative;
}
.btn_contact:hover .hover {
  opacity: 1;
}
.btn_contact:hover .word path,
.btn_contact:hover .word polygon {
  opacity: 0;
}
.btn_contact:hover .word .kakko {
  opacity: 1;
}
.btn_contact .hover {
  z-index: -1;
}
.btn_contact.is-active {
  bottom: 1%;
}
.btn_contact .attention {
  position: absolute;
  top: -30%;
  width: 20%;
  right: -30%;
  overflow: visible;
  opacity: 0;
  -webkit-animation: sharp-blink 8s steps(1, end) infinite;
          animation: sharp-blink 8s steps(1, end) infinite;
}
@-webkit-keyframes sharp-blink {
  0% {
    opacity: 0;
  }
  50% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}
@keyframes sharp-blink {
  0% {
    opacity: 0;
  }
  50% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}
.btn_contact .attention path {
  -webkit-animation: icon-next-animation 0.45s step-end infinite;
          animation: icon-next-animation 0.45s step-end infinite;
  fill: none;
  stroke: #cbda00;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 6px;
}
.btn_contact .btn {
  display: block;
  width: 100%;
  z-index: 4;
}
.btn_contact .btn .bg {
  opacity: 0;
  -webkit-transition: 0.2s;
  transition: 0.2s;
}
.btn_contact .btn .bg rect,
.btn_contact .btn .bg path {
  fill: #ffffff;
}

.btn_contact-big {
  display: block;
  color: #2a2b1b;
  text-align: center;
  z-index: 2;
  bottom: auto;
  overflow: hidden;
  position: relative !important;
  width: 44.5833333333vw;
  margin-bottom: calc(20 * 100vw / 1440);
}
@media only screen and (max-width: 1024px) {
  .btn_contact-big {
    width: 85.6vw;
  }
}
.btn_contact-big .hover {
  z-index: 1;
  height: 100%;
  background: #ffffff;
  width: 96%;
  left: 0;
  right: 0;
  margin: auto;
  border-radius: 20px;
}
.btn_contact-big .hover .scroll-infinity_wrap {
  height: 100%;
  color: #2a2b1b;
}
.btn_contact-big .hover .item {
  vertical-align: middle;
  height: 100%;
  width: auto;
  font-size: calc(80 * 100vw / 1440);
  padding-top: 0.5em;
}
.btn_contact-big a {
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 10;
}
.btn_contact-big .scroll-infinity {
  padding-top: 0 !important;
}

.scroll-infinity {
  overflow: hidden;
  position: absolute;
  top: 50%;
  -webkit-transform: translate(0%, -50%);
  transform: translate(0%, -50%);
  opacity: 0;
  z-index: 2;
  pointer-events: none !important; /* 中の要素はクリックを無視させる */
  -webkit-transition: 0.2s;
  transition: 0.2s;
}
@-webkit-keyframes infinity-scroll-left {
  from {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
  to {
    -webkit-transform: translateX(-100%);
            transform: translateX(-100%);
  }
}
@keyframes infinity-scroll-left {
  from {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
  to {
    -webkit-transform: translateX(-100%);
            transform: translateX(-100%);
  }
}
.scroll-infinity .inner {
  overflow: hidden;
  width: 10.2777777778vw;
  position: relative;
}
.scroll-infinity_wrap {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: 1200%;
}
.scroll-infinity_wrap_list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  list-style: none;
  padding: 0;
  -webkit-animation: infinity-scroll-left 40s infinite linear 0.2s both;
          animation: infinity-scroll-left 40s infinite linear 0.2s both;
}
.scroll-infinity_wrap_list .item {
  padding-left: 10px;
}

.color {
  width: 100%;
  position: fixed;
  top: 0;
  left: 0;
  height: 100vh; /* 古いブラウザ用 */
  height: 100dvh; /* モダンブラウザ用（こちらが優先される） */
  display: block;
  -webkit-transition: 1s;
  transition: 1s;
  background: #fff100;
}
.color.section3 .word1,
.color.section3 .word2,
.color.section3 .word3 {
  left: -12%;
}
.color.section4 {
  background: #fff100;
}
.color.section4 .word1 {
  left: 2%;
}
@media only screen and (max-width: 1024px) {
  .color.section4 .word1 {
    left: 3%;
  }
}
.color.section4 .word3,
.color.section4 .word2 {
  left: -12%;
}
.color.section5 {
  background: #ffffff;
}
.color.section5 .word2 {
  left: 2%;
}
@media only screen and (max-width: 1024px) {
  .color.section5 .word2 {
    left: 3%;
  }
}
.color.section5 .word1,
.color.section5 .word3 {
  left: -12%;
}
.color.section6 {
  background: #ffffff;
}
.color.section6 .word3 {
  left: 2%;
}
@media only screen and (max-width: 1024px) {
  .color.section6 .word3 {
    left: 3%;
  }
}
.color.section6 .word1,
.color.section6 .word2 {
  left: -12%;
}
.color.box {
  background: #a3a199;
}
.color.box .word1,
.color.box .word2,
.color.box .word3 {
  left: -12%;
}
.color .ttl_fix {
  position: fixed;
  left: -12%;
  z-index: 99999999999;
  top: 50%;
  -webkit-transform: translate(0%, -50%);
  transform: translate(0%, -50%);
  width: auto;
  display: block;
  width: 14px;
  height: 260px;
  -webkit-transition: 1s;
  transition: 1s;
  z-index: 7;
}
@media only screen and (max-width: 1024px) {
  .color .ttl_fix {
    width: 7px;
    height: 130px;
  }
}
.color .ttl_fix img {
  display: block;
  width: 14px;
  height: 260px;
}
@media only screen and (max-width: 1024px) {
  .color .ttl_fix img {
    width: 7px;
    height: 130px;
  }
}

.loading {
  height: 100vh; /* 古いブラウザ用 */
  height: 100dvh; /* モダンブラウザ用（こちらが優先される） */
  width: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  position: fixed;
  top: 0;
  background: transparent;
  left: 0;
  background: #2a2b1b;
  z-index: 10;
  -webkit-transition: 0.2s;
  transition: 0.2s;
}
.loading.is-hidden {
  opacity: 0;
  visibility: hidden;
}
.loading svg {
  width: 40%;
}
@media only screen and (max-width: 1024px) {
  .loading svg {
    width: 70%;
  }
}
.loading svg #logo {
  -webkit-mask: url(#mask);
          mask: url(#mask);
}
.loading svg .mask {
  -webkit-animation: writing 1.2s ease-in forwards;
          animation: writing 1.2s ease-in forwards;
  stroke: #fff;
  stroke-width: 26;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 4000px;
}
.loading svg .white {
  fill: white;
}
@-webkit-keyframes writing {
  0% {
    stroke-dashoffset: 4000px;
  }
  100% {
    stroke-dashoffset: 0;
  }
}
@keyframes writing {
  0% {
    stroke-dashoffset: 4000px;
  }
  100% {
    stroke-dashoffset: 0;
  }
}

.section_wrap {
  overflow: hidden;
}

.home {
  z-index: 9;
  position: relative;
}
.home .section {
  height: 100svh; /* JSの計算のトリガー基準 */
  position: relative;
  width: 100%;
}
.home .section .section__pin {
  /* 100lvh より少し長くして、検索バーの変動分をカバーする */
  height: 100lvh;
  width: 100%;
  position: absolute;
  /* 上下に 5% ずつ「のりしろ」を作って配置 */
  top: 0;
  left: 0;
  will-change: transform;
}
.home .section1 {
  z-index: 1;
}
.home .section1 .section__pin {
  background-color: #2a2b1b;
}
.home .section1 .section__pin .logo {
  opacity: 0.08;
  width: 40%;
}
@media only screen and (max-width: 1024px) {
  .home .section1 .section__pin .logo {
    width: 70%;
  }
}
.home .section1 .section__pin .logo path {
  fill: #ffffff;
}
.home .section1 .section__pin h1 {
  position: absolute;
  top: 50%;
  -webkit-transform: translate(0%, -50%);
  transform: translate(0%, -50%);
  width: 50%;
  text-align: center;
  color: #ffffff;
  font-size: calc(30 * 100vw / 1440);
}
@media only screen and (max-width: 1024px) {
  .home .section1 .section__pin h1 {
    font-size: calc(14 * 100vw / 375);
    width: 90%;
    line-height: 1.5;
  }
}
.home .section1 .section__pin .ico_scroll {
  position: absolute;
  width: 13.8888888889vw;
  right: 0;
  bottom: 2%;
  opacity: 0;
  overflow: visible;
}
@media only screen and (max-width: 1024px) {
  .home .section1 .section__pin .ico_scroll {
    width: 32vw;
  }
}
.home .section1 .section__pin .ico_scroll path {
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 6px;
}
.home .section1 .section__pin .ico_scroll .arrow path {
  stroke: #fff100;
}
.home .section1 .section__pin .ico_scroll .word {
  stroke: #fff100;
}
.home .section1 .section__pin .ico_scroll.is-active {
  opacity: 1;
}
.home .section1 .section__pin .ico_scroll.is-active .arrow {
  -webkit-animation: writing 1.2s ease-in forwards;
          animation: writing 1.2s ease-in forwards;
  stroke: #fff;
  stroke-width: 26;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 4000px;
}
.home .section1 .section__pin .ico_scroll.is-move .arrow {
  -webkit-animation: icon-next-animation 0.45s step-end infinite;
          animation: icon-next-animation 0.45s step-end infinite;
}
@-webkit-keyframes icon-next-animation {
  33.33% {
    -webkit-transform: rotate(-5deg);
            transform: rotate(-5deg);
  }
  66.66% {
    -webkit-transform: rotate(-6deg);
            transform: rotate(-6deg);
  }
}
@keyframes icon-next-animation {
  33.33% {
    -webkit-transform: rotate(-5deg);
            transform: rotate(-5deg);
  }
  66.66% {
    -webkit-transform: rotate(-6deg);
            transform: rotate(-6deg);
  }
}
.home .section2 {
  margin-top: 20vh;
  z-index: 2;
}
.home .section2 .logo {
  z-index: 3;
}
.home .section2 .fix_left,
.home .section2 .fix_right {
  position: absolute;
  top: 50%;
  -webkit-transform: translate(0%, -50%);
  transform: translate(0%, -50%);
  color: #ffffff;
  z-index: 3;
}
@media only screen and (max-width: 1024px) {
  .home .section2 .fix_left,
  .home .section2 .fix_right {
    font-size: calc(12 * 100vw / 375);
  }
}
.home .section2 .fix_left span,
.home .section2 .fix_right span {
  display: block;
  -webkit-transform: rotate(90deg);
          transform: rotate(90deg);
}
.home .section2 .fix_left {
  left: -1%;
}
@media only screen and (max-width: 1024px) {
  .home .section2 .fix_left {
    left: -6%;
  }
}
.home .section2 .fix_left span {
  -webkit-transform: rotate(270deg);
          transform: rotate(270deg);
}
.home .section2 .fix_right {
  right: -1%;
}
@media only screen and (max-width: 1024px) {
  .home .section2 .fix_right {
    right: -6%;
  }
}
.home .section2 .section__pin {
  background-color: #cbda00;
}
.home .section2 .img {
  position: absolute;
  z-index: 1;
  mix-blend-mode: multiply;
  opacity: 0;
}
.home .section2 .img.img1 {
  width: 8%;
  top: 22%;
  left: 26%;
}
@media only screen and (max-width: 1024px) {
  .home .section2 .img.img1 {
    width: 24%;
    top: 28%;
    left: 4%;
  }
}
.home .section2 .img.img1.is-active {
  -webkit-animation: icon-next-animation 0.45s step-end infinite, opacity 0s ease-in 1.6s forwards;
          animation: icon-next-animation 0.45s step-end infinite, opacity 0s ease-in 1.6s forwards;
}
.home .section2 .img.img2 {
  width: 4%;
  bottom: 34%;
  left: 28%;
}
@media only screen and (max-width: 1024px) {
  .home .section2 .img.img2 {
    width: 10%;
    bottom: 34%;
    left: 18%;
  }
}
.home .section2 .img.img2.is-active {
  -webkit-animation: opacity 0s ease-in 1.7s forwards;
          animation: opacity 0s ease-in 1.7s forwards;
}
.home .section2 .img.img4 {
  width: 10%;
  right: 30%;
  bottom: 30%;
}
@media only screen and (max-width: 1024px) {
  .home .section2 .img.img4 {
    width: 26%;
    right: 20%;
    bottom: 40%;
  }
}
.home .section2 .img.img4.is-active {
  -webkit-animation: opacity 0s ease-in 1.7s forwards;
          animation: opacity 0s ease-in 1.7s forwards;
}
.home .section3 {
  z-index: 3;
  margin-top: 50vh;
}
.home .section3 .section__pin {
  background-color: #fff100;
  text-align: center;
}
.home .section3 .section__pin .word {
  position: absolute;
}
.home .section3 .section__pin span {
  position: relative;
  display: inline-block;
  margin: auto;
}
.home .section3 .section__pin_copy {
  font-size: calc(80 * 100vw / 1440);
  line-height: 1.3;
}
@media only screen and (max-width: 1024px) {
  .home .section3 .section__pin_copy {
    font-size: calc(40 * 100vw / 375);
  }
}
.home .section3 .section__pin_lead {
  font-size: calc(30 * 100vw / 1440);
  margin-top: 0.5em;
}
@media only screen and (max-width: 1024px) {
  .home .section3 .section__pin_lead {
    font-size: calc(20 * 100vw / 375);
  }
}
.home .section3 .border span {
  opacity: 1;
}
.home .section3 .border::after {
  width: 100%;
  background: #cbda00;
}
.home .section__pin {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  -webkit-transition: 1s;
  transition: 1s;
  height: 100%;
}
.home .section__pin .logo {
  width: 40%;
}
@media only screen and (max-width: 1024px) {
  .home .section__pin .logo {
    width: 60%;
  }
}
.home_mission .gsapBox, .home_why .gsapBox {
  height: -webkit-max-content;
  height: -moz-max-content;
  height: max-content;
  position: relative;
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  margin: auto;
}
@media only screen and (max-width: 1024px) {
  .home_mission .gsapBox, .home_why .gsapBox {
    width: 100% !important;
    padding: 0 40px !important;
  }
}
.home_mission .gsapText, .home_why .gsapText {
  font-size: calc(34 * 100vw / 1440);
  font-weight: 300;
  line-height: 2;
  z-index: 0;
}
@media only screen and (max-width: 1024px) {
  .home_mission .gsapText, .home_why .gsapText {
    font-size: calc(16 * 100vw / 375);
  }
}
.home_mission, .home_why {
  /* 前面に重なる文字 */
}
.home_mission .gsapText-front, .home_why .gsapText-front {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  color: #2a2b1b; /* 上の文字色 */
  z-index: 1;
  pointer-events: none;
}
@media only screen and (max-width: 1024px) {
  .home_mission .gsapText-front, .home_why .gsapText-front {
    padding: 0 40px;
  }
}
.home_mission .gsapText-front p, .home_why .gsapText-front p {
  display: block;
  height: 100%;
  overflow: hidden;
  white-space: nowrap;
  width: 0%;
  margin: 0;
}
@media only screen and (max-width: 1024px) {
  .home_mission .gsapText-front p, .home_why .gsapText-front p {
    overflow-wrap: break-word;
  }
}
.home_mission, .home_why {
  /* 背景側の白文字 */
}
.home_mission .gsapText-back, .home_why .gsapText-back {
  position: relative;
  opacity: 0.3;
  z-index: 0;
}
.home_mission .box, .home_why .box {
  padding-top: calc(80 * 100vw / 1440);
}
.home_mission {
  padding-top: calc(250 * 100vw / 1440);
  position: relative;
  z-index: 4;
  margin-top: 50vh;
}
@media only screen and (max-width: 1024px) {
  .home_mission {
    padding-top: calc(150 * 100vw / 375);
  }
}
.home_mission .gsapBox {
  width: 43.0555555556vw;
}
.home_why {
  padding-top: calc(250 * 100vw / 1440);
  z-index: 5;
  position: relative;
}
@media only screen and (max-width: 1024px) {
  .home_why {
    padding-top: calc(150 * 100vw / 375);
  }
}
.home_why .gsapBox {
  width: 54.8611111111vw;
}
.home_why .gsapBox .under_yellow {
  position: relative;
  display: inline-block;
}
.home_why .gsapBox .under_yellow::before {
  z-index: -1;
  display: block;
  content: "";
  position: absolute;
  left: 0;
  width: 100%;
  height: 60%;
  top: 50%;
  -webkit-transform: translate(0%, -50%);
  transform: translate(0%, -50%);
  background: #fff100;
}
.home_info {
  padding-top: calc(250 * 100vw / 1440);
  text-align: center;
}
@media only screen and (max-width: 1024px) {
  .home_info {
    padding-top: calc(150 * 100vw / 375);
    padding-left: 40px;
    padding-right: 40px;
  }
}
@media only screen and (max-width: 1024px) {
  .home_info .textS {
    padding-top: calc(4 * 100vw / 375);
  }
}
.home_info .client .slider {
  padding-bottom: calc(20 * 100vw / 1440);
}
@media only screen and (max-width: 1024px) {
  .home_info .client .caption {
    font-size: calc(14 * 100vw / 375);
  }
}
.home_info .list_flex {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  text-align: left;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}
@media only screen and (max-width: 1024px) {
  .home_info .list_flex {
    text-align: center;
  }
}
.home_info .green {
  color: #cbda00;
  font-size: calc(12 * 100vw / 1440);
  padding-bottom: calc(20 * 100vw / 1440);
}
@media only screen and (max-width: 1024px) {
  .home_info .green {
    font-size: calc(12 * 100vw / 375);
    padding-bottom: calc(16 * 100vw / 375);
  }
}
.home_info_inner {
  margin: auto;
  padding-top: calc(80 * 100vw / 1440);
  width: 47.3611111111vw;
}
@media only screen and (max-width: 1024px) {
  .home_info_inner {
    padding-top: calc(60 * 100vw / 375);
    width: 100%;
  }
}
.home_info_business {
  width: 44.4444444444vw;
}
@media only screen and (max-width: 1024px) {
  .home_info_business {
    width: 100%;
  }
}
.home_info_business li {
  width: 55%;
}
@media only screen and (max-width: 1024px) {
  .home_info_business li {
    text-align: center;
    width: 100%;
    padding-bottom: calc(6 * 100vw / 375);
  }
}
.home_info_business li:nth-child(2n) {
  width: 45%;
}
@media only screen and (max-width: 1024px) {
  .home_info_business li:nth-child(2n) {
    width: 100%;
  }
}
.home_info_business li:nth-child(3), .home_info_business li:nth-child(4) {
  padding-top: calc(10 * 100vw / 1440);
}
@media only screen and (max-width: 1024px) {
  .home_info_business li:nth-child(3), .home_info_business li:nth-child(4) {
    width: 100%;
  }
}
@media only screen and (max-width: 1024px) {
  .home_info_business li:last-child {
    padding-bottom: calc(0 * 100vw / 375);
  }
}
.home_info_practice h3 {
  position: relative;
  text-align: center;
  margin-bottom: calc(14 * 100vw / 1440);
}
@media only screen and (max-width: 1024px) {
  .home_info_practice h3 {
    text-align: center;
    margin-bottom: calc(10 * 100vw / 375);
  }
}
.home_info_practice h3 span {
  z-index: 2;
  position: relative;
  display: block;
}
.home_info_practice h3::before {
  content: "";
  z-index: 1;
  display: block;
  width: 100%;
  position: absolute;
  height: 100%;
  top: 0;
  background: #cbda00;
}
.home_info_practice .list_flex {
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
@media only screen and (max-width: 1024px) {
  .home_info_practice .list_flex li {
    width: 100%;
    margin-bottom: calc(20 * 100vw / 375);
  }
}
@media only screen and (max-width: 1024px) {
  .home_info_practice .list_flex li:last-child {
    margin-bottom: calc(0 * 100vw / 375);
  }
}
.home_info_practice .list_flex li p {
  margin-bottom: calc(10 * 100vw / 1440);
}
@media only screen and (max-width: 1024px) {
  .home_info_practice .list_flex li p {
    margin-bottom: calc(6 * 100vw / 375);
  }
}
.home_info_practice .list_flex li p:last-child {
  margin-bottom: 0;
}
.home_info_access .list_flex {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.home_info_access .list_flex:last-child {
  padding-top: calc(10 * 100vw / 1440);
}
@media only screen and (max-width: 1024px) {
  .home_info_access .list_flex:last-child {
    padding-top: calc(20 * 100vw / 375);
  }
}
@media only screen and (max-width: 1024px) {
  .home_info_access .list_flex address {
    width: 100%;
  }
}
.home_info_access .list_flex .en {
  font-size: calc(20 * 100vw / 1440);
  font-weight: 500;
  padding-right: calc(16 * 100vw / 1440);
  padding-top: calc(5 * 100vw / 1440);
}
@media only screen and (max-width: 1024px) {
  .home_info_access .list_flex .en {
    font-size: calc(16 * 100vw / 375);
    text-align: center;
    padding-right: calc(0 * 100vw / 375);
    padding-top: calc(0 * 100vw / 375);
    padding-bottom: calc(5 * 100vw / 375);
    width: 100%;
  }
}

.container {
  z-index: 1;
  position: relative;
}

.footer {
  width: 100%;
  height: 100vh; /* 古いブラウザ用 */
  height: 100dvh; /* モダンブラウザ用（こちらが優先される） */
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  position: relative;
  text-align: center;
  background: transparent;
}
.footer_top {
  position: absolute;
  width: 100%;
  top: 20%;
  left: 0;
}
@media only screen and (max-width: 1024px) {
  .footer_top {
    top: 25%;
  }
}
.footer_top .slider,
.footer_top .slider2 {
  width: 100%;
  font-size: calc(60 * 100vw / 1440);
  color: #b1ad9f;
}
@media only screen and (max-width: 1024px) {
  .footer_top .slider,
  .footer_top .slider2 {
    font-size: calc(28 * 100vw / 375);
  }
}
.footer_top .slider .swiper-slide,
.footer_top .slider2 .swiper-slide {
  width: auto !important;
}
@media only screen and (max-width: 1024px) {
  .footer_inner {
    padding: 0 40px;
  }
}
.footer_inner .caption {
  line-height: 2.2em;
  padding-top: calc(20 * 100vw / 1440);
}
@media only screen and (max-width: 1024px) {
  .footer_inner .caption {
    font-size: calc(12 * 100vw / 375);
    line-height: 1.9em;
    letter-spacing: 0.04em;
    text-align: left;
    padding-top: calc(20 * 100vw / 375);
  }
}
.footer_bottom {
  position: absolute;
  bottom: 10px;
  left: 0;
  right: 0;
  margin: auto;
}
@media only screen and (max-width: 1024px) {
  .footer_bottom {
    bottom: 6px;
  }
}
.footer_bottom img,
.footer_bottom small {
  margin: auto;
  text-align: center;
  display: block;
}
@media only screen and (max-width: 1024px) {
  .footer_bottom img {
    width: 70px;
  }
}
.footer_bottom small {
  font-size: calc(10 * 100vw / 1440);
  padding-top: calc(20 * 100vw / 1440);
}
@media only screen and (max-width: 1024px) {
  .footer_bottom small {
    font-size: calc(8 * 100vw / 375);
    letter-spacing: 0.03em;
    padding-top: calc(14 * 100vw / 375);
  }
}

.page_contact .header {
  top: 0;
}
.page_contact .header .header_logo {
  position: fixed;
  left: 20px;
  top: 20px;
}
.page_contact .header .menu_btn {
  right: 20px;
  left: auto;
  top: 22px;
  position: absolute;
}
.page_contact {
  /* ===== Main content ===== */
}
.page_contact .contact-wrap {
  position: relative;
  background: #ffffff;
  z-index: 1;
  min-height: 100dvh;
  padding-top: 8.3333333333vw;
  padding-bottom: 5.5555555556vw;
}
@media (max-width: 1024px) {
  .page_contact .contact-wrap {
    padding-top: 32vw;
    padding-bottom: 16vw;
  }
}
.page_contact #mfp_hidden {
  display: none;
}
.page_contact {
  /* ===== Form area ===== */
}
.page_contact .contact-form-area {
  width: 37.0833333333vw;
  margin: 0 auto;
}
@media (max-width: 1024px) {
  .page_contact .contact-form-area {
    width: 78.6666666667vw;
  }
}
.page_contact {
  /* Mailform Pro overrides */
}
.page_contact #cf7-input-screen {
  background: transparent;
}
.page_contact {
  /* Field group */
}
.page_contact .field-group {
  margin-bottom: 1.3888888889vw;
}
@media (max-width: 1024px) {
  .page_contact .field-group {
    padding-bottom: 4.2666666667vw;
    margin-bottom: 0;
  }
}
.page_contact .field-label {
  display: block;
  font-family: var(--gothic);
  font-size: 1.1111111111vw;
  letter-spacing: 0.08em;
  color: var(--main);
  margin-bottom: 0.5555555556vw;
}
@media (max-width: 1024px) {
  .page_contact .field-label {
    font-size: 3.7333333333vw;
    margin-bottom: 1.6vw;
  }
}
.page_contact .field-label .req {
  color: var(--main);
}
.page_contact {
  /* Input / Textarea styles */
}
.page_contact #cf7-input-screen input[type=text],
.page_contact #cf7-input-screen input[type=email],
.page_contact #cf7-input-screen input[type=tel],
.page_contact #cf7-input-screen textarea {
  width: 100% !important;
  background: transparent;
  border: none;
  outline: none;
  font-family: var(--gothic);
  font-size: 1.1111111111vw;
  color: var(--main);
  padding: 1.1111111111vw;
  letter-spacing: 0.06em;
  -webkit-appearance: none;
  -moz-appearance: none;
       appearance: none;
  background: #efefe9;
}
@media (max-width: 1024px) {
  .page_contact #cf7-input-screen input[type=text],
  .page_contact #cf7-input-screen input[type=email],
  .page_contact #cf7-input-screen input[type=tel],
  .page_contact #cf7-input-screen textarea {
    font-size: 3.7333333333vw;
    padding: 1.6vw;
  }
}
.page_contact #cf7-input-screen textarea {
  resize: none;
  min-height: 9.7222222222vw;
  line-height: 1.8;
}
@media (max-width: 1024px) {
  .page_contact #cf7-input-screen textarea {
    min-height: 32vw;
  }
}
.page_contact {
  /* Error message */
}
.page_contact .mfp_err,
.page_contact #cf7-input-screen .mfp_err {
  color: #c0392b;
  font-size: 0.8333333333vw;
  margin-top: 4px;
}
@media (max-width: 1024px) {
  .page_contact .mfp_err,
  .page_contact #cf7-input-screen .mfp_err {
    font-size: 2.9333333333vw;
  }
}
.page_contact {
  /* Submit button */
}
.page_contact .submit-wrap {
  margin-top: 2.7777777778vw;
}
@media (max-width: 1024px) {
  .page_contact .submit-wrap {
    margin-top: 8vw;
  }
}
.page_contact #cf7-input-screen .mfp_buttons {
  display: block;
}
.page_contact #cf7-input-screen button[type=submit],
.page_contact .submit-wrap a,
.page_contact #mfp_button_send,
.page_contact #btn-to-confirm {
  display: block;
  text-align: center;
  width: 100%;
  background: #2a2b1b;
  color: #ffffff;
  border: none;
  outline: none;
  cursor: pointer;
  font-family: var(--en);
  font-weight: 600;
  font-size: 1.1111111111vw;
  letter-spacing: 0.1em;
  padding: 1.3888888889vw 0;
  -webkit-transition: 0.2s;
  transition: 0.2s;
  -webkit-appearance: none;
  -moz-appearance: none;
       appearance: none;
}
@media only screen and (max-width: 1024px) {
  .page_contact #cf7-input-screen button[type=submit],
  .page_contact .submit-wrap a,
  .page_contact #mfp_button_send,
  .page_contact #btn-to-confirm {
    padding: 20px 0;
    font-size: calc(14 * 100vw / 375);
  }
}
.page_contact #cf7-input-screen button[type=submit]:hover,
.page_contact .submit-wrap a:hover,
.page_contact #mfp_button_send:hover,
.page_contact #btn-to-confirm:hover {
  background: #cbda00;
  color: #2a2b1b;
}
.page_contact {
  /* ===== Footer ===== */
}
.page_contact .footer {
  position: relative;
  z-index: 1;
  background: #ffffff !important;
  text-align: center;
  padding: 4.1666666667vw 0 1.3888888889vw;
}
@media (max-width: 1024px) {
  .page_contact .footer {
    padding: 10.6666666667vw 0 4.2666666667vw;
  }
}
.page_contact .footer-logo {
  width: 5.5555555556vw;
  margin: 0 auto 1.1111111111vw;
  display: block;
}
@media (max-width: 1024px) {
  .page_contact .footer-logo {
    width: 70px;
    margin: 0 auto 3.2vw;
  }
}
.page_contact .footer small {
  font-family: var(--en);
  font-size: 0.6944444444vw;
  letter-spacing: 0.03em;
  color: var(--main);
  display: block;
}
@media (max-width: 1024px) {
  .page_contact .footer small {
    font-size: 2.1333333333vw;
  }
}
.page_contact {
  /* ===== Mailform Pro confirm / thanks overrides ===== */
}
.page_contact #cf7-input-screen .mfp_phase_confirm,
.page_contact #cf7-input-screen #mfp_phase_confirm {
  padding: 0;
}
.page_contact #cf7-input-screen .mfp_confirm_table_wrap table {
  width: 100%;
  border-collapse: collapse;
}
.page_contact #cf7-input-screen .mfp_confirm_table_wrap th,
.page_contact #cf7-input-screen .mfp_confirm_table_wrap td {
  padding: 0.8333333333vw 0;
  border-bottom: 1px solid rgba(42, 43, 27, 0.2);
  font-family: var(--gothic);
  font-size: 1.0416666667vw;
  text-align: left;
  vertical-align: top;
}
@media (max-width: 1024px) {
  .page_contact #cf7-input-screen .mfp_confirm_table_wrap th,
  .page_contact #cf7-input-screen .mfp_confirm_table_wrap td {
    font-size: 3.4666666667vw;
    padding: 2.6666666667vw 0;
  }
}
.page_contact #cf7-input-screen .mfp_confirm_table_wrap th {
  width: 40%;
  color: rgba(42, 43, 27, 0.6);
  font-weight: 500;
  padding-right: 16px;
}
.page_contact #cf7-input-screen .mfp_buttons {
  margin-top: 2.2222222222vw;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 0.8333333333vw;
}
@media (max-width: 1024px) {
  .page_contact #cf7-input-screen .mfp_buttons {
    margin-top: 6.4vw;
    gap: 2.6666666667vw;
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse;
  }
}
.page_contact {
  /* Confirm title */
}
.page_contact #cf7-input-screen h4 {
  font-family: var(--gothic);
  font-size: 1.25vw;
  letter-spacing: 0.08em;
  margin-bottom: 1.3888888889vw;
}
@media (max-width: 1024px) {
  .page_contact #cf7-input-screen h4 {
    font-size: 4vw;
    margin-bottom: 4.2666666667vw;
  }
}
.page_contact .footer {
  height: auto;
  background: #a3a199;
}

.page_policy {
  /* Section heading */
}
.page_policy .policy-block__heading {
  font-family: var(--gothic);
  font-size: calc(16 * 100vw / 1440);
  font-weight: 500;
  letter-spacing: 0.1em;
  color: var(--main);
  padding-top: calc(20 * 100vw / 1440);
  border-bottom: 2px solid;
  padding-bottom: calc(8 * 100vw / 1440);
  margin-bottom: calc(8 * 100vw / 1440);
  position: relative;
}
@media only screen and (max-width: 1024px) {
  .page_policy .policy-block__heading {
    font-size: calc(16 * 100vw / 375);
    padding-top: calc(24 * 100vw / 375);
    padding-bottom: calc(12 * 100vw / 375);
    margin-bottom: calc(12 * 100vw / 375);
  }
}
.page_policy {
  /* yellow underline accent */
}
.page_policy .policy-block__heading::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -2px;
  width: 0;
  height: 2px;
  -webkit-transition: width 0.6s ease;
  transition: width 0.6s ease;
}
.page_policy .policy-block__heading.is-active::after {
  width: 100%;
}
.page_policy {
  /* Body text */
}
.page_policy .policy-block__body {
  font-family: var(--gothic);
  font-size: calc(15 * var(--vw-pc));
  line-height: 2;
  letter-spacing: 0.06em;
  color: var(--main);
}
@media (max-width: 1024px) {
  .page_policy .policy-block__body {
    font-size: calc(13 * var(--vw-sp));
  }
}
.page_policy .policy-block__body p + p {
  margin-top: calc(14 * var(--vw-pc));
}
@media (max-width: 1024px) {
  .page_policy .policy-block__body p + p {
    margin-top: calc(10 * var(--vw-sp));
  }
}
.page_policy {
  /* List */
}
.page_policy .policy-block__body ul {
  padding-left: 1.2em;
  margin-top: calc(10 * var(--vw-pc));
}
.page_policy .policy-block__body ul li {
  list-style: disc;
  margin-bottom: calc(6 * var(--vw-pc));
  font-size: calc(15 * var(--vw-pc));
  line-height: 1.9;
  letter-spacing: 0.06em;
}
@media (max-width: 1024px) {
  .page_policy .policy-block__body ul {
    margin-top: calc(8 * var(--vw-sp));
  }
  .page_policy .policy-block__body ul li {
    font-size: calc(13 * var(--vw-sp));
    margin-bottom: calc(4 * var(--vw-sp));
  }
}
.page_policy {
  /* Sub-heading inside block */
}
.page_policy .policy-block__sub {
  font-family: var(--gothic);
  font-size: calc(14 * var(--vw-pc));
  font-weight: 500;
  letter-spacing: 0.08em;
  color: var(--main);
  margin-top: calc(24 * var(--vw-pc));
  margin-bottom: calc(8 * var(--vw-pc));
}
@media (max-width: 1024px) {
  .page_policy .policy-block__sub {
    font-size: calc(12 * var(--vw-sp));
    margin-top: calc(18 * var(--vw-sp));
    margin-bottom: calc(6 * var(--vw-sp));
  }
}
.page_policy {
  /* Contact info box */
}
.page_policy .policy-contact {
  border: 1px solid var(--main);
  padding: calc(30 * var(--vw-pc)) calc(36 * var(--vw-pc));
  margin-top: calc(10 * var(--vw-pc));
}
@media (max-width: 1024px) {
  .page_policy .policy-contact {
    padding: calc(24 * var(--vw-sp)) calc(24 * var(--vw-sp));
    margin-top: calc(8 * var(--vw-sp));
  }
}
.page_policy .policy-contact p {
  font-family: var(--gothic);
  font-size: calc(14 * var(--vw-pc));
  line-height: 2;
  letter-spacing: 0.06em;
}
@media (max-width: 1024px) {
  .page_policy .policy-contact p {
    font-size: calc(12 * var(--vw-sp));
  }
}
.page_policy .policy-contact a {
  color: var(--main);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.page_policy {
  /* Divider */
}
.page_policy .policy-divider {
  border: none;
  border-top: 1px solid rgba(42, 43, 27, 0.2);
  margin: calc(60 * var(--vw-pc)) 0;
}
@media (max-width: 1024px) {
  .page_policy .policy-divider {
    margin: calc(44 * var(--vw-sp)) 0;
  }
}

#mfp_phase_confirm_inner {
  max-width: 100%;
}
#mfp_phase_confirm_inner h4 {
  text-align: center;
  margin-bottom: 20px;
}
#mfp_phase_confirm_inner #mfp_confirm_table {
  width: 100%;
}
#mfp_phase_confirm_inner #mfp_confirm_table tr {
  border-bottom: 1px solid #2a2b1b;
}
#mfp_phase_confirm_inner #mfp_confirm_table td,
#mfp_phase_confirm_inner #mfp_confirm_table th {
  padding: 24px 8px;
}
#mfp_phase_confirm_inner #mfp_confirm_table th {
  width: 20%;
}
#mfp_phase_confirm_inner #mfp_confirm_table td {
  width: 80%;
}
@media only screen and (max-width: 1024px) {
  #mfp_phase_confirm_inner {
    width: 100%;
    display: block;
  }
  #mfp_phase_confirm_inner tr,
  #mfp_phase_confirm_inner td,
  #mfp_phase_confirm_inner tbody,
  #mfp_phase_confirm_inner th {
    display: block;
    width: 100% !important;
    padding: 0 !important;
  }
  #mfp_phase_confirm_inner tr {
    padding: 20px !important;
  }
  #mfp_phase_confirm_inner tr td {
    padding-top: 8px !important;
  }
}
#mfp_phase_confirm_inner .mfp_buttons {
  margin-top: 40px;
}

/* ===========================================
   pepe Inc. — CF7 確認画面スタイル追記分
   layout.css または layout.scss の末尾に追記
   =========================================== */
/* ─── data-form-step による表示切り替え ─── */
/* 入力画面: confirm_only / error_only を隠す */
[data-form-step=input] .confirm_only,
[data-form-step=input] .error_only {
  display: none !important;
}

/* 確認画面: 入力専用要素を隠す */
[data-form-step=confirm] .input_only,
[data-form-step=confirm] .error_only,
[data-form-step=confirm] .contact_policy,
[data-form-step=confirm] .req,
[data-form-step=confirm] .next_none {
  display: none !important;
}

.next_block {
  display: none;
}

[data-form-step=confirm] .next_block {
  display: block;
}

/* 確認画面: フォームフィールドを読み取り専用に見せる */
[data-form-step=confirm] input[type=text],
[data-form-step=confirm] input[type=email],
[data-form-step=confirm] input[type=tel],
[data-form-step=confirm] textarea,
[data-form-step=confirm] select {
  pointer-events: none;
  resize: none;
  border: none !important;
  border-bottom: 1px solid rgba(42, 43, 27, 0.15) !important;
  background: transparent !important;
  color: var(--main);
  opacity: 1;
}

/* オートフィルの青背景を消す */
[data-form-step=confirm] input:-webkit-autofill {
  -webkit-box-shadow: 0 0 0 1000px transparent inset !important;
  box-shadow: 0 0 0 1000px transparent inset !important;
}

/* 確認画面: confirm_only を表示 */
[data-form-step=confirm] .confirm_only {
  display: block !important;
  padding: 0.5555555556vw 0;
  font-size: 1.0416666667vw;
  letter-spacing: 0.06em;
  line-height: 1.8;
}

@media only screen and (max-width: 1024px) {
  [data-form-step=confirm] .confirm_only {
    font-size: 3.4666666667vw;
    padding: 1.6vw 0;
  }
}
/* エラー画面: 入力専用・確認専用を隠す */
[data-form-step=error] .input_only,
[data-form-step=error] .confirm_only {
  display: none !important;
}

/* ─── CF7 submit ボタン（NEXT / SEND 共通）─── */
.page_contact .wpcf7-submit {
  display: block;
  width: 100%;
  background: var(--main, #2a2b1b);
  color: #ffffff;
  border: none !important;
  outline: none;
  cursor: pointer;
  font-family: "Inter", sans-serif;
  font-weight: 600;
  font-size: 1.1111111111vw;
  letter-spacing: 0.1em;
  padding: 1.3888888889vw 0;
  -webkit-transition: background 0.2s, color 0.2s;
  transition: background 0.2s, color 0.2s;
  -webkit-appearance: none;
  -moz-appearance: none;
       appearance: none;
}

@media only screen and (max-width: 1024px) {
  .page_contact .wpcf7-submit {
    font-size: 3.7333333333vw;
    padding: 4.8vw 0;
  }
}
.page_contact .wpcf7-submit:hover {
  background: #cbda00;
  color: var(--main, #2a2b1b);
}

/* ─── BACK ボタン ─── */
.page_contact #btn_back_input {
  display: block;
  width: 100%;
  background: #a3a199;
  color: var(--main, #2a2b1b);
  border: none !important;
  outline: none;
  cursor: pointer;
  font-family: "Inter", sans-serif;
  font-weight: 600;
  font-size: 1.1111111111vw;
  letter-spacing: 0.1em;
  padding: 1.3888888889vw 0;
  -webkit-transition: background 0.2s, color 0.2s;
  transition: background 0.2s, color 0.2s;
  -webkit-appearance: none;
  -moz-appearance: none;
       appearance: none;
  margin-top: 0.8333333333vw;
}

@media only screen and (max-width: 1024px) {
  .page_contact #btn_back_input {
    font-size: 3.7333333333vw;
    padding: 4.8vw 0;
    margin-top: 2.6666666667vw;
  }
}
.page_contact #btn_back_input:hover {
  background: var(--main, #2a2b1b);
  color: #ffffff;
}

/* ─── form_btn_container ─── */
.page_contact .form_btn_container {
  margin-top: 2.7777777778vw;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column; /* NEXT/SEND → BACK の縦並び */
  gap: 0;
}

@media only screen and (max-width: 1024px) {
  .page_contact .form_btn_container {
    margin-top: 8vw;
  }
}
/* flag フィールドは常に非表示 */
.page_contact span[data-name=flag] {
  display: none !important;
}

/* ─── バリデーションエラー表示 ─── */
.page_contact .wpcf7-not-valid-tip {
  display: block;
  color: #c0392b;
  font-size: 0.8333333333vw;
  margin-top: 4px;
  letter-spacing: 0.04em;
}

@media only screen and (max-width: 1024px) {
  .page_contact .wpcf7-not-valid-tip {
    font-size: 2.9333333333vw;
  }
}
.page_contact .wpcf7-not-valid {
  border-bottom-color: #c0392b !important;
}

/* ─── CF7 デフォルト response output を非表示 ─── */
.wpcf7-response-output {
  display: none !important;
}

/* ─── スピナー非表示 ─── */
.wpcf7-spinner {
  display: none !important;
}

.grecaptcha-badge {
  z-index: 999999;
}