/* ============================================================
   結いの輪 LP — Design tokens
   ============================================================ */
:root {
  /* Palette (extracted + harmonized from logo) */
  --bg: #faf6ef;            /* warm washi off-white */
  --bg-2: #f3ede2;          /* slightly deeper washi for alternating bands */
  --bg-3: #ece4d4;          /* darkest warm bg */
  --ink: #2b2823;           /* warm near-black */
  --ink-2: #4a463e;
  --ink-3: #7a7468;
  --line: #e4dccd;

  --coral: #e89274;
  --coral-deep: #d27a5a;
  --sage: #9bbb83;
  --sage-deep: #79a062;
  --pink: #e8889a;
  --teal: #7ba0ac;
  --teal-deep: #5d8693;

  /* Default primary (overridden by tweaks) */
  --primary: var(--coral);
  --primary-deep: var(--coral-deep);
  --primary-soft: #fceee7;

  /* Shadows */
  --shadow-sm: 0 1px 2px rgba(70, 50, 30, 0.04), 0 2px 6px rgba(70, 50, 30, 0.04);
  --shadow-md: 0 2px 6px rgba(70, 50, 30, 0.05), 0 8px 24px rgba(70, 50, 30, 0.06);
  --shadow-lg: 0 4px 12px rgba(70, 50, 30, 0.06), 0 20px 50px rgba(70, 50, 30, 0.08);

  /* Radius */
  --r-sm: 10px;
  --r-md: 16px;
  --r-lg: 24px;
  --r-xl: 36px;

  /* Type */
  --font-sans: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", system-ui, sans-serif;
  --font-round: "Zen Maru Gothic", "Hiragino Maru Gothic ProN", "Noto Sans JP", system-ui, sans-serif;
  --font-mincho: "Shippori Mincho", "Yu Mincho", "Hiragino Mincho ProN", serif;
  --font-mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", monospace;
}

* { box-sizing: border-box; }

html, body {
  margin: 0;
  padding: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: var(--font-sans);
  font-feature-settings: "palt";
  font-size: 16px;
  line-height: 1.8;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

body {
  overflow-x: hidden;
}

img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font: inherit; cursor: pointer; border: 0; background: none; color: inherit; }

/* ============================================================
   Reusable
   ============================================================ */
.container {
  width: 100%;
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 32px;
}
@media (max-width: 720px) {
  .container { padding: 0 20px; }
}

.eyebrow {
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ink-3);
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.eyebrow::before {
  content: "";
  width: 22px;
  height: 1px;
  background: currentColor;
  display: inline-block;
}

.section-title {
  font-family: var(--font-round);
  font-weight: 700;
  font-size: clamp(28px, 3.4vw, 42px);
  line-height: 1.4;
  letter-spacing: 0.02em;
  margin: 14px 0 0;
  color: var(--ink);
  text-wrap: balance;
}
.section-title .accent { color: var(--primary-deep); }

.section-lead {
  font-family: var(--font-sans);
  font-size: 16px;
  line-height: 2;
  color: var(--ink-2);
  max-width: 640px;
  margin-top: 18px;
  text-wrap: pretty;
}

/* ============================================================
   Buttons
   ============================================================ */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 14px 26px;
  border-radius: 999px;
  font-family: var(--font-round);
  font-weight: 500;
  font-size: 15px;
  transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
  white-space: nowrap;
}
.btn-primary {
  background: var(--primary);
  color: #fff;
  box-shadow: 0 6px 16px rgba(210, 122, 90, 0.28);
}
.btn-primary:hover { transform: translateY(-1px); box-shadow: 0 10px 22px rgba(210, 122, 90, 0.32); background: var(--primary-deep); }
.btn-ghost {
  background: transparent;
  color: var(--ink);
  border: 1px solid var(--line);
}
.btn-ghost:hover { background: #fff; border-color: var(--ink-3); }
.btn .arrow {
  display: inline-block;
  width: 18px;
  height: 1px;
  background: currentColor;
  position: relative;
}
.btn .arrow::after {
  content: "";
  position: absolute;
  right: 0;
  top: -3px;
  width: 7px;
  height: 7px;
  border-top: 1px solid currentColor;
  border-right: 1px solid currentColor;
  transform: rotate(45deg);
}

/* ============================================================
   Placeholder (illustration stub)
   ============================================================ */
.illus-placeholder {
  position: relative;
  border-radius: var(--r-lg);
  background:
    repeating-linear-gradient(
      135deg,
      rgba(232, 146, 116, 0.07) 0 14px,
      rgba(232, 146, 116, 0) 14px 28px
    ),
    var(--bg-2);
  border: 1px dashed rgba(120, 100, 70, 0.25);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--ink-3);
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: 0.08em;
  text-align: center;
  padding: 16px;
}
.illus-placeholder .tag {
  position: absolute;
  top: 14px;
  left: 14px;
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.1em;
  color: var(--ink-3);
  text-transform: uppercase;
  opacity: 0.7;
}
.illus-placeholder .label {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  line-height: 1.6;
}
.illus-placeholder .label .ja {
  font-family: var(--font-round);
  font-size: 13px;
  color: var(--ink-2);
  letter-spacing: 0.04em;
}

/* organic background blobs */
.blob {
  position: absolute;
  border-radius: 50%;
  filter: blur(40px);
  opacity: 0.35;
  pointer-events: none;
  z-index: 0;
}
