@import url(https://fonts.googleapis.com/css2?family=Shippori+Mincho+B1&display=swap);
html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
menu,
nav,
output,
ruby,
summary,
time,
mark,
audio,
video {
    margin: 0;
    padding: 0;
    border: 0;
        font-family: "EB Garamond", "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;font-size: 100%;
    vertical-align: baseline
}
html {
    line-height: 1
}

ol,
ul {
    list-style: none
}
table {
    border-collapse: collapse;
    border-spacing: 0
}
caption,
th,
td {
    text-align: left;
    font-weight: normal;
    vertical-align: middle
}
q,
blockquote {
    quotes: none
}
q:before,
q:after,
blockquote:before,
blockquote:after {
    content: "";
    content: none
}
a img {
    border: none
}
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
    display: block
}
main {
    max-width: 580px;
    margin: 0 auto;
}
a.cvbt.modal_trigger {
    position: fixed;
    z-index: 100;
    width: 100%;
    left: 0;
    bottom: 0;
    display: block;
    max-width: 750px;
    left: 50%;
    transform: translate(-50%, -50%);
}
  html, body { height:100%; margin:0; }
  /* 1画面＝1スライド */
  .verticalLP { height: 80svh; }
  .verticalLP .swiper-slide {
    position: relative;
    display: grid;
    place-items: center; /* 中身を中央に */
    overflow: hidden;
  }

  /* 画像を同一サイズで見せる（比率固定 & トリミング） */
  .slide-media { position:absolute; inset:0; }
  .slide-media img { width:100%; height:100%; object-fit:cover; }

  /* テキストは前面に */
  .slide-content { position:relative; z-index:2; color:#fff; text-align:center; }
  .slide-content h2 { margin:0 0 .5em; font-size:clamp(22px, 5vw, 40px); }
  .slide-content p { margin:0; font-size:clamp(14px, 3.5vw, 18px); }

  /* ページネーション & スクロールバーの位置調整（お好みで） */
  .verticalLP .swiper-pagination { right: 12px; left:auto; }
  .verticalLP .swiper-scrollbar { width: 4px; right: 6px; left:auto; }

/* 横スワイプゾーン */
.horizontal-zone{
  background:#fcf8f7;
}

.h-snap{
  display:flex;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  height:100%;
}

.h-slide{
  flex:0 0 100%;
  scroll-snap-align:start;
  height:100%;
}
@media screen and (min-width: 767px) {
a.cvbt.modal_trigger {
    position: fixed;
    z-index: 100;
    width: 100%;
    left: 0;
    bottom: -150px;
    display: block;
    max-width: 750px;
    left: 50%;
    transform: translate(-50%, -50%);
}
.verticalLP {
    height: 100vh;
    padding: 0 5%;
    background: #fcf8f7;
}
}
.wpcf7-spinner {
    visibility: hidden;
    display: inline-block;
    background-color: #23282d;
    opacity: 0.75;
    width: 24px;
    height: 24px;
    border: none;
    border-radius: 100%;
    padding: 0;
    margin: 0 24px;
    position: relative;
    display: none;
}
.input_100 input[type=text], .input_100 input[type=email], .input_100 input[type=tel], .input_100 textarea, .input_100 select {
    width: 95%;
    outline: none;
    color: #623c20;
    border: solid 1px #623c20;
    padding: 7px 12px;
    background: #fff;
}
.modal-content__form-box {
    padding: 0 25px 35%;
    text-align: left;
}
.modal_close {
    position: absolute;
    left: 10px;
    top: 55px !important;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    margin: auto;
    background: #fff;
    box-shadow: 0 0 20px rgba(0, 0, 0, 0.2);
}
