@charset "UTF-8";
/*
    Template: swell
    Theme Name: SWELL CHILD
    Theme URI: https://swell-theme.com/
    Description: SWELLの子テーマ
    Version: 1.0.0
    Author: LOOS WEB STUDIO
    Author URI: https://loos-web-studio.com/

    License: GNU General Public License
    License URI: http://www.gnu.org/licenses/gpl.html
*/

/**
 * 電話番号（ACF tel-info）
 * - 全ページ共通ラッパー .c-siteTelBar（page_head / 本文先頭で同一マークアップ）
 * - 固定ページ・投稿：電話は上段 → その下に h1 中央（縦積み）
 * - viewport 固定は使わずスクロールに追従
 */

.c-pageTitleRow {
  width: 100%;
  box-sizing: border-box;
}

/* 電話あり：縦積み（電話 → h1） */
.c-pageTitleRow--hasTel {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.65rem;
}

.c-pageTitleRow--hasTel .c-pageTitleRow__ttl {
  width: 100%;
  max-width: 100%;
  text-align: center;
}

/**
 * 電話バー（.c-siteTelBar ＝ page_head では .c-pageTitleRow__tel.c-siteTelBar と同一要素）
 * 上余白 10px はトップ（tmp/front.php の .is-alam-front）のみ。他の固定ページ・投稿では付けない。
 */
#main_content .c-siteTelBar,
#main_content .c-pageTitleRow__tel.c-siteTelBar {
  display: flex;
  justify-content: flex-end;
  align-items: flex-start;
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 0 max(0px, env(safe-area-inset-right)) 0
    max(0px, env(safe-area-inset-left));
  box-sizing: border-box;
}

/* トップ固定ページのみ：電話行の padding-top */
#main_content .l-mainContent__inner.is-alam-front .c-siteTelBar {
  padding-top: 15px;
}

#main_content .c-siteTelBar .c-tel-info.is-tel-auto {
  width: auto !important;
  max-width: min(100%, 36rem);
  margin: 0 !important;
  padding: 0 !important;
  text-align: right !important;
  line-height: 1.45;
  word-break: keep-all;
  overflow-wrap: break-word;
}

/* タイトル直上の電話は下パディング不要（.c-pageTitleRow の gap で十分） */
#main_content .c-pageTitleRow .c-siteTelBar {
  padding-bottom: 0;
}

/* フロント：電話のみの .c-pageTitleRow（h1 なし）→ 下段ヒーローとの間隔を他ページの「電話→h1」と同じ gap に */
#main_content .l-mainContent__inner.is-alam-front > .c-pageTitleRow--hasTel {
  margin-bottom: 0.65rem;
}

/* h1・サブタイトル・投稿タイトルブロックを中央寄せ */
.c-pageTitleRow--hasTel .c-pageTitleRow__ttl .c-pageTitle,
.c-pageTitleRow--hasTel .c-pageTitleRow__ttl .c-pageTitle__inner,
.c-pageTitleRow--hasTel .c-pageTitleRow__ttl .c-postTitle,
.c-pageTitleRow--hasTel .c-pageTitleRow__ttl .c-postTitle__ttl {
  text-align: center !important;
}

.c-pageTitleRow--hasTel .c-pageTitleRow__ttl .c-pageTitle__subTitle {
  display: block;
  text-align: center !important;
}

.c-pageTitleRow--hasTel .c-pageTitleRow__ttl .p-articleHead.c-postTitle {
  justify-content: center;
}

/* 電話なし：タイトルだけ全幅中央 */
.c-pageTitleRow:not(.c-pageTitleRow--hasTel) .c-pageTitleRow__ttl {
  width: 100%;
  text-align: center;
}

.c-pageTitleRow:not(.c-pageTitleRow--hasTel) .c-pageTitleRow__ttl .c-pageTitle,
.c-pageTitleRow:not(.c-pageTitleRow--hasTel) .c-pageTitleRow__ttl .c-postTitle,
.c-pageTitleRow:not(.c-pageTitleRow--hasTel)
  .c-pageTitleRow__ttl
  .c-postTitle__ttl {
  text-align: center !important;
}

/* 投稿タイトル行 */
.c-pageTitleRow--post .c-pageTitleRow__ttl .p-articleHead {
  margin-bottom: 0;
}

/* 本文先頭の自動挿入（フロント・タイトル本文上部など）：.c-siteTelBar で統一 */
.post_content > .c-siteTelBar:first-child {
  margin-bottom: 0.75rem;
}

.post_content .wp-block-swell-child-tel-info {
  position: relative !important;
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  box-sizing: border-box;
  margin-block: 0.75rem !important;
  margin-inline: 0 !important;
  padding: 0 max(0px, env(safe-area-inset-right)) 0
    max(0px, env(safe-area-inset-left)) !important;
  text-align: left !important;
}

/* 直前・直後のブロック余白と二重にならないよう、電話ブロック側で上下をそろえる */
.post_content *:has(+ .wp-block-swell-child-tel-info) {
  margin-bottom: 0 !important;
}

.post_content .wp-block-swell-child-tel-info + * {
  margin-top: 0 !important;
}

.post_content .wp-block-swell-child-tel-info:first-child {
  margin-top: 0 !important;
}

.wp-block-swell-child-tel-info .c-tel-info {
  margin: 0 !important;
  text-align: left !important;
}

/* エディタ内も同じ（固定しない） */
.editor-styles-wrapper .c-siteTelBar {
  display: flex;
  justify-content: flex-end;
  width: 100%;
  box-sizing: border-box;
}

.editor-styles-wrapper .wp-block-swell-child-tel-info {
  position: relative !important;
  top: auto !important;
  right: auto !important;
  left: auto !important;
  width: 100% !important;
  text-align: left !important;
}

.editor-styles-wrapper .wp-block-swell-child-tel-info .c-tel-info {
  text-align: left !important;
}

.editor-styles-wrapper .c-tel-info.is-tel-auto {
  position: relative !important;
  top: auto !important;
  right: auto !important;
  left: auto !important;
  width: 100% !important;
  text-align: right !important;
}

/* ヘッダー背景：白 + 40%透過（= opacity 60%） */
.l-header {
  background: rgba(255, 255, 255, 0.6);
}

#content.l-content {
  padding-top: 2rem;
}

/**
 * ヒーローヘッダー：ヘッダーが重なる分だけ #content 先頭に逃がす（電話とグロナビの干渉防止）
 */
#header.-transparent ~ #content.l-content {
  padding-top: max(2rem, calc(var(--swl-headerH, 88px) + 1rem));
}

/**
 * メイン列：ヘッダー(.l-container)と同じ幅基準にする（電話の右端＝ナビの右端に揃う）
 * 読みやすさ用の狭い幅は .post_content 側にだけかける。
 */
#main_content .l-mainContent__inner {
  width: 100%;
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}

/* 本文・FAQ など「読む列」だけ SWELL の記事幅。電話・ページタイトル行は inner 全幅のまま */
#main_content .l-mainContent__inner > .post_content:not(.alam-homeHero__post),
#main_content .l-mainContent__inner > .c-faqSection {
  max-width: var(--article_size, 900px);
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}

/* パンくず非表示（1階層想定） */
#breadcrumb {
  display: none !important;
}

/* body_wrap:before の背景画像を画面いっぱいに固定表示 */
#body_wrap::before,
.body_wrap::before {
  position: fixed !important;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  pointer-events: none;
  z-index: -1;
}

/* スマホでは画面いっぱい表示しつつ左上基準にする */
@media (max-width: 768px) {
  #body_wrap::before,
  .body_wrap::before {
    background-size: cover;
    background-position: left top;
  }
}

.c-siteFaq {
  display: grid;
  gap: 12px;
}

.c-siteFaq__item {
  background: rgba(255, 255, 255, 0.6);
  border-radius: 8px;
  padding: 12px 14px;
}

.c-siteFaq__q {
  cursor: pointer;
  font-weight: 700;
}

.c-siteFaq__a {
  margin-top: 8px;
  line-height: 1.7;
}

/* よくある質問（FAQ）: Q/Aアイコン + 見やすい余白 */
:root {
  --faq-accent: #7b0f14; /* darkred系 */
  --faq-surface: rgba(255, 255, 255, 0.55); /* 透過ベース */
  --faq-accent-soft: rgba(123, 15, 20, 0.1); /* 赤みの薄膜 */
  --faq-accent-border: rgba(123, 15, 20, 0.18);
}

.c-faqSection__items {
  display: grid;
  gap: 14px;
}

details.c-faqItem {
  border: 1px solid var(--faq-accent-border);
  border-radius: 10px;
  background:
    linear-gradient(var(--faq-accent-soft), var(--faq-accent-soft)),
    var(--faq-surface);
  overflow: hidden;
}

summary.c-faqItem__q {
  cursor: pointer;
  list-style: none; /* markerを抑制（対応ブラウザ） */
  padding: 16px 16px;
  color: var(--faq-accent);
  font-weight: 800;
  display: flex;
  align-items: center;
  gap: 12px;
}

summary.c-faqItem__q::-webkit-details-marker {
  display: none; /* marker完全非表示（Chrome/Safari系） */
}

summary.c-faqItem__q::before {
  content: "Q";
  flex: 0 0 auto;
  width: 30px;
  height: 30px;
  border-radius: 999px;
  background: rgba(123, 15, 20, 0.12);
  border: 1px solid rgba(123, 15, 20, 0.22);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--faq-accent);
  font-size: 14px;
  font-weight: 900;
}

.c-faqItem__a {
  position: relative;
  padding: 14px 16px 18px 56px; /* アイコン分の左余白 */
  line-height: 1.85;
  color: #222;
  background: #fbf6e8; /* Aは赤を被せず、白すぎない柔らかいベージュ */
  border-top: 1px solid rgba(123, 15, 20, 0.12);
}

.c-faqItem__a::before {
  content: "A";
  position: absolute;
  left: 16px;
  top: 14px;
  width: 30px;
  height: 30px;
  border-radius: 999px;
  background: rgba(123, 15, 20, 0.12);
  border: 1px solid rgba(123, 15, 20, 0.22);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--faq-accent);
  font-size: 14px;
  font-weight: 900;
}

/* 修正: CSS変数（::root誤記の可能性があるため、正しい指定で上書き） */
:root {
  --faq-accent: #7b0f14; /* darkred系 */
  --faq-surface: rgba(255, 255, 255, 0.55); /* 透過ベース */
  --faq-accent-soft: rgba(123, 15, 20, 0.1);
  --faq-accent-border: rgba(123, 15, 20, 0.18);
}

/* 念のため: 変数が確実に効くよう body に上書き */
body {
  --faq-accent: #7b0f14; /* darkred系 */
  --faq-surface: rgba(255, 255, 255, 0.55); /* 透過ベース */
  --faq-accent-soft: rgba(123, 15, 20, 0.1);
  --faq-accent-border: rgba(123, 15, 20, 0.18);
}

/* Qをもとに戻す */
summary.c-faqItem__q::before {
  transform: translateY(0);
}

/* 大見出し 周り */
.c-pageTitle[data-style="b_bottom"] .c-pageTitle__inner {
  text-align: center;
  color: #fff;
  float: unset;
  font-size: 2.5rem;
  border-bottom: unset;
}

/* ホーム以外のH1（白文字）を背景から浮かせる */
body:not(.home) .c-pageTitle[data-style="b_bottom"] .c-pageTitle__inner {
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.35);
}

.c-pageTitle[data-style="b_bottom"] {
  border-bottom: unset;
}

.c-pageTitle__subTitle {
  display: block;
  font-size: 2rem;
  margin: 0;
}

/* ページ全体：フッター（コピーライト）をビューポート下端に */
html {
  height: 100%;
}

body {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

#body_wrap {
  flex: 1 0 auto;
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

#content {
  flex: 1 0 auto;
  width: 100%;
}

#footer.l-footer {
  margin-top: auto;
  position: relative;
  z-index: 50;
}

/**
 * フロント専用（tmp/front.php の .is-alam-front）
 */
#main_content .l-mainContent__inner.is-alam-front {
  display: flex;
  flex-direction: column;
  min-height: calc(100vh - var(--swl-headerH, 88px) - 7rem);
  min-height: calc(
    100svh - var(--swl-headerH, 88px) - env(safe-area-inset-bottom, 0px) - 7rem
  );
}

.admin-bar #main_content .l-mainContent__inner.is-alam-front {
  min-height: calc(100vh - var(--swl-headerH, 88px) - 32px - 7rem);
  min-height: calc(
    100svh - var(--swl-headerH, 88px) - 32px -
      env(safe-area-inset-bottom, 0px) - 7rem
  );
}

@media (max-width: 782px) {
  .admin-bar #main_content .l-mainContent__inner.is-alam-front {
    min-height: calc(
      100svh - var(--swl-headerH, 88px) - 46px -
        env(safe-area-inset-bottom, 0px) - 7rem
    );
  }
}

/* フロント：ロゴ＋本文（電話はヒーロー外＝他ページと同じ .c-siteTelBar ルールのみ） */
#main_content .l-mainContent__inner.is-alam-front .alam-homeHero {
  flex: 1 1 auto;
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  justify-content: flex-start !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  gap: 0 !important;
  box-sizing: border-box !important;
  pointer-events: auto;
}

/* ロゴ＋本文エリア（縦中央） */
#main_content .l-mainContent__inner.is-alam-front .alam-homeHero__main {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: min(70vh, calc(100svh - var(--swl-headerH, 88px) - 12rem));
  gap: clamp(1rem, 3vh, 2rem);
  box-sizing: border-box;
  padding: clamp(0.5rem, 2vh, 1.5rem) 0;
}

#main_content
  .l-mainContent__inner.is-alam-front
  .alam-homeHero__main
  .alam-home-centerImage {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  width: 100%;
  margin: 0;
  padding: 0;
  min-height: 0;
}

#main_content
  .l-mainContent__inner.is-alam-front
  .alam-homeHero__main
  .alam-home-centerImage
  img {
  display: block;
  width: min(100vw, 800px);
  max-width: 100%;
  height: auto;
  object-fit: contain;
}

#main_content
  .l-mainContent__inner.is-alam-front
  .alam-homeHero__main
  .post_content.alam-homeHero__post {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  text-align: center !important;
  pointer-events: auto;
}

#main_content
  .l-mainContent__inner.is-alam-front
  .alam-homeHero__main
  .post_content.alam-homeHero__post
  > .wp-block-group,
#main_content
  .l-mainContent__inner.is-alam-front
  .alam-homeHero__main
  .post_content.alam-homeHero__post
  > .wp-block-heading,
#main_content
  .l-mainContent__inner.is-alam-front
  .alam-homeHero__main
  .post_content.alam-homeHero__post
  > p {
  margin-left: auto !important;
  margin-right: auto !important;
}

/* --- 月次スケジュール（固定ページテンプレート） --- */
.c-scheduleMonthly__title {
  font-size: clamp(1.15rem, 2.5vw, 1.5rem);
  margin: 0 0 1rem;
  text-align: center;
}

.c-scheduleMonthly__nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.75rem 1rem;
  margin-bottom: 1.25rem;
}

.c-scheduleMonthly__navBtn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 7rem;
  padding: 0.5rem 1rem;
  border: 1px solid rgba(0, 0, 0, 0.2);
  border-radius: 6px;
  text-decoration: none;
  color: inherit;
  background: rgba(255, 255, 255, 0.5);
}

.c-scheduleMonthly__navBtn:hover {
  opacity: 0.9;
}

.c-scheduleMonthly__navBtn.-disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

.c-scheduleMonthly__bnr {
  width: 80%;
  margin: 0 auto 2rem;
}

.c-scheduleMonthly__body {
  width: 90%;
  margin-inline: auto;
}

.c-scheduleMonthly__figure {
  margin: 0 auto;
  max-width: min(100%, 960px);
  text-align: center;
}

.c-scheduleMonthly__img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 4px;
}

.c-scheduleMonthly__placeholder {
  text-align: center;
  padding: 2rem 1rem;
  margin: 0;
  color: #555;
}

.c-scheduleMonthly__below {
  margin-top: 2rem;
}

@media (max-width: 782px) {
  .c-scheduleMonthly__bnr,
  .c-scheduleMonthly__body {
    width: 100%;
  }
}

.c-scheduleArchive__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.5rem;
}

.post_content .img_calligraphy {
  height: 200px;
  overflow: hidden;
}

.post_content .img_calligraphy img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}
.wp-block-media-text__content {
  padding-top: 0 !important;
}

.wrp_googlemap {
  width: 100%;
  aspect-ratio: 4 / 3;
  margin-inline: auto;
}

.wrp_googlemap iframe {
  width: 100%;
  height: 100%;
  display: block;
}

@media (max-width: 768px) {
  .wrp_googlemap {
    width: 100vw;
    height: 100vw;
    margin-left: calc(50% - 50vw);
  }
}

.ccf-button-primary {
  background: #7b0f14 !important;
  color: white;
}

.-type-simple .p-postList__link {
  padding: 1em;
}
@media not all and (min-width: 960px) {
  .l-header__menuBtn.sp_ {
    align-self: flex-start;
    margin-top: -8px;
  }
}

:root {
  --color_border--table: #7b0f14;
}

small.c-pageTitle__subTitle {
  font-size: 20px;
}
