/* ===========================================================================
   AETHER Pack 02 — Spotlight
   カーソルで下層が透ける演出＋「地層」の世界観をページ全体に広げる。
   依存ゼロ。ヒーローは .sp-*、ページ全体は .aeo-pack-<slug> の下だけを触る。
   =========================================================================== */

/* ── トークン上書き（テーマ全体の色がここで決まる） ───────── */
.aeo-has-pack {
  --accent:  #c97a3c;
  --accent2: #8a5a2b;
  --ink:     #1a1512;
  --bg:      #0d0a08;
  --bg2:     #161110;
}

/* ===================== ヒーロー ===================== */
.sp {
  position: relative;
  height: 100svh;
  min-height: 560px;
  overflow: hidden;
  background: #0d0a08;
  isolation: isolate;
}
.sp-under, .sp-over {
  position: absolute; inset: 0;
  background-size: cover;
  background-position: center;
}
/* 上層に穴をあける。--x/--y はJSがカーソル位置で更新する */
.sp-over {
  -webkit-mask-image: radial-gradient(circle var(--sp-r, 190px) at var(--sp-x, 50%) var(--sp-y, 55%),
                      transparent 0 62%, #000 100%);
          mask-image: radial-gradient(circle var(--sp-r, 190px) at var(--sp-x, 50%) var(--sp-y, 55%),
                      transparent 0 62%, #000 100%);
  transition: -webkit-mask-image .18s linear, mask-image .18s linear;
}
.sp-veil {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,.62) 0%, rgba(0,0,0,.30) 42%, rgba(0,0,0,.78) 100%);
}

.sp-inner {
  position: relative; z-index: 2;
  height: 100%;
  display: flex; flex-direction: column; justify-content: center;
  max-width: 1180px; margin: 0 auto;
  padding: 0 clamp(20px, 6vw, 60px);
  color: #fff;
  pointer-events: none;   /* 穴の演出を邪魔しない。ボタンだけ戻す */
}
.sp-eyebrow {
  font-size: .78rem; letter-spacing: .3em; font-weight: 700;
  color: #c97a3c; margin: 0 0 22px;
  animation: sp-rise .8s cubic-bezier(.2,.7,.3,1) both;
}
.sp-title {
  font-size: clamp(2.4rem, 7vw, 5.4rem);
  line-height: 1.06; letter-spacing: -.035em; font-weight: 700;
  margin: 0 0 26px; max-width: 16em;
  animation: sp-rise .9s .12s cubic-bezier(.2,.7,.3,1) both;
}
.sp-title em { font-style: italic; font-weight: 400; opacity: .92; }
.sp-lead {
  font-size: clamp(.95rem, 1.5vw, 1.08rem); line-height: 2;
  max-width: 34em; margin: 0; color: rgba(255,255,255,.82);
  animation: sp-rise .9s .24s cubic-bezier(.2,.7,.3,1) both;
}
.sp-cta {
  display: flex; gap: 12px; flex-wrap: wrap; margin-top: 36px;
  animation: sp-rise .9s .36s cubic-bezier(.2,.7,.3,1) both;
}
.sp-btn {
  pointer-events: auto;
  display: inline-flex; align-items: center; justify-content: center;
  padding: 15px 34px; border-radius: 999px;
  background: #c97a3c; color: #0b0906;
  font-size: .95rem; font-weight: 700; text-decoration: none;
  transition: transform .25s cubic-bezier(.2,.7,.3,1), box-shadow .25s;
}
.sp-btn:hover { transform: translateY(-2px); box-shadow: 0 14px 32px rgba(0,0,0,.4); }
.sp-btn--ghost { background: transparent; color: #fff; border: 1.5px solid rgba(255,255,255,.6); }
.sp-btn--ghost:hover { background: rgba(255,255,255,.1); }

.sp-hint {
  position: absolute; z-index: 2; right: clamp(20px, 6vw, 60px); bottom: 96px;
  display: flex; align-items: center; gap: 10px;
  font-size: .72rem; letter-spacing: .18em; color: rgba(255,255,255,.6);
  transition: opacity .5s;
}
.sp.is-touched .sp-hint { opacity: 0; }
.sp-hint__ring {
  width: 26px; height: 26px; border-radius: 50%;
  border: 1.5px solid #c97a3c;
  animation: sp-pulse 2s ease-in-out infinite;
}
.sp-scroll {
  position: absolute; z-index: 2; left: 50%; bottom: 26px; transform: translateX(-50%);
  font-size: .64rem; letter-spacing: .3em; color: rgba(255,255,255,.5);
}

@keyframes sp-rise { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }
@keyframes sp-pulse { 0%,100% { transform: scale(1); opacity: .9; } 50% { transform: scale(1.25); opacity: .35; } }

/* ===================== ページ全体へ世界観を広げる ===================== */

/* 断面のような細い罫を、セクションの境目に引く */
.aeo-has-pack .aeo-section + .aeo-section { border-top: 1px solid color-mix(in srgb, var(--ink) 10%, transparent); }

/* 見出しの英字ラベルを地層のラベルらしく */
.aeo-has-pack .aeo-sec-head__en {
  display: inline-block;
  padding: 4px 12px; border: 1px solid color-mix(in srgb, var(--accent) 45%, transparent);
  border-radius: 999px;
}

/* カード類に薄い層の重なりを出す */
.aeo-has-pack .aeo-works__card,
.aeo-has-pack .aeo-voice__card,
.aeo-has-pack .aeo-faq__item {
  position: relative;
  background: linear-gradient(180deg, color-mix(in srgb, var(--accent) 5%, transparent), transparent);
}
.aeo-has-pack .aeo-works__card::before,
.aeo-has-pack .aeo-voice__card::before {
  content: ""; position: absolute; left: 0; top: 0; width: 3px; height: 100%;
  background: linear-gradient(180deg, var(--accent), transparent);
  opacity: .5;
}

/* 「選ばれる理由」の番号を地層の深度らしく */
.aeo-has-pack .aeo-strength__no::after {
  content: "m"; font-size: .38em; margin-left: .18em; opacity: .5;
}

/* スタッフ写真を少し沈ませる */
.aeo-has-pack .aeo-staff__photo { filter: saturate(.9) contrast(1.04); }

@media (prefers-reduced-motion: reduce) {
  .sp-eyebrow, .sp-title, .sp-lead, .sp-cta { animation: none; }
  .sp-hint__ring { animation: none; }
  .sp-over { transition: none; }
  .sp-btn:hover { transform: none; }
}
