/* ==== Lunaria Core (shared) ==== */

/* Slider core: レイアウトは CSS が担当（JS は index 切替のみ） */
.lunaria-slider-core {
  position: relative;
  width: 100%;
  overflow: hidden;
}

/* すべてのスライドの基準点を各アイテムにする（キャプション重なり防止） */
.lunaria-slider-core .lunaria-slide-item {
  position: relative;
}

/* slide：横並び。1枚＝100% 幅 */
.lunaria-slider-core.is-slide .lunaria-slide-track {
  display: flex;
  gap: 0;
  transition: transform var(--lunaria-speed, 400ms) ease;
  will-change: transform;
}
.lunaria-slider-core.is-slide .lunaria-slide-item {
  flex: 0 0 100%;
}

/* fade：重ねてアクティブのみ不透明（ここで absolute に上書き） */
.lunaria-slider-core.is-fade .lunaria-slide-track {
  position: relative;
}
.lunaria-slider-core.is-fade .lunaria-slide-item {
  position: absolute;
  inset: 0;
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--lunaria-speed, 400ms) ease;
  will-change: opacity;
}
.lunaria-slider-core.is-fade .lunaria-slide-item.is-active {
  opacity: 1;
  pointer-events: auto;
}

/* 画像の基本（cover で縦不足をズームして解消） */
.lunaria-slider-core .lunaria-slide-item .lunaria-media {
  display: block;
  width: 100%;
  height: 100%;       /* ← コンテナの高さに合わせて拡大 */
  object-fit: cover;  /* ← 面を埋める（必要なら左右をトリミング） */
}

/* aspect 指定時の補助（container に aspect-ratio が付く想定） */
.lunaria-slider-core.has-aspect .lunaria-slide-track,
.lunaria-slider-core.has-aspect .lunaria-slide-item {
  height: 100%;
}

/* Lunaria core — slider shared styles
 * フェード専用の重ね表示（他ブロックにも安全）
 * HASH: core-css-fade-20250815
 */

/* デフォルトの速度（JSで --lunaria-speed を上書き） */
[data-lunaria-slider]{
  --lunaria-speed: 400ms;
}

/* フェード効果時：トラックは相対、各スライドは絶対配置 */
[data-lunaria-slider][data-effect="fade"] .lunaria-slide-track{
  position: relative;
  width: 100%;
  height: 100%;
}
[data-lunaria-slider][data-effect="fade"] .lunaria-slide-item{
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity var(--lunaria-speed) ease;
}
[data-lunaria-slider][data-effect="fade"] .lunaria-slide-item.is-active{
  opacity: 1;
}

/* ===== Lunaria 共通ボタン ===== */
a.lunaria-btn, .lunaria-btn{
  --btn-bg: #111;
  --btn-fg: #fff;
  --btn-radius: 12px;
  --btn-shadow: 0 2px 6px rgba(0,0,0,.15);
  --btn-shadow-hover: 0 4px 12px rgba(0,0,0,.2);
  --btn-focus: #5b9dd9;

  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5em;

  padding: .65em 1.1em;
  border-radius: var(--btn-radius);
  border: 1px solid transparent;
  background: var(--btn-bg);
  color: var(--btn-fg);
  font-weight: 600;
  line-height: 1;
  text-decoration: none;
  box-shadow: var(--btn-shadow);
  transition: background-color .2s ease, color .2s ease, transform .06s ease, box-shadow .2s ease;
}
a.lunaria-btn:visited{ color: var(--btn-fg); }
a.lunaria-btn:hover, .lunaria-btn:hover{
  transform: translateY(-1px);
  box-shadow: var(--btn-shadow-hover);
  filter: brightness(1.05);
}
a.lunaria-btn:active, .lunaria-btn:active{
  transform: translateY(0);
  box-shadow: var(--btn-shadow);
  filter: none;
}
a.lunaria-btn:focus-visible, .lunaria-btn:focus-visible{
  outline: 2px solid var(--btn-focus);
  outline-offset: 2px;
}

/* バリアント */
.lunaria-btn--outline{
  background: transparent;
  color: #111;
  border-color: currentColor;
}
.lunaria-btn--ghost{
  background: transparent;
  color: #fff;
  border-color: transparent;
}

/* サイズ（任意） */
.lunaria-btn--sm{ padding: .5em .9em; font-weight: 600; }
.lunaria-btn--lg{ padding: .8em 1.25em; font-weight: 700; }

/* 無効状態（任意） */
.lunaria-btn[aria-disabled="true"], .lunaria-btn.is-disabled{
  opacity: .6;
  pointer-events: none;
}

/* アイコン補助（任意） */
.lunaria-btn .icon{ width: 1em; height: 1em; display: inline-block; }
@media (prefers-reduced-motion: reduce){
  a.lunaria-btn, .lunaria-btn{ transition: none; }
}



/* ===== Lunaria 共通ボタン（変数はフォールバック指定に変更） ===== */
a.lunaria-btn, .lunaria-btn{
  /* ここでは --btn-* を定義しない。祖先/インラインの値を使い、なければ右側のデフォルトを採用 */
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5em;

  padding: .65em 1.1em;
  border-radius: var(--btn-radius, 12px);
  border: 1px solid transparent;
  background: var(--btn-bg, #111);
  color: var(--btn-fg, #fff);
  font-weight: 600;
  line-height: 1;
  text-decoration: none;
  box-shadow: var(--btn-shadow, 0 2px 6px rgba(0,0,0,.15));
  transition: background-color .2s ease, color .2s ease, transform .06s ease, box-shadow .2s ease;
}
a.lunaria-btn:visited{ color: var(--btn-fg, #fff); }

a.lunaria-btn:hover, .lunaria-btn:hover{
  transform: translateY(-1px);
  box-shadow: var(--btn-shadow-hover, 0 4px 12px rgba(0,0,0,.2));
  /* 背景色明るめに。変数未指定でも適用されるよう filter を使用 */
  filter: brightness(1.05);
}
a.lunaria-btn:active, .lunaria-btn:active{
  transform: translateY(0);
  box-shadow: var(--btn-shadow, 0 2px 6px rgba(0,0,0,.15));
  filter: none;
}
a.lunaria-btn:focus-visible, .lunaria-btn:focus-visible{
  outline: 2px solid var(--btn-focus, #5b9dd9);
  outline-offset: 2px;
}

/* バリアント */
.lunaria-btn--outline{
  background: transparent;
  color: var(--btn-outline-fg, #111);
  border-color: currentColor;
}
.lunaria-btn--ghost{
  background: transparent;
  color: var(--btn-ghost-fg, #fff);
  border-color: transparent;
}

/* サイズ（任意） */
.lunaria-btn--sm{ padding: .5em .9em; font-weight: 600; }
.lunaria-btn--lg{ padding: .8em 1.25em; font-weight: 700; }

/* 無効状態（任意） */
.lunaria-btn[aria-disabled="true"], .lunaria-btn.is-disabled{
  opacity: .6;
  pointer-events: none;
}

/* アイコン補助（任意） */
.lunaria-btn .icon{ width: 1em; height: 1em; display: inline-block; }

@media (prefers-reduced-motion: reduce){
  a.lunaria-btn, .lunaria-btn{ transition: none; }
}
Z