/* ===== デザイントークン ===== */
:root {
  --bg: #e8e8e8;
  --font-sans:
    system-ui,
    -apple-system,
    "Helvetica Neue",
    "Hiragino Kaku Gothic ProN",
    "Noto Sans JP",
    Arial,
    sans-serif;
  --ease: cubic-bezier(0.4, 0, 0.2, 1);

  /* リキッドグラス調のサーフェス */
  --glass-panel: linear-gradient(
    135deg,
    rgba(255, 255, 255, 0.4) 0%,
    rgba(255, 255, 255, 0.1) 50%,
    rgba(255, 255, 255, 0.3) 100%
  );
  --glass-card: linear-gradient(
    135deg,
    rgba(255, 255, 255, 0.42) 0%,
    rgba(255, 255, 255, 0.12) 55%,
    rgba(255, 255, 255, 0.3) 100%
  );
  --glass-circle: linear-gradient(
    145deg,
    rgba(255, 255, 255, 0.4) 0%,
    rgba(255, 255, 255, 0.1) 100%
  );
  --glass-border: 1px solid rgba(255, 255, 255, 0.5);
  --glass-shadow:
    0 8px 32px rgba(0, 0, 0, 0.1),
    inset 0 1px 1px rgba(255, 255, 255, 0.6),
    inset 0 -1px 1px rgba(255, 255, 255, 0.2);
  --glass-shadow-lg:
    0 12px 36px rgba(0, 0, 0, 0.12),
    inset 0 1px 1px rgba(255, 255, 255, 0.6),
    inset 0 -1px 1px rgba(255, 255, 255, 0.2);
}

/* ===== リセット ===== */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

/* ===== コンテンツページ（contact / privacy）共通レイアウト ===== */
.content-page {
  min-height: 100vh;
  background: var(--bg);
  font-family: var(--font-sans);
  color: rgba(0, 0, 0, 0.78);
  display: flex;
  flex-direction: column;
  align-items: center;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* 戻るボタン（円形ガラス） */
.back-button {
  position: fixed;
  top: clamp(16px, 4vh, 32px);
  left: clamp(16px, 4vw, 32px);
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: center;
  width: clamp(48px, 12vw, 56px);
  height: clamp(48px, 12vw, 56px);
  border-radius: 50%;
  color: rgba(0, 0, 0, 0.7);
  text-decoration: none;
  background: var(--glass-circle);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: var(--glass-border);
  box-shadow: var(--glass-shadow);
  transition: all 0.3s var(--ease);
}

.back-button:hover {
  transform: scale(1.08) translateY(-2px);
  color: rgba(0, 0, 0, 0.9);
  box-shadow:
    0 12px 28px rgba(0, 0, 0, 0.14),
    inset 0 1px 2px rgba(255, 255, 255, 0.7);
}

.back-button:active {
  transform: scale(1.02);
}

.back-button svg {
  width: clamp(22px, 5.5vw, 26px);
  height: clamp(22px, 5.5vw, 26px);
  filter: drop-shadow(0 1px 1px rgba(255, 255, 255, 0.5));
}

/* ページ共通レイアウト */
.page {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(24px, 5vh, 40px);
}

.page-title {
  font-size: clamp(26px, 6vw, 38px);
  font-weight: 700;
  letter-spacing: 0.04em;
  color: rgba(0, 0, 0, 0.82);
  text-align: center;
  text-shadow: 0 1px 1px rgba(255, 255, 255, 0.6);
}

/* ガラスカード（ページ側で padding と中身のスタイルを上書き） */
.card {
  width: 100%;
  border-radius: clamp(20px, 5vw, 32px);
  background: var(--glass-card);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  border: var(--glass-border);
  box-shadow: var(--glass-shadow-lg);
}

/* フッター */
.site-footer {
  display: flex;
  align-items: center;
  gap: clamp(8px, 2vw, 12px);
  font-size: clamp(11px, 2.6vw, 13px);
  font-weight: 500;
  letter-spacing: 0.02em;
  color: rgba(0, 0, 0, 0.5);
  text-shadow: 0 1px 1px rgba(255, 255, 255, 0.6);
}

.content-page .site-footer {
  margin-top: clamp(32px, 6vh, 56px);
}

.site-footer .sep {
  opacity: 0.45;
}

.site-footer a {
  color: rgba(0, 0, 0, 0.65);
  text-decoration: none;
  transition: color 0.2s ease;
}

.site-footer a:hover {
  color: rgba(0, 0, 0, 0.9);
  text-decoration: underline;
}
