/*
Theme Name: Lightning Child
Theme URI:
Template: lightning
Description:
Author:
Tags:
Version: 0.6.1
*/
html {
  scroll-behavior: smooth;
}

:root {
  /* ── Brown / Gold palette（Figma実測値） ── */
  --clr-brown-dark:   #3C2C1C;
  --clr-brown:        #5C3A26;
  --clr-gold:         #C09050;

  /* ── Warm neutral（--clr-brown からの算出値） ── */
  --clr-warm-gray:    color-mix(in srgb, var(--clr-brown) 55%, var(--clr-white));
  --clr-warm-light:   color-mix(in srgb, var(--clr-brown) 20%, var(--clr-white));

  /* ── Pale background（Figma実測値） ── */
  --clr-warm-pale:    #F5F0E8;
  --clr-pale:         #FAFAF7;

  /* ── Gray ── */
  --clr-gray:         #D9D9D9;

  /* ── ヘッダーCTAボタン用グラデーション（Figma実測値） ── */
  --clr-urgent:       #FF0000;
  --clr-urgent-deep:  #990000;
  --clr-orange:       #FF9200;
  --clr-orange-deep:  #BA6C04;

  /* ── top_kv 見出し強調色（Figma実測値） ── */
  --clr-coral:        #FF5659;

  /* ── Base ── */
  --clr-white:        #FFFFFF;
  --clr-black:        #000000;
	
  /*planページ用*/
  --color-bg: #faf6ef;
  --color-section-bg: #f1e9dc;
  --color-white: #ffffff;
  --color-gold: #b98a4b;
  --color-gold-dark: #9c7239;
  --color-gold-light: #ede1d0;
  --color-gold-pale: #f7f0e4;
  --color-text: #332a1f;
  --color-text-sub: #7c6c58;
  --color-border: #e6dcc9;
  --color-excluded: #a89880;
  --radius-lg: 10px;
  --radius-md: 8px;
  --radius-sm: 5px;
  --shadow-card: 0 10px 30px rgba(90, 68, 30, 0.08);
  --shadow-soft: 0 4px 14px rgba(90, 68, 30, 0.06);
  --max-width: 1080px;
}




.scrolled .page_top_btn{
	display:none!important;
}




/*フッターまでスクロールしたら消す*/
.is-hidden {
  visibility: hidden;
  opacity: 0;
}







/*******************************
上記に加えて、画面サイドにpaddingをなくす
********************************/
.container, .container-fluid, .container-lg, .container-md, .container-sm, .container-xl{
	padding-right:0!important;
	padding-left:0!important;
}

.container,
.container-fluid,
.container-lg,
.container-md,
.container-sm,
.container-xl {
  width: 100% !important;
  padding-right: 0 !important;
  padding-left: 0 !important;
}


.site-footer-title:after, .sub-section-title:after, h3:where(:not(.wp-block-post-title)):after{
	border:none!important;
}





/**********************************************************************************************************
 共通CSS　（common）  ここから
***********************************************************************************************************/
/* ========================================
   共通アニメーション
   ======================================== */

/* --- 下からふわっとフェードイン --- */
.fade_up {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}
.fade_up.is_visible {
  opacity: 1;
  transform: translateY(0);
}

/* 遅延バリエーション（タイトル＋サブタイトルのずらし用） */
.fade_up_d1 {
  transition-delay: 0.15s;
}
.fade_up_d2 {
  transition-delay: 0.3s;
}

h4:where(:not(.wp-block-post-title)){
background:none!important;
border-radius:none!important;
}





/**********************************************************************************************************
 共通CSS　（common）  ここまで
***********************************************************************************************************/

/**********************************************************************************************************
 m_fixedbar  ここから
***********************************************************************************************************/
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700&family=Noto+Serif+JP:wght@400;700&display=swap');

/* ========================================
   m_fixedbar — 固定下部バー
   ======================================== */

.m_fixedbar_wrap *,
.m_fixedbar_wrap *::before,
.m_fixedbar_wrap *::after {
  box-sizing: border-box;
}

/* ----------------------------------------
   Wrap
   ---------------------------------------- */
.m_fixedbar_wrap {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 250;
  height: 80px;
  background: var(--clr-gold);
  display: none;
  transform: translateY(100%);
  transition: transform 0.45s cubic-bezier(0.4, 0, 0.2, 1);
}
.m_fixedbar_wrap.is_visible {
  transform: translateY(0);
}
@media (max-width: 767px) {
  .m_fixedbar_wrap {
    height: 64px;
  }
}

/* ========================================
   PC レイアウト（768px以上）
   ======================================== */

.m_fixedbar_pc {
  display: block;
  height: 100%;
}
@media (max-width: 767px) {
  .m_fixedbar_pc {
    display: none;
  }
}

.m_fixedbar_inner {
  display: flex;
  align-items: center;
  height: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 40px;
  gap: 40px;
  justify-content: center;
}
@media (max-width: 1199px) {
  .m_fixedbar_inner {
    padding: 0 24px;
    gap: 24px;
  }
}

/* ---- 左：ブランド ---- */

.m_fixedbar_brand {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-shrink: 0;
}
@media (max-width: 1199px) {
  .m_fixedbar_brand {
    display: none;
  }
}

.m_fixedbar_logo {
  width: 100px;
  height: 100px;
  object-fit: contain;
  flex-shrink: 0;
  filter: brightness(0) invert(1);
}

.m_fixedbar_company {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.m_fixedbar_company_name {
  font-family: 'Noto Serif JP', serif;
  font-size: 18px;
  font-weight: 700;
  color: var(--clr-white);
  letter-spacing: 0.2em;
  margin: 0;
  white-space: nowrap;
  line-height: 1.3;
  position:relative;
}
.m_fixedbar_company_name::before {
   content:"ねんりん";
   font-family: 'Noto Serif JP', serif;
   font-size: 8px;
   color: var(--clr-white);
   left:0;
   top:-8px;
   position:absolute;
}

.m_fixedbar_tagline {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 13px;
  font-weight: 400;
  color: var(--clr-white);
  margin: 0;
  white-space: nowrap;
  line-height: 1.3;
  opacity: 0.8;
}

/* ---- 中央：電話 ---- */

.m_fixedbar_tel_section {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 3px;
  flex-shrink: 0;
}

.m_fixedbar_tel_top {
  display: flex;
  align-items: center;
  gap: 10px;
}

.m_fixedbar_tel_label {
  font-family: 'Noto Serif JP', serif;
  font-size: 18px;
  font-weight: 700;
  color: var(--clr-white);
  white-space: nowrap;
  line-height: 1.3;
}
@media (max-width: 1199px) {
  .m_fixedbar_tel_label {
    font-size: 15px;
  }
}

.m_fixedbar_tel_badge {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 13px;
  font-weight: 400;
  color: #ffff00;
  border: 1px solid #ffff00;
  border-radius: 5px;
  padding: 2px 8px;
  white-space: nowrap;
  line-height: 1.4;
}
@media (max-width: 1199px) {
  .m_fixedbar_tel_badge {
    font-size: 11px;
    padding: 2px 6px;
  }
}

.m_fixedbar_tel_bottom {
  display: flex;
  align-items: center;
  gap: 8px;
}

.m_fixedbar_tel_icon {
  width: 36px;
  height: 36px;
  object-fit: contain;
  flex-shrink: 0;
  filter: brightness(0) invert(1);
}
@media (max-width: 1199px) {
  .m_fixedbar_tel_icon {
    width: 28px;
    height: 28px;
  }
}

.m_fixedbar_tel_number {
  font-family: 'Noto Serif JP', serif;
  font-size: 38px;
  font-weight: 400;
  color: var(--clr-white);
  text-decoration: none;
  line-height: 1;
  white-space: nowrap;
  letter-spacing: 0.05em;
  transition: opacity 0.2s;
}
@media (max-width: 1199px) {
  .m_fixedbar_tel_number {
    font-size: 30px;
  }
}
.m_fixedbar_tel_number:hover {
  opacity: 0.8;
}

/* ---- 右：CTAボタン ---- */

.m_fixedbar_cta {
  display: flex;
  align-items: center;
  gap: 8px;
  height: 70px;
  padding: 0 28px;
  /* margin-left: auto; */
  border: 1px solid var(--clr-white);
  border-radius: 5px;
  text-decoration: none;
  flex-shrink: 0;
  transition: background 0.2s;
}
@media (max-width: 1199px) {
  .m_fixedbar_cta {
    height: 60px;
    padding: 0 20px;
  }
}
.m_fixedbar_cta:hover {
  background: rgba(255, 255, 255, 0.12);
}

.m_fixedbar_cta_main {
  font-family: 'Noto Serif JP', serif;
  font-size: 28px;
  font-weight: 700;
  color: var(--clr-white);
  white-space: nowrap;
  line-height: 1;
}
@media (max-width: 1199px) {
  .m_fixedbar_cta_main {
    font-size: 22px;
  }
}

.m_fixedbar_cta_sub {
  font-family: 'Noto Serif JP', serif;
  font-size: 18px;
  font-weight: 400;
  color: var(--clr-white);
  white-space: nowrap;
  line-height: 1;
}
@media (max-width: 1199px) {
  .m_fixedbar_cta_sub {
    font-size: 15px;
  }
}

/* ========================================
   SP レイアウト（767px以下）
   ======================================== */

.m_fixedbar_sp {
  display: none;
  height: 100%;
}
@media (max-width: 767px) {
  .m_fixedbar_sp {
    display: flex;
  }
}

/* ---- 左：電話ボタン ---- */

.m_fixedbar_sp_tel {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  flex: 1;
  height: 100%;
  background: var(--clr-gold);
  text-decoration: none;
  padding: 0 12px;
  transition: opacity 0.2s;
}
.m_fixedbar_sp_tel:hover {
  opacity: 0.9;
}

.m_fixedbar_sp_tel_icon {
  width: 28px;
  height: 28px;
  object-fit: contain;
  flex-shrink: 0;
  filter: brightness(0) invert(1);
}

.m_fixedbar_sp_tel_text {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.m_fixedbar_sp_tel_label {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 10px;
  font-weight: 700;
  color: var(--clr-white);
  letter-spacing: 0.06em;
  line-height: 1;
}

.m_fixedbar_sp_tel_number {
  font-family: 'Noto Serif JP', serif;
  font-size: 21px;
  font-weight: 700;
  color: var(--clr-white);
  letter-spacing: 0.05em;
  line-height: 1.1;
  white-space: nowrap;
}

/* ---- 右：相談ボタン ---- */

.m_fixedbar_sp_contact {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 1;
  height: 100%;
  background: var(--clr-brown-dark);
  text-decoration: none;
  padding: 0 12px;
  border-left: 1px solid rgba(255, 255, 255, 0.2);
  transition: opacity 0.2s;
}
.m_fixedbar_sp_contact:hover {
  opacity: 0.9;
}

.m_fixedbar_sp_contact_label {
  font-family: 'Noto Serif JP', serif;
  font-size: 16px;
  font-weight: 700;
  color: var(--clr-white);
  letter-spacing: 0.05em;
  text-align: center;
  line-height: 1.5;
  white-space: nowrap;
}
@media  (max-width: 780px) {
.m_fixedbar_sp_contact_label {
 font-size: 0.9rem;
}
}


/**********************************************************************************************************
 m_fixedbar  ここまで
***********************************************************************************************************/
/**********************************************************************************************************
 m_cta-01  ここから
***********************************************************************************************************/
/* ========================================
   m_cta01_ — 事前相談で、心の準備を。
   ======================================== */

.m_cta01_wrap {
  position: relative;
  display: flex;
  align-items: stretch;
  min-height: 200px;
  background: var(--clr-white);
  overflow: hidden;
}
@media (max-width: 767px) {
  .m_cta01_wrap {
    flex-direction: column;
    min-height: 0;
  }
}

/* ---- 画像 + フェード ---- */

.m_cta01_media {
  position: relative;
  flex: 0 0 60%;
}
@media (max-width: 1199px) {
  .m_cta01_media {
    flex: 0 0 50%;
  }
}
@media (max-width: 767px) {
  .m_cta01_media {
    flex: 0 0 auto;
    height: 220px;
  }
}

.m_cta01_bg_img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.m_cta01_fade {
  position: absolute;
  inset: 0;
  background: linear-gradient(to right, transparent 55%, var(--clr-white) 100%);
}
@media (max-width: 767px) {
  .m_cta01_fade {
    background: linear-gradient(to bottom, transparent 55%, var(--clr-white) 100%);
  }
}

/* ---- テキストコンテンツ ---- */

.m_cta01_content {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: var(--clr-white);
  /* padding: 40px 60px; */
}
@media (max-width: 1199px) {
  .m_cta01_content {
    padding: 32px 40px;
  }
}
@media (max-width: 767px) {
  .m_cta01_content {
    align-items: center;
    text-align: center;
    padding: 28px 20px 36px;
  }
}

.m_cta01_title {
  font-family: 'Noto Serif JP', serif;
  font-size: 24px;
  font-weight: 700;
  color: var(--clr-brown);
  letter-spacing: 0.05em;
  line-height: 1.4;
  margin: 0;
  border-bottom: none!important;
  padding:16px 0;
}
.m_cta01_title::after {
  border-bottom: none!important;
}
@media (max-width: 767px) {
  .m_cta01_title {
    font-size: 24px;
    margin: 0 0 12px;
  }
}

.m_cta01_sub {
  font-family: 'Noto Serif JP', serif;
  font-size: 16px;
  font-weight: 700;
  color: var(--clr-brown);
  line-height: 1.6;
  margin: 0 0 10px;
}
@media (max-width: 767px) {
  .m_cta01_sub {
    font-size: 14px;
    margin: 0 0 20px;
	text-align:start;
  }
}

.m_cta01_tel {
  display: flex;
  align-items: center;
  gap: 16px;
  text-decoration: none;
  width: fit-content;
}
@media (max-width: 767px) {
  .m_cta01_tel {
    margin: 0 auto;
  }
}

.m_cta01_tel_icon {
  width: 40px;
  height: 40px;
  flex-shrink: 0;
}

.m_cta01_tel_number {
  font-family: 'Noto Serif JP', serif;
  font-size: 44px;
  font-weight: 700;
  color: var(--clr-gold);
  letter-spacing: 0.02em;
}
@media (max-width: 767px) {
  .m_cta01_tel_number {
    font-size: 34px;
  }
}

.m_cta01_tel_note {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 16px;
  font-weight: 400;
  color: var(--clr-black);
  margin: 0 0 16px 120px;
}
@media (max-width: 767px) {
  .m_cta01_tel_note {
    margin: 6px 0 0;
    font-size: 14px;
  }
}


/**********************************************************************************************************
 m_cta-01  ここまで
***********************************************************************************************************/

/**********************************************************************************************************
 m_header  ここから
***********************************************************************************************************/
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@400;700&display=swap');

/* ========================================
   Header 背景を白色にする
   ======================================== */
.m_header_wrap__white{
	background: var(--clr-white); 
}



/* ========================================
   Header
   ======================================== */

.m_header_wrap *,
.m_header_wrap *::before,
.m_header_wrap *::after {
  box-sizing: border-box;
}

/* ----------------------------------------
   Wrapper
   ---------------------------------------- */
.m_header_wrap {
  width: 100%;
  height:100px;
  /* background: var(--clr-white); */
  position: fixed;
  z-index: 100;

}


.m_header_wrap.is_sticky {
  position: fixed;
  background: color-mix(in srgb, var(--clr-white) 90%, transparent);
  top: 0;
  left: 0;
  z-index: 300;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
  animation: m_header_slideDown 0.35s cubic-bezier(0.4, 0, 0.2, 1) both;
}
@media (max-width: 780px) {
.m_header_wrap.is_sticky {
  position: fixed;
  background: none;
  top: 0;
  left: 0;
  z-index: 300;
  box-shadow: none;
  animation: none;
}
}



@keyframes m_header_slideDown {
  from { transform: translateY(-100%); }
  to   { transform: translateY(0); }
}

/* ----------------------------------------
   Inner（ロゴ + ボタン + ナビ）
   ---------------------------------------- */
.m_header_inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px 12px;
}
@media (max-width: 1199px) {
  .m_header_inner {
    padding: 0 16px;
    height: 72px;
  }
}

/* --- 上段：ロゴ + ボタン --- */
.m_header_top_row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
}
@media (max-width: 1199px) {
  .m_header_top_row {
    align-items: center;
    height: 100%;
  }
}

/* --- ロゴ --- */
.m_header_logo_area {
  display: block;
  flex-shrink: 0;
  line-height: 0;
}

.m_header_logo_img {
  height: 70px;
  width: auto;
  object-fit: contain;
}
@media (max-width: 700px) {
  .m_header_logo_img {
    height: 60px;
  }
}

/* --- ボタン（初めての方 / お急ぎの方） --- */
.m_header_buttons {
  display: flex;
  gap: 18px;
  flex-shrink: 0;
}
@media (max-width: 1199px) {
  .m_header_buttons {
    display: none;
  }
}

.m_header_btn {
  width: 200px;
  height: 50px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  text-decoration: none;
  text-align: center;
  transition: opacity 0.2s;
}
.m_header_btn:hover {
  opacity: 0.85;
}

.m_header_btn--first {
  background: linear-gradient(180deg, var(--clr-orange) 0%, var(--clr-orange-deep) 100%);
}

.m_header_btn--urgent {
  background: linear-gradient(180deg, var(--clr-urgent) 0%, var(--clr-urgent-deep) 100%);
}

.m_header_btn_icon {
  width: 32px;
  height: 32px;
  object-fit: contain;
  flex-shrink: 0;
}

.m_header_btn_label {
  font-family: 'Noto Serif JP', serif;
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: 1.4;
  color: var(--clr-white);
}

/* --- PC ナビゲーション --- */
.m_header_nav {
  margin-top: 14px;
  display: flex;
  justify-content: center;
  transform:translatey(-18px);
}
@media (max-width: 1199px) {
  .m_header_nav {
    display: none;
  }
}

.m_header_nav_list {
  display: flex;
  align-items: center;
  list-style: none;
  margin: 0;
  padding: 0;
  gap: 32px;
}

.m_header_nav_link {
  font-family: 'Noto Serif JP', serif;
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: var(--clr-brown-dark);
  text-decoration: none;
  white-space: nowrap;
  transition: color 0.2s;
text-shadow:
  0 0 4px #fff,
  0 0 10px #fff,
  0 0 20px #fff,
  0 0 35px #fff,
  0 0 55px #fff;
}
.m_header_nav_link:hover {
  color: var(--clr-gold);
}

/* --- ハンバーガーボタン（SP/タブレットのみ） --- */
.m_header_hamburger {
  display: none;
}
@media (max-width: 1199px) {
  .m_header_hamburger {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 7px;
    width: 44px;
    height: 44px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 4px;
    flex-shrink: 0;
  }
}

.m_header_hamburger_bar {
  display: block;
  width: 32px;
  height: 2px;
  background: var(--clr-brown-dark);
  border-radius: 1px;
  transition: opacity 0.2s;
}
@media (max-width: 1199px) {
  .m_header_hamburger:hover .m_header_hamburger_bar {
    opacity: 0.6;
  }
}

/* ========================================
   Overlay
   ======================================== */
.m_header_overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
  z-index: 400;
  opacity: 0;
  transition: opacity 0.3s;
}
.m_header_overlay.is_open {
  display: block;
  opacity: 1;
}

/* ========================================
   Drawer
   ======================================== */
.m_header_drawer {
  position: fixed;
  top: 0;
  right: 0;
  width: 320px;
  height: 100%;
  background: var(--clr-white);
  z-index: 500;
  transform: translateX(100%);
  transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
  overflow-y: auto;
  display: flex;
  flex-direction: column;
}
@media (max-width: 480px) {
  .m_header_drawer {
    width: 100%;
  }
}

.m_header_drawer.is_open {
  transform: translateX(0);
}

.m_header_drawer_head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 20px;
  border-bottom: 1px solid var(--clr-warm-light);
}

.m_header_drawer_logo {
  display: block;
  line-height: 0;
}

.m_header_drawer_logo_img {
  height: 36px;
  width: auto;
  object-fit: contain;
}

.m_header_close {
  background: none;
  border: none;
  cursor: pointer;
  padding: 4px;
  width: 36px;
  height: 36px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0;
  flex-shrink: 0;
  position: relative;
}

.m_header_close_bar {
  display: block;
  width: 28px;
  height: 2px;
  background: var(--clr-brown-dark);
  border-radius: 1px;
  position: absolute;
  transition: transform 0.2s;
}
.m_header_close_bar:nth-child(1) {
  transform: rotate(45deg);
}
.m_header_close_bar:nth-child(2) {
  transform: rotate(-45deg);
}

.m_header_drawer_nav {
  padding: 8px 0;
  border-bottom: 1px solid var(--clr-warm-light);
}

.m_header_drawer_nav_list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.m_header_drawer_nav_item {
  border-bottom: 1px solid var(--clr-warm-pale);
}

.m_header_drawer_nav_link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 24px;
  font-family: 'Noto Serif JP', serif;
  font-size: 16px;
  font-weight: 700;
  color: var(--clr-brown-dark);
  text-decoration: none;
  transition: background 0.15s, color 0.15s;
}
.m_header_drawer_nav_link::after {
  content: '＞';
  font-size: 13px;
  color: var(--clr-gold);
}
.m_header_drawer_nav_link:hover {
  background: var(--clr-pale);
  color: var(--clr-gold);
}

.m_header_drawer_contact {
  padding: 24px 20px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.m_header_drawer_cta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  height: 56px;
  color: var(--clr-white);
  font-family: 'Noto Serif JP', serif;
  font-size: 16px;
  font-weight: 700;
  text-decoration: none;
  transition: opacity 0.2s;
}
.m_header_drawer_cta:hover {
  opacity: 0.85;
}

.m_header_drawer_cta--first {
  background: linear-gradient(180deg, var(--clr-orange) 0%, var(--clr-orange-deep) 100%);
}

.m_header_drawer_cta--urgent {
  background: linear-gradient(180deg, var(--clr-urgent) 0%, var(--clr-urgent-deep) 100%);
}

.m_header_drawer_cta_icon {
  width: 24px;
  height: 24px;
  object-fit: contain;
  flex-shrink: 0;
}


/**********************************************************************************************************
 m_header  ここまで
***********************************************************************************************************/
/**********************************************************************************************************
 m_omokage_cta  ここから
***********************************************************************************************************/
/* ========================================
   m_omokage_cta — ペットセレモニー おもかげ CTA
   ======================================== */

.m_omokage_cta_wrap {
  position: relative;
  overflow: hidden;
  background: var(--clr-pink-pale);
  height: 820px;
}
@media (max-width: 767px) {
  .m_omokage_cta_wrap {
    height: 640px;
  }
}

/* ---- 背景（写真の重ね合わせ） ---- */

.m_omokage_cta_bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.m_omokage_cta_bg--sp {
  display: none;
}
@media (max-width: 767px) {
  .m_omokage_cta_bg--pc {
    display: none;
  }
  .m_omokage_cta_bg--sp {
    display: block;
  }
}

.m_omokage_cta_bg_img {
  position: absolute;
  left: 0;
  width: 100%;
  object-fit: cover;
  display: block;
  top: 60%;
}

.m_omokage_cta_bg_img--top {
  top: 0;
  height: 46%;
  -webkit-mask-image: linear-gradient(to bottom, black 0%, transparent 100%);
  mask-image: linear-gradient(to bottom, black 0%, transparent 100%);
}

.m_omokage_cta_bg_img--bottom {
  bottom: 0;
  height: 40%;
  -webkit-mask-image: linear-gradient(to bottom, transparent 0%, black 55%);
  mask-image: linear-gradient(to bottom, transparent 0%, black 55%);
}

.m_omokage_cta_bg_pets {
  position: absolute;
  left: 50%;
  bottom: 0;
  width: 68%;
  max-width: 820px;
  transform: translateX(-50%);
  object-fit: contain;
  object-position: bottom center;
  -webkit-mask-image: linear-gradient(to bottom, black 0%, black 85%, transparent 98%);
  mask-image: linear-gradient(to bottom, black 0%, black 85%, transparent 98%);
}

/* ---- 背景（SP：単一写真＋動物バンド） ---- */

.m_omokage_cta_sp_bg_img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  opacity:0.4;

}

.m_omokage_cta_sp_pets_img {
  position: absolute;
  left: 50%;
  bottom: 0;
  width: 87%;
  transform: translateX(-50%);
  object-fit: contain;
  object-position: bottom center;
  -webkit-mask-image: linear-gradient(to bottom, black 0%, black 70%, transparent 100%);
  mask-image: linear-gradient(to bottom, black 0%, black 70%, transparent 100%);
}

/* ---- コンテンツ ---- */

.m_omokage_cta_inner {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 90px 20px 70px;
}
@media (max-width: 767px) {
  .m_omokage_cta_inner {
    padding: 56px 20px 48px;
  }
}

.m_omokage_cta_title {
  font-family: 'Noto Serif JP', serif;
  font-size: 40px;
  font-weight: 700;
  color: var(--clr-brown);
  letter-spacing: 0.1em;
  line-height: 1.45;
  margin: 0 0 20px;
  text-shadow: 0 0 20px rgba(255, 255, 255, 0.9), 0 0 8px rgba(255, 255, 255, 0.7);
}
@media (max-width: 767px) {
  .m_omokage_cta_title {
    font-size: 30px;
    margin: 0 0 14px;
  }
}

.m_omokage_cta_text {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 16px;
  font-weight: 700;
  color: var(--clr-brown-dark);
  letter-spacing: 0.08em;
  line-height: 1.7;
  margin: 0 0 32px;
  text-shadow: 0 0 10px rgba(255, 255, 255, 0.95);
}
@media (max-width: 767px) {
  .m_omokage_cta_text {
    font-size: 13px;
    margin: 0 0 24px;
	 text-align:start;
  }
}

.m_omokage_cta_avatar {
  width: 200px;
  height: 200px;
  border-radius: 50%;
  overflow: hidden;
  background: var(--clr-white);
  border: 1px solid var(--clr-brown);
  box-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);
  margin: 0 0 36px;
}
@media (max-width: 767px) {
  .m_omokage_cta_avatar {
    width: 140px;
    height: 140px;
    margin: 0 0 24px;
  }
}

.m_omokage_cta_avatar img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.m_omokage_cta_btn {
  display: inline-block;
  width: 279px;
  height: 50px;
  line-height: 50px;
  background: var(--clr-white);
  border: 1px solid var(--clr-gold);
  border-radius: 3px;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 16px;
  font-weight: 700;
  color: var(--clr-brown-dark);
  letter-spacing: 0.05em;
  text-decoration: none;
  text-align: center;
  transition: background 0.2s, color 0.2s;
}
.m_omokage_cta_btn:hover {
  background: var(--clr-gold);
  color: var(--clr-white);
}
@media (max-width: 767px) {
  .m_omokage_cta_btn {
    width: 100%;
    max-width: 279px;
    font-size: 14px;
  }
}

/**********************************************************************************************************
 m_omokage_cta  ここまで
***********************************************************************************************************/

/**********************************************************************************************************
 top_kv  ここから
***********************************************************************************************************/
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@400;700&display=swap');

/* ========================================
   top_kv — キービジュアル
   ======================================== */

.top_kv_wrap *,
.top_kv_wrap *::before,
.top_kv_wrap *::after {
  box-sizing: border-box;
}

.top_kv_wrap {
  position: relative;
  background: var(--clr-white);
  padding-bottom: 60px;
  overflow: hidden;
  min-height: 100vh;
}
@media (max-width: 767px) {
  .top_kv_wrap {
    padding-bottom: 40px;
	min-height:600px;
  }
}

/* ----------------------------------------
   背景（祭壇画像 + ご遺族画像 + フェード）
   ---------------------------------------- */
.top_kv_bg {
  position: relative;
  width: 100%;
  height: 640px;
  overflow: hidden;
}

@media (max-width: 767px) {
  .top_kv_bg {
    height: 380px;
  }
}

.top_kv_bg_img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 30%;
}
.top_kv_bg_img_02 {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 30%;
}


.top_kv_person_img {
  position: absolute;
  right: 4%;
  bottom: -30px;
  width: 24vw;
  max-width: 420px;
  min-width: 220px;
  height: auto;
  z-index: 2;
  transform: translate(20% ,0)!important;
}
@media (max-width: 1199px) {
  .top_kv_person_img {
    width: 34vw;
    right: 3%;
    bottom: -16px;
  }
}
@media (max-width: 767px) {
  .top_kv_person_img {
    width: 42vw;
    right: 2%;
    bottom: -8px;
  }
}

.top_kv_fade {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 45%;
  background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, var(--clr-white) 92%);
  pointer-events: none;
  z-index: 3;
}

/* ----------------------------------------
   下端フェード（height:100vh + overflow:hidden で
   バッジの影が途切れるのを自然に見せる）
   ---------------------------------------- */
.top_kv_bottom_fade {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 140px;
  background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, var(--clr-white) 65%);
  pointer-events: none;
  z-index: 10;
}
@media (max-width: 767px) {
  .top_kv_bottom_fade {
    height: 100px;
  }
}

/* ----------------------------------------
   コンテンツ（見出し + バッジ）
   ---------------------------------------- */
.top_kv_inner {
  position: relative;
  max-width: 1200px;
  margin: -220px auto 0;
  padding: 0 20px;
  z-index: 4;
}
@media (max-width: 1199px) and (min-height:760px) {
  .top_kv_inner {
    margin-top: -150px;
  }
}
@media (max-width: 1199px) and (max-height:760px){
  .top_kv_inner {
   transform: translateY(50px);
  }
}


@media (max-width: 767px) {
  .top_kv_inner {
    margin-top: -180px;
    padding: 0 16px;
  }
}

/* --- 見出し --- */
.top_kv_headline {
  margin: 0 0 20px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}


/* --- 画面高さ760px 以下で　調整 --- */
@media (min-width: 1200px) and (max-height:760px) {
  .top_kv_headline {
    transform: translateY(-30px);
  }
}
@media (min-width: 1300px) and (max-height:760px) {
  .top_kv_headline {
    transform: translateY(-10px);
  }
}
@media (min-width: 1400px) and (max-height:760px) {
  .top_kv_headline {
    transform: translateY(10px);
  }
}
@media (min-width: 1500px) and (max-height:760px) {
  .top_kv_headline {
    transform: translateY(20px);
  }
}
@media (min-width: 1600px) and (max-height:760px) {
  .top_kv_headline {
    transform: translateY(30px);
  }
}
@media (min-width: 1700px) and (max-height:760px) {
  .top_kv_headline {
    transform: translateY(60px);
  }
}
@media (min-width: 1850px) and (max-height:760px) {
  .top_kv_headline {
    transform: translateY(70px);
  }
}


@media (max-width:1200px) and (max-height:760px) {
  .top_kv_headline {
    transform: translateY(-90px);
  }
}

/* --- 画面高さ760px 以上で　調整 --- */
@media (min-width: 767px) and (min-height:760px) {
  .top_kv_headline {
    transform: translateY(-100px);
  }
}
@media (min-width: 800px) and (min-height:760px) {
  .top_kv_headline {
    transform: translateY(-100px);
  }
}
@media (min-width: 900px) and (min-height:760px) {
  .top_kv_headline {
    transform: translateY(-110px);
  }
}
@media (min-width: 1000px) and (min-height:760px) {
  .top_kv_headline {
    transform: translateY(-110px);
  }
}
@media (min-width: 1100px) and (min-height:760px) {
  .top_kv_headline {
    transform: translateY(-100px);
  }
}

@media (min-width: 1200px) and (min-height:760px) {
  .top_kv_headline {
    transform: translateY(-30px);
  }
}
@media (min-width: 1300px) and (min-height:760px) {
  .top_kv_headline {
    transform: translateY(-5px);
  }
}
@media (min-width: 1400px) and (min-height:760px) {
  .top_kv_headline {
    transform: translateY(10px);
  }
}
@media (min-width: 1500px) and (min-height:760px) {
  .top_kv_headline {
    transform: translateY(20px);
  }
}
@media (min-width: 1600px) and (min-height:760px) {
  .top_kv_headline {
    transform: translateY(40px);
  }
}
@media (min-width: 1700px) and (min-height:760px) {
  .top_kv_headline {
    transform: translateY(60px);
  }
}
@media (min-width: 1800px) and (min-height:760px) {
  .top_kv_headline {
    transform: translateY(70px);
  }
}
@media (min-width: 1900px) and (min-height:760px) {
  .top_kv_headline {
    transform: translateY(90px);
  }
}



@media (max-width: 767px) {
  .top_kv_headline {
    margin-bottom: 32px;
    text-align: center;
	 transform: translateY(40px);
  }
}
@media (max-width: 500px) {
  .top_kv_headline {
	 transform: translateY(30px);
  }
}
@media (max-width: 400px) {
  .top_kv_headline {
	 transform: translateY(-20px);
  }
}

.top_kv_headline_line {
  font-family: 'Noto Serif JP', serif;
  font-weight: 700;
  margin: 0;
  line-height: 1.45;
  text-shadow: 0 0 20px rgba(255, 255, 255, 0.9), 0 0 10px rgba(255, 255, 255, 0.8);
}

.top_kv_headline_line01 {
  font-size: 2.0rem;
  color: var(--clr-brown);
}
@media (max-width: 767px) {
  .top_kv_headline_line01 {
    font-size: 1.2rem;
  }
}

.top_kv_headline_line02 {
  font-size: 3.0rem;
  color: var(--clr-coral);
}
@media (max-width: 767px) {
  .top_kv_headline_line02 {
    font-size: 1.5rem;
  }
}

.top_kv_headline_line03 {
  font-size: 2.0rem;
  color: var(--clr-brown);
}
@media (max-width: 767px) {
  .top_kv_headline_line03 {
    font-size: 1.2rem;
  }
}

/* --- バッジ群 --- */
.top_kv_badges {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 40px;
  flex-wrap: wrap;
}
/* --- 画面高さ　760px以上で調整 --- */
@media (min-width: 767px) and (min-height:760px){
  .top_kv_badges {
    transform: translateY(-30px);
  }
}
@media (min-width: 800px) and (min-height:760px){
  .top_kv_badges {
    transform: translateY(-40px);
  }
}
@media (min-width: 900px) and (min-height:760px){
  .top_kv_badges {
    transform: translateY(-50px);
  }
}
@media (min-width: 1000px) and (min-height:760px){
  .top_kv_badges {
    transform: translateY(-60px);
  }
}
@media (min-width: 1100px) and (min-height:760px){
  .top_kv_badges {
    transform: translateY(-80px);
  }
}
@media (min-width: 1200px) and (min-height:760px){
  .top_kv_badges {
    transform: translateY(-30px);
  }
}
@media (min-width: 1300px) and (min-height:760px){
  .top_kv_badges {
    transform: translateY(-10px);
  }
}
@media (min-width: 1400px) and (min-height:760px){
  .top_kv_badges {
    transform: translateY(0px);
  }
}
@media (min-width: 1500px) and (min-height:760px){
  .top_kv_badges {
    transform: translateY(10px);
  }
}
@media (min-width: 1600px) and (min-height:760px){
  .top_kv_badges {
    transform: translateY(20px);
  }
}
@media (min-width: 1700px) and (min-height:760px){
  .top_kv_badges {
    transform: translateY(40px);
  }
}
@media (min-width: 1800px) and (min-height:760px){
  .top_kv_badges {
    transform: translateY(50px);
  }
}
@media (min-width: 1900px) and (min-height:760px){
  .top_kv_badges {
    transform: translateY(65px);
  }
}

/* --- 画面高さ　760px以下で調整 --- */
@media (min-width: 1200px) and (max-height:760px){
  .top_kv_badges {
    display:none;
  }
}

@media (max-width: 1199px) and (max-height:760px){
  .top_kv_badges {
    transform: translateY(-130px);
  }
}
@media (max-width: 767px) {
  .top_kv_badges {
    display: block;
    overflow: hidden;
    cursor: grab;
    -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 6%, #000 94%, transparent 100%);
    mask-image: linear-gradient(90deg, transparent 0%, #000 6%, #000 94%, transparent 100%);
	 transform: translateY(10px);
  }
  .top_kv_badges:active {
    cursor: grabbing;
}
}

.top_kv_badges_track {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: 24px;
  margin: 0;
  padding: 0;
  will-change: transform;
}
@media (min-width: 767px) and (max-height:760px){
  .top_kv_badges_track {
    transform: translateY(30px);
  }
}
@media (max-width: 767px) {
  .top_kv_badges_track {
    align-items: center;
    justify-content: flex-start;
    flex-wrap: nowrap;
    width: max-content;
    gap: 16px;
  }
}

.top_kv_badge {
  width: 180px;
  height: 180px;
  border-radius: 50%;
  background: var(--clr-white);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 16px;
  flex-shrink: 0;
}
@media (max-width: 1199px) {
  .top_kv_badge {
    width: 150px;
    height: 150px;
  }
}
@media (max-width: 767px) {
  .top_kv_badge {
    width: 130px;
    height: 130px;
    padding: 10px;
  }
}

.top_kv_badge_icon {
  width: 48px;
  height: 48px;
  object-fit: contain;
  margin-bottom: 8px;
}
@media (max-width: 767px) {
  .top_kv_badge_icon {
    width: 36px;
    height: 36px;
    margin-bottom: 4px;
  }
}

.top_kv_badge_title {
  font-family: 'Noto Serif JP', serif;
  font-size: 16px;
  font-weight: 700;
  color: var(--clr-brown);
  margin: 0;
  line-height: 1.3;
}
@media (max-width: 767px) {
  .top_kv_badge_title {
    font-size: 12px;
  }
}

.top_kv_badge_sub {
  font-family: 'Noto Serif JP', serif;
  font-size: 13px;
  font-weight: 700;
  color: var(--clr-brown);
  margin: 4px 0 0;
  line-height: 1.3;
}
@media (max-width: 767px) {
  .top_kv_badge_sub {
    font-size: 10px;
    margin-top: 2px;
  }
}

.top_kv_badge_large {
  width: 240px;
  height: 240px;
  border-radius: 50%;
  background: var(--clr-white);
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.1);
  border: 1px solid var(--clr-gold);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 20px;
  flex-shrink: 0;
}
@media (max-width: 1199px) {
  .top_kv_badge_large {
    width: 190px;
    height: 190px;
  }
}
@media (max-width: 767px) {
  .top_kv_badge_large {
    width: 170px;
    height: 170px;
    padding: 14px;
  }
}

.top_kv_badge_large_icon {
  width: 44px;
  height: 44px;
  object-fit: contain;
  margin-bottom: 8px;
}
@media (max-width: 767px) {
  .top_kv_badge_large_icon {
    width: 34px;
    height: 34px;
    margin-bottom: 4px;
  }
}

.top_kv_badge_large_line {
  font-family: 'Noto Serif JP', serif;
  font-size: 17px;
  font-weight: 700;
  color: var(--clr-brown);
  margin: 0;
  line-height: 1.3;
}
@media (max-width: 767px) {
  .top_kv_badge_large_line {
    font-size: 13px;
  }
}


/**********************************************************************************************************
 top_kv  ここまで
***********************************************************************************************************/

/**********************************************************************************************************
 top_concept  ここから
***********************************************************************************************************/
/* ========================================
   top_concept — お葬式のこと、終活のこと。すべてワンストップでサポートします
   ======================================== */

.top_concept_wrap {
  background: var(--clr-white);
  padding: 50px 0 100px 0;
}
@media (max-width: 767px) {
  .top_concept_wrap {
    padding: 56px 0;
  }
}

.top_concept_inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
}

/* ---- 見出し ---- */

.top_concept_title {
  font-family: 'Noto Serif JP', serif;
  font-size: 24px;
  font-weight: 700;
  color: var(--clr-brown);
  letter-spacing: 0.1em;
  line-height: 1.4;
  text-align: center;
  margin: 0 0 60px;
  border-top:none!important;
}
@media (max-width: 767px) {
  .top_concept_title {
    font-size: 18px;
    margin: 0 0 32px;
	text-align:start;
  }
}

/* ---- カード群 ---- */

.top_concept_cards {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 17px;
}
@media (max-width: 1199px) {
  .top_concept_cards {
    grid-template-columns: repeat(3, 1fr);
    gap: 20px 17px;
  }
}
@media (max-width: 767px) {
  .top_concept_cards {
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
  }
}

.top_concept_card {
  background: var(--clr-pale);
  border: 1px solid var(--clr-gold);
  border-radius: 5px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.top_concept_card_title {
  font-family: 'Noto Serif JP', serif;
  font-size: 16px;
  font-weight: 700;
  color: var(--clr-brown);
  letter-spacing: 0.1em;
  text-align: center;
  margin: 0;
  padding: 9px 4px 8px;
}
@media (max-width: 767px) {
  .top_concept_card_title {
    font-size: 14px;
  }
}

.top_concept_card_img_wrap {
  aspect-ratio: 171 / 161;
  overflow: hidden;
}

.top_concept_card_img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}


/**********************************************************************************************************
 top_concept  ここまで
***********************************************************************************************************/
/**********************************************************************************************************
 top_plan_家族葬プラン  ここから
***********************************************************************************************************/
/* ========================================
   top_plan_family — ファミリープラン
   ======================================== */

.top_plan_family_wrap {
  background: var(--clr-warm-pale);
  padding: 20px 0;
}
@media (max-width: 767px) {
  .top_plan_family_wrap {
    padding: 48px 0;
  }
}

.top_plan_family_inner {
  max-width: 1080px;
  margin: 0 auto;
  padding: 0 20px;
}

.top_plan_family_title {
  font-family: 'Noto Serif JP', serif;
  font-size: 20px;
  font-weight: 700;
  color: var(--clr-brown);
  letter-spacing: 0.1em;
  margin: 0;
  background:none!important;
}
@media (max-width: 767px) {
  .top_plan_family_title {
    font-size: 24px;
    margin: 0 0 24px;
  }
}

/* ---- カード群 ---- */

.top_plan_family_cards {
  display: flex;
  align-items: stretch;
  gap: 28px;
}
/* @media (max-width: 1199px) {
  .top_plan_family_cards {
    flex-direction: column;
	 align-items: center;
  }
  .top_plan_family_card {
    flex: 1 1 auto;
    width: 100%;
    max-width: 480px;
  }
} */
@media (max-width: 1020px) {
  .top_plan_family_cards {
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: stretch;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    gap: 16px;
    margin: 0 -20px;
    padding: 0 20px 8px;
    scrollbar-width: none;
    cursor: grab;
  }
  .top_plan_family_cards::-webkit-scrollbar {
    display: none;
  }
  .top_plan_family_cards--dragging {
    cursor: grabbing;
    scroll-snap-type: none;
    user-select: none;
  }
  .top_plan_family_cards--dragging .top_plan_family_card {
    pointer-events: none;
  }
}

.top_plan_family_card {
  flex: 1 1 0;
  display: flex;
  flex-direction: column;
  background: color-mix(in srgb, var(--clr-white) 50%, transparent);
  border-radius: 5px;
  overflow: hidden;
  box-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);
}
@media (max-width: 1020px) {
  .top_plan_family_card {
    flex: 0 0 85%;
    width: auto;
    max-width: none;
    scroll-snap-align: center;
  }
}

/* ---- 画像 + バッジ ---- */

.top_plan_family_media {
  position: relative;
  height: 260px;
}
@media (max-width: 1020px) {
  .top_plan_family_media {
    height: 220px;
  }
}

.top_plan_family_img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.top_plan_family_swipe_hint {
  display: none;
}
@media (max-width: 1020px) {
  .top_plan_family_swipe_hint {
    display: block;
    position: absolute;
    top: 90%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 100px;
    height: auto;
    filter: drop-shadow(0 2px 6px rgba(0, 0, 0, 0.4));
    pointer-events: none;
    opacity: 1;
    transition: opacity 0.3s;
  }
  .top_plan_family_swipe_hint--hidden {
    opacity: 0;
  }
}

.top_plan_family_badge {
  position: absolute;
  top: 10px;
  right: 12px;
  width: 76px;
  height: 76px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, var(--clr-warm-pale), var(--clr-gold));
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.25);
}
@media (max-width: 1020px) {
  .top_plan_family_badge {
    width: 64px;
    height: 64px;
    top: 5px;
  }
}

.top_plan_family_badge_no {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 22px;
  font-weight: 700;
  color: var(--clr-white);
  -webkit-text-stroke: 1px color-mix(in srgb, var(--clr-gold) 80%, transparent);
  margin-top: -6px;
}
@media (max-width: 1020px) {
  .top_plan_family_badge_no {
    font-size: 18px;
  }
}

.top_plan_family_badge_ribbon {
  position: absolute;
  bottom:5px;
  left: 50%;
  transform: translateX(-50%);
  width: 68px;
  padding: 3px 0;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--clr-urgent), var(--clr-urgent-deep));
  color: var(--clr-white);
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 10px;
  font-weight: 700;
  text-align: center;
  white-space: nowrap;
}
@media (max-width: 1020px) {
  .top_plan_family_badge_ribbon {
    width: 58px;
    font-size: 9px;
  }
}

/* ---- カード本文 ---- */

.top_plan_family_body {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  padding: 28px 20px 24px;
}

.top_plan_family_name {
  font-family: 'Noto Serif JP', serif;
  font-size: 22px;
  font-weight: 700;
  color: var(--clr-brown);
  letter-spacing: 0.1em;
  text-align: center;
  margin: 0;
}
@media (max-width: 1020px) {
  .top_plan_family_name {
    font-size: 19px;
  }
}

.top_plan_family_price {
  display: flex;
  align-items: baseline;
  gap: 6px;
  margin: 0;
}

.top_plan_family_price_num {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 42px;
  font-weight: 700;
  color: var(--clr-gold);
}
@media (max-width: 1020px) {
  .top_plan_family_price_num {
    font-size: 34px;
  }
}

.top_plan_family_price_tax {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 16px;
  font-weight: 700;
  color: var(--clr-gold);
}

.top_plan_family_recommend {
  font-family: 'Noto Serif JP', serif;
  font-size: 16px;
  font-weight: 700;
  color: var(--clr-brown);
  letter-spacing: 0.1em;
  margin: 0;
}
.top_plan_family_recommend_label {
  margin-right: 12px;
}

/* ---- フロー ---- */

.top_plan_family_flow {
  display: flex;
  align-items: center;
  justify-content: center;
}

.top_plan_family_step {
  flex-shrink: 0;
  writing-mode: vertical-rl;
  text-orientation: upright;
  width: 32px;
  height: 92px;
  border: 1px solid var(--clr-gold);
  border-radius: 999px;
  color: var(--clr-gold);
  font-family: 'Noto Serif JP', serif;
  font-size: 15px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
}
@media (max-width: 380px) {
  .top_plan_family_step {
    width: 28px;
    height: 80px;
    font-size: 13px;
  }
}

.top_plan_family_step--active {
  position: relative;
  z-index: 1;
  background: var(--clr-gray);
  border-color: var(--clr-brown);
  color: var(--clr-brown);
}

/* お通夜：横の金色バーが手前に来るよう重ねる */
.top_plan_family_highlight {
  position: relative;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 54px;
}
@media (max-width: 380px) {
  .top_plan_family_highlight {
    width: 44px;
  }
}

.top_plan_family_bar_over {
  position: absolute;
  z-index: 2;
  left: 0;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  height: 8px;
  background: var(--clr-gold);
}
@media (max-width: 380px) {
  .top_plan_family_bar_over {
    height: 6px;
  }
}

.top_plan_family_bar {
  flex-shrink: 0;
  width: 11px;
  height: 8px;
  background: var(--clr-gold);
}
@media (max-width: 380px) {
  .top_plan_family_bar {
    width: 8px;
    height: 6px;
  }
}

.top_plan_family_arrow {
  flex-shrink: 0;
  width: 0;
  height: 0;
  border-top: 6px solid transparent;
  border-bottom: 6px solid transparent;
  border-left: 9px solid var(--clr-gold);
}

/* ---- ボタン ---- */

.top_plan_family_btn {
  display: block;
  width: 100%;
  margin-top: auto;
  padding: 12px;
  border: 1px solid var(--clr-gold);
  border-radius: 5px;
  color: var(--clr-gold);
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 16px;
  font-weight: 700;
  text-align: center;
  text-decoration: none;
  transition: background 0.2s, color 0.2s;
}
.top_plan_family_btn_arrow {
  display: inline-block;
  transition: transform 0.2s;
}
.top_plan_family_btn:hover .top_plan_family_btn_arrow {
  transform: translateX(80px);
}

.top_plan_family_btn:hover {
  background: var(--clr-gold);
  color: var(--clr-white);
}

/* ---- ページネーションドット（SPの横スクロール用） ---- */

.top_plan_family_dots {
  display: none;
}
@media (max-width: 1020px) {
  .top_plan_family_dots {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin-top: 16px;
  }
}

.top_plan_family_dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--clr-gray);
  transition: background 0.2s, transform 0.2s;
}

.top_plan_family_dot--active {
  background: var(--clr-gold);
  transform: scale(1.25);
}

/* ---- 注釈 ---- */

.top_plan_family_note {
  font-family: 'Noto Serif JP', serif;
  font-size: 16px;
  font-weight: 700;
  color: var(--clr-brown-dark);
  letter-spacing: 0.1em;
  text-align: end;
  margin: 16px 0 0;
}
@media (max-width: 1020px) {
  .top_plan_family_note {
    font-size: 13px;
    margin: 24px 0 0;
	text-align:start!important;
  }
}


/**********************************************************************************************************
 top_plan_家族葬プラン  ここまで
***********************************************************************************************************/
/**********************************************************************************************************
 top_plan_火葬式・お別れ式プラン  ここから
***********************************************************************************************************/
/* ========================================
   top_plan_kasousiki — 火葬式・お別れ式プラン
   ======================================== */

.top_plan_kasousiki_wrap {
  background: var(--clr-warm-pale);
  padding: 40px 0 100px 0;
}
@media (max-width: 767px) {
  .top_plan_kasousiki_wrap {
    padding: 48px 0;
  }
}

.top_plan_kasousiki_inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
}

.top_plan_kasousiki_title {
  font-family: 'Noto Serif JP', serif;
  font-size: 20px;
  font-weight: 700;
  color: var(--clr-brown);
  letter-spacing: 0.1em;
  margin: 0;
}
@media (max-width: 767px) {
  .top_plan_kasousiki_title {
    font-size: 24px;
    margin: 0 0 24px;
  }
}

/* ---- カード群 ---- */

.top_plan_kasousiki_cards {
  display: flex;
  align-items: stretch;
  gap: 24px;
}
@media (max-width: 1020px) {
  .top_plan_kasousiki_cards {
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: stretch;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    gap: 16px;
    margin: 0 -20px;
    padding: 0 20px 8px;
    scrollbar-width: none;
    cursor: grab;
  }
  .top_plan_kasousiki_cards::-webkit-scrollbar {
    display: none;
  }
  .top_plan_kasousiki_cards--dragging {
    cursor: grabbing;
    scroll-snap-type: none;
    user-select: none;
  }
  .top_plan_kasousiki_cards--dragging .top_plan_kasousiki_card {
    pointer-events: none;
  }
}

.top_plan_kasousiki_card {
  flex: 1 1 0;
  display: flex;
  flex-direction: column;
  background: var(--clr-white);
  border-radius: 5px;
  overflow: hidden;
  box-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);
}
@media (max-width: 1020px) {
  .top_plan_kasousiki_card {
    flex: 0 0 85%;
    width: auto;
    max-width: none;
    scroll-snap-align: center;
  }
}

/* ---- 画像 + フェード + プラン名 ---- */

.top_plan_kasousiki_media {
  position: relative;
  height: 240px;
  overflow: hidden;
}

.top_plan_kasousiki_img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.top_plan_kasousiki_fade {
  position: absolute;
  inset: 0;
  background: linear-gradient(200deg, transparent 40%, var(--clr-white) 95%);
}

.top_plan_kasousiki_swipe_hint {
  display: none;
}
@media (max-width: 1020px) {
  .top_plan_kasousiki_swipe_hint {
    display: block;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 100px;
    height: auto;
    filter: drop-shadow(0 2px 6px rgba(0, 0, 0, 0.4));
    pointer-events: none;
    opacity: 1;
    transition: opacity 0.3s;
  }
  .top_plan_kasousiki_swipe_hint--hidden {
    opacity: 0;
  }
}

.top_plan_kasousiki_name {
  position: absolute;
  top: 20px;
  left: 24px;
  margin: 0;
  font-family: 'Noto Serif JP', serif;
  font-size: 22px;
  font-weight: 700;
  color: var(--clr-brown);
  letter-spacing: 0.1em;
  text-shadow:
  0 0 5px #fff,
  0 0 15px #fff,
  0 0 30px #fff,
  0 0 50px #fff;
}
@media (max-width: 767px) {
  .top_plan_kasousiki_name {
    font-size: 19px;
    top: 16px;
    left: 20px;
  }
}

/* ---- カード本文 ---- */

.top_plan_kasousiki_body {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  padding: 0 20px 24px;
}

/* ---- フロー（画像下端に少し重ねる） ---- */

.top_plan_kasousiki_flow {
  position: relative;
  z-index: 2;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: -46px;
}

.top_plan_kasousiki_step {
  flex-shrink: 0;
  writing-mode: vertical-rl;
  text-orientation: upright;
  width: 32px;
  height: 92px;
  border: 1px solid var(--clr-gold);
  border-radius: 999px;
  background: var(--clr-white);
  color: var(--clr-gold);
  font-family: 'Noto Serif JP', serif;
  font-size: 15px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
}
@media (max-width: 380px) {
  .top_plan_kasousiki_step {
    width: 28px;
    height: 80px;
    font-size: 13px;
  }
}

.top_plan_kasousiki_step--active {
  position: relative;
  z-index: 1;
  background: var(--clr-gray);
  border-color: var(--clr-brown);
  color: var(--clr-brown);
}

.top_plan_kasousiki_bar {
  flex-shrink: 0;
  width: 11px;
  height: 8px;
  background: var(--clr-gold);
}
@media (max-width: 380px) {
  .top_plan_kasousiki_bar {
    width: 8px;
    height: 6px;
  }
}

/* お通夜・告別式：横の金色バーが手前に来るよう重ねる */
.top_plan_kasousiki_highlight {
  position: relative;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 11px;
  padding: 0 0 0 11px;
}
@media (max-width: 380px) {
  .top_plan_kasousiki_highlight {
    gap: 8px;
    padding: 0 8px;
  }
}

.top_plan_kasousiki_bar_over {
  position: absolute;
  z-index: 2;
  left: 0;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  height: 8px;
  background: var(--clr-gold);
}
@media (max-width: 380px) {
  .top_plan_kasousiki_bar_over {
    height: 6px;
  }
}

.top_plan_kasousiki_arrow {
  flex-shrink: 0;
  width: 0;
  height: 0;
  border-top: 6px solid transparent;
  border-bottom: 6px solid transparent;
  border-left: 9px solid var(--clr-gold);
}

/* ---- 価格 ---- */

.top_plan_kasousiki_price {
  display: flex;
  align-items: baseline;
  gap: 6px;
  margin: 0;
}

.top_plan_kasousiki_price_num {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 42px;
  font-weight: 700;
  color: var(--clr-gold);
}
@media (max-width: 767px) {
  .top_plan_kasousiki_price_num {
    font-size: 34px;
  }
}

.top_plan_kasousiki_price_tax {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 16px;
  font-weight: 700;
  color: var(--clr-gold);
}

/* ---- ボタン ---- */

.top_plan_kasousiki_btn {
  display: block;
  width: 100%;
  margin-top: auto;
  padding: 12px;
  border: 1px solid var(--clr-gold);
  border-radius: 5px;
  color: var(--clr-gold);
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 16px;
  font-weight: 700;
  text-align: center;
  text-decoration: none;
  transition: background 0.2s, color 0.2s;
}
.top_plan_kasousiki_btn_arrow {
  display: inline-block;
  transition: transform 0.2s;
}
.top_plan_kasousiki_btn:hover .top_plan_kasousiki_btn_arrow {
  transform: translateX(100px);
}
.top_plan_kasousiki_btn:hover {
  background: var(--clr-gold);
  color: var(--clr-white);
}

/* ---- ページネーションドット（横スクロール用） ---- */

.top_plan_kasousiki_dots {
  display: none;
}
@media (max-width: 1020px) {
  .top_plan_kasousiki_dots {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin-top: 24px;
  }
}

.top_plan_kasousiki_dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--clr-gray);
  transition: background 0.2s, transform 0.2s;
}

.top_plan_kasousiki_dot--active {
  background: var(--clr-gold);
  transform: scale(1.25);
}


/**********************************************************************************************************
 top_plan_火葬式・お別れ式プラン  ここまで
***********************************************************************************************************/


/**********************************************************************************************************
 top_選ばれる理由  ここから
***********************************************************************************************************/
/* ========================================
   top_Why-us — 選ばれる理由
   ======================================== */

.top_Why-us_wrap {
  position: relative;
  background: var(--clr-pale);
  overflow: hidden;
}

/* ---- 右側：写真 + フェード ---- */

.top_Why-us_media {
  position: absolute;
  top: 0;
  right: 0;
  width: 60%;
  height: 100%;
  z-index: 0;
}

.top_Why-us_bg_img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.top_Why-us_fade {
  position: absolute;
  inset: 0;
  background: linear-gradient(to right, var(--clr-pale) 0%, transparent 38.5%);
}

/* ---- コンテンツ ---- */

.top_Why-us_inner {
  position: relative;
  z-index: 1;
  max-width: 1200px;
  margin: 0 auto;
  padding: 80px 20px 64px;
}
@media (max-width: 767px) {
  .top_Why-us_inner {
    padding: 56px 20px 40px;
  }
}

.top_Why-us_heading {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin: 0 0 40px;
}

.top_Why-us_title {
  font-family: 'Noto Serif JP', serif;
  font-size: 32px;
  font-weight: 700;
  color: var(--clr-brown);
  letter-spacing: 0.1em;
  margin: 0 0 20px;
  border:none!important;
}
@media (max-width: 767px) {
  .top_Why-us_title {
    font-size: 26px;
  }
}

.top_Why-us_title_line {
  width: 280px;
  max-width: 100%;
  height: 1px;
  background: linear-gradient(to right, var(--clr-gold), var(--clr-bronze));
}

.top_Why-us_lead {
  font-family: 'Noto Serif JP', serif;
  font-size: 32px;
  font-weight: 700;
  color: var(--clr-brown);
  text-align: center;
  letter-spacing: 0.05em;
  line-height: 1.5;
  margin: 0 0 64px;
}
@media (max-width: 767px) {
  .top_Why-us_lead {
    font-size: 20px;
    margin: 0 0 40px;
	 text-align:start;
  }
}

/* ---- アイコンカード群 ---- */

.top_Why-us_slider {
  width: 100%;
}
@media (max-width: 767px) {
  .top_Why-us_slider {
    overflow: hidden;
    -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 8%, #000 92%, transparent 100%);
    mask-image: linear-gradient(90deg, transparent 0%, #000 8%, #000 92%, transparent 100%);
  }
}

.top_Why-us_cards {
  display: flex;
  flex-wrap: nowrap;
  align-items: flex-start;
  justify-content: center;
  gap: clamp(4px, 2vw, 30px);
}
@media (max-width: 767px) {
  .top_Why-us_cards {
    justify-content: flex-start;
    width: max-content;
    gap: 24px;
    will-change: transform;
  }
}

.top_Why-us_card {
  flex: 0 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
@media (max-width: 767px) {
  .top_Why-us_card {
    flex-shrink: 0;
  }
}

.top_Why-us_circle {
  position: relative;
  width: clamp(90px, 20vw, 270px);
  height: clamp(90px, 20vw, 270px);
  border-radius: 50%;
  background: color-mix(in srgb, var(--clr-white) 50%, transparent);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: clamp(8px, 2vw, 20px) clamp(10px, 2.0vw, 26px);
  text-align: center;
}
@media (max-width: 767px) {
  .top_Why-us_circle {
    width: 160px;
    height: 160px;
    padding: 14px 18px;
  }
}

.top_Why-us_circle::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 50%;
  padding: 2px;
  background: linear-gradient(to bottom, var(--clr-gold), var(--clr-bronze));
  -webkit-mask:
    linear-gradient(#fff 0 0) padding-box,
    linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
}

.top_Why-us_icon {
  width: clamp(28px, 7vw, 100px);
  height: clamp(24px, 5.6vw, 80px);
  object-fit: contain;
  margin: 0 0 clamp(3px, 1vw, 10px);
}
@media (max-width: 767px) {
  .top_Why-us_icon {
    width: 44px;
    height: 36px;
    margin: 0 0 6px;
  }
}

.top_Why-us_card_title {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(10px, 2.0vw, 22px);
  font-weight: 700;
  color: var(--clr-black);
  line-height: 1.3;
  margin: 0 0 clamp(3px, 1vw, 10px);
  width: 100%;
  align-self: stretch;
  white-space: nowrap;
  overflow: hidden;
}
@media (max-width: 767px) {
  .top_Why-us_card_title {
    font-size: 16px;
    margin: 0 0 6px;
  }
}

.top_Why-us_card_text {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(7px, 1.2vw, 14px);
  font-weight: 400;
  color: var(--clr-black);
  line-height: 1.4;
  margin: 0;
  text-align: start;
  padding: 0 clamp(2px, 1vw, 16px);
}
@media (max-width: 767px) {
  .top_Why-us_card_text {
    font-size: 12px;
    padding: 0 8px;
  }
}

/**********************************************************************************************************
 top_選ばれる理由  ここまで
***********************************************************************************************************/


/**********************************************************************************************************
 m_footer  ここから
***********************************************************************************************************/
/* ========================================
   m_footer — フッター
   ======================================== */

.m_footer_wrap {
  background: var(--clr-warm-pale);
  padding:8px;
}

.m_footer_inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
}

/* ---- 3カラムレイアウト ---- */

.m_footer_row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  padding:16px 
}
@media (max-width: 1199px) {
  .m_footer_row {
    flex-direction: column;
    gap: 40px;
  }
}

.m_footer_col {
  flex: 0 0 auto;
}

/* ---- 左カラム：ロゴ + 会社情報 ---- */

.m_footer_col_info {
  max-width: 320px;
}
@media (max-width: 1199px) {
  .m_footer_col_info {
    max-width: none;
  }
}
@media (max-width: 767px) {
  .m_footer_col_info {
    order: 1;
  }
}

.m_footer_logo_area {
  display: block;
  width: fit-content;
  margin: 0 0 24px -8px;
}


.m_footer_logo_img {
  display: block;
  width: 220px;
  height: auto;
}
@media (max-width: 767px) {
  .m_footer_logo_img {
    width: 180px;
    margin: 0 auto;
  }
}
@media (max-width: 767px) {
  .m_footer_logo_area {
    margin: 0 auto 12px;
  }
}

.m_footer_company {
  margin: 0 0 16px;
}

.m_footer_company_heading {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 16px;
  font-weight: 700;
  color: var(--clr-brown);
  margin: 0 0 8px;
}

.m_footer_company_name {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 16px;
  font-weight: 400;
  color: var(--clr-brown);
  margin: 0;
  position:relative;
}
@media (max-width: 767px) {
  .m_footer_company {
    text-align: center;
  }
}

.m_footer_company_name::before {
   content:"ねんりん";
   font-family: 'Noto Serif JP', serif;
   font-size: 8px;
   color: var(--clr-brown);
   left:0;
   top:-15px;
   position:absolute;
}
@media (max-width: 767px) {
.m_footer_company_name::before {
   content:"ねんりん";
   font-family: 'Noto Serif JP', serif;
   font-size: 8px;
   color: var(--clr-brown);
   left:62px;
   top:-15px;
   position:absolute;
}
}



.m_footer_address {
  margin: 0 0 12px;
}

.m_footer_address_label {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 11px;
  color: var(--clr-brown);
  letter-spacing: 0.05em;
  opacity: 0.75;
  margin: 0 0 4px;
}

.m_footer_address_text {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 13px;
  color: var(--clr-brown);
  line-height: 1.6;
  margin: 0;
}
@media (max-width: 767px) {
  .m_footer_address {
    text-align: center;
  }
}

.m_footer_address_divider {
  border: none;
  border-top: 1px dashed rgba(0, 0, 0, 0.15);
  width: 100%;
  max-width: 248px;
  margin: 0 0 12px;
}
@media (max-width: 767px) {
  .m_footer_address_divider {
    max-width: none;
  }
}

/* ---- 中カラム：ナビゲーション ---- */

.m_footer_col_nav {
  min-width: 200px;
}
@media (max-width: 767px) {
  .m_footer_col_nav {
    order: 0;
  }
}

.m_footer_nav_list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.m_footer_nav_item {
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}
.m_footer_nav_item:last-child {
  border-bottom: none;
}
@media (max-width: 767px) {
  .m_footer_nav_item {
    text-align: center;
  }
}

.m_footer_nav_link {
  display: block;
  padding: 10px 0;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 16px;
  color: var(--clr-brown);
  text-decoration: none;
  transition: color 0.2s;
}
.m_footer_nav_link:hover {
  color: var(--clr-gold);
}

/* ---- 右カラム：電話・CTA ---- */

.m_footer_col_contact {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: 320px;
  max-width: 100%;
}
@media (max-width: 767px) {
  .m_footer_col_contact {
    align-items: center;
    width: 100%;
  }
}

.m_footer_contact_eyebrow {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 14px;
  color: var(--clr-brown);
  margin: 0 0 8px;
}

.m_footer_tel_row {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 20px;
  text-decoration: none;
}

.m_footer_tel_icon {
  width: 32px;
  height: 32px;
  flex-shrink: 0;
}

.m_footer_tel_number {
  font-family: 'Noto Serif JP', serif;
  font-size: 34px;
  font-weight: 700;
  color: var(--clr-brown);
  letter-spacing: 0.05em;
}
@media (max-width: 767px) {
  .m_footer_tel_number {
    font-size: 28px;
  }
}

.m_footer_cta_btn {
  display: block;
  width: 100%;
  max-width: 297px;
  padding: 20px;
  background: var(--clr-gold);
  border-radius: 5px;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.1em;
  color: var(--clr-white);
  text-align: center;
  text-decoration: none;
  transition: opacity 0.2s;
}
.m_footer_cta_btn:hover {
  opacity: 0.85;
}
@media (max-width: 767px) {
  .m_footer_cta_btn {
    max-width: none;
  }
}

/* ---- コピーライト ---- */

.m_footer_copyright {
  margin: 20px 0 100px;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 14px;
  color: var(--clr-brown);
  text-align: center;
}


/**********************************************************************************************************
 m_footer  ここまで
***********************************************************************************************************/

/**********************************************************************************************************
 top_voice (トップページのお客様の声コンテンツで使用) 　　ここから
***********************************************************************************************************/
/* ========================================
   top_voice — お客様の声
   ======================================== */
.entry-title--post-type--page, h2:where(:not(.wp-block-post-title)){
  border: none!important;

}


.top_voice_wrap {
  background: var(--clr-pale);
  padding: 110px 0 60px;
  /* overflow-x: hidden だと仕様上 overflow-y が自動的に auto 扱いになり縦方向も
     クリップされてしまうため、横だけを切り離せる clip を使う（縦は visible のまま
     ＝中央カードの拡大時にアバターが切れないようにする） */
  overflow-x: clip;
  overflow-y: visible;
}
@media (max-width: 767px) {
  .top_voice_wrap {
    padding: 50px 0 50px;
  }
}

.top_voice_inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
}
@media (max-width: 767px) {
  .top_voice_inner {
    padding: 0 16px;
  }
}

/* ---- セクションタイトル ---- */

.top_voice_title {
  font-family: 'Noto Serif JP', serif;
  font-size: 32px;
  font-weight: 700;
  color: var(--clr-brown);
  text-align: center;
  letter-spacing: 0.1em;
  margin: 0 0 20px!important;
  border:none!important;
}
@media (max-width: 767px) {
  .top_voice_title {
    font-size: 22px;
    margin: 0 0 14px;
  }
}

.top_voice_title_line {
  width: 542px;
  max-width: 100%;
  height: 1px;
  margin: 0 auto 42px;
  background: linear-gradient(to right, var(--clr-gold), var(--clr-bronze));
}
@media (max-width: 767px) {
  .top_voice_title_line {
    width: 220px;
    margin: 0 auto 28px;
  }
}

/* ---- スライダー ---- */

.top_voice_slider {
  overflow: visible;
  width: 100%;
  margin-bottom: 60px;
  cursor: grab;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 12%, #000 88%, transparent 100%);
  mask-image: linear-gradient(90deg, transparent 0%, #000 12%, #000 88%, transparent 100%);
}
.top_voice_slider:active {
  cursor: grabbing;
}
@media (max-width: 767px) {
  .top_voice_slider {
    margin-bottom: 40px;
    -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 6%, #000 94%, transparent 100%);
    mask-image: linear-gradient(90deg, transparent 0%, #000 6%, #000 94%, transparent 100%);
  }
}

.top_voice_track {
  display: flex;
  flex-wrap: nowrap;
  align-items: flex-start;
  gap: 48px;
  width: max-content;
  will-change: transform;
  padding: 100px 0 28px; /* 上：アバターのはみ出し＋スケールアップ分の余白 */
}
@media (max-width: 767px) {
  .top_voice_track {
    gap: 16px;
    padding: 60px 0 20px;
  }
}

/* ---- 各カード ---- */

.top_voice_card {
  position: relative;
  width: 368px;
  flex-shrink: 0;
  background: var(--clr-white);
  border-radius: 5px;
  will-change: transform;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}
@media (max-width: 767px) {
  .top_voice_card {
    width: 85vw;
  }
}

.top_voice_card::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 5px;
  padding: 1px;
  background: linear-gradient(to bottom, var(--clr-gold), var(--clr-bronze));
  -webkit-mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
}

/* ---- 上部：写真バンド＋アバター ---- */

.top_voice_card_band {
  position: relative;
  height: 175px;
  border-radius: 4px 4px 0 0;
  overflow: hidden;
}
@media (max-width: 767px) {
  .top_voice_card_band {
    height: 96px;
  }
}

.top_voice_card_band_bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
}

.top_voice_card_avatar {
  display: block;
  position: absolute;
  top: -40px;
  left: 50%;
  transform: translateX(-50%);
  width: 160px;
  height: 160px;
  border-radius: 50%;
  background: var(--clr-white);
  object-fit: cover;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  z-index: 2;
}
@media (max-width: 767px) {
  .top_voice_card_avatar {
    width: 88px;
    height: 88px;
    top: -44px;
  }
}

.top_voice_card_name {
  position: absolute;
  left: 50%;
  top: 123px;
  transform: translateX(-50%);
  margin: 0;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 16px;
  font-weight: 700;
  color: var(--clr-brown);
  letter-spacing: 0.1em;
  line-height: 1.2;
  white-space: nowrap;
  z-index: 1;
}
@media (max-width: 767px) {
  .top_voice_card_name {
    font-size: 12px;
    top: 68px;
  }
}

/* ---- 下部：本文 ---- */

.top_voice_card_content {
  padding: 36px 16px 28px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
@media (max-width: 767px) {
  .top_voice_card_content {
    padding: 20px 16px 18px;
    gap: 10px;
  }
}

.top_voice_card_headline {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 20px;
  font-weight: 700;
  color: var(--clr-brown);
  letter-spacing: 0.1em;
  line-height: 1.2;
  margin: 0;
}
@media (max-width: 767px) {
  .top_voice_card_headline {
    font-size: 15px;
  }
}

.top_voice_card_text {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 16px;
  font-weight: 400;
  color: var(--clr-brown);
  letter-spacing: 0.2em;
  line-height: 1.2;
  margin: 0;
}
@media (max-width: 767px) {
  .top_voice_card_text {
    font-size: 13px;
  }
}

/* ---- もっと見るボタン ---- */

.top_voice_btn_wrap {
  text-align: center;
}

.top_voice_btn {
  display: inline-block;
  width: 279px;
  height: 50px;
  line-height: 50px;
  background: var(--clr-white);
  border: 1px solid var(--clr-gold);
  border-radius: 3px;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 16px;
  font-weight: 700;
  color: var(--clr-brown-dark);
  letter-spacing: 0.05em;
  text-decoration: none;
  text-align: center;
  transition: background 0.2s, color 0.2s;
}
.top_voice_btn:hover {
  background: var(--clr-gold);
  color: var(--clr-white);
}
@media (max-width: 767px) {
  .top_voice_btn {
    width: 100%;
    max-width: 279px;
    font-size: 14px;
  }
}

/**********************************************************************************************************
 top_voice　(トップページのお客様の声コンテンツで使用)   ここまで
***********************************************************************************************************/

/**********************************************************************************************************
 top_FAQ よくある質問　ここから
***********************************************************************************************************/
/* ========================================
   top_faq — よくある質問
   ======================================== */

.top_faq_wrap {
  background: var(--clr-white);
  padding: 110px 0 60px;
}
@media (max-width: 767px) {
  .top_faq_wrap {
    padding: 56px 0 48px;
  }
}

.top_faq_inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
}
@media (max-width: 767px) {
  .top_faq_inner {
    padding: 0 20px;
  }
}

/* ---- セクションタイトル ---- */

.top_faq_title {
  font-family: 'Noto Serif JP', serif;
  font-size: 32px;
  font-weight: 700;
  color: var(--clr-brown);
  text-align: center;
  letter-spacing: 0.1em;
  margin: 0 0 24px;
}
@media (max-width: 767px) {
  .top_faq_title {
    font-size: 22px;
    margin: 0 0 14px;
  }
}

.top_faq_title_line {
  width: 542px;
  max-width: 100%;
  height: 1px;
  margin: 0 auto 60px;
  background: linear-gradient(to right, var(--clr-gold), var(--clr-bronze));
}
@media (max-width: 767px) {
  .top_faq_title_line {
    width: 220px;
    margin: 0 auto 32px;
  }
}

/* ---- リスト ---- */

.top_faq_list {
  display: flex;
  flex-direction: column;
}

.top_faq_item {
  border-bottom: 1px solid var(--clr-brown);
}

/* ---- 質問（トリガー） ---- */

.top_faq_q {
  display: flex;
  align-items: center;
  gap: 24px;
  width: 100%;
  padding: 16px 0;
  background: none;
  border: none;
  margin: 0;
  cursor: pointer;
  text-align: left;
  -webkit-appearance: none;
  appearance: none;
}
@media (max-width: 767px) {
  .top_faq_q {
    gap: 14px;
    padding: 12px 0;
  }
}

.top_faq_q_mark {
  flex-shrink: 0;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 32px;
  font-weight: 700;
  color: var(--clr-brown);
  letter-spacing: 0.1em;
  line-height: 1.2;
}
@media (max-width: 767px) {
  .top_faq_q_mark {
    font-size: 22px;
  }
}

.top_faq_q_text {
  flex: 1;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 16px;
  font-weight: 700;
  color: var(--clr-brown);
  letter-spacing: 0.1em;
  line-height: 1.5;
}
@media (max-width: 767px) {
  .top_faq_q_text {
    font-size: 14px;
  }
}

.top_faq_chevron {
  flex-shrink: 0;
  width: 16px;
  height: 10px;
  color: var(--clr-brown);
  transition: transform 0.3s ease;
}
.top_faq_item.is_open .top_faq_chevron {
  transform: rotate(180deg);
}
@media (max-width: 767px) {
  .top_faq_chevron {
    width: 13px;
    height: 8px;
  }
}

/* ---- 回答（パネル） ---- */

.top_faq_a {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease;
}

.top_faq_a_inner {
  display: flex;
  align-items: flex-start;
  gap: 24px;
  padding: 0 0 20px 56px;
}
@media (max-width: 767px) {
  .top_faq_a_inner {
    gap: 14px;
    padding: 0 0 16px 36px;
  }
}

.top_faq_a_mark {
  flex-shrink: 0;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 20px;
  font-weight: 700;
  color: var(--clr-gold);
  letter-spacing: 0.1em;
  line-height: 1.2;
}
@media (max-width: 767px) {
  .top_faq_a_mark {
    font-size: 16px;
  }
}

.top_faq_a_text {
  flex: 1;
  margin: 0;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 15px;
  font-weight: 400;
  color: var(--clr-brown-dark);
  letter-spacing: 0.05em;
  line-height: 1.8;
}
@media (max-width: 767px) {
  .top_faq_a_text {
    font-size: 13px;
    line-height: 1.7;
  }
}

/* ---- 詳しく見るボタン ---- */

.top_faq_btn_wrap {
  text-align: center;
  margin-top: 40px;
}
@media (max-width: 767px) {
  .top_faq_btn_wrap {
    margin-top: 28px;
  }
}

.top_faq_btn {
  display: inline-block;
  width: 279px;
  height: 50px;
  line-height: 50px;
  background: var(--clr-white);
  border: 1px solid var(--clr-gold);
  border-radius: 3px;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 16px;
  font-weight: 700;
  color: var(--clr-brown-dark);
  letter-spacing: 0.05em;
  text-decoration: none;
  text-align: center;
  transition: background 0.2s, color 0.2s;
}
.top_faq_btn:hover {
  background: var(--clr-gold);
  color: var(--clr-white);
}
@media (max-width: 767px) {
  .top_faq_btn {
    width: 100%;
    max-width: 279px;
    font-size: 14px;
  }
}






/**********************************************************************************************************
 top_FAQ よくある質問　ここまで
***********************************************************************************************************/






/**********************************************************************************************************
 お問い合わせフォーム　ここから
***********************************************************************************************************/
/* ========================================
   top_contact — お問い合わせ
   ======================================== */

/* ---- Wrap ---- */
.contact__wrap {
  background: var(--clr-white);
  padding: 80px 0 100px;
}
@media (max-width: 767px) {
  .contact__wrap { padding: 52px 0 72px; }
}

.contact__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
}
@media (max-width: 767px) {
  .contact__inner { padding: 0 16px; }
}

/* ---- セクションタイトル ---- */
.contact__head {
  text-align: center;
  margin-bottom: 52px;
}
@media (max-width: 767px) {
  .contact__head { margin-bottom: 36px; }
}

.contact__title {
  font-family: 'Noto Serif JP', serif;
  font-size: 32px;
  font-weight: 700;
  color: var(--clr-blue);
  letter-spacing: 0.1em;
  line-height: 1.44;
  margin: 0 0 20px;
}
@media (max-width: 767px) {
  .contact__title { font-size: 22px; margin: 0 0 14px; }
}

.contact__sub {
  font-family: 'Noto Serif JP', serif;
  font-size: 16px;
  font-weight: 700;
  color: var(--clr-black);
  text-align: center;
  letter-spacing: 0.05em;
  line-height: 1.75;
  margin: 0;
}
@media (max-width: 767px) {
  .contact__sub { font-size: 14px; }
}

/* ================================================================
   フォームカード（innerの中で860pxに収める）
   ================================================================ */
.wpcf7 {
  max-width: 860px;
  margin: 0 auto;
}

.contact__form {
  background: var(--clr-white);
  border: 1px solid var(--clr-warm-light);
  border-radius: 5px;
  box-shadow: 0 2px 12px rgba(14, 47, 82, 0.07);
  padding: 48px 52px;
  margin: 0;
}
@media (max-width: 767px) {
  .contact__form { padding: 28px 20px; }
}

/* CF7 コントロールラップを block に */
.wpcf7-form-control-wrap {
  display: block;
}

/* ---- 2カラムグリッド ---- */
.contact__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 28px;
}
@media (max-width: 767px) {
  .contact__grid { grid-template-columns: 1fr; gap: 0; }
}

/* ---- 行 ---- */
.contact__row {
  margin-bottom: 24px;
}
@media (max-width: 767px) {
  .contact__row { margin-bottom: 20px; }
}

/* ---- ラベル ---- */
.contact__label {
  font-family: 'Noto Serif JP', serif;
  font-size: 16px;
  font-weight: 700;
  color: var(--clr-navy);
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 8px;
  line-height: 1.5;
}

/* ---- 必須・任意バッジ ---- */
.contact__req {
  font-size: 11px;
  font-weight: 700;
  font-family: 'Noto Sans JP', sans-serif;
  letter-spacing: 0.04em;
  background: var(--clr-gold);
  color: var(--clr-white);
  padding: 2px 7px;
  border-radius: 2px;
  flex-shrink: 0;
  line-height: 1.6;
}

.contact__req--any {
  background: var(--clr-warm-gray);
}

/* ---- テキスト / 電話 / メール 入力 ---- */
.contact__input {
  display: block;
  width: 100%;
  border: 1px solid var(--clr-warm-light);
  border-radius: 3px;
  padding: 12px 14px;
  font-size: 16px;
  font-family: 'Noto Sans JP', sans-serif;
  color: var(--clr-navy);
  background: var(--clr-white);
  outline: none;
  transition: border-color 0.18s, box-shadow 0.18s;
  -webkit-appearance: none;
}

.contact__input::placeholder {
  color: var(--clr-warm-gray);
  font-size: 14px;
}

.contact__input:focus {
  border-color: var(--clr-blue);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--clr-blue) 15%, transparent);
}

.contact__input.wpcf7-not-valid {
  border-color: #c0392b;
}

/* ---- セレクト ---- */
.contact__select {
  display: block;
  width: 100%;
  border: 1px solid var(--clr-warm-light);
  border-radius: 3px;
  padding: 12px 40px 12px 14px;
  font-size: 16px;
  font-family: 'Noto Sans JP', sans-serif;
  color: var(--clr-navy);
  background-color: var(--clr-white);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5.5L11 1' stroke='%23B8A898' stroke-width='1.6' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  background-size: 12px 8px;
  outline: none;
  transition: border-color 0.18s, box-shadow 0.18s;
  -webkit-appearance: none;
  cursor: pointer;
}
@media (max-width: 767px) {
  .contact__select { padding: 11px 36px 11px 12px; }
}

.contact__select:focus {
  border-color: var(--clr-blue);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--clr-blue) 15%, transparent);
}

.contact__select.wpcf7-not-valid {
  border-color: #c0392b;
}

/* ---- テキストエリア ---- */
.contact__textarea {
  display: block;
  width: 100%;
  border: 1px solid var(--clr-warm-light);
  border-radius: 3px;
  padding: 12px 14px;
  font-size: 16px;
  font-family: 'Noto Sans JP', sans-serif;
  color: var(--clr-navy);
  background: var(--clr-white);
  outline: none;
  transition: border-color 0.18s, box-shadow 0.18s;
  resize: vertical;
  min-height: 140px;
  line-height: 1.7;
}
@media (max-width: 767px) {
  .contact__textarea { min-height: 120px; padding: 11px 12px; }
}

.contact__textarea::placeholder {
  color: var(--clr-warm-gray);
  font-size: 14px;
}

.contact__textarea:focus {
  border-color: var(--clr-blue);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--clr-blue) 15%, transparent);
}

.contact__textarea.wpcf7-not-valid {
  border-color: #c0392b;
}

/* ---- 送信ボタン ---- */
.contact__submit_wrap {
  text-align: center;
  margin-top: 8px;
}

.contact__submit {
  display: inline-block;
  background: var(--clr-blue);
  color: var(--clr-white);
  font-family: 'Noto Serif JP', serif;
  font-size: 16px;
  font-weight: 700;
  padding: 16px 72px;
  border-radius: 4px;
  border: none;
  letter-spacing: 0.2em;
  cursor: pointer;
  transition: opacity 0.2s, transform 0.2s;
}
@media (max-width: 767px) {
  .contact__submit {
    display: block;
    width: 100%;
    padding: 16px 20px;
  }
}

.contact__submit:hover {
  opacity: 0.85;
  transform: translateY(-1px);
}

.contact__submit:active {
  transform: translateY(0);
}

/* ---- CF7 フィールドエラーメッセージ ---- */
.wpcf7-not-valid-tip {
  display: block;
  font-size: 12px;
  color: #c0392b;
  margin-top: 5px;
  line-height: 1.5;
}

/* ---- CF7 レスポンス出力 ---- */
.wpcf7-response-output {
  margin: 20px 0 0;
  padding: 12px 18px;
  border-radius: 3px;
  font-size: 16px;
  line-height: 1.7;
  border: none;
}

.wpcf7-form.sent .wpcf7-response-output {
  background: var(--clr-blue-pale);
  border: 1px solid color-mix(in srgb, var(--clr-blue) 40%, transparent);
  color: var(--clr-blue-dark);
}

.wpcf7-form.failed .wpcf7-response-output,
.wpcf7-form.invalid .wpcf7-response-output,
.wpcf7-form.unaccepted .wpcf7-response-output {
  background: #fdf2f0;
  border: 1px solid #e8b4ae;
  color: #c0392b;
}

.wpcf7-form.spam .wpcf7-response-output {
  background: var(--clr-warm-pale);
  border: 1px solid var(--clr-warm-light);
  color: var(--clr-warm-gray);
}


/**********************************************************************************************************
 お問い合わせフォーム　ここまで
***********************************************************************************************************/

/**********************************************************************************************************
 よくある質問ページ　ここから
***********************************************************************************************************/
/* ========================================
   faq — よくある質問ページ
   ======================================== */

.faq__wrap {
  background: var(--clr-white);
  padding: 80px 0 100px;
}
@media (max-width: 767px) {
  .faq__wrap { padding: 52px 0 72px; }
}

.faq__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
}
@media (max-width: 767px) {
  .faq__inner { padding: 0 16px; }
}

/* ---- ヘッド ---- */

.faq__head {
  text-align: center;
  margin-bottom: 56px;
}
@media (max-width: 767px) {
  .faq__head { margin-bottom: 36px; }
}

.faq__title {
  font-family: 'Noto Serif JP', serif;
  font-size: 40px;
  font-weight: 700;
  color: var(--clr-blue);
  letter-spacing: 0.1em;
  line-height: 1.3;
  margin: 0 0 20px;
}
@media (max-width: 767px) {
  .faq__title { font-size: 26px; margin: 0 0 14px; }
}

.faq__sub {
  font-family: 'Noto Serif JP', serif;
  font-size: 16px;
  font-weight: 700;
  color: var(--clr-black);
  margin: 0 0 28px;
  letter-spacing: 0.05em;
}
@media (max-width: 767px) {
  .faq__sub { font-size: 14px; margin: 0 0 20px; }
}

/* ---- 検索ボックス ---- */

.faq__search_wrap {
  max-width: 480px;
  margin: 0 auto;
}
@media (max-width: 767px) {
  .faq__search_wrap { max-width: 100%; }
}

.faq__search_box {
  display: flex;
  align-items: center;
  gap: 10px;
  border: 1px solid var(--clr-warm-light);
  border-radius: 4px;
  padding: 0 16px;
  background: var(--clr-white);
  cursor: text;
  transition: border-color 0.18s, box-shadow 0.18s;
}

.faq__search_box:focus-within {
  border-color: var(--clr-blue);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--clr-blue) 15%, transparent);
}

.faq__search_icon {
  color: var(--clr-warm-gray);
  flex-shrink: 0;
  pointer-events: none;
}

.faq__search_input {
  flex: 1;
  border: none;
  outline: none;
  padding: 13px 0;
  font-size: 16px;
  font-family: 'Noto Sans JP', sans-serif;
  color: var(--clr-navy);
  background: transparent;
  -webkit-appearance: none;
}
@media (max-width: 767px) {
  .faq__search_input { font-size: 15px; padding: 12px 0; }
}

.faq__search_input::placeholder {
  color: var(--clr-warm-gray);
  font-size: 14px;
}

.faq__search_input::-webkit-search-cancel-button {
  -webkit-appearance: none;
}

/* ---- ボディ（カテゴリコンテナ） ---- */

.faq__body {
  max-width: 860px;
  margin: 0 auto;
}

/* ---- カテゴリ ---- */

.faq__category {
  margin-bottom: 52px;
}
@media (max-width: 767px) {
  .faq__category { margin-bottom: 40px; }
}

.faq__category:last-of-type {
  margin-bottom: 0;
}

.faq__cat_title {
  font-family: 'Noto Serif JP', serif;
  font-size: 20px;
  font-weight: 700;
  color: var(--clr-navy);
  border-left: 4px solid var(--clr-gold)!important;
  padding-left: 16px;
  margin: 0 0 4px;
  letter-spacing: 0.05em;
  line-height: 1.5;
}
@media (max-width: 767px) {
  .faq__cat_title { font-size: 17px; padding-left: 12px; }
}

/* ---- リスト ---- */

.faq__list {
  margin: 0;
  padding: 0;
}

/* ---- アイテム ---- */

.faq__item {
  border-top: 1px solid var(--clr-warm-light);
}
.faq__item:last-child {
  border-bottom: 1px solid var(--clr-warm-light);
}

.faq__item > dt {
  margin: 0;
  padding: 0;
}

/* ---- Q ボタン ---- */

.faq__q {
  display: flex;
  align-items: center;
  gap: 20px;
  width: 100%;
  padding: 18px 0;
  background: none;
  border: none;
  cursor: pointer;
  text-align: left;
  transition: opacity 0.18s;
}
@media (max-width: 767px) {
  .faq__q { gap: 12px; padding: 14px 0; }
}

.faq__q:hover { opacity: 0.72; }

/* ---- Q マーク ---- */

.faq__q_mark {
  font-family: 'Noto Serif JP', serif;
  font-size: 28px;
  font-weight: 700;
  color: var(--clr-gold);
  line-height: 1;
  flex-shrink: 0;
  width: 28px;
  text-align: center;
}
@media (max-width: 767px) {
  .faq__q_mark { font-size: 22px; width: 22px; }
}

/* ---- 質問テキスト ---- */

.faq__q_text {
  flex: 1;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 16px;
  font-weight: 700;
  color: var(--clr-brown);;
  line-height: 1.65;
  letter-spacing: 0.04em;
}
@media (max-width: 767px) {
  .faq__q_text { font-size: 14px; }
}

/* ---- シェブロン ---- */

.faq__chevron {
  flex-shrink: 0;
  width: 12px;
  height: 12px;
  border-right: 2px solid var(--clr-gold);
  border-bottom: 2px solid var(--clr-gold);
  transform: rotate(45deg);
  transition: transform 0.3s ease;
  margin-right: 6px;
  margin-top: -4px;
}

.faq__item.is_open .faq__chevron {
  transform: rotate(225deg);
  margin-top: 4px;
}

/* ---- A パネル（GSAP で height 制御） ---- */

.faq__a {
  overflow: hidden;
  margin: 0;
  padding: 0;
}

.faq__a_inner {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  padding: 6px 0 22px;
  border-top: 1px solid var(--clr-warm-light);
}
@media (max-width: 767px) {
  .faq__a_inner { gap: 12px; padding: 6px 0 18px; }
}

/* ---- A マーク ---- */

.faq__a_mark {
  font-family: 'Noto Serif JP', serif;
  font-size: 28px;
  font-weight: 700;
  color: var(--clr-gold);
  line-height: 1;
  flex-shrink: 0;
  width: 28px;
  text-align: center;
  padding-top: 2px;
}
@media (max-width: 767px) {
  .faq__a_mark { font-size: 22px; width: 22px; }
}

/* ---- 回答テキスト ---- */

.faq__a_text {
  flex: 1;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 16px;
  font-weight: 400;
  color: var(--clr-navy);
  line-height: 1.9;
  letter-spacing: 0.04em;
  margin: 0;
  padding-top: 4px;
}
@media (max-width: 767px) {
  .faq__a_text { font-size: 14px; padding-top: 2px; }
}

/* ---- 検索キーワードハイライト ---- */

mark.faq__highlight {
  background: color-mix(in srgb, var(--clr-gold) 32%, transparent);
  color: inherit;
  border-radius: 2px;
  padding: 0 2px;
}

/* ---- 検索ヒットなし ---- */

.faq__empty {
  text-align: center;
  padding: 40px 0 0;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 16px;
  color: var(--clr-warm-gray);
  display: none;
}
.faq__empty.is_visible { display: block; }

/* ---- 検索フィルター（非表示） ---- */

.is_search_hidden { display: none !important; }

/**********************************************************************************************************
 よくある質問ページ　ここまで
***********************************************************************************************************/

/**********************************************************************************************************
 プランページ　ここから
***********************************************************************************************************/
.plan__hero-viewport {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.plan__wrap {
  max-width: none;
  margin: 0 auto;
  padding: 0 20px;
  /* max-height: 20vh; */
}

#plan__content {
  max-width: 1200px;
  margin: 0 auto;
}



/* ---------- Header ---------- */
.plan__site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(250, 246, 239, 0.92);
  backdrop-filter: blur(6px);
  border-bottom: 1px solid var(--color-border);
}

.plan__site-header .plan__wrap {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 14px;
  padding-bottom: 14px;
}

.plan__brand {
  display: flex;
  flex-direction: column;
  line-height: 1.2;
}

.plan__brand .plan__ja {
  font-family: 'Noto Serif JP', serif;
  font-size: 1.3rem;
  font-weight: 700;
  letter-spacing: 0.08em;
}

.plan__brand .plan__en {
  font-size: 0.6rem;
  letter-spacing: 0.2em;
  color: var(--color-text-sub);
}

.plan__tel-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--color-gold);
  color: #fff;
  padding: 10px 18px;
  border-radius: 999px;
  text-decoration: none;
  font-weight: 700;
  font-size: 0.85rem;
  white-space: nowrap;
  box-shadow: var(--shadow-soft);
  transition: background 0.2s ease, transform 0.2s ease;
}

.plan__tel-btn:hover {
  background: var(--color-gold-dark);
  transform: translateY(-1px);
}

.plan__tel-btn .plan__num {
  font-size: 1rem;
  letter-spacing: 0.02em;
}

/* ---------- Page intro ---------- */
.plan__page-intro {
  text-align: center;
  padding: 48px 20px 12px;
}

.plan__page-intro .plan__eyebrow {
  display: inline-block;
  font-size: 0.75rem;
  letter-spacing: 0.3em;
  color: var(--color-gold-dark);
  margin-bottom: 10px;
}

.plan__page-intro h1 {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(1.5rem, 4vw, 2.1rem);
  margin: 0 0 12px;
  font-weight: 700;
}

.plan__page-intro p {
  color: var(--color-text-sub);
  font-size: 0.9rem;
  margin: 0;
}

.plan__swipe-hint {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 16px;
  font-size: 0.78rem;
  color: var(--color-gold-dark);
  background: var(--color-gold-pale);
  padding: 6px 16px;
  border-radius: 999px;
}

.plan__swipe-hint svg {
  width: 14px;
  height: 14px;
  animation: planSwipeMove 1.6s ease-in-out infinite;
}

@keyframes planSwipeMove {

  0%,
  100% {
    transform: translateX(0);
    opacity: 0.5;
  }

  50% {
    transform: translateX(4px);
    opacity: 1;
  }
}

/* ---------- Plan nav (right side, vertical text) ---------- */
.plan__nav {
  position: fixed;
  top: 50%;
  right: 10px;
  transform: translateY(-50%);
  z-index: 60;
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.plan__nav button {
  writing-mode: vertical-rl;
  text-orientation: mixed;
  white-space: nowrap;
  background: rgba(255, 255, 255, 0.82);
  backdrop-filter: blur(6px);
  border: 1px solid var(--color-border);
  border-right: none;
  color: var(--color-text-sub);
  font-family: 'Noto Serif JP', serif;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  padding: 14px 6px;
  border-radius: 10px 0 0 10px;
  cursor: pointer;
  box-shadow: var(--shadow-soft);
  transition: padding 0.2s ease, color 0.2s ease, background 0.2s ease, border-color 0.2s ease;
}

.plan__nav button:hover {
  padding-right: 10px;
  color: var(--color-gold-dark);
}

.plan__nav button.plan__active {
  background: var(--color-gold);
  border-color: var(--color-gold);
  color: #fff;
  padding-right: 10px;
  font-weight: 700;
}

@media (max-width: 640px) {
  .plan__nav button {
    padding: 10px 5px;
    font-size: 0.64rem;
    letter-spacing: 0.1em;
  }

  .plan__nav button:hover,
  .plan__nav button.plan__active {
    padding-right: 8px;
  }
}

/* ---------- Plan carousel (top) ---------- */
.plan__carousel-section {
  padding: 24px 0 12px;
  position: relative;
}

.plan__swiper {
  padding: 10px 0 34px;
}

.plan__swipe-hint-overlay {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 40;
  pointer-events: none;
  opacity: 1;
  transition: opacity 0.6s ease, transform 0.6s ease;
}

.plan__swipe-hint-overlay.plan__is-hidden {
  opacity: 0;
  transform: translate(-50%, -50%) scale(0.9);
}

.plan__swipe-hint-overlay img {
  width: 92px;
  height: auto;
  filter: drop-shadow(0 8px 18px rgba(51, 42, 31, 0.35));
}

.plan__swiper .swiper-slide {
  height: auto;
}

.plan__swiper .swiper-slide img {
  -webkit-user-drag: none;
  user-drag: none;
  -webkit-touch-callout: none;
  pointer-events: none;
}

.plan__slide-card {
  position: relative;
  background: var(--color-white);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
  overflow: hidden;
  border: 1px solid var(--color-border);
}

.plan__slide-rank {
  position: absolute;
  top: 10px;
  left: 10px;
  z-index: 3;
  width: 78px;
  height: 78px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, var(--color-gold-light), var(--color-gold) 70%);
  color: #fff;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  box-shadow: var(--shadow-card);
  border: 2px solid rgba(255, 255, 255, 0.5);
}

.plan__slide-rank .plan__num {
  font-family: 'Noto Serif JP', serif;
  font-size: 1.15rem;
  font-weight: 700;
  line-height: 1.1;
}

.plan__slide-rank .plan__label {
  font-size: 0.55rem;
  letter-spacing: 0.02em;
  margin-top: 3px;
  opacity: 0.92;
}

.plan__slide-photos {
  position: relative;
  background: var(--color-gold-pale);
  padding: 0;
}

.plan__slide-photos .plan__ph {
  border-radius: var(--radius-md) var(--radius-md) 0 0  ;
  overflow: hidden;
  height: 55vh;
  min-height: 220px;
  max-height: 520px;
  box-shadow: var(--shadow-soft);
  background: #eee;
}

.plan__slide-photos .plan__ph img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.plan__slide-heading {
  text-align: center;
  padding: 18px 20px 6px;
}

.plan__slide-heading .plan__name {
  font-family: 'Noto Serif JP', serif;
  font-size: 1.7rem;
  font-weight: 700;
  margin: 0;
}

.plan__slide-heading .plan__name small {
  display: block;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 0.65rem;
  letter-spacing: 0.15em;
  color: var(--color-text-sub);
  font-weight: 400;
  margin-top: 4px;
}

/* dots (Swiper pagination bullets) */
.plan__dots.swiper-pagination {
  position: static;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
  padding: 14px 0 4px;
}

.plan__dots .swiper-pagination-bullet {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  border: none;
  background: var(--color-gold-light);
  opacity: 1;
  margin: 0;
  cursor: pointer;
  transition: background 0.2s, transform 0.2s;
}

.plan__dots .swiper-pagination-bullet-active {
  background: var(--color-gold);
  transform: scale(1.3);
}

/* ---------- badges: price / guests ---------- */
.plan__badge-row {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
  padding: 16px 20px 30px;
}

.plan__badge {
  display: flex;
  align-items: center;
  gap: 10px;
  /* background: var(--color-white); */
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  padding: 12px 22px;
  box-shadow: var(--shadow-soft);
}

.plan__badge .plan__label {
  font-size: 0.72rem;
  color: var(--color-text-sub);
}

.plan__badge .plan__value {
  font-weight: 700;
  font-size: 1.05rem;
}

.plan__badge.plan__price .plan__value {
  color: var(--color-gold-dark);
  font-size: 1.3rem;
}

.plan__badge.plan__price .plan__sub {
  font-size: 0.7rem;
  color: var(--color-text-sub);
  margin-left: 2px;
}

/* sub-plan price cards (火葬式) */
.plan__subplan-row {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
  padding: 16px 20px 30px;
}

.plan__subplan-card {
  background: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  padding: 12px 22px;
  text-align: center;
  box-shadow: var(--shadow-soft);
}

.plan__subplan-card h3 {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 400;
  font-family: 'Noto Sans JP', sans-serif;
  color: var(--color-text-sub);
}

.plan__subplan-card .plan__price {
  display: inline;
  color: var(--color-gold-dark);
  font-size: 1.3rem;
  font-weight: 700;
}

.plan__subplan-card .plan__price .plan__yen {
  font-size: 0.7rem;
}

.plan__subplan-card .plan__sub-note {
  display: inline;
  font-size: 0.7rem;
  color: var(--color-text-sub);
  margin-left: 2px;
}

/* ---------- Sections ---------- */
.plan__section {
  padding: 30px 20px 8px;
}

.plan__section-title {
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: 'Noto Serif JP', serif;
  font-size: 1.15rem;
  font-weight: 700;
  margin: 0 0 18px;
}

.plan__section-title::before {
  content: '';
  width: 4px;
  height: 1.1em;
  background: var(--color-gold);
  border-radius: 2px;
  display: inline-block;
}

.plan__section-title.plan__muted::before {
  background: var(--color-excluded);
}

.plan__item-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
  gap: 10px;
}

.plan__item-card {
  background: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  overflow: hidden;
  text-align: center;
  box-shadow: var(--shadow-soft);
}

.plan__item-card .plan__thumb {
  aspect-ratio: 1 / 1;
  background: var(--color-gold-pale);
  overflow: hidden;
}

.plan__item-card .plan__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.plan__item-card .plan__cap {
  font-size: 0.72rem;
  padding: 7px 4px;
  line-height: 1.3;
  white-space: nowrap;
  overflow: hidden;
}

.plan__item-grid.plan__excluded .plan__item-card .plan__thumb {
  background: #efece5;
  filter: grayscale(45%);
  opacity: 0.85;
}

.plan__item-grid.plan__excluded .plan__item-card .plan__cap {
  color: var(--color-text-sub);
}

.plan__note-box {
  /* background: var(--color-gold-pale);
  border: 1px dashed var(--color-gold-light); */
  border-radius: var(--radius-sm);
  padding: 14px 16px;
  font-size: 0.8rem;
  color: var(--color-text-sub);
  margin-top: 4px;
}

/* ---------- Flow ---------- */
.plan__flow-scroll {
  position: relative;
  overflow-x: auto;
  padding-bottom: 10px;
  -webkit-overflow-scrolling: touch;
  /* タッチはブラウザのネイティブ横スクロール（慣性つき）に任せる。                                                                      
  縦方向のジェスチャーはページ側の縦スクロールへ渡す。                                                                                
マウスのドラッグはJS側で別途ハンドリングする（pointerType === 'mouse'のみ）。 */                                                    
 touch-action: pan-x;  
  cursor: grab;
  user-select: none;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.plan__flow-swipe-hint {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 5;
  pointer-events: none;
  opacity: 1;
  transition: opacity 0.6s ease, transform 0.6s ease;
}

.plan__flow-swipe-hint.plan__is-hidden {
  opacity: 0;
  transform: translate(-50%, -50%) scale(0.9);
}

.plan__flow-swipe-hint img {
  width: 68px;
  height: auto;
  filter: drop-shadow(0 8px 18px rgba(51, 42, 31, 0.35));
}

.plan__flow-scroll::-webkit-scrollbar {
  display: none;
}

.plan__flow-scroll.plan__dragging {
  cursor: grabbing;
}

.plan__flow-row {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: 14px;
  min-width: max-content;
  padding: 6px 2px 12px;
  position: relative;
}

.plan__flow-day-group {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex-shrink: 0;
  background: var(--color-gold-pale);
  border-radius: 16px;
  padding: 10px 10px 12px;
}

.plan__flow-day-label {
  font-size: 0.68rem;
  font-weight: 700;
  color: var(--color-gold-dark);
  letter-spacing: 0.08em;
  margin-bottom: 10px;
}

.plan__flow-day-steps {
  display: flex;
  align-items: flex-start;
  gap: 0;
  position: relative;
}

.plan__flow-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 64px;
  flex-shrink: 0;
  position: relative;
  text-align: center;
}

.plan__flow-step .plan__pill {
  writing-mode: vertical-rl;
  text-orientation: mixed;
  background: var(--color-gold-pale);
  border: 1.5px solid var(--color-gold);
  color: var(--color-text);
  font-family: inherit;
  font-weight: 700;
  font-size: 0.78rem;
  letter-spacing: 0.06em;
  border-radius: 999px;
  padding: 10px 4px;
  width: 48px;
  height: 116px;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2;
  background-color: #fff;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  transition: transform 0.15s ease, border-color 0.15s ease, background-color 0.15s ease;
}

.plan__flow-step .plan__pill:hover,
.plan__flow-step .plan__pill:focus-visible {
  transform: scale(1.06);
  border-color: var(--color-gold-dark);
  background-color: var(--color-gold-pale);
  outline: none;
}

.plan__flow-step .plan__connector {
  position: absolute;
  top: 58px;
  right: -50%;
  width: 100%;
  height: 2px;
  background: var(--color-gold-light);
  z-index: 1;
}

.plan__flow-step:last-child .plan__connector {
  display: none;
}

/* ---------- Flow step modal ---------- */
.plan__flow-modal {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.25s ease, visibility 0.25s ease;
}

.plan__flow-modal.plan__open {
  opacity: 1;
  visibility: visible;
}

.plan__flow-modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(51, 42, 31, 0.55);
}

.plan__flow-modal-box {
  position: relative;
  background: var(--color-white);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
  padding: 34px 26px 26px;
  max-width: 340px;
  width: 100%;
  text-align: center;
  transform: translateY(14px);
  transition: transform 0.25s ease;
}

.plan__flow-modal.plan__open .plan__flow-modal-box {
  transform: translateY(0);
}

.plan__flow-modal-close {
  position: absolute;
  top: 10px;
  right: 10px;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  border: none;
  background: var(--color-gold-pale);
  color: var(--color-text-sub);
  font-size: 1.1rem;
  line-height: 1;
  cursor: pointer;
}

.plan__flow-modal-day {
  font-size: 0.72rem;
  color: var(--color-gold-dark);
  letter-spacing: 0.1em;
  margin-bottom: 6px;
}

.plan__flow-modal-title {
  font-family: 'Noto Serif JP', serif;
  font-size: 1.25rem;
  font-weight: 700;
  margin: 0 0 14px;
}

.plan__flow-modal-detail {
  font-size: 0.88rem;
  color: var(--color-text-sub);
  line-height: 1.8;
  margin: 0;
}

/* ---------- Notes / footer ---------- */
.plan__notes-list {
  list-style: none;
  padding: 0;
  margin: 20px 0 0;
  font-size: 0.78rem;
  color: var(--color-text-sub);
}

.plan__notes-list li {
  position: relative;
  padding-left: 1.2em;
  margin-bottom: 6px;
}

.plan__notes-list li::before {
  content: '※';
  position: absolute;
  left: 0;
}

.plan__cta-band {
  margin: 40px 0 0;
  background: var(--color-gold-pale);
  border-top: 1px solid var(--color-gold-light);
  padding: 30px 20px;
  text-align: center;
}

.plan__cta-band p {
  margin: 0 0 14px;
  font-size: 0.9rem;
  color: var(--color-text);
}

.plan__cta-band .plan__tel-btn {
  font-size: 1rem;
  padding: 14px 30px;
}

.plan__site-footer {
  text-align: center;
  padding: 20px;
  font-size: 0.7rem;
  color: var(--color-text-sub);
}

@media (min-width: 720px) {
  .plan__slide-photos {
    padding: 0;
  }

  .plan__badge {
    padding: 14px 28px;
  }
}




/**********************************************************************************************************
 プランページ　ここまで
***********************************************************************************************************/





/**********************************************************************************************************
 お客様の声・実績　ここから
***********************************************************************************************************/
/* ========================================
   voice-achievements — お客様の声・実績
   ======================================== */

.voice-achievements__wrap {
  background: var(--clr-white);
}

#voice_list {
  /* ページネーションで #voice_list へジャンプした際、固定ヘッダーに隠れないよう余白を確保 */
  scroll-margin-top: 100px;
}
@media (max-width: 767px) {
  #voice_list { scroll-margin-top: 72px; }
}

/* ---- ページヘッド ---- */

.voice-achievements__head {
  background: var(--clr-pale);
  padding: 80px 0 64px;
  text-align: center;
}
@media (max-width: 767px) {
  .voice-achievements__head { padding: 52px 0 44px; }
}

.voice-achievements__head_inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
}

.voice-achievements__title {
  font-family: 'Noto Serif JP', serif;
  font-size: 40px;
  font-weight: 700;
  color: var(--clr-gold);
  letter-spacing: 0.1em;
  line-height: 1.3;
  margin: 0 0 20px;
}
@media (max-width: 767px) {
  .voice-achievements__title { font-size: 26px; margin: 0 0 14px; }
}

.voice-achievements__title_line {
  width: 48px;
  height: 2px;
  /* background: var(--clr-gold); */
  margin: 0 auto 20px;
}

.voice-achievements__sub {
  font-family: 'Noto Serif JP', serif;
  font-size: 16px;
  font-weight: 700;
  color: var(--clr-black);
  margin: 0;
  letter-spacing: 0.05em;
}
@media (max-width: 767px) {
  .voice-achievements__sub { font-size: 14px; }
}

/* ---- 共通セクションタイトル ---- */

.voice-achievements__section_title {
  font-family: 'Noto Serif JP', serif;
  font-size: 32px;
  font-weight: 700;
  color: var(--clr-gold);
  text-align: center;
  letter-spacing: 0.1em;
  margin: 0 0 16px;
}
@media (max-width: 767px) {
  .voice-achievements__section_title { font-size: 22px; margin: 0 0 12px; }
}

.voice-achievements__section_line {
  width: 48px;
  height: 2px;
  background: var(--clr-gold);
  margin: 0 auto 40px;
}

/* voice-koteipage（voice-list.php）だけ、線を非表示にして余白を詰める */
#voice_list .voice-achievements__section_line {
  background: none;
  margin: 0 auto 20px;
}
@media (max-width: 767px) {
  .voice-achievements__section_line { margin: 0 auto 28px; }
}

/* ---- 濃色背景（実績数字セクション等）用の白文字バリエーション ---- */
.voice-achievements__section_title--light {
  color: var(--clr-white);
}

.voice-achievements__section_line--light {
  background: var(--clr-white);
}

/* ========================================
   実績数字セクション
   ======================================== */

.voice-achievements__stats_section {
  background: var(--clr-brown-dark);
  padding: 64px 0;
}
@media (max-width: 767px) {
  .voice-achievements__stats_section { padding: 44px 0; }
}

.voice-achievements__stats_inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
}

.voice-achievements__stats_list {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}
@media (max-width: 767px) {
  .voice-achievements__stats_list {
    grid-template-columns: repeat(2, 1fr);
    gap: 1px;
    background: color-mix(in srgb, var(--clr-white) 12%, transparent);
  }
}

.voice-achievements__stats_item {
  text-align: center;
  padding: 20px 12px;
  border-right: 1px solid color-mix(in srgb, var(--clr-white) 15%, transparent);
}
.voice-achievements__stats_item:last-child { border-right: none; }
@media (max-width: 767px) {
  .voice-achievements__stats_item {
    border-right: none;
    background: var(--clr-brown-dark);
    padding: 24px 12px;
  }
}

.voice-achievements__stats_num {
  display: block;
  font-family: 'Noto Serif JP', serif;
  font-size: 15px;
  font-weight: 700;
  color: var(--clr-white);
  line-height: 1.2;
  margin: 0 0 10px;
  letter-spacing: 0.02em;
}

.voice-achievements__stats_count {
  font-size: 48px;
  color: var(--clr-gold);
  letter-spacing: -0.01em;
  font-weight: 700;
}
@media (max-width: 767px) {
  .voice-achievements__stats_count { font-size: 36px; }
}

.voice-achievements__stats_em {
  font-family: 'Noto Serif JP', serif;
  font-style: normal;
  font-size: 48px;
  font-weight: 700;
  color: var(--clr-gold);
}
@media (max-width: 767px) {
  .voice-achievements__stats_em { font-size: 36px; }
}

.voice-achievements__stats_label {
  display: block;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 13px;
  font-weight: 700;
  color: color-mix(in srgb, var(--clr-white) 70%, transparent);
  letter-spacing: 0.08em;
}
@media (max-width: 767px) {
  .voice-achievements__stats_label { font-size: 12px; }
}

/* ========================================
   総合評価セクション
   ======================================== */

.voice-achievements__rating_section {
  background: var(--clr-white);
  padding: 80px 0;
}
@media (max-width: 767px) {
  .voice-achievements__rating_section { padding: 52px 0; }
}

.voice-achievements__rating_inner {
  max-width: 700px;
  margin: 0 auto;
  padding: 0 20px;
}

.voice-achievements__rating_body {
  display: flex;
  gap: 56px;
  align-items: center;
}
@media (max-width: 767px) {
  .voice-achievements__rating_body {
    flex-direction: column;
    gap: 32px;
  }
}

/* スコアエリア */

.voice-achievements__rating_score_area {
  text-align: center;
  flex-shrink: 0;
}

.voice-achievements__rating_score_wrap {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 4px;
  margin-bottom: 6px;
}

.voice-achievements__rating_score {
  font-family: 'Noto Serif JP', serif;
  font-size: 72px;
  font-weight: 700;
  color: var(--clr-gold);
  line-height: 1;
  letter-spacing: -0.02em;
}
@media (max-width: 767px) {
  .voice-achievements__rating_score { font-size: 56px; }
}

.voice-achievements__rating_max {
  font-family: 'Noto Serif JP', serif;
  font-size: 20px;
  font-weight: 700;
  color: var(--clr-warm-gray);
}

.voice-achievements__rating_count {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 13px;
  color: var(--clr-warm-gray);
  margin: 8px 0 0;
}

/* ---- カテゴリ別バー ---- */

.voice-achievements__rating_cats {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
@media (max-width: 767px) {
  .voice-achievements__rating_cats { width: 100%; gap: 14px; }
}

.voice-achievements__rating_cat {
  display: grid;
  grid-template-columns: 112px 1fr 36px;
  align-items: center;
  gap: 12px;
}
@media (max-width: 767px) {
  .voice-achievements__rating_cat { grid-template-columns: 100px 1fr 32px; gap: 10px; }
}

.voice-achievements__rating_cat_label {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 13px;
  font-weight: 700;
  color: var(--clr-brown-dark);
  white-space: nowrap;
}
@media (max-width: 767px) {
  .voice-achievements__rating_cat_label { font-size: 12px; }
}

.voice-achievements__rating_bar_wrap {
  height: 8px;
  background: var(--clr-pale);
  border-radius: 4px;
  overflow: hidden;
}

.voice-achievements__rating_bar_fill {
  height: 100%;
  background: var(--clr-gold);
  border-radius: 4px;
  width: 0;
}

.voice-achievements__rating_cat_score {
  font-family: 'Noto Serif JP', serif;
  font-size: 15px;
  font-weight: 700;
  color: var(--clr-gold);
  text-align: right;
}

/* ========================================
   星評価（共通）
   ======================================== */

.voice-achievements__stars {
  font-size: 20px;
  letter-spacing: 2px;
  color: var(--clr-gold);
  display: inline-block;
}

.voice-achievements__stars--lg {
  font-size: 28px;
  letter-spacing: 4px;
}
@media (max-width: 767px) {
  .voice-achievements__stars--lg { font-size: 22px; }
}

/* ========================================
   お客様の声セクション
   ======================================== */

.voice-achievements__voices_section {
  background: var(--clr-pale);
  padding: 80px 0 96px;
}
@media (max-width: 767px) {
  .voice-achievements__voices_section { padding: 52px 0 68px; }
}

.voice-achievements__voices_inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
}

.voice-achievements__privacy_note {
  text-align: center;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 13px;
  color: var(--clr-warm-gray);
  margin: -24px 0 40px;
  letter-spacing: 0.04em;
}
@media (max-width: 767px) {
  .voice-achievements__privacy_note { margin: -16px 0 28px; font-size: 12px; }
}

/* ---- プラン絞り込みボタン ---- */

.voice-achievements__plan_filter {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
  margin: 0 0 40px;
}
@media (max-width: 767px) {
  .voice-achievements__plan_filter { gap: 8px; margin: 0 0 28px; }
}

.voice-achievements__plan_filter_btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 24px;
  background: var(--clr-white);
  border: 1px solid var(--clr-warm-light);
  border-radius: 999px;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 14px;
  font-weight: 700;
  color: var(--clr-brown-dark);
  text-decoration: none;
  transition: background 0.2s, border-color 0.2s, color 0.2s;
}
@media (max-width: 767px) {
  .voice-achievements__plan_filter_btn { padding: 8px 16px; font-size: 13px; }
}

.voice-achievements__plan_filter_btn:hover {
  border-color: var(--clr-gold);
  color: var(--clr-gold);
}

.voice-achievements__plan_filter_btn.is_active {
  background: var(--clr-gold);
  border-color: var(--clr-gold);
  color: var(--clr-white);
}

/* ---- カードグリッド ---- */

.voice-achievements__cards_grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
@media (max-width: 1023px) {
  .voice-achievements__cards_grid { grid-template-columns: repeat(2, 1fr); gap: 20px; }
}
@media (max-width: 767px) {
  .voice-achievements__cards_grid { grid-template-columns: 1fr; gap: 16px; }
}

/* ---- カード ---- */

.voice-achievements__card {
  background: var(--clr-white);
  border-radius: 6px;
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  box-shadow: 0 2px 12px color-mix(in srgb, var(--clr-brown-dark) 6%, transparent);
  transition: transform 0.22s ease, box-shadow 0.22s ease;
}
@media (max-width: 767px) {
  .voice-achievements__card { padding: 20px; gap: 10px; }
}

.voice-achievements__card:hover {
  transform: translateY(-3px);
  box-shadow: 0 6px 20px color-mix(in srgb, var(--clr-brown-dark) 10%, transparent);
}

/* ---- カードヘッド ---- */

.voice-achievements__card_head {
  display: flex;
  align-items: center;
  gap: 12px;
}

.voice-achievements__card_avatar {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--clr-pale);
  color: var(--clr-gold);
  font-family: 'Noto Serif JP', serif;
  font-size: 18px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  border: 1px solid color-mix(in srgb, var(--clr-gold) 20%, transparent);
}
@media (max-width: 767px) {
  .voice-achievements__card_avatar { width: 38px; height: 38px; font-size: 15px; }
}

.voice-achievements__card_avatar--img {
  object-fit: cover;
  background: var(--clr-pale);
}

.voice-achievements__card_meta {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.voice-achievements__card_author {
  font-family: 'Noto Serif JP', serif;
  font-size: 15px;
  font-weight: 700;
  color: var(--clr-brown-dark);
}

.voice-achievements__card_role {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 12px;
  color: var(--clr-warm-gray);
}

/* ---- プランバッジ ---- */

.voice-achievements__card_plan {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 11px;
  font-weight: 700;
  padding: 4px 9px;
  border-radius: 2px;
  white-space: nowrap;
  flex-shrink: 0;
  letter-spacing: 0.06em;
}

/* ファミリープラン（想・心・慈愛）は淡い→濃いの金系グラデーションで格付けを表現 */
.voice-achievements__card_plan--sou {
  background: var(--clr-pale);
  color: var(--clr-gold);
}

.voice-achievements__card_plan--shin {
  background: color-mix(in srgb, var(--clr-gold) 60%, var(--clr-pale));
  color: var(--clr-brown-dark);
}

.voice-achievements__card_plan--jiai {
  background: var(--clr-gold);
  color: var(--clr-white);
}

/* 火葬式・お別れ式プランは別カテゴリとして中立色で表現 */
.voice-achievements__card_plan--kasoushiki {
  background: var(--clr-warm-light);
  color: var(--clr-brown-dark);
}

.voice-achievements__card_plan--owakareshiki {
  background: var(--clr-brown-dark);
  color: var(--clr-white);
}

/* ---- コメント ---- */

.voice-achievements__card_comment {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 14px;
  color: var(--clr-brown-dark);
  line-height: 1.85;
  margin: 0;
  padding: 0;
  flex: 1;
  quotes: none;
  border: none;
}

/* ---- フッター ---- */

.voice-achievements__card_foot {
  border-top: 1px solid var(--clr-warm-light);
  padding-top: 10px;
}

.voice-achievements__card_date {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 12px;
  color: var(--clr-warm-gray);
}

/* ========================================
   ページネーション（the_posts_pagination）
   ======================================== */

.voice-achievements__pagination {
  display: flex;
  justify-content: center;
  margin-top: 56px;
}
@media (max-width: 767px) {
  .voice-achievements__pagination { margin-top: 36px; }
}

.voice-achievements__pagination .nav-links {
  display: flex;
  align-items: center;
  gap: 8px;
}

.voice-achievements__pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 12px;
  background: var(--clr-white);
  border: 1px solid var(--clr-warm-light);
  border-radius: 3px;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 14px;
  font-weight: 700;
  color: var(--clr-brown-dark);
  text-decoration: none;
  transition: background 0.2s, color 0.2s, border-color 0.2s;
}

.voice-achievements__pagination .page-numbers:hover {
  background: var(--clr-gold);
  border-color: var(--clr-gold);
  color: var(--clr-white);
}

.voice-achievements__pagination .page-numbers.current {
  background: var(--clr-gold);
  border-color: var(--clr-gold);
  color: var(--clr-white);
}

.voice-achievements__pagination .page-numbers.dots {
  border: none;
  background: none;
}

/**********************************************************************************************************
 お客様の声・実績　ここまで
***********************************************************************************************************/

/**********************************************************************************************************
 お客様の声 投稿フォーム　ここから
***********************************************************************************************************/
/* ========================================
   voice_form — お客様の声 投稿フォーム
   ======================================== */
.wpcf7-spinner{
 display:none!important;
}


/* ---- Wrap ---- */
.voice_form__wrap {
  background: var(--clr-warm-pale);
  padding: 80px 0 100px;
}
@media (max-width: 767px) {
  .voice_form__wrap { padding: 52px 0 72px; }
}

.voice_form__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
}
@media (max-width: 767px) {
  .voice_form__inner { padding: 0 16px; }
}

/* ---- セクションタイトル ---- */
.voice_form__head {
  text-align: center;
  margin-bottom: 52px;
}
@media (max-width: 767px) {
  .voice_form__head { margin-bottom: 36px; }
}

.voice_form__title {
  font-family: 'Noto Serif JP', serif;
  font-size: 32px;
  font-weight: 700;
  color: var(--clr-gold);
  letter-spacing: 0.1em;
  line-height: 1.44;
  margin: 0 0 20px;
}
@media (max-width: 767px) {
  .voice_form__title { font-size: 22px; margin: 0 0 14px; }
}

.voice_form__sub {
  font-family: 'Noto Serif JP', serif;
  font-size: 16px;
  font-weight: 700;
  color: var(--clr-black);
  text-align: center;
  letter-spacing: 0.05em;
  line-height: 1.75;
  margin: 0;
}
@media (max-width: 767px) {
  .voice_form__sub { font-size: 14px; }
}

.voice_form__privacy_note {
  text-align: center;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 13px;
  color: var(--clr-warm-gray);
  margin: 16px 0 0;
  letter-spacing: 0.04em;
}

/* ================================================================
   フォームカード
   ================================================================ */
.wpcf7 {
  max-width: 720px;
  margin: 0 auto;
}

.voice_form__form {
  background: var(--clr-white);
  border: 1px solid var(--clr-warm-light);
  border-radius: 5px;
  box-shadow: 0 2px 12px rgba(14, 47, 82, 0.07);
  padding: 48px 52px;
  margin: 0;
}
@media (max-width: 767px) {
  .voice_form__form { padding: 28px 20px; }
}

/* CF7 コントロールラップを block に */
.wpcf7-form-control-wrap {
  display: block;
}

/* ---- 行 ---- */
.voice_form__row {
  margin-bottom: 26px;
}
@media (max-width: 767px) {
  .voice_form__row { margin-bottom: 22px; }
}
.voice_form__row:last-of-type {
  margin-bottom: 0;
}

/* ---- ラベル ---- */
.voice_form__label {
  font-family: 'Noto Serif JP', serif;
  font-size: 16px;
  font-weight: 700;
  color: var(--clr-brown-dark);
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 6px;
  line-height: 1.5;
}

/* ---- 必須・任意バッジ ---- */
.voice_form__req {
  font-size: 11px;
  font-weight: 700;
  font-family: 'Noto Sans JP', sans-serif;
  letter-spacing: 0.04em;
  background: var(--clr-gold);
  color: var(--clr-white);
  padding: 2px 7px;
  border-radius: 2px;
  flex-shrink: 0;
  line-height: 1.6;
}

.voice_form__req--any {
  background: var(--clr-warm-gray);
}

/* ---- 補足説明文 ---- */
.voice_form__note {
  display: block;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 13px;
  color: var(--clr-warm-gray);
  line-height: 1.6;
  margin: 0 0 10px;
}
@media (max-width: 767px) {
  .voice_form__note { font-size: 12px; }
}

/* ---- テキスト入力 ----
   VKテーマ側の input[type=text] 等（属性+要素セレクタ）に詳細度で負けないよう
   .voice_form__wrap を前置して確実に上書きする ---- */
.voice_form__wrap .voice_form__input {
  display: block;
  width: 100%;
  border: 1px solid var(--clr-warm-light);
  border-radius: 3px;
  padding: 12px 14px;
  font-size: 16px;
  font-family: 'Noto Sans JP', sans-serif;
  color: var(--clr-brown-dark);
  background: var(--clr-white);
  outline: none;
  transition: border-color 0.18s, box-shadow 0.18s;
  -webkit-appearance: none;
}

.voice_form__wrap .voice_form__input::placeholder {
  color: var(--clr-warm-gray);
  font-size: 14px;
}

.voice_form__wrap .voice_form__input:focus {
  border-color: var(--clr-gold);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--clr-gold) 15%, transparent);
}

.voice_form__wrap .voice_form__input.wpcf7-not-valid {
  border-color: #c0392b;
}

/* ---- セレクト ---- */
.voice_form__wrap .voice_form__select {
  display: block;
  width: 100%;
  border: 1px solid var(--clr-warm-light);
  border-radius: 3px;
  padding: 12px 40px 12px 14px;
  font-size: 16px;
  font-family: 'Noto Sans JP', sans-serif;
  color: var(--clr-brown-dark);
  background-color: var(--clr-white);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5.5L11 1' stroke='%23B8A898' stroke-width='1.6' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  background-size: 12px 8px;
  outline: none;
  transition: border-color 0.18s, box-shadow 0.18s;
  -webkit-appearance: none;
  cursor: pointer;
}
@media (max-width: 767px) {
  .voice_form__wrap .voice_form__select { padding: 11px 36px 11px 12px; }
}

.voice_form__wrap .voice_form__select:focus {
  border-color: var(--clr-gold);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--clr-gold) 15%, transparent);
}

.voice_form__wrap .voice_form__select.wpcf7-not-valid {
  border-color: #c0392b;
}

/* プレースホルダー（first_as_label）を選択中はグレー表示 */
.voice_form__wrap .voice_form__select option[value=""],
.voice_form__wrap .voice_form__select option:disabled {
  color: var(--clr-warm-gray);
}

/* ---- テキストエリア ---- */
.voice_form__wrap .voice_form__textarea {
  display: block;
  width: 100%;
  border: 1px solid var(--clr-warm-light);
  border-radius: 3px;
  padding: 12px 14px;
  font-size: 16px;
  font-family: 'Noto Sans JP', sans-serif;
  color: var(--clr-brown-dark);
  background: var(--clr-white);
  outline: none;
  transition: border-color 0.18s, box-shadow 0.18s;
  resize: vertical;
  min-height: 140px;
  line-height: 1.7;
}
@media (max-width: 767px) {
  .voice_form__wrap .voice_form__textarea { min-height: 120px; padding: 11px 12px; }
}

.voice_form__wrap .voice_form__textarea::placeholder {
  color: var(--clr-warm-gray);
  font-size: 14px;
}

.voice_form__wrap .voice_form__textarea:focus {
  border-color: var(--clr-gold);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--clr-gold) 15%, transparent);
}

.voice_form__wrap .voice_form__textarea.wpcf7-not-valid {
  border-color: #c0392b;
}

/* ---- ファイル添付 ---- */
.voice_form__file_wrap {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  border: 1px dashed var(--clr-warm-light);
  border-radius: 3px;
  padding: 14px;
  background: var(--clr-warm-pale);
}

.voice_form__wrap .voice_form__file {
  font-size: 14px;
  font-family: 'Noto Sans JP', sans-serif;
  color: var(--clr-brown-dark);
}

.voice_form__wrap .voice_form__file::file-selector-button {
  background: var(--clr-gold) !important;
  color: var(--clr-white) !important;
  border: none !important;
  border-radius: 3px;
  padding: 8px 16px;
  font-size: 13px;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 700;
  margin-right: 12px;
  cursor: pointer;
  transition: opacity 0.18s;
}

.voice_form__wrap .voice_form__file::file-selector-button:hover {
  opacity: 0.85;
}

/* ---- 星評価セレクト（--rating--） ---- */
.voice_form__rating_hint {
  font-size: 13px;
  color: var(--clr-gold);
  font-weight: 700;
  margin-left: 4px;
}

/* ---- 送信ボタン ---- */
.voice_form__submit_wrap {
  text-align: center;
  margin-top: 32px;
}
@media (max-width: 767px) {
  .voice_form__submit_wrap { margin-top: 24px; }
}

.voice_form__wrap .voice_form__submit {
  display: inline-block;
  background: var(--clr-gold) !important;
  color: var(--clr-white) !important;
  font-family: 'Noto Serif JP', serif;
  font-size: 16px;
  font-weight: 700;
  padding: 16px 72px;
  border-radius: 4px;
  border: none !important;
  letter-spacing: 0.2em;
  cursor: pointer;
  transition: opacity 0.2s, transform 0.2s;
}

input[type=submit]{
  display: inline-block;
  background: var(--clr-gold) !important;
  color: var(--clr-white) !important;
  font-family: 'Noto Serif JP', serif;
  font-size: 16px;
  font-weight: 700;
  padding: 16px 72px;
  border-radius: 4px;
  border: none !important;
  letter-spacing: 0.2em;
  cursor: pointer;
  transition: opacity 0.2s, transform 0.2s;
}

@media (max-width: 767px) {
  .voice_form__wrap .voice_form__submit {
    display: block;
    width: 100%;
    padding: 16px 20px;
  }
}

.voice_form__wrap .voice_form__submit:hover {
  opacity: 0.85;
  transform: translateY(-1px);
}

.voice_form__wrap .voice_form__submit:active {
  transform: translateY(0);
}

/* ---- CF7 フィールドエラーメッセージ ---- */
.wpcf7-not-valid-tip {
  display: block;
  font-size: 12px;
  color: #c0392b;
  margin-top: 5px;
  line-height: 1.5;
}

/* ---- CF7 レスポンス出力 ---- */
.wpcf7-response-output {
  margin: 20px 0 0;
  padding: 12px 18px;
  border-radius: 3px;
  font-size: 16px;
  line-height: 1.7;
  border: none;
}

.wpcf7-form.sent .wpcf7-response-output {
  background: var(--clr-pale);
  border: 1px solid color-mix(in srgb, var(--clr-gold) 40%, transparent);
  color: var(--clr-brown-dark);
}

.wpcf7-form.failed .wpcf7-response-output,
.wpcf7-form.invalid .wpcf7-response-output,
.wpcf7-form.unaccepted .wpcf7-response-output {
  background: #fdf2f0;
  border: 1px solid #e8b4ae;
  color: #c0392b;
}

.wpcf7-form.spam .wpcf7-response-output {
  background: var(--clr-warm-pale);
  border: 1px solid var(--clr-warm-light);
  color: var(--clr-warm-gray);
}



/**********************************************************************************************************
 お客様の声 投稿フォーム　ここまで
***********************************************************************************************************/


/**********************************************************************************************************
 実績投稿フォーム　ここから
***********************************************************************************************************/
/* ========================================
   achievement_form — 施行実績 投稿フォーム
   ======================================== */

/* ---- Wrap ---- */
.achievement_form__wrap {
  background: var(--clr-warm-pale);
  padding: 80px 0 100px;
}
@media (max-width: 767px) {
  .achievement_form__wrap { padding: 52px 0 72px; }
}

.achievement_form__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
}
@media (max-width: 767px) {
  .achievement_form__inner { padding: 0 16px; }
}

/* ---- セクションタイトル ---- */
.achievement_form__head {
  text-align: center;
  margin-bottom: 52px;
}
@media (max-width: 767px) {
  .achievement_form__head { margin-bottom: 36px; }
}

.achievement_form__title {
  font-family: 'Noto Serif JP', serif;
  font-size: 32px;
  font-weight: 700;
  color: var(--clr-blue);
  letter-spacing: 0.1em;
  line-height: 1.44;
  margin: 0 0 20px;
}
@media (max-width: 767px) {
  .achievement_form__title { font-size: 22px; margin: 0 0 14px; }
}

.achievement_form__sub {
  font-family: 'Noto Serif JP', serif;
  font-size: 16px;
  font-weight: 700;
  color: var(--clr-black);
  text-align: center;
  letter-spacing: 0.05em;
  line-height: 1.75;
  margin: 0;
}
@media (max-width: 767px) {
  .achievement_form__sub { font-size: 14px; }
}

/* ================================================================
   フォームカード
   ================================================================ */
.wpcf7 {
  max-width: 720px;
  margin: 0 auto;
}

.achievement_form__form {
  background: var(--clr-white);
  border: 1px solid var(--clr-warm-light);
  border-radius: 5px;
  box-shadow: 0 2px 12px rgba(14, 47, 82, 0.07);
  padding: 48px 52px;
  margin: 0;
}
@media (max-width: 767px) {
  .achievement_form__form { padding: 28px 20px; }
}

/* CF7 コントロールラップを block に */
.wpcf7-form-control-wrap {
  display: block;
}

/* ---- 行 ---- */
.achievement_form__row {
  margin-bottom: 26px;
}
@media (max-width: 767px) {
  .achievement_form__row { margin-bottom: 22px; }
}
.achievement_form__row:last-of-type {
  margin-bottom: 0;
}

/* ---- ラベル ---- */
.achievement_form__label {
  font-family: 'Noto Serif JP', serif;
  font-size: 16px;
  font-weight: 700;
  color: var(--clr-navy);
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 6px;
  line-height: 1.5;
}

/* ---- 必須・任意バッジ ---- */
.achievement_form__req {
  font-size: 11px;
  font-weight: 700;
  font-family: 'Noto Sans JP', sans-serif;
  letter-spacing: 0.04em;
  background: var(--clr-blue);
  color: var(--clr-white);
  padding: 2px 7px;
  border-radius: 2px;
  flex-shrink: 0;
  line-height: 1.6;
}

.achievement_form__req--any {
  background: var(--clr-warm-gray);
}

/* ---- 補足説明文 ---- */
.achievement_form__note {
  display: block;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 13px;
  color: var(--clr-warm-gray);
  line-height: 1.6;
  margin: 0 0 10px;
}
@media (max-width: 767px) {
  .achievement_form__note { font-size: 12px; }
}

/* ---- テキスト / 数値入力 ---- */
.achievement_form__input {
  display: block;
  width: 100%;
  border: 1px solid var(--clr-warm-light);
  border-radius: 3px;
  padding: 12px 14px;
  font-size: 16px;
  font-family: 'Noto Sans JP', sans-serif;
  color: var(--clr-navy);
  background: var(--clr-white);
  outline: none;
  transition: border-color 0.18s, box-shadow 0.18s;
  -webkit-appearance: none;
}

.achievement_form__input::placeholder {
  color: var(--clr-warm-gray);
  font-size: 14px;
}

.achievement_form__input:focus {
  border-color: var(--clr-blue);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--clr-blue) 15%, transparent);
}

.achievement_form__input.wpcf7-not-valid {
  border-color: #c0392b;
}

/* ---- 総額入力（円サフィックス付き） ---- */
.achievement_form__input_suffix_wrap {
  position: relative;
}

.achievement_form__input_suffix_wrap .achievement_form__input {
  padding-right: 44px;
}

.achievement_form__input_suffix {
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 14px;
  color: var(--clr-warm-gray);
  pointer-events: none;
}

/* ---- セレクト ---- */
.achievement_form__select {
  display: block;
  width: 100%;
  border: 1px solid var(--clr-warm-light);
  border-radius: 3px;
  padding: 12px 40px 12px 14px;
  font-size: 16px;
  font-family: 'Noto Sans JP', sans-serif;
  color: var(--clr-navy);
  background-color: var(--clr-white);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5.5L11 1' stroke='%23B8A898' stroke-width='1.6' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  background-size: 12px 8px;
  outline: none;
  transition: border-color 0.18s, box-shadow 0.18s;
  -webkit-appearance: none;
  cursor: pointer;
}
@media (max-width: 767px) {
  .achievement_form__select { padding: 11px 36px 11px 12px; }
}

.achievement_form__select:focus {
  border-color: var(--clr-blue);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--clr-blue) 15%, transparent);
}

.achievement_form__select.wpcf7-not-valid {
  border-color: #c0392b;
}

.achievement_form__select option[value=""],
.achievement_form__select option:disabled {
  color: var(--clr-warm-gray);
}

/* ---- テキストエリア ---- */
.achievement_form__textarea {
  display: block;
  width: 100%;
  border: 1px solid var(--clr-warm-light);
  border-radius: 3px;
  padding: 12px 14px;
  font-size: 16px;
  font-family: 'Noto Sans JP', sans-serif;
  color: var(--clr-navy);
  background: var(--clr-white);
  outline: none;
  transition: border-color 0.18s, box-shadow 0.18s;
  resize: vertical;
  min-height: 140px;
  line-height: 1.7;
}
@media (max-width: 767px) {
  .achievement_form__textarea { min-height: 120px; padding: 11px 12px; }
}

.achievement_form__textarea::placeholder {
  color: var(--clr-warm-gray);
  font-size: 14px;
}

.achievement_form__textarea:focus {
  border-color: var(--clr-blue);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--clr-blue) 15%, transparent);
}

.achievement_form__textarea.wpcf7-not-valid {
  border-color: #c0392b;
}

/* ---- ファイル添付（KV画像） ---- */
.achievement_form__file_wrap {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  border: 1px dashed var(--clr-warm-light);
  border-radius: 3px;
  padding: 14px;
  background: var(--clr-warm-pale);
}

.achievement_form__file {
  font-size: 14px;
  font-family: 'Noto Sans JP', sans-serif;
  color: var(--clr-navy);
}

.achievement_form__file::file-selector-button {
  background: var(--clr-blue);
  color: var(--clr-white);
  border: none;
  border-radius: 3px;
  padding: 8px 16px;
  font-size: 13px;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 700;
  margin-right: 12px;
  cursor: pointer;
  transition: opacity 0.18s;
}

.achievement_form__file::file-selector-button:hover {
  opacity: 0.85;
}

/* ---- 送信ボタン ---- */
.achievement_form__submit_wrap {
  text-align: center;
  margin-top: 32px;
}
@media (max-width: 767px) {
  .achievement_form__submit_wrap { margin-top: 24px; }
}

.achievement_form__submit {
  display: inline-block;
  background: var(--clr-blue);
  color: var(--clr-white);
  font-family: 'Noto Serif JP', serif;
  font-size: 16px;
  font-weight: 700;
  padding: 16px 72px;
  border-radius: 4px;
  border: none;
  letter-spacing: 0.2em;
  cursor: pointer;
  transition: opacity 0.2s, transform 0.2s;
}
@media (max-width: 767px) {
  .achievement_form__submit {
    display: block;
    width: 100%;
    padding: 16px 20px;
  }
}

.achievement_form__submit:hover {
  opacity: 0.85;
  transform: translateY(-1px);
}

.achievement_form__submit:active {
  transform: translateY(0);
}

/* ---- CF7 フィールドエラーメッセージ ---- */
.wpcf7-not-valid-tip {
  display: block;
  font-size: 12px;
  color: #c0392b;
  margin-top: 5px;
  line-height: 1.5;
}

/* ---- CF7 レスポンス出力 ---- */
.wpcf7-response-output {
  margin: 20px 0 0;
  padding: 12px 18px;
  border-radius: 3px;
  font-size: 16px;
  line-height: 1.7;
  border: none;
}

.wpcf7-form.sent .wpcf7-response-output {
  background: var(--clr-blue-pale);
  border: 1px solid color-mix(in srgb, var(--clr-blue) 40%, transparent);
  color: var(--clr-blue-dark);
}

.wpcf7-form.failed .wpcf7-response-output,
.wpcf7-form.invalid .wpcf7-response-output,
.wpcf7-form.unaccepted .wpcf7-response-output {
  background: #fdf2f0;
  border: 1px solid #e8b4ae;
  color: #c0392b;
}

.wpcf7-form.spam .wpcf7-response-output {
  background: var(--clr-warm-pale);
  border: 1px solid var(--clr-warm-light);
  color: var(--clr-warm-gray);
}

/**********************************************************************************************************
 実績投稿フォーム　ここまで
***********************************************************************************************************/


/**********************************************************************************************************
 お知らせフォーム　ここから
***********************************************************************************************************/
/* ========================================
   news_form — お知らせ 投稿フォーム
   ======================================== */

/* ---- Wrap ---- */
.news_form__wrap {
  background: var(--clr-warm-pale);
  padding: 80px 0 100px;
}
@media (max-width: 767px) {
  .news_form__wrap { padding: 52px 0 72px; }
}

.news_form__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
}
@media (max-width: 767px) {
  .news_form__inner { padding: 0 16px; }
}

/* ---- セクションタイトル ---- */
.news_form__head {
  text-align: center;
  margin-bottom: 52px;
}
@media (max-width: 767px) {
  .news_form__head { margin-bottom: 36px; }
}

.news_form__title {
  font-family: 'Noto Serif JP', serif;
  font-size: 32px;
  font-weight: 700;
  color: var(--clr-gold);
  letter-spacing: 0.1em;
  line-height: 1.44;
  margin: 0 0 20px;
}
@media (max-width: 767px) {
  .news_form__title { font-size: 22px; margin: 0 0 14px; }
}

.news_form__sub {
  font-family: 'Noto Serif JP', serif;
  font-size: 16px;
  font-weight: 700;
  color: var(--clr-black);
  text-align: center;
  letter-spacing: 0.05em;
  line-height: 1.75;
  margin: 0;
}
@media (max-width: 767px) {
  .news_form__sub { font-size: 14px; }
}

/* ================================================================
   フォームカード
   ================================================================ */
.wpcf7 {
  max-width: 720px;
  margin: 0 auto;
}

.news_form__form {
  background: var(--clr-white);
  border: 1px solid var(--clr-warm-light);
  border-radius: 5px;
  box-shadow: 0 2px 12px rgba(14, 47, 82, 0.07);
  padding: 48px 52px;
  margin: 0;
}
@media (max-width: 767px) {
  .news_form__form { padding: 28px 20px; }
}

/* CF7 コントロールラップを block に */
.wpcf7-form-control-wrap {
  display: block;
}

/* ---- 行 ---- */
.news_form__row {
  margin-bottom: 26px;
}
@media (max-width: 767px) {
  .news_form__row { margin-bottom: 22px; }
}
.news_form__row:last-of-type {
  margin-bottom: 0;
}

/* ---- ラベル ---- */
.news_form__label {
  font-family: 'Noto Serif JP', serif;
  font-size: 16px;
  font-weight: 700;
  color: var(--clr-brown-dark);
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 6px;
  line-height: 1.5;
}

/* ---- 必須・任意バッジ ---- */
.news_form__req {
  font-size: 11px;
  font-weight: 700;
  font-family: 'Noto Sans JP', sans-serif;
  letter-spacing: 0.04em;
  background: var(--clr-gold);
  color: var(--clr-white);
  padding: 2px 7px;
  border-radius: 2px;
  flex-shrink: 0;
  line-height: 1.6;
}

.news_form__req--any {
  background: var(--clr-warm-gray);
}

/* ---- 補足説明文 ---- */
.news_form__note {
  display: block;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 13px;
  color: var(--clr-warm-gray);
  line-height: 1.6;
  margin: 0 0 10px;
}
@media (max-width: 767px) {
  .news_form__note { font-size: 12px; }
}

/* ---- テキスト入力 ---- */
.news_form__input {
  display: block;
  width: 100%;
  border: 1px solid var(--clr-warm-light);
  border-radius: 3px;
  padding: 12px 14px;
  font-size: 16px;
  font-family: 'Noto Sans JP', sans-serif;
  color: var(--clr-brown-dark);
  background: var(--clr-white);
  outline: none;
  transition: border-color 0.18s, box-shadow 0.18s;
  -webkit-appearance: none;
}

.news_form__input::placeholder {
  color: var(--clr-warm-gray);
  font-size: 14px;
}

.news_form__input:focus {
  border-color: var(--clr-gold);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--clr-gold) 15%, transparent);
}

.news_form__input.wpcf7-not-valid {
  border-color: #c0392b;
}

/* ---- セレクト（カテゴリ） ---- */
.news_form__select {
  display: block;
  width: 100%;
  border: 1px solid var(--clr-warm-light);
  border-radius: 3px;
  padding: 12px 40px 12px 14px;
  font-size: 16px;
  font-family: 'Noto Sans JP', sans-serif;
  color: var(--clr-brown-dark);
  background-color: var(--clr-white);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5.5L11 1' stroke='%23B8A898' stroke-width='1.6' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  background-size: 12px 8px;
  outline: none;
  transition: border-color 0.18s, box-shadow 0.18s;
  -webkit-appearance: none;
  cursor: pointer;
}
@media (max-width: 767px) {
  .news_form__select { padding: 11px 36px 11px 12px; }
}

.news_form__select:focus {
  border-color: var(--clr-gold);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--clr-gold) 15%, transparent);
}

.news_form__select.wpcf7-not-valid {
  border-color: #c0392b;
}

.news_form__select option[value=""],
.news_form__select option:disabled {
  color: var(--clr-warm-gray);
}

/* ---- テキストエリア（本文） ---- */
.news_form__textarea {
  display: block;
  width: 100%;
  border: 1px solid var(--clr-warm-light);
  border-radius: 3px;
  padding: 12px 14px;
  font-size: 16px;
  font-family: 'Noto Sans JP', sans-serif;
  color: var(--clr-brown-dark);
  background: var(--clr-white);
  outline: none;
  transition: border-color 0.18s, box-shadow 0.18s;
  resize: vertical;
  min-height: 160px;
  line-height: 1.7;
}
@media (max-width: 767px) {
  .news_form__textarea { min-height: 140px; padding: 11px 12px; }
}

.news_form__textarea::placeholder {
  color: var(--clr-warm-gray);
  font-size: 14px;
}

.news_form__textarea:focus {
  border-color: var(--clr-gold);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--clr-gold) 15%, transparent);
}

.news_form__textarea.wpcf7-not-valid {
  border-color: #c0392b;
}

/* ---- ファイル添付（画像） ---- */
.news_form__file_wrap {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  border: 1px dashed var(--clr-warm-light);
  border-radius: 3px;
  padding: 14px;
  background: var(--clr-warm-pale);
}

.news_form__file {
  font-size: 14px;
  font-family: 'Noto Sans JP', sans-serif;
  color: var(--clr-brown-dark);
}

.news_form__file::file-selector-button {
  background: var(--clr-gold);
  color: var(--clr-white);
  border: none;
  border-radius: 3px;
  padding: 8px 16px;
  font-size: 13px;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 700;
  margin-right: 12px;
  cursor: pointer;
  transition: opacity 0.18s;
}

.news_form__file::file-selector-button:hover {
  opacity: 0.85;
}

/* ---- 送信ボタン ---- */
.news_form__submit_wrap {
  text-align: center;
  margin-top: 32px;
}
@media (max-width: 767px) {
  .news_form__submit_wrap { margin-top: 24px; }
}

.news_form__submit {
  display: inline-block;
  background: var(--clr-gold);
  color: var(--clr-white);
  font-family: 'Noto Serif JP', serif;
  font-size: 16px;
  font-weight: 700;
  padding: 16px 72px;
  border-radius: 4px;
  border: none;
  letter-spacing: 0.2em;
  cursor: pointer;
  transition: opacity 0.2s, transform 0.2s;
}
@media (max-width: 767px) {
  .news_form__submit {
    display: block;
    width: 100%;
    padding: 16px 20px;
  }
}

.news_form__submit:hover {
  opacity: 0.85;
  transform: translateY(-1px);
}

.news_form__submit:active {
  transform: translateY(0);
}

/* ---- CF7 フィールドエラーメッセージ ---- */
.wpcf7-not-valid-tip {
  display: block;
  font-size: 12px;
  color: #c0392b;
  margin-top: 5px;
  line-height: 1.5;
}

/* ---- CF7 レスポンス出力 ---- */
.wpcf7-response-output {
  margin: 20px 0 0;
  padding: 12px 18px;
  border-radius: 3px;
  font-size: 16px;
  line-height: 1.7;
  border: none;
}

.wpcf7-form.sent .wpcf7-response-output {
  background: var(--clr-pale);
  border: 1px solid color-mix(in srgb, var(--clr-gold) 40%, transparent);
  color: var(--clr-brown-dark);
}

.wpcf7-form.failed .wpcf7-response-output,
.wpcf7-form.invalid .wpcf7-response-output,
.wpcf7-form.unaccepted .wpcf7-response-output {
  background: #fdf2f0;
  border: 1px solid #e8b4ae;
  color: #c0392b;
}

.wpcf7-form.spam .wpcf7-response-output {
  background: var(--clr-warm-pale);
  border: 1px solid var(--clr-warm-light);
  color: var(--clr-warm-gray);
}






/**********************************************************************************************************
 お知らせフォーム　ここまで
***********************************************************************************************************/

/**********************************************************************************************************
 お知らせ一覧（TOPページ内）　ここから
***********************************************************************************************************/
/* ========================================
   top_news — お知らせ（トップページ）
   ======================================== */

.top_news_wrap {
  background: var(--clr-white);
  padding: 10px 0 ;
}
@media (max-width: 767px) {
  .top_news_wrap { padding: 20px 0; }
}

.top_news_inner {
  max-width: 840px;
  margin: 0 auto;
  padding: 0 20px;
}
@media (max-width: 767px) {
  .top_news_inner { padding: 0 16px; }
}

/* ---- セクションタイトル ---- */

.top_news_title {
  font-family: 'Noto Serif JP', serif;
  font-size: 32px;
  font-weight: 700;
  color: var(--clr-gold);
  text-align: center;
  letter-spacing: 0.1em;
  margin: 0 0 16px;
}
@media (max-width: 767px) {
  .top_news_title { font-size: 22px; margin: 0 0 12px; }
}

.top_news_title_line {
  width: 48px;
  height: 2px;
  background: var(--clr-gold);
  margin: 0 auto 44px;
}
@media (max-width: 767px) {
  .top_news_title_line { margin: 0 auto 28px; }
}

/* ---- テキストリスト ---- */

.top_news_list {
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--clr-warm-light);
}

.top_news_item {
  display: flex;
  align-items: center;
  gap: 16px;
  width: 100%;
  padding: 22px 8px;
  background: none;
  border: none;
  border-bottom: 1px solid var(--clr-warm-light);
  font-family: inherit;
  text-align: left;
  cursor: pointer;
  transition: background 0.2s ease;
}
@media (max-width: 767px) {
  .top_news_item {
    flex-wrap: wrap;
    gap: 6px 12px;
    padding: 16px 4px;
  }
}

.top_news_item:hover {
  background: var(--clr-warm-pale);
}

.top_news_item_date {
  flex-shrink: 0;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 14px;
  color: var(--clr-warm-gray);
}

.top_news_item_badge {
  flex-shrink: 0;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 11px;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 2px;
  letter-spacing: 0.06em;
  white-space: nowrap;
}
.top_news_item_badge.news__card_badge--default { background: var(--clr-pale); color: var(--clr-gold); }
.top_news_item_badge.news__card_badge--important { background: var(--clr-urgent-deep); color: var(--clr-white); }
.top_news_item_badge.news__card_badge--maintenance { background: var(--clr-warm-gray); color: var(--clr-white); }
.top_news_item_badge.news__card_badge--event { background: var(--clr-coral); color: var(--clr-white); }

.top_news_item_title {
  flex: 1;
  min-width: 0;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 15px;
  font-weight: 700;
  color: var(--clr-brown-dark);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
@media (max-width: 767px) {
  .top_news_item_title {
    flex-basis: 100%;
    white-space: normal;
  }
}

/* ---- もっと見るボタン ---- */

.top_news_btn_wrap {
  display: flex;
  justify-content: center;
  margin-top: 44px;
}
@media (max-width: 767px) {
  .top_news_btn_wrap { margin-top: 32px; }
}

.top_news_btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 220px;
  padding: 16px 32px;
  background: var(--clr-white);
  border: 1px solid var(--clr-gold);
  border-radius: 5px;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 15px;
  font-weight: 700;
  color: var(--clr-gold);
  text-decoration: none;
  transition: background 0.2s ease, color 0.2s ease;
}
.top_news_btn:hover {
  background: var(--clr-gold);
  color: var(--clr-white);
}

/* ========================================
   詳細モーダル（news_list.css と共通の構造・クラス名）
   ======================================== */

.news_modal {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 1000;
}
.news_modal.is_open {
  display: block;
}

.news_modal_overlay {
  position: absolute;
  inset: 0;
  background: color-mix(in srgb, var(--clr-brown-dark) 55%, transparent);
}

.news_modal_dialog {
  position: relative;
  z-index: 1;
  width: 90%;
  max-width: 600px;
  max-height: 86vh;
  margin: 7vh auto 0;
  background: var(--clr-white);
  border-radius: 8px;
  overflow-y: auto;
  animation: top_news_modal_in 0.25s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;
}
@media (max-width: 767px) {
  .news_modal_dialog { width: 94%; max-height: 90vh; margin-top: 5vh; }
}

@keyframes top_news_modal_in {
  from { opacity: 0; transform: translateY(16px); }
  to   { opacity: 1; transform: translateY(0); }
}

.news_modal_close {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 2;
  width: 36px;
  height: 36px;
  border: none;
  border-radius: 50%;
  background: var(--clr-white);
  color: var(--clr-brown-dark);
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 8px color-mix(in srgb, var(--clr-brown-dark) 20%, transparent);
}
.news_modal_close:hover {
  background: var(--clr-gold);
  color: var(--clr-white);
}

.news_modal_thumb {
  position: relative;
  width: 100%;
  padding-top: 50%;
  background: var(--clr-pale);
}
.news_modal_thumb.is_hidden {
  display: none;
}
.news_modal_thumb img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.news_modal_body {
  padding: 28px 28px 32px;
}
@media (max-width: 767px) {
  .news_modal_body { padding: 20px 20px 24px; }
}

.news_modal_meta {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 12px;
}

.news_modal_date {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 13px;
  color: var(--clr-warm-gray);
}

.news_modal_badge {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 11px;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 2px;
  letter-spacing: 0.06em;
  white-space: nowrap;
}
.news_modal_badge:empty {
  display: none;
}
.news_modal_badge.news__card_badge--default { background: var(--clr-pale); color: var(--clr-gold); }
.news_modal_badge.news__card_badge--important { background: var(--clr-urgent-deep); color: var(--clr-white); }
.news_modal_badge.news__card_badge--maintenance { background: var(--clr-warm-gray); color: var(--clr-white); }
.news_modal_badge.news__card_badge--event { background: var(--clr-coral); color: var(--clr-white); }

.news_modal_title {
  font-family: 'Noto Serif JP', serif;
  font-size: 22px;
  font-weight: 700;
  color: var(--clr-brown-dark);
  margin: 0 0 16px;
}
@media (max-width: 767px) {
  .news_modal_title { font-size: 19px; }
}

.news_modal_text {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 15px;
  line-height: 1.9;
  color: var(--clr-brown-dark);
  margin: 0;
  white-space: pre-wrap;
}





/**********************************************************************************************************
 お知らせ一覧（TOPページ内）　ここまで
***********************************************************************************************************/

/**********************************************************************************************************
 お知らせ一覧（お知らせ一覧ページ）　ここから
***********************************************************************************************************/
/* ========================================
   news — お知らせ（一覧ページ）
   ======================================== */

.news__wrap {
  background: var(--clr-white);
  padding: 80px 0 96px;
}
@media (max-width: 767px) {
  .news__wrap { padding: 52px 0 68px; }
}

#news_list {
  /* ページネーションで #news_list へジャンプした際、固定ヘッダーに隠れないよう余白を確保 */
  scroll-margin-top: 100px;
}
@media (max-width: 767px) {
  #news_list { scroll-margin-top: 72px; }
}

.news__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
}
@media (max-width: 767px) {
  .news__inner { padding: 0 16px; }
}

/* ---- セクションタイトル ---- */

.news__title {
  font-family: 'Noto Serif JP', serif;
  font-size: 32px;
  font-weight: 700;
  color: var(--clr-gold);
  text-align: center;
  letter-spacing: 0.1em;
  margin: 0 0 16px;
}
@media (max-width: 767px) {
  .news__title { font-size: 22px; margin: 0 0 12px; }
}

.news__title_line {
  width: 48px;
  height: 2px;
  background: var(--clr-gold);
  margin: 0 auto 40px;
}
@media (max-width: 767px) {
  .news__title_line { margin: 0 auto 28px; }
}

/* ---- レイアウト（メイン＋サイドバー） ---- */

.news__layout {
  display: flex;
  align-items: flex-start;
  gap: 40px;
}
@media (max-width: 1023px) {
  .news__layout { flex-direction: column-reverse; gap: 24px; }
}

.news__main {
  flex: 1;
  min-width: 0;
}

/* ---- カードグリッド ---- */

.news__cards_grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
}
@media (max-width: 1023px) {
  .news__cards_grid { grid-template-columns: repeat(2, 1fr); gap: 20px; }
}
@media (max-width: 767px) {
  .news__cards_grid { grid-template-columns: 1fr; gap: 16px; }
}

/* ---- サイドバー（カテゴリ絞り込み） ---- */

.news__sidebar {
  width: 260px;
  flex-shrink: 0;
  position: relative;
  will-change: transform;
  max-height: calc(100vh - 110px - 40px);
  overflow-y: auto;
}
@media (max-width: 1023px) {
  .news__sidebar { width: 100%; max-height: none; overflow-y: visible; }
}

.news__sidebar_title {
  font-family: 'Noto Serif JP', serif;
  font-size: 17px;
  font-weight: 700;
  color: var(--clr-brown-dark);
  margin: 0 0 14px;
  padding-bottom: 10px;
  border-bottom: 2px solid var(--clr-pale);
}

.news__sidebar_list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
@media (max-width: 1023px) {
  .news__sidebar_list { flex-direction: row; flex-wrap: wrap; gap: 10px; }
}

.news__sidebar_link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 12px 16px;
  background: var(--clr-white);
  border: 1px solid var(--clr-warm-light);
  border-radius: 6px;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 14px;
  font-weight: 700;
  color: var(--clr-brown-dark);
  text-decoration: none;
  transition: background 0.2s, border-color 0.2s, color 0.2s;
}
@media (max-width: 1023px) {
  .news__sidebar_link { padding: 8px 14px; }
}

.news__sidebar_link:hover {
  border-color: var(--clr-gold);
  color: var(--clr-gold);
}

.news__sidebar_link.is_active {
  background: var(--clr-gold);
  border-color: var(--clr-gold);
  color: var(--clr-white);
}

.news__sidebar_count {
  flex-shrink: 0;
  min-width: 24px;
  padding: 1px 6px;
  border-radius: 999px;
  background: var(--clr-pale);
  color: var(--clr-gold);
  font-size: 12px;
  text-align: center;
}

.news__sidebar_link.is_active .news__sidebar_count {
  background: var(--clr-white);
  color: var(--clr-gold);
}

/* ---- カード ---- */

.news__card {
  background: var(--clr-white);
  border: 1px solid var(--clr-warm-light);
  border-radius: 6px;
  overflow: hidden;
  box-shadow: 0 2px 12px color-mix(in srgb, var(--clr-brown-dark) 6%, transparent);
  transition: transform 0.22s ease, box-shadow 0.22s ease;
  cursor: pointer;
}

.news__card:focus-visible {
  outline: 2px solid var(--clr-gold);
  outline-offset: 2px;
}

.news__card:hover {
  transform: translateY(-3px);
  box-shadow: 0 6px 20px color-mix(in srgb, var(--clr-brown-dark) 10%, transparent);
}

/* ---- サムネイル（任意） ---- */

.news__card_thumb {
  position: relative;
  width: 100%;
  padding-top: 56%;
  overflow: hidden;
  background: var(--clr-pale);
}

.news__card_thumb img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* ---- カード本文 ---- */

.news__card_body {
  padding: 20px;
}
@media (max-width: 767px) {
  .news__card_body { padding: 16px; }
}

.news__card_meta {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 10px;
}

.news__card_date {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 13px;
  color: var(--clr-warm-gray);
}

.news__card_title {
  font-family: 'Noto Serif JP', serif;
  font-size: 16px;
  font-weight: 700;
  color: var(--clr-brown-dark);
  line-height: 1.5;
  margin: 0 0 10px;
}

.news__card_excerpt {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 14px;
  color: var(--clr-brown-dark);
  line-height: 1.8;
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* ---- カテゴリバッジ（共通） ---- */

.news__card_badge {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 11px;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 2px;
  letter-spacing: 0.06em;
  white-space: nowrap;
}

.news__card_badge--default {
  background: var(--clr-pale);
  color: var(--clr-gold);
}
.news__card_badge--important {
  background: var(--clr-urgent-deep);
  color: var(--clr-white);
}
.news__card_badge--maintenance {
  background: var(--clr-warm-gray);
  color: var(--clr-white);
}
.news__card_badge--event {
  background: var(--clr-coral);
  color: var(--clr-white);
}

/* ========================================
   ページネーション
   ======================================== */

.news__pagination {
  display: flex;
  justify-content: center;
  margin-top: 56px;
}
@media (max-width: 767px) {
  .news__pagination { margin-top: 36px; }
}

.news__pagination .nav-links {
  display: flex;
  align-items: center;
  gap: 8px;
}

.news__pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 12px;
  background: var(--clr-white);
  border: 1px solid var(--clr-warm-light);
  border-radius: 3px;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 14px;
  font-weight: 700;
  color: var(--clr-brown-dark);
  text-decoration: none;
  transition: background 0.2s, color 0.2s, border-color 0.2s;
}

.news__pagination .page-numbers:hover {
  background: var(--clr-gold);
  border-color: var(--clr-gold);
  color: var(--clr-white);
}

.news__pagination .page-numbers.current {
  background: var(--clr-gold);
  border-color: var(--clr-gold);
  color: var(--clr-white);
}

.news__pagination .page-numbers.dots {
  border: none;
  background: none;
}

/* ========================================
   詳細モーダル（top_news と共通の構造・クラス名）
   ======================================== */

.news_modal {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 1000;
}
.news_modal.is_open {
  display: block;
}

.news_modal_overlay {
  position: absolute;
  inset: 0;
  background: color-mix(in srgb, var(--clr-brown-dark) 55%, transparent);
}

.news_modal_dialog {
  position: relative;
  z-index: 1;
  width: 90%;
  max-width: 600px;
  max-height: 86vh;
  margin: 7vh auto 0;
  background: var(--clr-white);
  border-radius: 8px;
  overflow-y: auto;
  animation: news_modal_in 0.25s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;
}
@media (max-width: 767px) {
  .news_modal_dialog { width: 94%; max-height: 90vh; margin-top: 5vh; }
}

@keyframes news_modal_in {
  from { opacity: 0; transform: translateY(16px); }
  to   { opacity: 1; transform: translateY(0); }
}

.news_modal_close {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 2;
  width: 36px;
  height: 36px;
  border: none;
  border-radius: 50%;
  background: var(--clr-white);
  color: var(--clr-brown-dark);
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 8px color-mix(in srgb, var(--clr-brown-dark) 20%, transparent);
}
.news_modal_close:hover {
  background: var(--clr-gold);
  color: var(--clr-white);
}

.news_modal_thumb {
  position: relative;
  width: 100%;
  padding-top: 50%;
  background: var(--clr-pale);
}
.news_modal_thumb.is_hidden {
  display: none;
}
.news_modal_thumb img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.news_modal_body {
  padding: 28px 28px 32px;
}
@media (max-width: 767px) {
  .news_modal_body { padding: 20px 20px 24px; }
}

.news_modal_meta {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 12px;
}

.news_modal_date {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 13px;
  color: var(--clr-warm-gray);
}

.news_modal_badge {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 11px;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 2px;
  letter-spacing: 0.06em;
  white-space: nowrap;
}
.news_modal_badge:empty {
  display: none;
}
.news_modal_badge.news__card_badge--default { background: var(--clr-pale); color: var(--clr-gold); }
.news_modal_badge.news__card_badge--important { background: var(--clr-urgent-deep); color: var(--clr-white); }
.news_modal_badge.news__card_badge--maintenance { background: var(--clr-warm-gray); color: var(--clr-white); }
.news_modal_badge.news__card_badge--event { background: var(--clr-coral); color: var(--clr-white); }

.news_modal_title {
  font-family: 'Noto Serif JP', serif;
  font-size: 22px;
  font-weight: 700;
  color: var(--clr-brown-dark);
  margin: 0 0 16px;
}
@media (max-width: 767px) {
  .news_modal_title { font-size: 19px; }
}

.news_modal_text {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 15px;
  line-height: 1.9;
  color: var(--clr-brown-dark);
  margin: 0;
  white-space: pre-wrap;
}




/**********************************************************************************************************
 お知らせ一覧（お知らせ一覧ページ）　ここまで
***********************************************************************************************************/




/**********************************************************************************************************
 実績　固定ページ用　ここから
***********************************************************************************************************/
/* ========================================
   achievement — 施行実績
   ======================================== */

.achievement__wrap {
  background: var(--clr-white);
  padding: 80px 0 96px;
}

#achievement_list {
  /* ページネーションで #achievement_list へジャンプした際、固定ヘッダーに隠れないよう余白を確保 */
  scroll-margin-top: 100px;
}
@media (max-width: 767px) {
  #achievement_list { scroll-margin-top: 72px; }
}
@media (max-width: 767px) {
  .achievement__wrap { padding: 52px 0 68px; }
}

.achievement__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
}
@media (max-width: 767px) {
  .achievement__inner { padding: 0 16px; }
}

/* ---- セクションタイトル ---- */

.achievement__title {
  font-family: 'Noto Serif JP', serif;
  font-size: 32px;
  font-weight: 700;
  color: var(--clr-gold);
  text-align: center;
  letter-spacing: 0.1em;
  margin: 0 0 16px;
}
@media (max-width: 767px) {
  .achievement__title { font-size: 22px; margin: 0 0 12px; }
}

.achievement__title_line {
  width: 48px;
  height: 2px;
  /* background: var(--clr-blue); */
  margin: 0 auto 40px;
}
@media (max-width: 767px) {
  .achievement__title_line { margin: 0 auto 28px; }
}

/* ---- レイアウト（メイン＋サイドバー） ---- */

.achievement__layout {
  display: flex;
  align-items: flex-start;
  gap: 40px;
}
@media (max-width: 1023px) {
  .achievement__layout { flex-direction: column-reverse; gap: 24px; }
}

.achievement__main {
  flex: 1;
  min-width: 0;
}

/* ---- カードグリッド ---- */

.achievement__cards_grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
}
@media (max-width: 1023px) {
  .achievement__cards_grid { grid-template-columns: repeat(2, 1fr); gap: 20px; }
}
@media (max-width: 767px) {
  .achievement__cards_grid { grid-template-columns: 1fr; gap: 16px; }
}

/* ---- サイドバー（カテゴリ絞り込み） ---- */

.achievement__sidebar {
  width: 260px;
  flex-shrink: 0;
  position: relative;
  will-change: transform;
  max-height: calc(100vh - 110px - 40px);
  overflow-y: auto;
}
@media (max-width: 1023px) {
  .achievement__sidebar { width: 100%; max-height: none; overflow-y: visible; }
}

.achievement__sidebar_title {
  font-family: 'Noto Serif JP', serif;
  font-size: 17px;
  font-weight: 700;
  color: var(--clr-navy);
  margin: 0 0 14px;
  padding-bottom: 10px;
  border-bottom: 2px solid var(--clr-blue-pale);
}

.achievement__sidebar_list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
@media (max-width: 1023px) {
  .achievement__sidebar_list { flex-direction: row; flex-wrap: wrap; gap: 10px; }
}

.achievement__sidebar_link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 12px 16px;
  background: var(--clr-white);
  border: 1px solid var(--clr-warm-light);
  border-radius: 6px;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 14px;
  font-weight: 700;
  color: var(--clr-navy);
  text-decoration: none;
  transition: background 0.2s, border-color 0.2s, color 0.2s;
}
@media (max-width: 1023px) {
  .achievement__sidebar_link { padding: 8px 14px; }
}

.achievement__sidebar_link:hover {
  border-color: var(--clr-gold);
  color: var(--clr-gold);
}

.achievement__sidebar_link.is_active {
  background: var(--clr-gold);
  border-color: var(--clr-gold);
  color: var(--clr-white);
}

.achievement__sidebar_count {
  flex-shrink: 0;
  min-width: 24px;
  padding: 1px 6px;
  border-radius: 999px;
  background: var(--clr-blue-pale);
  color: var(--clr-gold);
  font-size: 12px;
  text-align: center;
}

.achievement__sidebar_link.is_active .achievement__sidebar_count {
  background: var(--clr-white);
  color: var(--clr-gold);
}

/* ---- カード ---- */

.achievement__card {
  background: var(--clr-white);
  border-radius: 6px;
  overflow: hidden;
  box-shadow: 0 2px 12px color-mix(in srgb, var(--clr-navy) 6%, transparent);
  transition: transform 0.22s ease, box-shadow 0.22s ease;
  cursor: pointer;
}

.achievement__card:focus-visible {
  outline: 2px solid var(--clr-gold);
  outline-offset: 2px;
}

.achievement__card:hover {
  transform: translateY(-3px);
  box-shadow: 0 6px 20px color-mix(in srgb, var(--clr-navy) 10%, transparent);
}

/* ---- サムネイル（KV画像） ---- */

.achievement__card_thumb {
  position: relative;
  width: 100%;
  padding-top: 62%;
  overflow: hidden;
  background: var(--clr-blue-pale);
}

.achievement__card_thumb img,
.achievement__card_thumb_noimg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.achievement__card_thumb_noimg {
  background: var(--clr-blue-pale);
}

/* ---- カテゴリバッジ ---- */

.achievement__card_badge {
  position: absolute;
  top: 12px;
  left: 12px;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 11px;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 2px;
  letter-spacing: 0.06em;
  white-space: nowrap;
  color: var(--clr-gold);
}

.achievement__card_badge--kasou {
  background: var(--clr-blue-pale);
  color: var(--clr-gold);
}

.achievement__card_badge--kazoku {
  background: var(--clr-gold);
  color: var(--clr-white);
}

.achievement__card_badge--ippan {
  background: var(--clr-navy);
  color: var(--clr-white);
}

/* ---- カード本文 ---- */

.achievement__card_body {
  padding: 20px;
}
@media (max-width: 767px) {
  .achievement__card_body { padding: 16px; }
}

.achievement__card_title {
  font-family: 'Noto Serif JP', serif;
  font-size: 16px;
  font-weight: 700;
  color: var(--clr-navy);
  line-height: 1.5;
  margin: 0 0 12px;
}

/* ---- メタ情報（会場・総額） ---- */

.achievement__card_meta {
  margin: 0 0 12px;
  padding: 12px 0;
  border-top: 1px solid var(--clr-warm-light);
  border-bottom: 1px solid var(--clr-warm-light);
}

.achievement__card_meta_row {
  display: flex;
  align-items: baseline;
  gap: 10px;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 13px;
}
.achievement__card_meta_row + .achievement__card_meta_row {
  margin-top: 6px;
}

.achievement__card_meta_row dt {
  flex-shrink: 0;
  width: 44px;
  color: var(--clr-warm-gray);
}

.achievement__card_meta_row dd {
  margin: 0;
  color: var(--clr-gold);
  font-weight: 700;
}

/* ---- コメント ---- */

.achievement__card_comment {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 14px;
  color: var(--clr-navy);
  line-height: 1.8;
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* ========================================
   ページネーション
   ======================================== */

.achievement__pagination {
  display: flex;
  justify-content: center;
  margin-top: 56px;
}
@media (max-width: 767px) {
  .achievement__pagination { margin-top: 36px; }
}

.achievement__pagination .nav-links {
  display: flex;
  align-items: center;
  gap: 8px;
}

.achievement__pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 12px;
  background: var(--clr-white);
  border: 1px solid var(--clr-warm-light);
  border-radius: 3px;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 14px;
  font-weight: 700;
  color: var(--clr-navy);
  text-decoration: none;
  transition: background 0.2s, color 0.2s, border-color 0.2s;
}

.achievement__pagination .page-numbers:hover {
  background: var(--clr-gold);
  border-color: var(--clr-gold);
  color: var(--clr-white);
}

.achievement__pagination .page-numbers.current {
  background: var(--clr-gold);
  border-color: var(--clr-gold);
  color: var(--clr-white);
}

.achievement__pagination .page-numbers.dots {
  border: none;
  background: none;
}

/* ========================================
   詳細モーダル
   ======================================== */

.achievement_modal {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 1000;
}
.achievement_modal.is_open {
  display: block;
}

.achievement_modal_overlay {
  position: absolute;
  inset: 0;
  background: color-mix(in srgb, var(--clr-navy) 55%, transparent);
}

.achievement_modal_dialog {
  position: relative;
  z-index: 1;
  width: 90%;
  max-width: 640px;
  max-height: 86vh;
  margin: 7vh auto 0;
  background: var(--clr-white);
  border-radius: 8px;
  overflow-y: auto;
  animation: achievement_modal_in 0.25s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;
}
@media (max-width: 767px) {
  .achievement_modal_dialog { width: 94%; max-height: 90vh; margin-top: 5vh; }
}

@keyframes achievement_modal_in {
  from { opacity: 0; transform: translateY(16px); }
  to   { opacity: 1; transform: translateY(0); }
}

.achievement_modal_close {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 2;
  width: 36px;
  height: 36px;
  border: none;
  border-radius: 50%;
  background: var(--clr-white);
  color: var(--clr-navy);
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 8px color-mix(in srgb, var(--clr-navy) 20%, transparent);
}
.achievement_modal_close:hover {
  background: var(--clr-white);
  color: var(--clr-gold);
}

.achievement_modal_thumb {
  position: relative;
  width: 100%;
  padding-top: 56%;
  background: var(--clr-blue-pale);
}
.achievement_modal_thumb img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.achievement_modal_thumb img[src=""] {
  display: none;
}

.achievement_modal_badge {
  position: absolute;
  top: 16px;
  left: 16px;
  padding: 5px 14px;
  border-radius: 4px;
  background: var(--clr-gold);
  color: var(--clr-white);
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 13px;
  font-weight: 700;
}
.achievement_modal_badge:empty {
  display: none;
}

.achievement_modal_badge.achievement__card_badge--kasou { background: var(--clr-blue-pale); color: var(--clr-gold); }
.achievement_modal_badge.achievement__card_badge--kazoku { background: var(--clr-gold); }
.achievement_modal_badge.achievement__card_badge--ippan { background: var(--clr-navy); }

.achievement_modal_body {
  padding: 28px 28px 32px;
}
@media (max-width: 767px) {
  .achievement_modal_body { padding: 20px 20px 24px; }
}

.achievement_modal_title {
  font-family: 'Noto Serif JP', serif;
  font-size: 22px;
  font-weight: 700;
  color: var(--clr-navy);
  margin: 0 0 16px;
}
@media (max-width: 767px) {
  .achievement_modal_title { font-size: 19px; }
}

.achievement_modal_meta {
  margin: 0 0 20px;
  padding: 16px;
  background: var(--clr-warm-pale);
  border-radius: 6px;
}

.achievement_modal_meta_row {
  display: flex;
  gap: 12px;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 14px;
}
.achievement_modal_meta_row + .achievement_modal_meta_row {
  margin-top: 8px;
}
.achievement_modal_meta_row:empty,
.achievement_modal_meta_row.is_hidden {
  display: none;
}

.achievement_modal_meta_row dt {
  flex-shrink: 0;
  width: 3.5em;
  color: var(--clr-warm-gray);
  font-weight: 700;
}

.achievement_modal_meta_row dd {
  margin: 0;
  color: var(--clr-gold);
  font-weight: 700;
}

.achievement_modal_comment {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 15px;
  line-height: 1.9;
  color: var(--clr-navy);
  margin: 0;
  white-space: pre-wrap;
}





/**********************************************************************************************************
 実績　固定ページ用　ここまで
***********************************************************************************************************/
/**********************************************************************************************************
 会社概要ページ　ギャラリー　ここから
***********************************************************************************************************/
.service_gallery_wrap {
  background: var(--clr-warm-pale);
  padding: 100px 0 90px;
}
@media (max-width: 767px) {
  .service_gallery_wrap {
    padding: 60px 0 50px;
  }
}

.service_gallery_inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
}

.service_gallery_head {
  text-align: center;
  margin-bottom: 8px;
}

.service_gallery_title {
  font-family: 'Noto Serif JP', serif;
  font-size: 36px;
  font-weight: 700;
  color: var(--clr-brown-dark);
  letter-spacing: 0.04em;
}
@media (max-width: 767px) {
  .service_gallery_title {
    font-size: 24px;
  }
}

.service_gallery_title_line {
  width: 56px;
  height: 3px;
  margin: 18px auto 0;
  background: linear-gradient(90deg, var(--clr-gold), var(--clr-brown));
}

.service_gallery_sub {
  margin-top: 18px;
  font-size: 16px;
  color: var(--clr-brown);
  line-height: 1.9;
}
@media (max-width: 767px) {
  .service_gallery_sub {
    font-size: 13px;
  }
}

/* ── シーン切替タブ ── */
.service_gallery_scene_nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  margin: 44px 0 24px;
}
@media (max-width: 767px) {
  .service_gallery_scene_nav {
    flex-wrap: nowrap;
    overflow-x: auto;
    justify-content: flex-start;
    margin: 28px 0 18px;
    padding-bottom: 4px;
    -webkit-overflow-scrolling: touch;
  }
}

.service_gallery_scene_btn {
  flex: none;
  font-family: inherit;
  font-size: 15px;
  font-weight: 700;
  color: var(--clr-brown);
  background: var(--clr-white);
  border: 1px solid color-mix(in srgb, var(--clr-brown) 35%, transparent);
  border-radius: 999px;
  padding: 10px 22px;
  cursor: pointer;
  transition: background 0.25s ease, color 0.25s ease, border-color 0.25s ease;
  white-space: nowrap;
}
@media (max-width: 767px) {
  .service_gallery_scene_btn {
    font-size: 13px;
    padding: 8px 16px;
  }
}

.service_gallery_scene_btn:hover {
  border-color: var(--clr-gold);
}

.service_gallery_scene_btn.is_active {
  color: var(--clr-white);
  background: linear-gradient(120deg, var(--clr-gold), var(--clr-brown));
  border-color: transparent;
}

/* ── メインステージ（ストリートビュー風ビューア） ── */
.service_gallery_stage {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  border-radius: 10px;
  overflow: hidden;
  background: var(--clr-brown-dark);
  box-shadow: 0 18px 40px color-mix(in srgb, var(--clr-brown-dark) 25%, transparent);
  cursor: grab;
  touch-action: pan-y;
}
.service_gallery_stage.is_dragging {
  cursor: grabbing;
}
@media (max-width: 767px) {
  .service_gallery_stage {
    aspect-ratio: 4 / 3;
    border-radius: 6px;
  }
}

.service_gallery_img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 1;
  transform: translateX(0%);
  transition: transform 0.5s ease, opacity 0.5s ease;
  pointer-events: none;
}

.service_gallery_arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 52px;
  height: 52px;
  border-radius: 50%;
  border: none;
  background: color-mix(in srgb, var(--clr-brown-dark) 55%, transparent);
  color: var(--clr-white);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 3;
  transition: background 0.2s ease;
}
@media (max-width: 767px) {
  .service_gallery_arrow {
    width: 40px;
    height: 40px;
  }
}

.service_gallery_arrow:hover {
  background: color-mix(in srgb, var(--clr-gold) 75%, var(--clr-brown-dark));
}

.service_gallery_arrow svg {
  width: 20px;
  height: 20px;
}

.service_gallery_prev {
  left: 18px;
}
.service_gallery_next {
  right: 18px;
}
@media (max-width: 767px) {
  .service_gallery_prev { left: 10px; }
  .service_gallery_next { right: 10px; }
}

.service_gallery_fullscreen {
  position: absolute;
  top: 16px;
  right: 16px;
  width: 40px;
  height: 40px;
  border-radius: 8px;
  border: none;
  background: color-mix(in srgb, var(--clr-brown-dark) 55%, transparent);
  color: var(--clr-white);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 3;
}
.service_gallery_fullscreen svg {
  width: 18px;
  height: 18px;
}

.service_gallery_overlay {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 2;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px;
  padding: 16px 20px;
  background: linear-gradient(0deg, color-mix(in srgb, var(--clr-brown-dark) 75%, transparent), transparent);
  pointer-events: none;
}

.service_gallery_caption {
  font-size: 16px;
  font-weight: 700;
  color: var(--clr-white);
  text-shadow: 0 1px 4px color-mix(in srgb, var(--clr-brown-dark) 60%, transparent);
}
@media (max-width: 767px) {
  .service_gallery_caption {
    font-size: 13px;
  }
}

.service_gallery_counter {
  font-size: 13px;
  color: var(--clr-white);
  background: color-mix(in srgb, var(--clr-brown-dark) 55%, transparent);
  padding: 4px 12px;
  border-radius: 999px;
  white-space: nowrap;
}

/* ── サムネイルストリップ ── */
.service_gallery_thumb_track {
  display: flex;
  gap: 10px;
  margin-top: 16px;
  overflow-x: auto;
  padding-bottom: 6px;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
}

.service_gallery_thumb {
  flex: none;
  width: 108px;
  height: 72px;
  border-radius: 6px;
  overflow: hidden;
  border: 2px solid transparent;
  padding: 0;
  cursor: pointer;
  background: none;
  opacity: 0.6;
  transition: opacity 0.2s ease, border-color 0.2s ease;
}
@media (max-width: 767px) {
  .service_gallery_thumb {
    width: 84px;
    height: 56px;
  }
}

.service_gallery_thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.service_gallery_thumb:hover {
  opacity: 0.9;
}

.service_gallery_thumb.is_active {
  opacity: 1;
  border-color: var(--clr-gold);
}

/* ── フルスクリーン時 ── */
.service_gallery_wrap:fullscreen .service_gallery_stage {
  aspect-ratio: auto;
  height: 82vh;
  border-radius: 0;
}


/**********************************************************************************************************
 会社概要ページ　ギャラリー　ここまで
***********************************************************************************************************/

/**********************************************************************************************************
 供花・返礼品　注文フォーム　ここから
***********************************************************************************************************/

/* ========================================
   kyouka_order — 供花・お供え物 ご注文フォーム
   ======================================== */

/* ---- Wrap ---- */
.kyorder__wrap {
  background: var(--clr-white);
  padding: 80px 0 100px;
}
@media (max-width: 767px) {
  .kyorder__wrap { padding: 52px 0 72px; }
}

.kyorder__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
}
@media (max-width: 767px) {
  .kyorder__inner { padding: 0 16px; }
}

/* ---- セクションタイトル ---- */
.kyorder__head {
  text-align: center;
  margin-bottom: 52px;
}
@media (max-width: 767px) {
  .kyorder__head { margin-bottom: 36px; }
}

.kyorder__title {
  font-family: 'Noto Serif JP', serif;
  font-size: 32px;
  font-weight: 700;
  color: var(--clr-gold);
  letter-spacing: 0.1em;
  line-height: 1.44;
  margin: 0 0 20px;
}
@media (max-width: 767px) {
  .kyorder__title { font-size: 22px; margin: 0 0 14px; }
}

.kyorder__sub {
  font-family: 'Noto Serif JP', serif;
  font-size: 16px;
  font-weight: 700;
  color: var(--clr-black);
  text-align: center;
  letter-spacing: 0.05em;
  line-height: 1.75;
  margin: 0;
}
@media (max-width: 767px) {
  .kyorder__sub { font-size: 14px; }
}

/* ---- 注意事項ボックス ---- */
.kyorder__notice {
  max-width: 860px;
  margin: 0 auto 32px;
  background: var(--clr-warm-pale);
  border-left: 4px solid var(--clr-gold);
  border-radius: 3px;
  padding: 20px 24px;
}
@media (max-width: 767px) {
  .kyorder__notice { padding: 16px 18px; margin: 0 auto 24px; }
}

.kyorder__notice p {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 14px;
  color: var(--clr-brown-dark);
  line-height: 1.8;
  margin: 0;
}
.kyorder__notice p + p {
  margin-top: 6px;
}

.kyorder__notice_tel {
  color: var(--clr-gold);
  font-weight: 700;
  text-decoration: none;
}
.kyorder__notice_tel:hover {
  text-decoration: underline;
}

/* ================================================================
   フォームカード（innerの中で860pxに収める）
   ================================================================ */
.wpcf7 {
  max-width: 860px;
  margin: 0 auto;
}

.kyorder__form {
  background: var(--clr-white);
  border: 1px solid var(--clr-warm-light);
  border-radius: 5px;
  box-shadow: 0 2px 12px rgba(14, 47, 82, 0.07);
  padding: 48px 52px;
  margin: 0;
}
@media (max-width: 767px) {
  .kyorder__form { padding: 28px 20px; }
}

/* CF7 コントロールラップを block に */
.wpcf7-form-control-wrap {
  display: block;
}

/* ---- 商品選択パネル（供花／返礼品を薄い背景で区切る。.kyorder__form のパディング分を打ち消して幅いっぱいに広げる） ---- */
.kyorder__product_section {
  background: var(--clr-warm-pale);
  padding: 24px 52px 8px;
  margin: 40px -52px 0;
}
@media (max-width: 767px) {
  .kyorder__product_section { padding: 18px 20px 4px; margin: 32px -20px 0; }
}

.kyorder__form > .kyorder__product_section:first-child {
  margin-top: 0;
}

.kyorder__product_section > .kyorder__section_title:first-child {
  margin-top: 0;
}

/* ---- 2カラムグリッド ---- */
.kyorder__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 28px;
}
@media (max-width: 767px) {
  .kyorder__grid { grid-template-columns: 1fr; gap: 0; }
}

/* ---- 行 ---- */
.kyorder__row {
  margin-bottom: 24px;
}
@media (max-width: 767px) {
  .kyorder__row { margin-bottom: 20px; }
}

/* ---- ラベル ---- */
.kyorder__label {
  font-family: 'Noto Serif JP', serif;
  font-size: 16px;
  font-weight: 700;
  color: var(--clr-brown-dark);
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 8px;
  line-height: 1.5;
}

/* ---- 必須・任意バッジ ---- */
.kyorder__req {
  font-size: 11px;
  font-weight: 700;
  font-family: 'Noto Sans JP', sans-serif;
  letter-spacing: 0.04em;
  background: var(--clr-gold);
  color: var(--clr-white);
  padding: 2px 7px;
  border-radius: 2px;
  flex-shrink: 0;
  line-height: 1.6;
}

.kyorder__req--any {
  background: var(--clr-warm-gray);
}

/* ---- 中見出し（セクション区切り） ---- */
.kyorder__section_title {
  font-family: 'Noto Serif JP', serif;
  font-size: 18px;
  font-weight: 700;
  color: var(--clr-brown-dark);
  border-left: 4px solid var(--clr-gold);
  padding-left: 12px;
  line-height: 1.5;
  margin: 40px 0 8px;
}
@media (max-width: 767px) {
  .kyorder__section_title { font-size: 16px; margin: 32px 0 6px; }
}

.kyorder__form > .kyorder__section_title:first-child {
  margin-top: 0;
}

.kyorder__row + .kyorder__section_title,
.kyorder__grid + .kyorder__section_title {
  margin-top: 40px;
}
@media (max-width: 767px) {
  .kyorder__row + .kyorder__section_title,
  .kyorder__grid + .kyorder__section_title {
    margin-top: 32px;
  }
}

.kyorder__section_note {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 13px;
  color: var(--clr-warm-gray);
  line-height: 1.7;
  margin: 0 0 20px;
}
@media (max-width: 767px) {
  .kyorder__section_note { margin: 0 0 16px; }
}

/* ---- 条件付き表示ブロック（js/kyouka_order.js で開閉） ---- */
.kyorder__toggle_block {
  margin-top: 40px;
}
@media (max-width: 767px) {
  .kyorder__toggle_block { margin-top: 32px; }
}

.kyorder__toggle_block > .kyorder__section_title {
  margin-top: 0;
}

.kyorder__toggle_block.is_hidden {
  display: none;
}

/* ---- インラインチェックボックス（「〇〇と同じ」など） ---- */
.kyorder__checkbox_row {
  margin: -12px 0 24px;
}
@media (max-width: 767px) {
  .kyorder__checkbox_row { margin: -8px 0 20px; }
}

.kyorder__inline_check {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 14px;
  color: var(--clr-brown-dark);
  cursor: pointer;
}

.kyorder__inline_check input[type="checkbox"] {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  accent-color: var(--clr-gold);
  cursor: pointer;
}

/* ---- ラジオボタングループ（お届け先の選択など） ---- */
.kyorder__radio_group {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.kyorder__radio_group .wpcf7-list-item {
  margin: 0;
}

.kyorder__radio_group label {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 15px;
  color: var(--clr-brown-dark);
  cursor: pointer;
}

.kyorder__radio_group input[type="radio"] {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  accent-color: var(--clr-gold);
  cursor: pointer;
}

/* ---- テキスト / 電話 / メール / 日付 入力 ---- */
.kyorder__input {
  display: block;
  width: 100%;
  border: 1px solid var(--clr-warm-light);
  border-radius: 3px;
  padding: 12px 14px;
  font-size: 16px;
  font-family: 'Noto Sans JP', sans-serif;
  color: var(--clr-brown-dark);
  background: var(--clr-white);
  outline: none;
  transition: border-color 0.18s, box-shadow 0.18s;
  -webkit-appearance: none;
}

.kyorder__input::placeholder {
  color: var(--clr-warm-gray);
  font-size: 14px;
}

.kyorder__input:focus {
  border-color: var(--clr-gold);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--clr-gold) 15%, transparent);
}

.kyorder__input.wpcf7-not-valid {
  border-color: #c0392b;
}

.kyorder__input[readonly] {
  background: var(--clr-warm-pale);
  color: var(--clr-warm-gray);
  cursor: not-allowed;
}

/* ---- セレクト ---- */
.kyorder__select {
  display: block;
  width: 100%;
  border: 1px solid var(--clr-warm-light);
  border-radius: 3px;
  padding: 12px 40px 12px 14px;
  font-size: 16px;
  font-family: 'Noto Sans JP', sans-serif;
  color: var(--clr-brown-dark);
  background-color: var(--clr-white);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5.5L11 1' stroke='%23B8A898' stroke-width='1.6' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  background-size: 12px 8px;
  outline: none;
  transition: border-color 0.18s, box-shadow 0.18s;
  -webkit-appearance: none;
  cursor: pointer;
}
@media (max-width: 767px) {
  .kyorder__select { padding: 11px 36px 11px 12px; }
}

.kyorder__select:focus {
  border-color: var(--clr-gold);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--clr-gold) 15%, transparent);
}

.kyorder__select.wpcf7-not-valid {
  border-color: #c0392b;
}

/* ---- テキストエリア ---- */
.kyorder__textarea {
  display: block;
  width: 100%;
  border: 1px solid var(--clr-warm-light);
  border-radius: 3px;
  padding: 12px 14px;
  font-size: 16px;
  font-family: 'Noto Sans JP', sans-serif;
  color: var(--clr-brown-dark);
  background: var(--clr-white);
  outline: none;
  transition: border-color 0.18s, box-shadow 0.18s;
  resize: vertical;
  min-height: 140px;
  line-height: 1.7;
}
@media (max-width: 767px) {
  .kyorder__textarea { min-height: 120px; padding: 11px 12px; }
}

.kyorder__textarea::placeholder {
  color: var(--clr-warm-gray);
  font-size: 14px;
}

.kyorder__textarea:focus {
  border-color: var(--clr-gold);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--clr-gold) 15%, transparent);
}

.kyorder__textarea.wpcf7-not-valid {
  border-color: #c0392b;
}

/* ---- 個人情報同意 ---- */
.kyorder__privacy_row {
  background: var(--clr-warm-pale);
  border-radius: 3px;
  padding: 18px 20px;
  margin: 8px 0 32px;
}
@media (max-width: 767px) {
  .kyorder__privacy_row { padding: 14px 16px; margin: 4px 0 24px; }
}

.kyorder__acceptance {
  display: block;
}

.kyorder__privacy_row label {
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 14px;
  color: var(--clr-brown-dark);
  cursor: pointer;
  line-height: 1.6;
}

.kyorder__checkbox {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  accent-color: var(--clr-gold);
  cursor: pointer;
}

/* ---- 送信ボタン ---- */
.kyorder__submit_wrap {
  text-align: center;
  margin-top: 8px;
}

.kyorder__submit {
  display: inline-block;
  background: var(--clr-gold);
  color: var(--clr-white);
  font-family: 'Noto Serif JP', serif;
  font-size: 16px;
  font-weight: 700;
  padding: 16px 72px;
  border-radius: 4px;
  border: none;
  letter-spacing: 0.2em;
  cursor: pointer;
  transition: opacity 0.2s, transform 0.2s;
}
@media (max-width: 767px) {
  .kyorder__submit {
    display: block;
    width: 100%;
    padding: 16px 20px;
  }
}

.kyorder__submit:hover {
  opacity: 0.85;
  transform: translateY(-1px);
}

.kyorder__submit:active {
  transform: translateY(0);
}

/* ---- 名札の一例（モーダル） ---- */
.kyorder__example_trigger {
  display: inline;
  margin-left: 2px;
  padding: 0;
  border: none;
  background: none;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 13px;
  font-weight: 700;
  color: var(--clr-gold);
  text-decoration: underline;
  cursor: pointer;
}
.kyorder__example_trigger:hover {
  opacity: 0.75;
}

.kyorder__modal_overlay {
  display: none;
  position: fixed;
  inset: 0;
  align-items: center;
  justify-content: center;
  background: color-mix(in srgb, var(--clr-black) 50%, transparent);
  padding: 20px;
  z-index: 1000;
}
.kyorder__modal_overlay.is_open {
  display: flex;
}

.kyorder__modal_panel {
  position: relative;
  width: 100%;
  max-width: 320px;
  background: var(--clr-white);
  border-radius: 6px;
  padding: 40px 32px 32px;
  text-align: center;
}
@media (max-width: 767px) {
  .kyorder__modal_panel { padding: 32px 20px 24px; }
}

.kyorder__modal_panel--wide {
  max-width: 640px;
}

.kyorder__modal_close {
  position: absolute;
  top: 8px;
  right: 12px;
  padding: 4px;
  border: none;
  background: none;
  font-size: 24px;
  line-height: 1;
  color: var(--clr-warm-gray);
  cursor: pointer;
}
.kyorder__modal_close:hover {
  color: var(--clr-brown-dark);
}

.kyorder__modal_title {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 12px;
  font-weight: 700;
  color: var(--clr-warm-gray);
  letter-spacing: 0.05em;
  margin: 0 0 16px;
}

.kyorder__nameplate_example_img {
  display: block;
  width: 100%;
  height: auto;
  border: 1px solid var(--clr-warm-light);
  border-radius: 3px;
}

/* ---- CF7 フィールドエラーメッセージ ---- */
.wpcf7-not-valid-tip {
  display: block;
  font-size: 12px;
  color: #c0392b;
  margin-top: 5px;
  line-height: 1.5;
}

/* ---- CF7 レスポンス出力 ---- */
.wpcf7-response-output {
  margin: 20px 0 0;
  padding: 12px 18px;
  border-radius: 3px;
  font-size: 16px;
  line-height: 1.7;
  border: none;
}

.wpcf7-form.sent .wpcf7-response-output {
  background: var(--clr-pale);
  border: 1px solid color-mix(in srgb, var(--clr-gold) 40%, transparent);
  color: var(--clr-brown-dark);
}

.wpcf7-form.failed .wpcf7-response-output,
.wpcf7-form.invalid .wpcf7-response-output,
.wpcf7-form.unaccepted .wpcf7-response-output {
  background: #fdf2f0;
  border: 1px solid #e8b4ae;
  color: #c0392b;
}

.wpcf7-form.spam .wpcf7-response-output {
  background: var(--clr-warm-pale);
  border: 1px solid var(--clr-warm-light);
  color: var(--clr-warm-gray);
}



/**********************************************************************************************************
 供花・返礼品　注文フォーム　ここまで
***********************************************************************************************************/

