/*
Theme Name: Twenty Twenty-Four
Theme URI: https://wordpress.org/themes/twentytwentyfour/
Author: the WordPress team
Author URI: https://wordpress.org
Description: Twenty Twenty-Four is designed to be flexible, versatile and applicable to any website. Its collection of templates and patterns tailor to different needs, such as presenting a business, blogging and writing or showcasing work. A multitude of possibilities open up with just a few adjustments to color and typography. Twenty Twenty-Four comes with style variations and full page designs to help speed up the site building process, is fully compatible with the site editor, and takes advantage of new design tools introduced in WordPress 6.4.
Requires at least: 6.4
Tested up to: 6.6
Requires PHP: 7.0
Version: 1.2
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: twentytwentyfour
Tags: one-column, custom-colors, custom-menu, custom-logo, editor-style, featured-images, full-site-editing, block-patterns, rtl-language-support, sticky-post, threaded-comments, translation-ready, wide-blocks, block-styles, style-variations, accessibility-ready, blog, portfolio, news
*/
html,
body {
  margin: 0;
  padding: 0;
  height: 100%;
}

.content-wrapper {
  max-width: 500px;
  margin: 0 auto;
  height: 100svh;
  width: 100%;
  display: flex;
  flex-direction: column;
}

.slide-wrap {
  height: calc(100svh - (500px * 3 / 10));
}

.vertical-swiper {
  /* height: 100%; */
  flex: 1;
  width: 100%;
}

.swiper-slide {
  position: relative;
  height: 100%;
  overflow: hidden;
}

.swiper-pagination-progressbar-fill {
  background: #444 !important;
}

.swiper-pagination.swiper-pagination-progressbar.swiper-pagination-vertical {
  left: auto;
  right: 0;
}

/* 画像表示（PC/スマホ共通） */
.bg-img {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 0;
  width: 100%;
  height: auto;
  /* object-fit: cover;
  object-position: center center; */
  z-index: 1;
}

/* テキストコンテンツ */
.content-box {
  position: relative;
  z-index: 2;
  color: white !important;
  text-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
  text-align: center;
  top: 50%;
  transform: translateY(-50%);
  padding: 0 1rem;
}

.content-box h2 {
  font-size: 3rem;
  margin-bottom: 1rem;
  color: white !important;
}

.content-box p {
  font-size: 1.5rem;
  margin-bottom: 2rem;
}

.content-box button {
  padding: 1rem 2rem;
  font-size: 1rem;
  border: none;
  background-color: #ffffffcc;
  color: #000;
  cursor: pointer;
}

/* スクロールヒント */
.scroll-hint {
  margin-top: 2rem;
  font-size: 1rem;
  animation: bounce 1.5s infinite;
}

@keyframes bounce {

  0%,
  100% {
    transform: translateY(0);
  }

  50% {
    transform: translateY(10px);
  }
}

/* 追従CTAボタン */
.sticky-cta {
  /* position: fixed;
  bottom: 0; */
  width: 100%;
  text-align: center;
  /* background: rgba(255, 255, 255, 0.9); */
  /* padding: 0.5rem; */
  z-index: 1000;
  /* box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1); */
  aspect-ratio: 10 / 3;
}

.sticky-cta .cta-box {
  /* max-width: 500px;
  margin: 0 auto; */
  background-color: #fff;
  display: grid;
  grid-template-columns: repeat(2, 1fr);

}

.sticky-cta .btn-box img {
  width: 100%;
}

.sticky-cta button {
  padding: 1rem 2rem;
  font-size: 1.2rem;
  background-color: #e60000;
  color: white;
  border: none;
  border-radius: 999px;
  cursor: pointer;
}

/* レスポンシブ調整 */
@media screen and (max-width: 768px) {
  .content-box h2 {
    font-size: 2rem;
  }

  .content-box p {
    font-size: 1rem;
  }

  .content-box button {
    font-size: 0.9rem;
    padding: 0.8rem 1.5rem;
  }

  .sticky-cta button {
    font-size: 1rem;
    padding: 0.8rem 1.5rem;
  }
}



/* 下層ページ*/
.subpage-content-wrapper {
  max-width: 500px;
  margin: 0 auto;
  width: 100%;
  background-color: #fff;
  padding: 100px 20px 50px;
  box-sizing: border-box;
}

.subpage-content-wrapper h2 {
  text-align: center;
  font-size: 24px;
  font-weight: 700;
  margin: 0 0 50px;
}

.subpage-content-wrapper .txt01 {
  font-size: 16px;
  font-weight: 700;
  margin-bottom: 15px;
}

.subpage-content-wrapper .txt {
  font-size: 15px;
  line-height: 1.6;
}

.txt+.txt {
  margin-top: 1em;
}

.subpage-content-wrapper .tel.txt a {
  font-size: 1.5rem;
}

/* お問い合わせフォーム */
.table-res-form {
  width: 100%;
  margin-top: 30px;
}

.table-res-form p {
  margin: 0;
}

.table-res-form th,
.table-res-form td {
  padding: 1.5em 0 .5em;
  text-align: left;
  display: block;
  width: 100%;
}

.table-res-form th {
  padding-bottom: 0;
  padding-top: 14px;
}

.table-res-form th .requied,
.table-res-form th .optional {
  font-size: 11px;
  color: #fff;
  display: inline-block;
  padding: 0 .3em;
  background: #ed1c24;
  border-radius: 2px;
  margin-left: .5em;
  position: relative;
  bottom: 2px;
}

.table-res-form th .optional {
  background: #999;
}

.table-res-form td {
  padding-top: 5px;
}

input[type=email],
input[type=number],
input[type=tel],
input[type=text] {
  border: 1px #cdcdcd solid !important;
  padding: .5em !important;
  border-radius: 5px;
  width: 100% !important;
  margin: 0;
  box-sizing: border-box;
  font-size: 16px;
}

input[type=email]:focus,
input[type=number]:focus,
input[type=tel]:focus,
input[type=text]:focus {
  background: #fafafa !important;
  box-shadow: 0 0 1px 0 rgba(0, 0, 0, .5) !important
}

select,
textarea {
  border: 1px #cdcdcd solid !important;
  padding: .5em !important;
  border-radius: 5px;
  width: 100% !important;
  margin: 0;
  box-sizing: border-box;
  font-size: 16px;
}

.table-res-submit {
  text-align: center;
}

.table-res-submit p {
  font-size: 14px;
}

.wpcf7-submit {
  font-family: inherit !important;
  height: auto !important;
  border-radius: 5px !important;
  text-align: center !important;
  color: #fff !important;
  display: inline-block !important;
  font-size: 1em !important;
  font-weight: 700 !important;
  line-height: 3.75em !important;
  padding: 0 3em !important;
  position: relative !important;
  text-decoration: none !important;
  border: none !important;
  background: #333 !important;
  position: relative !important;
  -webkit-transition: all .15s ease-out;
  transition: all .15s ease-out;
  margin: 3em 0 1.5em !important
}

.wpcf7-submit[disabled] {
  background: #eee !important;
  color: #aaa !important;
  border: 1px #eee solid !important;
  box-shadow: 0 0 1px 0 rgba(0, 0, 0, .5) !important
}

.wpcf7-spinner {
  display: block;
  margin: 0 auto;
}

/* プライバシーポリシー */
.policy-box p {
  font-size: 15px;
  text-align: justify;
  margin: 0;
}

.policy-box .box+.box {
  margin-top: 60px;
}

.policy-box p+p {
  margin-top: 30px;
}

.policy-box h3 {
  font-size: 16px;
  font-weight: 700;
  border-bottom: 1px solid #333;
  padding-bottom: 5px;
  margin-bottom: 15px;
}

/* footer */
footer {
  max-width: 500px;
  margin: 0 auto;
  width: 100%;
}

#swipelp .sub-page-fixed-btn {
  display: none;
}

.sub-page-fixed-btn {
  position: fixed;
  bottom: 0;
  left: 0;
  background-color: #333;
  color: #fff;
  width: 100%;
  text-align: center;
}