/*
  Theme Name:   bemore
  Template:     twentytwentyfive
*/
/* リセットcss */
:where(.wp-site-blocks :focus) {
    outline-width: 0 !important;
}
/* 凹む曲線のCSSコード（画像ブロック用） */
.curved-image {
    /* パーセント指定のSVGパスを使って左側を丸くくり抜く */
    clip-path: url(#clip-left-circle);    
    -webkit-clip-path: url(#clip-left-circle);
}
/* スマホ表示の時はクリップパスを指定しない */
@media (max-width: 599px) {
    .curved-image {
        -webkit-clip-path: none;
        clip-path: none;
    }
}
/* 初回カウンセリング&体験予約してみる ボタン */
.cv-button a {
    font-size: clamp(1.25rem, 0.5rem + 2vw, 2rem);
}
/* かぎかっこブロック全体の共通設定 */
.custom-bracket-box {
    position: relative;
    padding: 40px 30px;
    box-sizing: border-box;
    width: 230px;
    margin-inline: auto;
}

/* 左上のL字（かぎかっこ） */
.custom-bracket-box::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 40px;
    /* かぎかっこの横の長さ */
    height: 40px;
    /* かぎかっこの縦の長さ */
    border-top: 1px solid #000;
    /* 上線の太さと色 */
    border-left: 1px solid #000;
    /* 左線の太さと色 */
}

/* 右下の逆L字（かぎかっこ） */
.custom-bracket-box::after {
    content: "";
    position: absolute;
    bottom: 0;
    right: 0;
    width: 40px;
    /* かぎかっこの横の長さ */
    height: 40px;
    /* かぎかっこの縦の長さ */
    border-bottom: 1px solid #000;
    /* 下線の太さと色 */
    border-right: 1px solid #000;
    /* 右線の太さと色 */
}
/* ヘッダー */
header .wp-block-navigation__responsive-container-content {
    align-items: flex-start;
}
header .wp-block-navigation__container {
    width: 100%;
}
header .wp-block-navigation__container .wp-block-navigation-item {
    justify-content: flex-start;
    width: 100%;
    border-bottom: 1px solid rgba(230, 223, 211, 1);
    padding: 1.5rem 0 1rem;
    font-size: 1.5rem;
}
header .wp-block-navigation__container .wp-block-navigation-item a {
    width: 100%;
    color: rgba(230, 223, 211, 1);
}
header .header-sns {
    margin-inline: auto;
}
/* フッター */
.footer-menu .wp-block-paragraph a{
    text-decoration: none;
}
/* クエリループ共通スタイル */
.wp-block-query .wp-block-post {
    position: relative;
}

.wp-block-query .wp-block-post-terms a {
    pointer-events: none !important;
    cursor: default !important;
    text-decoration: none !important;
    color: inherit !important;
}

.wp-block-post-featured-image {
    position: static;
}

.wp-block-query .wp-block-post-featured-image a::after {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    content: '';
    z-index: 1;
}
/* トップページ ファーストビュー */
.fv-flex {
}
@media (max-width: 599px) {
    .fv-flex {
        flex-direction: column-reverse;
    }
}
.fv-flex .top-fv-text {
    box-sizing: border-box;
}
@media (max-width: 599px) {
    .fv-flex .top-fv-text + div img {
        height: 30vh;
        object-fit: cover;
        margin-bottom: 2rem;
    }
    .fv-flex .top-fv-text .wp-block-buttons {
        flex-direction: column;
    }
    .fv-flex .top-fv-text .wp-block-button {
        width: 100%;
    }
}
/* scrollアイコン */
.top-scroll {
  animation: fuwafuwa 2s ease-in-out infinite;
}
@keyframes fuwafuwa {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-10px); /* 上に10px動く（好みに合わせて数値を微調整してください） */
  }
}
/* トップページ bemoreの特徴 */
.feature-card figure {
    height: 100%;
}
.feature-card figure img {
    height: 100%;
    border-radius: 40px 0 0 40px;
}
@media (max-width: 599px) {
    .feature-card figure img {
        border-radius: 40px 40px 0 0;
    }
}
/* トップページ 投稿一覧 */
.top-posts .wp-block-group {
    overflow: hidden;
}
.top-posts-more a {
    text-decoration: none;
}
/* 投稿ページのアイキャッチ未設定時のアイキャッチを非表示 */
body.single .attachment-post-thumbnail[src$="bemore-default.webp"] {
    display: none;
}
.thumbnail .attachment-post-thumbnail[src$="bemore-default.webp"] {
    display: none;
}

/* トップページ 目的に合わせた5つのプログラム */
.top-5program {
    position: relative;
}
.top-5program a::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
}

/* トップページ お客様からの口コミ */
.top-review .wp-block-post-template {
    row-gap: 4rem;
}

.top-review-content {
    overflow: hidden;
    transition: max-height 0.4s ease-in-out, opacity 0.3s ease-in-out, padding 0.4s ease-in-out;
    margin-top: 0;
}

.top-review-content.is-closed {
    max-height: 0 !important;
    opacity: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    pointer-events: none;
    /* 閉じているときは中のリンクなどをクリックできないようにする */
}

.top-review-content.is-open {
    padding-top: 2rem;
    max-width: 100%;
    opacity: 1 !important;
}

.top-review-summary {
    position: relative;
    transition: all 0.3s ease;
}

.top-review-summary::after {
    content: "＋";
    position: absolute;
    right: 0;
    /* 右端からの位置（お好みで調整） */
    top: 50%;
    transform: translateY(-50%);
    /* 上下中央揃え */
    font-weight: bold;
    transition: all 0.3s ease;
}

.top-review-summary.is-active::after {
    content: "－";
}

/* アーカイブページのクエリループ */
body.archive .wp-block-query .wp-block-post-template {
    column-gap: 3rem;
    row-gap: 6rem;
}

body.archive .wp-block-query .wp-block-post {
    max-width: 200px;
}
@media (max-width: 599px) {
    body.archive .wp-block-query .wp-block-post {
        max-width: 100%;
    }
}

body.archive .wp-block-query .wp-block-post-featured-image {
    margin-bottom: .5rem;
}

body.archive .wp-block-query .wp-block-post-featured-image img {
    border-radius: 5px;
}

body.archive .wp-block-query .taxonomy-review_category {
    display: inline-block;
}

/* カテゴリ一覧 */
.category-list {
    margin: 0;
    list-style: none;
    padding: 0;
    text-align: center;
}

.category-list li {
    padding-block: 4px;
}

.category-list li a {
    color: white;
    text-decoration: none;
}
.category-list-wrap {
    width: 230px;
}
.category-list-accordion {
    background: #40494d;
    color: #fff;
    cursor: pointer;
    border-radius: 5px;
}

.category-list-accordion::after {}

.category-list-accordion summary {
    position: relative;
    outline: none;
    text-align: center;
    padding-block: 4px;
    list-style: none;
}

.category-list-accordion summary::after {
    content: "＋";
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    color: #fff;
}

.category-list-accordion summary:focus {
    outline: none;
}

.category-list-accordion[open] summary::after {
    content: "－";
}

summary::-webkit-details-marker {
    display: none;
}

/* 固定ページ ニュース一覧 */
body.page-id-185 .wp-site-blocks>.wp-block-group>.wp-block-post-featured-image {
    display: none;
}
body.page-id-185 .news-accordion h2 {
    position: relative;
}
body.page-id-185 .news-accordion h2::after {
    content: "＋";
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
}
/* 元の「&+div」の入れ子を解消 */
body.page-id-185 .news-accordion h2 + div {
    margin-top: 0;
}
body.page-id-185 .news-accordion .wp-block-accordion-item.is-open h2::after {
    content: "－";
}

body.page-id-185 .wp-block-accordion .wp-block-accordion-heading__toggle-icon {
    display: none;
}

body.page-id-185 .wp-block-accordion .wp-block-categories-list .cat-item {
    padding-block: 4px;
}
body.page-id-185 .wp-block-accordion .wp-block-categories-list .cat-item a {
    text-decoration: none;
}
body.page-id-185 .wp-block-query .wp-block-post-template {
    column-gap: 3rem;
    row-gap: 6rem;
}

body.page-id-185 .wp-block-query .attachment-post-thumbnail {
    max-width: 200px;
    border-radius: 10px;
}

body.page-id-185 .wp-block-query .taxonomy-category {}

/* 検索結果ページ */
body.search .wp-block-post-template {
    column-gap: 3rem;
    row-gap: 6rem;
}
/* 検索結果ページのサムネイル */
body.search .attachment-post-thumbnail {
    border-radius: 10px;
    max-width: 200px;
}

/* お問い合わせページ */
/* フォーム全体の背景とリセット */
.custom-form-wrapper {
  margin: 0 auto;
}

/* セクションごとの余白 */
.form-section {
  margin-bottom: 2rem;
}

/* 「基本情報」などの大見出し */
.section-title {
  font-size: 1.5rem;
  font-weight: bold;
  margin-bottom: 1.5rem;
}

/* 各入力項目のグループ */
.form-group {
  margin-bottom: 2rem;
}
.form-group.no-margin {
  margin-bottom: 0;
}

/* ラベルと必須バッジ */
.form-group label {
  display: block;
  font-size: 0.9rem;
  font-weight: bold;
  margin-bottom: 10px;
}
.required-badge {
  color: #d9534f;
  font-size: 0.75rem;
  margin-left: 6px;
  vertical-align: super;
}

/* 入力フィールドの共通デザイン（角丸・枠線なし） */
.custom-form-wrapper input[type="text"],
.custom-form-wrapper input[type="email"],
.custom-form-wrapper input[type="tel"],
.custom-form-wrapper input[type="date"],
.custom-form-wrapper select,
.custom-form-wrapper textarea {
  width: 100%;
  padding: 15px 20px;
  font-size: 0.95rem;
  border: none;
  border-radius: 10px;
  background-color: #f7f9fa;
  box-sizing: border-box;
  color: #555555;
  outline: none;
}

/* テキストエリアの高さ調整 */
.custom-form-wrapper textarea {
  height: 160px;
}

/* チェックボックス・ラジオボタンの横並び */
.custom-form-wrapper .wpcf7-checkbox {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 15px 10px;
}
.custom-form-wrapper .wpcf7-list-item {
  margin: 0;
}
.custom-form-wrapper .wpcf7-list-item-label {
  font-size: 0.85rem;
  margin-left: 8px;
}

/* 目的の下の注記 */
.form-note {
  font-size: 0.85rem;
  margin-top: 12px;
}

/* 希望日（日付と時間の2連並び） */
.datetime-group p {
  display: flex;
  flex-direction: column;
  gap: 15px;
  margin-bottom: 35px;
  max-width: 400px;
}

/* 同意チェックボックス */
.privacy-group {
  text-align: left;
  font-size: 0.9rem;
}

/* 送信ボタンのラッパーと本体 */
.submit-btn-wrapper {
  text-align: right;
}
.custom-form-wrapper input[type="submit"] {
  background-color: #ffffff;
  font-size: 0.95rem;
  padding: 12px 60px;
  border: none;
  border-radius: 10px;
  cursor: pointer;
  box-shadow: 0 2px 4px rgba(0,0,0,0.05);
  transition: background-color 0.2s;
}
.custom-form-wrapper input[type="submit"]:hover {
  background-color: #f5f5f5;
}
.wpcf7 .wpcf7-submit:disabled,
.wpcf7-submit:disabled,
.wpcf7-submit[disabled] {
    cursor: pointer !important;        /* 禁止マークを「指マーク（👆）」に強制変更 */
    pointer-events: auto !important;   /* クリックを強制的に有効化 */
    opacity: 1 !important;             /* 半透明（グレーアウト）を100%の濃さに戻す */
    background-color: #ffffff !important; /* ボタンの背景色を本来の色に固定（必要に応じて変更してください） */
}
/* エラーメッセージの文字サイズ調整 */
.wpcf7-not-valid-tip {
  font-size: 0.8rem;
  margin-top: 5px;
}

/* utinity */
.pc-only {
    display: block;
}
@media (max-width: 599px) {
    .pc-only {
        display: none;
    }
}
.sp-only {
    display: none;
}
@media (max-width: 599px) {
    .sp-only {
        display: block;
    }
}