/*
 * Copyright (c) 2026 AIRISH LLC
 * All Rights Reserved.
 *
 * This source code is proprietary and confidential.
 * Use is permitted only with explicit authorization from AIRISH LLC.
 * See the LICENSE file for details.
 */
/* ============================================================
   base.css — リセット / 基本タイポ / フォーカス / prose
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }
html { font-size: var(--fs-root); -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation-duration: .001ms !important; transition-duration: .001ms !important; } }

body {
  font-family: var(--font-body);
  color: var(--ink);
  background: var(--bg);
  line-height: var(--lh);
  font-feature-settings: "palt" 1;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

h1, h2, h3, h4 { font-family: var(--font-display); line-height: var(--lh-tight); font-weight: 700; color: var(--ink); }
a { color: var(--ocean); text-decoration: none; }
a:hover { color: var(--ocean-hover); text-decoration: underline; text-underline-offset: 2px; }
img { max-width: 100%; height: auto; display: block; }
strong { font-weight: 700; }
time, .num { font-family: var(--font-num); font-feature-settings: "tnum" 1; }

button { font: inherit; cursor: pointer; }
input, select, textarea { font: inherit; color: inherit; }

/* キーボードフォーカスのみリング表示 */
:focus-visible { outline: none; box-shadow: var(--ring); border-radius: var(--r-sm); }

/* スキップリンク */
.skip-link {
  position: absolute; left: 8px; top: -48px; z-index: 100;
  background: var(--ink); color: #fff; padding: 10px 16px; border-radius: var(--r);
  transition: top .15s ease;
}
.skip-link:focus { top: 8px; color: #fff; text-decoration: none; }

.container { width: 100%; max-width: var(--container); margin-inline: auto; padding-inline: var(--gut); }
.muted { color: var(--ink-mute); }
.h-sub { font-size: 1.15rem; margin: var(--sp-6) 0 var(--sp-3); }

/* prose: 本文HTML（管理者入力） */
.prose { max-width: var(--container-narrow); }
.prose > * + * { margin-top: 1.1em; }
.prose h2 { font-size: 1.5rem; margin-top: 1.8em; padding-bottom: .35em; border-bottom: 2px solid var(--sand-deep); }
.prose h3 { font-size: 1.2rem; margin-top: 1.5em; color: var(--ocean-deep); }
.prose p { line-height: var(--lh); }
.prose ul, .prose ol { padding-left: 1.4em; }
.prose li + li { margin-top: .4em; }
.prose a { text-decoration: underline; text-underline-offset: 2px; }
.prose img { border-radius: var(--r); margin-block: 1.2em; }
.prose blockquote { border-left: 3px solid var(--ocean); padding: .2em 0 .2em 1em; color: var(--ink-soft); }
