/*
 * yume テーマ 共通スタイル
 *
 * 現状は docs/contact.html (デザインモック) から抽出した最小スタイルのみ。
 * FLOCSS 移行に伴い f-/l-/p-/c-/u- に段階的に整理する予定。
 */

:root {
  --ink: #17211b;
  --muted: #69746e;
  --line: #e5e9e2;
  --paper: #fffdf7;
  --soft: #f4f7ee;
  --green: #2f8f62;
  --green-dark: #176247;
  --tomato: #dd614a;
  --sky: #3d83bd;
  --gold: #d8a12a;
  --shadow: 0 22px 60px rgba(21, 42, 29, .14);
  --theme-orange: #eb8b25;
  --theme-yellow: #f3d014;
  --theme-blue: #2cb3e4;
  --theme-green: #a6ce39;
  --theme-pink: #ef78a5;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: "Inter", "Noto Sans JP", system-ui, sans-serif;
  color: var(--ink);
  background: var(--paper);
  line-height: 1.7;
  overflow-x: hidden;
}

a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }

h2 {
  margin: 8px 0 0;
  font-size: clamp(28px, 4vw, 50px);
  line-height: 1.18;
  font-weight: 900;
  text-wrap: balance;
}

.section {
  padding: clamp(70px, 9vw, 116px) clamp(18px, 4vw, 54px);
  position: relative;
  overflow: hidden;
  background: var(--section-bg, var(--paper));
}

.theme-blue { --section-bg: #f5fcff; --section-color: var(--theme-blue); }

.wrap { width: min(1180px, 100%); margin: 0 auto; }

.main-cta {
  background: #fff;
  border: 2px solid var(--tomato);
  border-radius: 16px;
  padding: clamp(40px, 6vw, 64px) clamp(24px, 5vw, 64px);
  text-align: center;
  position: relative;
  overflow: hidden;
  box-shadow: 0 20px 40px rgba(221, 97, 74, 0.1);
}
.main-cta::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0; height: 8px;
  background: var(--tomato);
}
.main-cta h2 {
  margin: 0 0 24px;
  font-size: clamp(26px, 4vw, 42px);
  font-weight: 900;
  color: var(--ink);
  line-height: 1.4;
}

.coming-soon {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 22px;
  margin-top: 16px;
}
.coming-soon-badge {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  color: var(--tomato);
  font-size: clamp(28px, 4.5vw, 48px);
  font-weight: 900;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  line-height: 1;
}
.coming-soon-badge .dot {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: var(--tomato);
  animation: comingSoonPulse 1.6s ease-in-out infinite;
}
.coming-soon-note {
  margin: 0;
  color: var(--muted);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.9;
  text-wrap: balance;
}
@keyframes comingSoonPulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: .35; transform: scale(.7); }
}
