/* =========================================================
   Depth layer — 影・光で全体に奥行きを付ける上書きスタイル
   style.css / page.css / news.css / document.css の後に読み込む
   ========================================================= */
:root {
  --shadow-xs: 0 1px 2px rgba(10, 22, 40, 0.10), 0 4px 10px -2px rgba(10, 22, 40, 0.12);
  --shadow-sm: 0 2px 4px rgba(10, 22, 40, 0.08), 0 10px 24px -6px rgba(10, 22, 40, 0.20);
  --shadow-md: 0 3px 6px rgba(10, 22, 40, 0.08), 0 20px 44px -10px rgba(10, 22, 40, 0.28);
  --shadow-lg: 0 6px 12px rgba(10, 22, 40, 0.08), 0 40px 80px -20px rgba(10, 22, 40, 0.42);
  --shadow-hover: 0 8px 16px rgba(10, 22, 40, 0.10), 0 34px 64px -14px rgba(10, 22, 40, 0.38);
  --ease-lift: transform 0.3s ease, box-shadow 0.3s ease, background 0.3s, color 0.3s, border-color 0.3s;
}

/* ---------- Header ---------- */
header { box-shadow: 0 1px 0 rgba(10, 22, 40, 0.06), 0 12px 32px -12px rgba(10, 22, 40, 0.26); }
.header-cta { box-shadow: var(--shadow-xs); transition: var(--ease-lift); }
.header-cta:hover { transform: translateY(-1px); box-shadow: var(--shadow-sm); }

/* ---------- Buttons ---------- */
.btn-primary, .btn-secondary { transition: var(--ease-lift); }
.btn-primary:hover, .btn-secondary:hover { transform: translateY(-2px); }
.btn-primary { box-shadow: 0 12px 28px -8px rgba(21, 53, 92, 0.5); }
.btn-primary:hover { box-shadow: 0 18px 36px -10px rgba(31, 111, 184, 0.6); }
.btn-secondary { box-shadow: 0 12px 28px -10px rgba(0, 0, 0, 0.5); }

.slide-cta { box-shadow: var(--shadow-xs); transition: var(--ease-lift); }
.slide-cta:hover { transform: translateY(-2px); box-shadow: var(--shadow-sm); }

.carousel-btn { box-shadow: var(--shadow-xs); transition: var(--ease-lift); }
.carousel-btn:hover { transform: translateY(-2px); box-shadow: var(--shadow-sm); }

/* ---------- Hero ---------- */
.hero-portrait { box-shadow: var(--shadow-lg); }
.portrait-caption { box-shadow: 0 16px 36px -10px rgba(0, 0, 0, 0.65); }

/* ---------- Stats ---------- */
.stats {
  position: relative;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.9), inset 0 -14px 28px -18px rgba(10, 22, 40, 0.18);
}

/* ---------- Student results ---------- */
.results-track { padding: 20px 0 64px; }
.results-slider { margin-bottom: 12px; }
.result-card { box-shadow: var(--shadow-md); }
.result-card:hover { box-shadow: var(--shadow-hover); }
.result-card-highlight { box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8), 0 4px 10px -3px rgba(201, 169, 97, 0.5); }

/* ---------- Warning (SNS icons) ---------- */
.warning { box-shadow: inset 0 18px 30px -18px rgba(0, 0, 0, 0.8), inset 0 -18px 30px -18px rgba(0, 0, 0, 0.8); }
.sns-icons a { box-shadow: 0 10px 20px -6px rgba(0, 0, 0, 0.75), inset 0 1px 0 rgba(255, 255, 255, 0.08); }
.sns-icons a:hover { transform: translateY(-2px); }

/* ---------- About / Seminar ---------- */
.about-image--photo { box-shadow: var(--shadow-lg); }
.seminar-strip-item { box-shadow: var(--shadow-md); transition: var(--ease-lift); }
.seminar-strip-item:hover { transform: translateY(-4px); box-shadow: var(--shadow-hover); }

/* ---------- Services / Books carousels ---------- */
.carousel-viewport { box-shadow: var(--shadow-lg); }
.slide-image-photo { box-shadow: 0 32px 64px -16px rgba(0, 0, 0, 0.7); }

/* ---------- News (top page) ---------- */
.news-grid {
  max-width: 960px;
  background: var(--paper);
  padding: 8px 40px;
  box-shadow: var(--shadow-md);
}
.news-grid .news-item:last-child { border-bottom: none; }
.news-tag { box-shadow: 0 4px 10px -3px rgba(10, 22, 40, 0.45); }
.news-tag.media { box-shadow: none; }

/* ---------- Footer ---------- */
footer { box-shadow: inset 0 20px 32px -22px rgba(10, 22, 40, 0.3); }

/* ---------- Sub pages (contact / document / news) ---------- */
.contact-form { box-shadow: var(--shadow-lg); }
.info-card { box-shadow: var(--shadow-md); }
.form-input, .form-select, .form-textarea { box-shadow: inset 0 2px 4px rgba(10, 22, 40, 0.10); }
.faq-item { box-shadow: var(--shadow-xs); transition: var(--ease-lift); }
.faq-item:hover, .faq-item[open] { box-shadow: var(--shadow-sm); }
.doc-point { box-shadow: var(--shadow-sm); transition: var(--ease-lift); }
.doc-point:hover { transform: translateY(-4px); box-shadow: var(--shadow-hover); }
.news-article { box-shadow: var(--shadow-lg); }
.news-figure { box-shadow: inset 0 3px 14px rgba(10, 22, 40, 0.12); }
.news-cta { box-shadow: var(--shadow-md); }
.news-cta-btn { box-shadow: 0 12px 26px -8px rgba(201, 169, 97, 0.85); transition: var(--ease-lift); }
.news-cta-btn:hover { transform: translateY(-2px); }

@media (max-width: 640px) {
  .news-grid { padding: 4px 20px; }
  .carousel-viewport { box-shadow: var(--shadow-lg); }
}
@media (prefers-reduced-motion: reduce) {
  .btn-primary:hover, .btn-secondary:hover, .slide-cta:hover, .carousel-btn:hover,
  .seminar-strip-item:hover, .doc-point:hover, .header-cta:hover, .sns-icons a:hover,
  .news-cta-btn:hover { transform: none; }
}
