/* ============================================
   追加CSS（旧: WordPress「追加CSS」で管理していたスタイル）
   テーマ Version 2.0 で統合
   ============================================ */

/* ============================================
   MV ファーストビュー即時アニメーション（JS不要）
   ============================================ */
@keyframes mvFadeInUp {
  from {
    opacity: 0;
    transform: translateY(30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.mv-animate {
  opacity: 0;
  animation: mvFadeInUp 0.8s ease-out forwards;
}
.mv-animate-delay {
  animation-delay: 0.2s;
}

/* SNSシェアブロック非表示 */
.sns-share-block { display: none; }

/* 予約ボタン line-height調整 */
.btn-reserve .link-btn { line-height: 0; }

/* LINEボタン（緑色→薄緑に控えめ化） */
/* トップMV */
.mv-txt .mv-btn.btn-line .link-btn {
	background-color: #fafffa;
	border-color: rgb(7,181,59);
	color: #004400;
}
.mv-txt .mv-btn.btn-line .link-btn:hover {
	background-color: #ddffdd;
	border-color: rgb(7,181,59);
}
.mv-txt .mv-btn.btn-line .link-btn:hover,
.mv-txt .mv-btn.btn-line .link-btn:hover span,
.mv-txt .mv-btn.btn-line .link-btn:hover .txt,
.mv-txt .mv-btn.btn-line .link-btn:hover .sub-txt,
.mv-txt .mv-btn.btn-line .link-btn:hover .tx-small {
	color: #004400;
}

/* 画面下部 追従CTA */
#fix-cta .fix-content-list .btn-line a {
	background-color: #fafffa;
	border-color: rgb(7,181,59);
	color: #004400;
}
#fix-cta .fix-content-list .btn-line a:hover {
	background-color: #ddffdd;
	color: #004400;
}

/* フッター */
#footer .footer-contact .footer-contact-box .cv-list .btn-line a {
	background-color: #fafffa;
	border-color: rgb(7,181,59);
	color: #004400;
}
#footer .footer-contact .footer-contact-box .cv-list .btn-line a:hover {
	background-color: #ddffdd;
	color: #004400;
}

/* トップイントロボタン余白 */
.p-top-intro-btn {
	margin: 0px 0px 100px 0;
}

/* フラッシュアニメーションの定義 */
@keyframes flashAttention {
	0% { background-color: #fff; }
	50% { background-color: #fffccc; }
	100% { background-color: #fff; }
}

/* JavaScriptで付与するクラス */
#fix-cta.is-flashing {
	animation: flashAttention 0.8s ease-in-out 2;
}

/* ============================================
   プランセクション：スマホでタップ可能と分かるUI
   ============================================ */
@media screen and (max-width: 768px) {
  .p-top-plan-list li a {
    display: block;
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    overflow: hidden;
    transition: box-shadow 0.3s ease;
  }
  .p-top-plan-list li a:active {
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12);
  }
  .p-top-plan-list .item-txt {
    padding: 0 20px 20px;
  }
  /* 「詳しく見る →」テキスト表示 */
  .p-top-plan-list li a::after {
    content: "詳しく見る →";
    display: block;
    text-align: center;
    padding: 12px 20px;
    font-size: 13px;
    font-weight: 700;
    color: #fff;
    background: #F091A7;
    border-radius: 0 0 10px 10px;
    letter-spacing: 0.08em;
  }
}

/* ============================================
   メディアセクション
   ============================================ */

.media-press-section {
	padding: 60px 20px;
	background-color: #fcfdfd;
}

.media-press-inner {
	max-width: 1100px;
	margin: 0 auto;
}

/* グリッドレイアウト */
.media-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
	gap: 30px;
}

/* カードデザイン */
.media-card {
	background: #fff;
	border: 1px solid #eef5f5;
	border-radius: 12px;
	overflow: hidden;
	box-shadow: 0 4px 15px rgba(90, 185, 189, 0.08);
	display: flex;
	flex-direction: column;
	transition: transform 0.3s ease;
}

.media-card:hover {
	transform: translateY(-5px);
}

/* 画像エリア */
.media-thumb {
	height: 180px;
	background: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 20px;
	border-bottom: 1px solid #f0f6f6;
}

.media-thumb img {
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
}

/* 記事切り抜き用 */
.media-thumb.is-clip img {
	border: 1px solid #eee;
	box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}

/* テキストエリア */
.media-info {
	padding: 25px;
	flex-grow: 1;
	display: flex;
	flex-direction: column;
}

.media-tag {
	align-self: flex-start;
	font-size: 10px;
	font-weight: bold;
	color: #fff;
	background: #5ab9bd;
	padding: 2px 12px;
	border-radius: 20px;
	margin-bottom: 12px;
}

.media-date {
	font-size: 12px;
	color: #aaa;
	margin-bottom: 8px;
}

.media-headline {
	font-size: 18px;
	color: #333;
	line-height: 1.5;
	margin: 0 0 12px 0;
	font-weight: 600;
}

.media-caption {
	font-size: 14px;
	color: #666;
	line-height: 1.6;
	margin-bottom: 15px;
}

.media-more {
	margin-top: auto;
	font-size: 13px;
	color: #5ab9bd;
	font-weight: bold;
	text-decoration: none;
	border-bottom: 1.5px solid #5ab9bd;
	align-self: flex-start;
}

/* スマホ用 */
@media (max-width: 480px) {
	.media-grid {
		grid-template-columns: 1fr;
	}
	.media-headline {
		font-size: 17px;
	}
}

/* ============================================
   キーワード検索フォーム
   ============================================ */
.column-search-box__search {
  margin-top: 20px;
}
.column-search-box__search .ttl {
  font-size: 14px;
  font-weight: 700;
  margin-bottom: 10px;
}
.column-search-form {
  width: 100%;
  box-sizing: border-box;
}
.search-input-wrap {
  display: flex;
  border: 1px solid #ccc;
  border-radius: 4px;
  overflow: hidden;
  max-width: 100%;
}
.search-input {
  flex: 1 1 auto;
  min-width: 0;
  padding: 10px 14px;
  border: none;
  outline: none;
  font-size: 14px;
  background: #fff;
  -webkit-appearance: none;
  appearance: none;
  box-sizing: border-box;
}
.search-input::placeholder {
  color: #aaa;
}
.search-submit {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  padding: 10px 0;
  border: none;
  background: #b8860b;
  color: #fff;
  cursor: pointer;
  transition: background .3s ease;
}
.search-submit:hover {
  background: #9a7209;
}
.sidebar_search {
  margin-top: 30px;
}
.sidebar_search .column-search-form {
  margin-top: 10px;
}

/* サイドバーはみ出し防止（2カラムレイアウト補助） */
.content-row #main-column {
  min-width: 0;
  box-sizing: border-box;
}
.content-row #side-column {
  box-sizing: border-box;
  overflow: hidden;
}
#side-column,
.nav-sticky {
  max-width: 100%;
  box-sizing: border-box;
}
.sidebar_keyword,
.sidebar_category,
.sidebar_search,
.sidebar_cta {
  max-width: 100%;
  overflow: hidden;
  word-break: break-all;
}
/* 記事本文の幅制限 */
.sigle-article_body {
  max-width: 80rem;
}

/* ============================================
   トップページ 無料相談CTAセクション
   ============================================ */
.top-reserve-section {
  padding: 70px 20px;
  background: linear-gradient(135deg, #fff5f7 0%, #fde8ed 50%, #fff5f7 100%);
}
.top-reserve-section .sec-heading {
  margin-bottom: 40px;
}
.top-reserve-btns {
  display: flex;
  justify-content: center;
  gap: 24px;
  max-width: 800px;
  margin: 0 auto;
  position: relative;
  z-index: 1;
}
.top-reserve-btn {
  flex: 1;
  max-width: 360px;
}
.top-reserve-btn.btn-reserve .reserve-link {
  background: #F091A7;
  color: #fff;
  box-shadow: 0 6px 20px rgba(240, 145, 167, 0.4);
}
.top-reserve-btn.btn-reserve .reserve-link:hover {
  background: #FC7796;
  color: #fff;
  transform: translateY(-3px);
  box-shadow: 0 10px 30px rgba(252, 119, 150, 0.5);
}
.top-reserve-btn.btn-reserve .reserve-link .txt,
.top-reserve-btn.btn-reserve .reserve-link .sub-txt {
  color: #fff;
}
.top-reserve-btn.btn-shindan .reserve-link {
  background: #fff;
  color: #333;
  border: 2px solid #3ABFBE;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15);
}
.top-reserve-btn.btn-shindan .reserve-link:hover {
  background: #f0fafa;
  color: #333;
  transform: translateY(-3px);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
}
.top-reserve-btn.btn-shindan .reserve-link .txt,
.top-reserve-btn.btn-shindan .reserve-link .sub-txt {
  color: #333;
}
.top-reserve-btn .reserve-link {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 28px 24px;
  border-radius: 10px;
  text-align: center;
  text-decoration: none;
  transition: all 0.3s ease;
  position: relative;
  min-height: 110px;
  font-family: "Montserrat", sans-serif;
}
.top-reserve-btn .reserve-link .sub-txt {
  font-size: 12px;
  margin-bottom: 6px;
  opacity: 0.85;
}
.top-reserve-btn .reserve-link .txt {
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.05em;
}
@media (max-width: 600px) {
  .top-reserve-section {
    padding: 50px 15px;
  }
  .top-reserve-btns {
    flex-direction: column;
    align-items: center;
    gap: 15px;
  }
  .top-reserve-btn {
    max-width: 100%;
    width: 100%;
  }
  .top-reserve-btn .reserve-link .txt {
    font-size: 17px;
  }
}


/* ============================================
   記事内CTA（自動挿入）
   ============================================ */
.inline-cta {
  margin: 40px 0;
  padding: 30px 25px;
  background: linear-gradient(135deg, #fff5f7 0%, #fde8ed 100%);
  border: 2px solid #F091A7;
  border-radius: 12px;
  text-align: center;
}
.inline-cta__lead {
  font-size: 16px;
  font-weight: 700;
  color: #333;
  margin-bottom: 20px;
}
.inline-cta__btns {
  display: flex;
  gap: 15px;
  justify-content: center;
}
.inline-cta__btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex: 1;
  max-width: 280px;
  padding: 18px 15px;
  border-radius: 8px;
  text-decoration: none;
  transition: all 0.3s ease;
  font-weight: 700;
}
.inline-cta__btn.is-reserve {
  background: #F091A7;
  color: #fff;
  box-shadow: 0 4px 12px rgba(240, 145, 167, 0.3);
}
.inline-cta__btn.is-reserve:hover {
  background: #FC7796;
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(252, 119, 150, 0.4);
}
.inline-cta__btn.is-shindan {
  background: #f0fafa;
  color: #1a5c5c;
  border: 2px solid #3ABFBE;
}
.inline-cta__btn.is-shindan:hover {
  background: #d6f2f2;
  color: #1a5c5c;
  transform: translateY(-2px);
}
.inline-cta__sub {
  font-size: 11px;
  font-weight: 400;
  margin-bottom: 4px;
}
.inline-cta__txt {
  font-size: 16px;
}
@media (max-width: 600px) {
  .inline-cta__btns {
    flex-direction: column;
    align-items: center;
  }
  .inline-cta__btn {
    max-width: 100%;
    width: 100%;
  }
}

/* ============================================
   サイドバーCTA
   ============================================ */
.sidebar_cta {
  margin-bottom: 30px;
}
.sidebar-cta-box {
  background: linear-gradient(135deg, #fff5f7 0%, #fde8ed 100%);
  border: 2px solid #F091A7;
  border-radius: 10px;
  padding: 20px 15px;
  text-align: center;
}
.sidebar-cta-lead {
  font-size: 14px;
  font-weight: 700;
  color: #333;
  margin-bottom: 15px;
}
.sidebar-cta-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 14px 10px;
  border-radius: 6px;
  text-decoration: none;
  transition: all 0.3s ease;
  font-weight: 700;
  margin-bottom: 10px;
}
.sidebar-cta-btn:last-child {
  margin-bottom: 0;
}
.sidebar-cta-btn.is-reserve {
  background: #F091A7;
  color: #fff;
  box-shadow: 0 3px 8px rgba(240, 145, 167, 0.25);
}
.sidebar-cta-btn.is-reserve:hover {
  background: #FC7796;
  color: #fff;
  transform: translateY(-1px);
}
.sidebar-cta-btn.is-shindan {
  background: #f0fafa;
  color: #1a5c5c;
  border: 2px solid #3ABFBE;
}
.sidebar-cta-btn.is-shindan:hover {
  background: #d6f2f2;
  color: #1a5c5c;
}
.sidebar-cta-sub {
  font-size: 10px;
  font-weight: 400;
  margin-bottom: 3px;
}
.sidebar-cta-txt {
  font-size: 14px;
}

/* ============================================
   コラム一覧ページCTAカード
   ============================================ */
.list-cta-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100%;
  min-height: 200px;
  padding: 25px 20px;
  background: linear-gradient(135deg, #fff5f7 0%, #fde8ed 100%);
  border: 2px solid #F091A7;
  border-radius: 12px;
  text-align: center;
  box-sizing: border-box;
}
.list-cta-lead {
  font-size: 16px;
  font-weight: 700;
  color: #333;
  line-height: 1.6;
  margin-bottom: 15px;
}
.list-cta-btn {
  display: inline-block;
  padding: 14px 30px;
  border-radius: 6px;
  text-decoration: none;
  font-weight: 700;
  font-size: 15px;
  transition: all 0.3s ease;
}
.list-cta-btn.is-reserve {
  background: #F091A7;
  color: #fff;
  box-shadow: 0 3px 10px rgba(240, 145, 167, 0.3);
}
.list-cta-btn.is-reserve:hover {
  background: #FC7796;
  transform: translateY(-2px);
  box-shadow: 0 5px 14px rgba(252, 119, 150, 0.4);
}

/* ============================================
   記事カード 抜粋文
   ============================================ */
.entry-excerpt {
  font-size: 13px;
  color: #666;
  line-height: 1.6;
  margin-top: 8px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
