/* =========================================================
   Source: Section heading component / centralized
   ========================================================= */

/* =========================================================
   Section Heading Component
   HOME: NEWS / PLANS common heading style
   ========================================================= */

body.home .entry-body section.news-section > h2,
body.home .entry-body section.plan-section > h2,
.news-section > h2,
.plan-section > h2 {
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 12px !important;
  margin: 0 0 42px !important;
  padding: 0 0 14px !important;
  color: var(--color-secondary) !important;
  line-height: 1.3 !important;
  letter-spacing: 0.04em !important;
  border: none !important;
  background: transparent !important;
}

body.home .entry-body section.news-section > h2::before,
body.home .entry-body section.plan-section > h2::before,
.news-section > h2::before,
.plan-section > h2::before {
  content: "" !important;
  position: absolute !important;
  left: 0 !important;
  top: -14px !important;
  bottom: auto !important;
  width: 100% !important;
  height: 2px !important;
  background: var(--color-primary) !important;
  border: none !important;
  opacity: 1 !important;
}

body.home .entry-body section.news-section > h2::after,
body.home .entry-body section.plan-section > h2::after,
.news-section > h2::after,
.plan-section > h2::after {
  content: none !important;
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  opacity: 0 !important;
  visibility: hidden !important;
}

body.home .entry-body section.news-section > h2 .section-badge,
body.home .entry-body section.plan-section > h2 .section-badge,
.news-section > h2 .section-badge,
.plan-section > h2 .section-badge {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 0 0 auto !important;
  height: 24px !important;
  padding: 0 10px !important;
  border-radius: 999px !important;
  background: rgba(0, 123, 255, 0.08) !important;
  color: var(--color-primary) !important;
  font-size: 0.72rem !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  letter-spacing: 0.1em !important;
  white-space: nowrap !important;
  transform: translateY(1px) !important;
}

body.home .entry-body section.news-section > h2,
body.home .entry-body section.plan-section > h2,
.news-section > h2,
.plan-section > h2 {
  border-bottom: 1px solid rgba(0, 86, 179, 0.10) !important;
}

@media (max-width: 768px) {
  body.home .entry-body section.news-section > h2,
  body.home .entry-body section.plan-section > h2,
  .news-section > h2,
  .plan-section > h2 {
    margin-bottom: 24px !important;
  }

  body.home .entry-body section.news-section > h2 .section-badge,
  body.home .entry-body section.plan-section > h2 .section-badge,
  .news-section > h2 .section-badge,
  .plan-section > h2 .section-badge {
    height: 22px !important;
    padding: 0 9px !important;
    font-size: 0.66rem !important;
  }
}


/* =========================================================
   Source: 08-card-animation.css
   ========================================================= */

/* =========================================================
   Card Animation (intersection observer targets)
   ========================================================= */
   .card,
   .card-main,
   .card.business-plan,
   .stella-medix-section,
   .plan-section,
   .services-section,
   .business-card,
   .post-card,
   .news-section,
   .cta-section {
     opacity: 0;
     transform: translateY(28px);
     transition:
       opacity 720ms cubic-bezier(.16, .84, .28, 1),
       transform 720ms cubic-bezier(.16, .84, .28, 1);
     transition-delay: calc(var(--reveal-index, 0) * 35ms);
   }

   .card.visible,
   .card-main.visible,
   .card.business-plan.visible,
   .stella-medix-section.visible,
   .plan-section.visible,
   .services-section.visible,
   .business-card.visible,
   .post-card.visible,
   .news-section.visible,
   .cta-section.visible {
     opacity: 1;
     transform: none;
   }

   @media (prefers-reduced-motion: reduce) {
     .card,
     .card-main,
     .card.business-plan,
     .stella-medix-section,
     .plan-section,
     .services-section,
     .business-card,
     .post-card,
     .news-section,
     .cta-section {
       opacity: 1 !important;
       transform: none !important;
       transition: none !important;
     }
   }


/* =========================================================
   Source: 09-card-layouts.css
   ========================================================= */

/* =========================================================
   Card Layouts
   ========================================================= */
.card-container,.custom-latest-posts,.cards-container-main{display:flex;flex-wrap:wrap;gap:var(--gap-md);justify-content:center;padding:20px;border-radius:var(--radius-lg);}  

.card,.card-main,.card.business-plan{flex:1 1 calc(33.333% - var(--gap-md));background:var(--color-card-bg);border-radius:var(--radius-lg);padding:20px;box-shadow:0 2px 5px var(--color-card-shadow);display:flex;flex-direction:column;align-items:center;text-align:center;transition:box-shadow var(--ease-fast);}  

.card:hover,.card-main:hover,.card.business-plan:hover{box-shadow:0 4px 12px var(--color-card-shadow-hover);}  

/* Mobile single-column */
@media(max-width:768px){
  .card,.card-main,.card.business-plan{flex:1 1 100%;}
}

/* Card specific tweaks */
.card-description{margin-block-end:1rem;color:var(--color-text);}  
.card-description p{font-size:1rem;line-height:1.5;margin:0;}

.card img,.card iframe,.card-main img,.card-main iframe,.card.business-plan img,.card.business-plan iframe{width:100%;height:auto;border-radius:var(--radius-md);max-width:100%;}
.card iframe,.card-main iframe,.card.business-plan iframe{aspect-ratio:16/9;}


/* =========================================================
   Source: 13-card-safe-hotfix.css
   ========================================================= */

/* =========================================================
   =====================  SAFE HOTFIX  =====================
   サイズ不変の「ふんわり」だけ付与（幅・高さ・padding・flexは変更しない）
   ========================================================= */

/* 不要なborderが残っている可能性に備えた打ち消し（寸法維持） */
.card,.card-main,.card.business-plan{ border: none; }

/* ふんわり効果は transform / box-shadow / opacity のみで実装 */
.card,.card-main,.card.business-plan{
  transition:
    transform var(--ease-fast),
    box-shadow var(--ease-fast),
    opacity var(--ease-slow);
  will-change: transform, box-shadow;
}

/* ホバー／フォーカスで軽く持ち上げる（レイアウト不変） */
@media (hover:hover){
  .card:hover,.card-main:hover,.card.business-plan:hover{
    transform: translateY(-6px);
    box-shadow: 0 8px 24px var(--color-card-shadow-hover);
  }
}
.card:focus-within,.card-main:focus-within,.card.business-plan:focus-within{
  transform: translateY(-6px);
  box-shadow: 0 8px 24px var(--color-card-shadow-hover);
}

/* Revealアニメの移動と透明度だけ（寸法は触れない） */
.card,.card-main,.card.business-plan,
.stella-medix-section,.plan-section,.services-section,.business-card,.post-card{
  transition: opacity var(--ease-slow), transform var(--ease-slow);
}
.card.visible,.card-main.visible,.card.business-plan.visible,
.stella-medix-section.visible,.plan-section.visible,.services-section.visible,
.business-card.visible,.post-card.visible{
  opacity: 1;
  transform: none;
}

/* カード内の画像は“拡大しない”：見た目サイズの変化・はみ出しを防止 */
.card img,.card-main img,.card.business-plan img{
  transition: box-shadow var(--ease-fast); /* transform は付与しない */
}
/* a:hover img の拡大をカード内では無効化（既存の一般ルールを上書き） */
.card a:hover img,.card-main a:hover img,.card.business-plan a:hover img{ 
  transform: none !important; 
  opacity: .9; /* 触感だけ少し残す（任意） */
}
/* .hover-effect の拡大もカード内では無効化 */
.card .hover-effect:hover,
.card-main .hover-effect:hover,
.card.business-plan .hover-effect:hover{
  transform: none !important;
  opacity: .9;
}

/* 常時アニメが付いていれば停止（寸法に影響しない安全な停止） */
.is-floating{ animation: none !important; }

/* モーション配慮：大きな移動を抑える */
@media (prefers-reduced-motion: reduce){
  .card,.card-main,.card.business-plan{
    transition: box-shadow .01ms linear !important;
    transform: none !important;
  }
}
