@charset "utf-8";
/* CSS Document */
@media (max-width: 767px) {
  .page #content {
    padding: 0px 0px 0;
  }
}
@media (min-width: 768px) {
  .home #content p {
    padding-top: 15px;
    line-height: 34px;
    font-size: clamp(0.875rem, 0.492rem + 0.8vw, 1.25rem);
    line-height: clamp(1.1rem, 0.111rem + 2.06vw, 2rem);
  }
}
#content p.text22 {
  font-size: 22px !Important;
  font-size: min(22px, 1.8vw) !Important;
  line-height: 34px;
  line-height: min(34px, 2.03vw);
  font-weight: 400;
  padding-top: 0;
}
#content p.text22 strong {
  font-weight: 500;
}
@media (max-width: 767px) {
  #content p.text22 {
    font-size: 18px !Important;
    line-height: 150%;
  }
}
/* トップページ */
/* Slide */
.slide-bg {
  margin-top: -51px;
  z-index: 10;
  position: relative;
}
@media (min-width: 768px) and (max-width: 991px) {
  .slide-bg {
    margin-top: -20px;
  }
}
@media (max-width: 767px) {
  .slide-bg {
    margin-top: 0px;
  }
}
.n2-section-smartslider img {
  border-radius: 8px !Important;
}
.home .n2-section-smartslider img {
  border-radius: 0 !Important;
}
#content .home1 {
  background: url("../img/wp_share/home-fullorder-bg.png") no-repeat left top;
  background-size: cover;
  border-radius: 8px 8px 8px 0;
  margin-top: 32px;
}
#content .home2 {
  background: url("../img/wp_share/home-inside-bg.png") no-repeat left top;
  background-size: cover;
  border-radius: 8px 8px 8px 0;
  margin-top: 30px;
}
h3.monozukuri {
  padding-top: 0 !Important;
}
@media (max-width: 767px) {
  #content .home1, #content .home2 {
    background-size: contain;
  }
}
#content .bg-white-transparent {
  display: block;
  background: #FAF7F040;
  backdrop-filter: blur(20px);
  padding: 42px;
  border-radius: 20px;
}
@media (min-width: 768px) and (max-width: 1199px) {
  #content .bg-white-transparent {}
}
@media (max-width: 767px) {
  #content .bg-white-transparent {
    margin-top: 55vw;
    padding: 10px;
    background: transparent;
    backdrop-filter: none;
    margin-bottom: 30px;
  }
}
#content .bg-blk-transparent {
  background: #FAF7F040;
}
#content .bg-blk-transparent p {
  color: rgba(243, 238, 227, 1);
}
#content .bg-blk-transparent h3 {
  color: rgba(243, 238, 227, 1) !Important;
}
@media (max-width: 767px) {
  #content .bg-blk-transparent p {
    color: black;
  }
  #content .bg-blk-transparent h3 {
    color: black !Important;
  }
}
.bg-cover {
  margin-right: calc(50% - 50vw) !Important;
  margin-left: calc(50% - 50vw) !Important;
  padding-right: calc(50vw - 50%) !Important;
  padding-left: calc(50vw - 50%) !Important;
}
/* 共通 */
.bg-line {
  background: url("../img/wp_share/border4x4.png") repeat left 4px;
  padding: 0px 0;
}
.bg-line2 {
  background: url("../img/wp_share/border2x2.png") repeat left top;
}
.bg-line-red4 {
  margin: 3px 0 28px;
  border-top: 4px #9B1C15 solid;
}
.bg-line-red2 {
  padding: 10px 0;
  border-top: 2px #9B1C15 solid;
}
@media (min-width: 768px) {
  .case .bg-line, .category .bg-line, .single .bg-line, .search .bg-line {
    padding: 0 24px !Important;
  }
}
@media (max-width: 767px) {
  .case .bg-line, .category .bg-line, .search .bg-line {
    padding-left: 40px !Important;
    padding-right: 40px !Important;
  }
  .single .bg-line {
    padding-left: 20px !Important;
    padding-right: 20px !Important;
  }
}
p.pad-top-reasonable {
  margin-top: 44px !Important;
}
@media (min-width: 1520px) {
  .pad-consulting {
    padding: 56px 114px 30px !Important;
  }
  .pad-reasonable1 {
    padding: 28px 0px 0px !Important;
  }
  .pad-reasonable2 {
    padding: 0px 135px 32px !Important;
  }
  .pad-custom-order {
    padding: 0px 68px 63px !Important;
  }
  .pad-quality {
    padding: 0px 68px !Important;
  }
  .pad-full-order {
    padding: 68px !Important;
  }
  .pad-materials {
    padding: 27px 61px 40px !Important;
  }
  .pad-about-us {
    padding: 60px 114px 30px !Important;
  }
  .pad-ginza {
    padding: 0px 62px 56px 68px !Important;
  }
}
@media (min-width: 768px) and (max-width: 1520px) {
  .pad-consulting {
    padding: 56px 114px 30px !Important;
    padding-top: clamp(0.313rem, -2.943rem + 6.78vw, 3.5rem) !Important;
    padding-left: clamp(0.625rem, -6.013rem + 13.83vw, 7.125rem) !Important;
    padding-right: clamp(0.625rem, -6.013rem + 13.83vw, 7.125rem) !Important;
    padding-bottom: clamp(0.313rem, -1.283rem + 3.32vw, 1.875rem) !Important;
  }
  .pad-reasonable1 {
    padding-top: clamp(0.625rem, -0.524rem + 2.39vw, 1.75rem) !Important;
  }
  .pad-reasonable2 {
    padding-left: clamp(0.313rem, -7.985rem + 17.29vw, 8.438rem) !Important;
    padding-right: clamp(0.313rem, -7.985rem + 17.29vw, 8.438rem) !Important;
    padding-bottom: clamp(0.313rem, -1.411rem + 3.59vw, 2rem) !Important;
  }
  .pad-custom-order {
    padding: 0px 68px 63px !Important;
    padding-left: clamp(0.625rem, -3.077rem + 7.71vw, 4.25rem) !Important;
    padding-right: clamp(0.625rem, -3.077rem + 7.71vw, 4.25rem) !Important;
    padding-bottom: clamp(0.625rem, -2.758rem + 7.05vw, 3.938rem) !Important;
  }
  .pad-quality {
    padding: 0px 68px !Important;
    padding-left: clamp(0.625rem, -3.077rem + 7.71vw, 4.25rem) !Important;
    padding-right: clamp(0.625rem, -3.077rem + 7.71vw, 4.25rem) !Important;
  }
  .pad-full-order {
    padding: 68px !Important;
    padding: clamp(0.625rem, -3.077rem + 7.71vw, 4.25rem) !Important;
  }
  .pad-materials {
    padding: 27px 61px 40px !Important;
    padding-top: clamp(0.313rem, -1.092rem + 2.93vw, 1.688rem) !Important;
    padding-left: clamp(0.625rem, -2.63rem + 6.78vw, 3.813rem) !Important;
    padding-right: clamp(0.625rem, -2.63rem + 6.78vw, 3.813rem) !Important;
    padding-bottom: clamp(1.25rem, -0.027rem + 2.66vw, 2.5rem) !Important;
  }
  .pad-about-us {
    padding: 60px 114px 30px !Important;
    padding-top: clamp(0.938rem, -1.935rem + 5.98vw, 3.75rem) !Important;
    padding-left: clamp(0.625rem, -6.013rem + 13.83vw, 7.125rem) !Important;
    padding-right: clamp(0.625rem, -6.013rem + 13.83vw, 7.125rem) !Important;
    padding-bottom: clamp(0.313rem, -2.943rem + 6.78vw, 3.5rem) !Important;
  }
  .pad-ginza {
    padding: 0px 62px 56px 68px !Important;
    padding-left: clamp(0.625rem, -3.077rem + 7.71vw, 4.25rem) !Important;
    padding-right: clamp(0.625rem, -2.694rem + 6.91vw, 3.875rem) !Important;
    padding-bottom: clamp(0.625rem, -2.311rem + 6.12vw, 3.5rem) !Important;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .pad-md {
    padding: 0px 68px !Important;
    padding-left: clamp(0.625rem, -3.077rem + 7.71vw, 4.25rem) !Important;
    padding-right: clamp(0.625rem, -3.077rem + 7.71vw, 4.25rem) !Important;
  }
}
@media (max-width: 767px) {
  .pad-consulting, .pad-custom-order, .pad-quality, .pad-full-order, .pad-materials, .pad-about-us, .pad-ginza {
    padding: 20px !Important;
  }
  .pad-reasonable1 {
    padding: 10px 10px 0px !Important;
  }
  .pad-reasonable2 {
    padding: 0 10px 10px !Important;
  }
}
@media (min-width: 768px) and (max-width: 850px) {
  .no-disp {
    display: none !important;
  }
  .disp {
    display: inline-block;
  }
}
@media (min-width: 851px) {
  .disp {
    display: none;
  }
}
@media (max-width: 767px) {
  .disp {
    display: none;
  }
}
@media (min-width: 1450px) and (max-width: 1500px) {
  .br-none {
    display: none !Important;
  }
}
.page-pad {
  padding: 0 36px 28px;
}
.top-text {
  display: block; /* pタグは通常ブロック要素 */
  position: relative; /* 相対配置を適用 */
}
a.more-link, .more-link {
  font-size: 12px; /* 小さなフォントサイズ */
  text-decoration: none !Important; /* 下線を消す */
  float: right; /* 右寄せ */
  margin-left: 10px; /* 文章とリンクの間に余白をつける */
  white-space: nowrap; /* 折り返しを防ぐ */
  color: black;
}
a.more-order-example, .more-order-example {
    color: black;
    white-space: nowrap;
    text-decoration: underline;
    font-size: 22px;
    font-weight: 350;
    line-height: 34px;
    text-decoration-line: underline;
    text-decoration-style: solid;
    text-decoration-skip-ink: auto;
    text-decoration-thickness: auto;
    text-underline-offset: auto;
    text-underline-position: from-font;
}
a.more-link-left, .more-link-left {
  float: left;
  margin-left: 0px;
  line-height: 12px;
}
a.more-link:hover {
  text-decoration: underline !Important; /* ホバー時に下線を表示 */
}
.card {
  position: relative;
  overflow: hidden; /* はみ出し防止 */
  /*border-radius: 8px;*/
  background-color: transparent !important;
  border: none !important;
  padding: 4px;
}
.card a {
  display: block;
  overflow: hidden;
  border-radius: 8px; /* ←追加 */
}
.card img.card-img-top {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  transition: transform 0.1s ease;
  display: block;
}
.card:hover img.card-img-top {
  transform: scale(1.1);
  /*border-radius: 8px;*/
}
h3.card-title {
  margin-bottom: 5px !Important;
  padding-top: 0 !Important;
}
.card-title a {
  font-size: 18px !Important;
  font-family: "Noto Sans JP" !Important;
  text-decoration: none;
  color: black;
  line-height: 1;
}
.page-id-47380 .card-title a {
  line-height: 1.5;
}
.card-title a:hover {
  text-decoration: underline;
}
.card-title {
  margin-bottom: .25rem;
}
@media (min-width: 768px) and (max-width: 1467px) {
  .card-title a {
    font-size: clamp(0.938rem, 0.746rem + 0.4vw, 1.125rem) !Important;
  }
  .card-title {
    line-height: 100% !Important;
  }
}
@media (max-width: 767px) {
  .card-title a {
    font-size: 16px !Important;
    line-height: 1;
  }
  .card {
    padding: 5px;
  }
}
/* Ginza */
@media (min-width: 768px) {
  /*  .access-ginza {
    width: 100%;
    height: 353px;
    overflow: hidden;
  }
  .access-ginza img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }*/
  .no-pr {
    padding-right: 0 !Important;
  }
}
/* form */
/*.contact input[type=text], textarea {
  padding: 5px;
  margin: 4px 0 20px 0;
  background: #ffffff;
  color: #555;
  border: 1px #cccccc solid;
  width: 150%;
  -webkit-box-shadow: 0px 0px 2px #aaa;
  -moz-box-shadow: 0px 0px 2px #aaa;
  box-shadow: 0px 0px 2px #aaa;
  -webkit-transition: background 0.1s linear;
  font-weight: normal !Important;
}*/
/* オーバーレイ：ウィンドウ全体に固定 */
#videoOverlay {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, .8);
  z-index: 9999;
}
/* 動画コンテナ（中央配置、指定サイズ） */
#videoContainer {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 80%;
  max-width: 1600px;
  aspect-ratio: 16 / 9; /* 自動で高さが計算されます */
  background: transparent;
}
#popupVideo {
  width: 100%;
  height: 100%;
  object-fit: cover; /* 必要に応じて */
  border-radius: 8px;
}
/* ×ボタンのスタイル（動画枠の右上外側） */
.close-btn {
  position: absolute;
  top: -10px;
  right: 0px;
  background: transparent;
  color: #fff;
  border: none;
  border-radius: 50%;
  width: 40px;
  height: 40px;
  font-size: 24px;
  line-height: 40px;
  text-align: center;
  cursor: pointer;
  z-index: 1000;
}
.video-title {
  color: rgba(255, 255, 255, .5);
  font-size: 24px;
  font-family: "League Spartan", serif;
}
/* 実際のオーダー例 */
/* タイトル親要素 */
.bg-title {
  position: relative;
  width: 100%;
  min-height: 120px; /* 画像の実際の高さを設定 */
  background-size: cover; /* 要素に画像をフィットさせ、縦横比を維持 */
  overflow: hidden;
  box-sizing: border-box;
  display: flex;
  justify-content: center;
  align-items: center;
}
/*.case-2 #content,
.single #content{
background: url("../img/wp_share/border4x4.png") repeat left top;
padding-top:5px!Important;
}
*/
.case h1 {
  font-family: "Noto Sans JP" !Important;
}
/* カテゴリー一覧のスタイル */
.case .category-list-container {
  padding: 47px 20px 0 0;
}
.category-list-container {
  padding: 0px 20px 0 0;
}
@media (max-width: 767px) {
  .category-list-container {
    padding-right: 0;
    padding-top: 0px;
  }
}
p.category-title {
  font-size: 24px !Important;
  font-weight: 600 !Important;
  line-height: 36px !Important;
  padding-left: 20px;
}
.category-list {
  padding-left: 20px;
  padding-right: 20px;
}
.category-list li {
  margin: 5px 0;
  font-size: 22px !Important;
  list-style: none !Important; /* リストアイコンを非表示 */
  margin-left: 0 !Important;
  line-height: .8 !Important;
  margin-bottom: 10px !Important;
}
.category-list li a {
  font-size: 22px !Important;
  font-weight: 500;
  line-height: 30px;
  color: #333;
  text-decoration: none;
}
.category-list a:hover {
  color: #007bff; /* ホバー時の色 (任意) */
}
/* スマホ（767px以下）のときのみ表示を切り替える */
@media screen and (max-width: 991px) {
  .dropdown-button {
    color: #333;
    padding: 8px 16px;
    border: 1px solid #ccc;
    cursor: pointer;
    border-radius: 4px;
    font-size: 18px;
    width: 100%;
    background-color: #fff !Important;
  }
  .dropdown-content {
    display: none;
    position: absolute;
    background-color: #fff !Important;
    max-width: 600px;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
    z-index: 100;
    padding: 0 10px 0 0;
    margin: 0;
    list-style: none;
  }
  .dropdown-content li {
    list-style: none outside !Important;
    margin-left: 10px !Important;
  }
  .dropdown-content li a {
    color: #333;
    padding: 2px 5px;
    text-decoration: none;
    display: block;
    font-size: 18px;
  }
  .dropdown-content li a:hover {
    background-color: #f1f1f1;
  }
  .category-dropdown:hover .dropdown-content {
    display: block;
  }
}
/* 最新記事の表示スタイル */
.latest-post {
  background: white;
  margin-bottom: 30px;
  border-radius: 8px !Important;
  margin-top: -1px;
}
.latest-post-container {
  padding: 0px;
  border-radius: 8px;
}
h2.latest-post-title {
  font-size: 24px !Important;
  font-weight: 500 !Important;
  line-height: 32px !Important;
  font-family: "Noto Sans JP" !Important;
  margin-top: 0 !Important;
  padding-bottom: 20px !Important;
}
.latest-post-title a {
  color: #333;
  text-decoration: none;
}
.latest-post-title a:hover {
  color: #007bff;
}
.latest-post-date {
  font-size: 14px;
  color: #888;
  margin-bottom: 10px;
}
.latest-post-excerpt {
  font-size: 16px;
  line-height: 1.5;
  margin-bottom: 15px;
}
.latest-post-readmore {
  display: inline-block;
  font-size: 16px;
  color: #007bff;
  text-decoration: none;
}
.latest-post-readmore:hover {
  text-decoration: underline;
}
/* 記事内画像のスタイル */
.latest-post-content img {
  border-radius: 8px;
}
img.latest-post {
  border-radius: 8px 8px 0 0 !Important;
}
.post-inner {
  padding: 0px 20px 20px;
}
.post-inner p {
  font-size: 20px !Important;
  line-height: 34px !Important;
  font-weight: 300 !Important;
  margin-bottom: 0 !Important;
}
/* ページネーション */
.pagination-container {
  padding: 0 77px;
  padding-top: 38px;
  padding-bottom: 53px;
}
.pagination-links {
  display: flex;
  justify-content: center;
  gap: 10px;
}
.pagination-links a {
  padding: 5px 10px;
  border-radius: 5px;
  text-decoration: none;
  color: #333;
}
.pagination-links a:hover {}
.pagination-dropdown {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
/*.navi-cover .pagination-dropdown {
  display: flex;
   justify-content: space-between!Important;
  align-items: center;
}*/
.pagination-dropdown a {
  text-decoration: none;
  color: #333;
  cursor: pointer;
  font-size: 16px;
}
.pagination-dropdown select {
  color: #333;
  -webkit-appearance: none;
  appearance: none;
  background-image: url("../img/wp_share/arrow.png");
  background-repeat: no-repeat;
  background-size: 16px 14px; /* 画像のサイズ（幅 高さ）*/
  background-position: right 5px center; /* 画像の位置 */
  width: 72px;
  padding-right: 5px;
  padding-left: 5px;
  font-size: 16px;
  padding-top: 0;
  padding-bottom: 0;
  border-radius: 8px;
  line-height: 1.3;
}
.pagination-dropdown a:hover {}
/* カテゴリ4件　*/
.post-categories {
  border-bottom: 4px solid rgba(155, 28, 21, 1);
  font-size: 24px;
  line-height: 29px;
  font-weight: 500px;
  padding-bottom: 10px;
}
.card-text {
  font-size: 20px;
  margin-top: 10px;
  line-height: 34px !Important;
}
@media (max-width: 1199px) {
  .card-text {
    font-size: 18px !Important;
    line-height: 26px !Important;
  }
  .card-body h3 {
    font-size: 22px !Important;
  }
}
a.link-text {
  text-decoration: none;
  color: black;
  font-weight: 350;
  padding-top: 5px !Important;
  font-size: 18px;
}
a.link-text:hover {
  text-decoration: underline;
}
.card-body {
  padding: 0;
}
.single h3 {
  padding-top: 15px !Important;
}
/* フルオーダー */
.bg-title-fullorder {
  background: url("../img/wp_share/bg-fullorder.png") no-repeat center center;
}
.page:not(.home) #content, .single #content, .category #content, .search #content {
  padding-top: 0 !Important;
}
.page:not(.home) #content p {
  font-size: 20px;
  line-height: 33px !Important;
}
.page:not(.home) #content p.txt22 {
  font-size: 22px;
  line-height: 34px !Important;
  font-weight: 350;
}
.page:not(.home) #content p.txt22-normal {
  font-size: 22px;
  line-height: 34px !Important;
  font-weight: 300;
  margin: 20px 0 20px;
}
.page:not(.home) #content h1, .single #content h1, .category #content h1, .search #content h1 {
  font-family: "Noto Sans JP";
  padding-top: 52px;
  line-height: 34px !Important;
}
.page:not(.home) #content h2 {
  font-family: "Noto Sans JP";
  margin-top: 10px;
  font-size: 34px;
}
@media (max-width: 1100px) and (min-width:768px) {
  .page:not(.home) #content p {
    font-size: clamp(1rem, 0.494rem + 1.05vw, 1.219rem) !Important; /* 19 => 16 */
    line-height: clamp(1.5rem, 0.199rem + 2.71vw, 2.063rem) !Important; /* 33 => 18 */
  }
}
@media (max-width: 767px) {
  .page:not(.home) #content p {
    font-size: 16px;
  }
  .page:not(.home) #content h2 {
    margin-bottom: 20px;
    font-size: 26px;
    padding-left: 20px;
    line-height: 1.2;
  }
  .page:not(.home) h3 {
    font-size: 20px !Important;
    line-height: 30px;
    margin-top: 20px;
  }
  .page:not(.home) #content p.txt22 {
    padding-left: 25px;
    padding-right: 25px;
    font-size: 18px !Important;
  }
}
#content p.catch {
  font-size: 22px;
  font-size: min(22px, 1.8vw);
  line-height: 34px;
  line-height: min(34px, 2.03vw);
  font-weight: 350;
}
#content p.catch strong {
  font-weight: 500;
}
@media (max-width: 767px) {
  #content p.catch {
    font-size: 18px;
    line-height: 180%;
  }
}
.bg-flow {
  background:
    url("../img/wp_share/border-tate.png") repeat-y, /* 左側の画像 */ url("../img/wp_share/border-tate.png") repeat-y, /* 右側の画像 */ #FAF7F0; /* 中央の背景色（変更可能） */
  background-size:
    18% auto, /* 左側の画像の幅 */ 18% auto, /* 右側の画像の幅 */ 64% auto; /* 中央の背景の幅 */
  background-position:
    0 1px, /* 左側の画像の位置 */ 100% 1px, /* 右側の画像の位置 */ 20% 0; /* 中央の背景の位置 */
  /*background-repeat: repeat, repeat, repeat;*/
  padding: 20px 35px !Important;
}
.custom-order .bg-flow {
  padding-bottom: 20px !Important;
}
body:not(.search) .bg-white {
  padding-top: 30px;
}
.full-order .rounded, .custom-order .rounded {
  border-radius: 24px !Important;
}
.wide-block {
  width: clamp(75rem, 25.5rem + 66vw, 91.5rem);
  max-width: none;
  position: relative;
  left: calc((1200px - clamp(75rem, 25.5rem + 66vw, 91.5rem)) / 2); /* 左右均等に配置 */
  margin-left: 0;
  margin-right: 0;
}
/* スマホなど狭い画面では、親要素の幅に収まるように調整 */
@media (max-width: 1200px) {
  .wide-block {
    width: 100%; /* 画面幅にフィット */
    max-width: 100%; /* 1400pxの制限を解除 */
    left: 0;
  }
}
.rounded {
  border-radius: 10px !Important;
}
/*　画像を正方形にする */
/* 768px〜991px間だけ正方形に変更 */
@media (min-width: 768px) and (max-width: 991px) {
  .square-img {
    width: 100%; /* 必要に応じて調整 */
    aspect-ratio: 1 / 1; /* 正方形化 */
    object-fit: cover; /* はみ出した部分を切り取る */
    object-position: center; /* 中央を基準に切り取る */
    display: block; /* インライン要素の余白除去 */
  }
}
/* custom order */
.bg-title-customorder {
  background: url("../img/wp_share/bg-customorder.png") no-repeat center center;
}
/* quality */
.bg-title-quality {
  background: url("../img/wp_share/bg-quality.png") no-repeat center center;
}
/* repair */
.bg-title-care {
  background: url("../img/wp_share/bg-care.png") no-repeat center center;
}
/* about us */
.bg-title-about {
  background: url("../img/wp_share/bg-about.png") no-repeat center center;
}
@media (max-width: 767px) {
  .about table {
    margin: 0 10px;
  }
}
.about table td {
  padding: 5px;
  vertical-align: top;
  font-weight: 300;
}
/* club */
.bg-title-club {
  background: url("../img/wp_share/bg-club.png") no-repeat center center;
}
/* order reservation */
.bg-order-reservation {
  background: url("../img/wp_share/bg-order-reservation.png") no-repeat center center;
}
.bg-inquiry {
  background: url("../img/wp_share/bg-inquiry.png") no-repeat center center;
}
/* form */
/* 入力form */
/* input[type=text], input[type=email], textarea {
  padding: 10px !Important;
} */
/* @media (max-width: 767px) {
  input[type=text], input[type=email], textarea {
    width: 95%;
  }
} */
.image-wrapper {
  width: 100%;
  position: relative;
}
.image-preview, .confirmation-repair-form .image-preview p, .confirmation-order-form .image-preview p {
  width: 100%;
  aspect-ratio: 1 / 1; /* ←これが超重要 */
  overflow: hidden;
  border: 1px solid #ccc;
  border-radius: 6px;
  background-color: #f9f9f9;
  display: flex;
  align-items: center;
  justify-content: center;
}
.image-preview img {
  width: 100% !Important;
  height: 100% !Important;
  object-fit: cover !Important;
  object-position: center !Important;
  display: block !Important;
  border-radius: 6px;
}
/* 入力欄（ファイル選択）を非表示にする */
input[type="file"].custom-file-input {
  display: none;
}
/* ×ボタン */
.remove-btn {
  position: absolute;
  top: 0px;
  right: 0px;
  background: none;
  color: white;
  border: none;
  font-size: 28px;
  width: 40px;
  height: 40px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 10;
}
.placeholder {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: #777;
  text-align: center;
  z-index: 1;
  pointer-events: none;
}
.placeholder .plus {
  font-size: 28px;
  line-height: 1;
  margin-bottom: 4px;
}
.placeholder .text {
  font-size: 14px;
}
.wide-textarea {
  width: 90vw !important;
  max-width: 100%;
}
select.wpcf7-select {
  padding: 3px 0;
  margin-left: 10px;
}
.wpcf7 .textarea br:first-child {
  display: none;
}
/* ラジオボタン縦 */
.club-form .wpcf7-list-item {
  display: block;
  margin-left: 0; /* 必要に応じて調整 */
  margin-bottom: 0px; /* 縦の余白を調整 */
  line-height: 1.2;
}
.club-form .wpcf7-list-item.first {
  margin-top: 10px;
}
.club-form .wpcf7-list-item.last {
  margin-bottom: 20px;
}
/* radio ボタンの中の色 */
.wpcf7-list-item {
  position: relative;
  display: inline-block;
  margin-right: 20px;
}
/* ラジオボタンのみ対象にするためのセレクタを強化 */
.wpcf7-list-item input[type="radio"] {
  opacity: 0;
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 18px;
  height: 18px;
  margin: 0;
  cursor: pointer;
  z-index: 2;
}
.wpcf7-list-item-label {
  position: relative;
  cursor: pointer;
  padding-left: 25px;
}
/* ラジオボタンのみのbefore/afterに限定する */
.wpcf7-list-item input[type="radio"] + .wpcf7-list-item-label::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 18px;
  height: 18px;
  border-radius: 50%;
  border: 2px solid #555;
  background-color: #fff;
  box-sizing: border-box;
  transition: border-color 0.2s ease;
}
.wpcf7-list-item input[type="radio"] + .wpcf7-list-item-label::after {
  content: '';
  position: absolute;
  left: 5px;
  top: 50%;
  transform: translateY(-50%);
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background-color: transparent;
  transition: background-color 0.2s ease;
  box-sizing: border-box;
}
.wpcf7-list-item input[type="radio"]:checked + .wpcf7-list-item-label::before {
  border-color: #9b1c15;
}
.wpcf7-list-item input[type="radio"]:checked + .wpcf7-list-item-label::after {
  background-color: #9b1c15;
}
/* Contact Form 7のチェックボックスをカスタマイズする */
.wpcf7-form input[type="checkbox"] {
  /* 標準のチェックボックスを隠す */
  appearance: none;
  -webkit-appearance: none;
  width: 18px;
  height: 18px;
  border: 2px solid #ccc;
  border-radius: 3px;
  vertical-align: middle;
  cursor: pointer;
  position: relative;
}
/* チェックが入った際の背景色を指定 */
.wpcf7-form input[type="checkbox"]:checked {
  background-color: #9b1c15;
  border-color: #9b1c15;
}
/* チェックマークを追加 */
.wpcf7-form input[type="checkbox"]:checked::before {
  content: "";
  position: absolute;
  top: 2px;
  left: 5px;
  width: 5px;
  height: 10px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}
.wpcf7-submit:disabled {
  color: #ccc !Important;
}
.wpcf7-submit {
  color: #333 !Important;
}
@media screen and (max-width: 850px) {
  .wpcf7-date {
    width: 200px !important;
    margin: 0 0 5px 0;
    padding: 5px;
  }
  .wpcf7-date::before {
    content: '日付選択';
    font-size: 16px;
    line-height: 1.4;
    width: 120px;
  }
}
/*#pagetop2 {
    padding-top: 100px;
    margin-top:-100px;
}*/
.wpcf7-form-control-wrap textarea {
  white-space: pre-line; /* 改行とスペースを反映させる */
}
/* 特定商取引法に基づく表記 */
.tradelaw dl {
  display: flex;
}
@media (min-width: 768px) {
  .tradelaw dt {
    width: 25%;
  }
}
@media (max-width: 767px) {
  .tradelaw dl {
    display: block;
  }
}
/* サイトマップ */
ul.sitemap li a {
  color: black;
}
/* 地図ポップアップ */
#map-popup {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background: rgba(0, 0, 0, 0.6);
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
}
.popup-content {
  background: white;
  padding: 19px 74px 32px;
  max-width: 90%;
  max-height: 90%;
  text-align: center;
  position: relative;
}
@media (max-width: 767px) {
  .popup-content {
    padding: 10px;
  }
}
.popup-content img {
  max-width: 100%;
  max-height: 70vh;
  margin-bottom: 10px;
}
#close-popup {
  position: absolute;
  top: 15px;
  right: 23px;
}
button#close-popup {
  background: white;
  border: none;
}
.h2small {
  font-size: 40%;
  font-weight: normal;
  font-family: "Noto Sans JP";
}