/* Under Banyan / Oboeru — shared styles
   Palette + type from the Oboeru brand guide (Japanese indigo + torii vermillion). */

:root {
  --indigo-900: #1B1F3B;
  --indigo-700: #2D3561;
  --indigo-500: #3F4C8A;
  --indigo-300: #7B88B8;
  --indigo-100: #C8CDE6;
  --indigo-50:  #ECEEF7;

  --vermillion-600: #C4432B;
  --vermillion-500: #E05A3A;
  --vermillion-400: #EE7B5A;
  --vermillion-100: #FDDDD4;

  --sage-500: #5B9A7D;
  --sage-100: #D4EDDF;

  --warm-white: #FAF9F7;
  --warm-gray-100: #F2F0ED;
  --warm-gray-300: #D4D0CA;
  --warm-gray-500: #8A857D;
  --warm-gray-700: #4A4640;
  --warm-gray-900: #2A2724;

  --maxw: 1000px;
}

* { margin: 0; padding: 0; box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  font-family: 'Inter', 'Noto Sans JP', system-ui, sans-serif;
  background: var(--warm-white);
  color: var(--warm-gray-900);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

.container { max-width: var(--maxw); margin: 0 auto; padding: 0 1.5rem; }

a { color: var(--indigo-500); text-decoration: none; }
a:hover { text-decoration: underline; }

.jp { font-family: 'Noto Sans JP', sans-serif; font-weight: 400; }

h1, h2, h3 { font-family: 'DM Sans', 'Inter', sans-serif; letter-spacing: -0.02em; line-height: 1.2; }

/* ── Nav ── */
.nav {
  position: sticky; top: 0; z-index: 20;
  background: rgba(250, 249, 247, 0.85);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--warm-gray-300);
}
.nav .container {
  display: flex; align-items: center; justify-content: space-between;
  height: 64px;
}
.brand {
  font-family: 'DM Sans', sans-serif; font-weight: 700; font-size: 1.35rem;
  color: var(--indigo-900); letter-spacing: -0.02em; display: inline-flex; align-items: baseline;
}
.brand:hover { text-decoration: none; }
.brand .spark {
  width: 8px; height: 8px; border-radius: 50%;
  background: var(--vermillion-500); display: inline-block; margin-left: 3px;
}
.nav-links { display: flex; gap: 1.75rem; }
.nav-links a { color: var(--warm-gray-700); font-size: 0.95rem; font-weight: 500; }
.nav-links a:hover { color: var(--indigo-700); text-decoration: none; }

/* ── Hero ── */
.hero {
  background: var(--indigo-900);
  color: white;
  text-align: center;
  padding: 6rem 1.5rem 5.5rem;
  position: relative;
  overflow: hidden;
}
.hero::before {
  content: ""; position: absolute; top: -30%; left: 50%; transform: translateX(-50%);
  width: 640px; height: 640px; max-width: 120vw;
  background: radial-gradient(circle, rgba(224,90,58,0.16) 0%, rgba(224,90,58,0) 62%);
  pointer-events: none;
}
.hero-inner { position: relative; z-index: 1; max-width: 680px; margin: 0 auto; }
.hero h1 {
  font-size: clamp(2.75rem, 7vw, 4rem); font-weight: 700; margin-bottom: 0.25rem;
}
.hero .jp-sub {
  color: var(--indigo-300); font-size: clamp(1.25rem, 3.5vw, 1.6rem);
  letter-spacing: 0.15em; margin-bottom: 1.75rem;
}
.hero p.lead {
  color: var(--indigo-100); font-size: 1.15rem; line-height: 1.7;
  max-width: 560px; margin: 0 auto 2.25rem;
}
.pill {
  display: inline-flex; align-items: center; gap: 0.5rem;
  background: rgba(255,255,255,0.08); border: 1px solid rgba(255,255,255,0.18);
  color: var(--indigo-100); font-size: 0.85rem; font-weight: 500;
  padding: 0.5rem 1rem; border-radius: 999px; letter-spacing: 0.02em;
}
.pill .dot { width: 7px; height: 7px; border-radius: 50%; background: var(--sage-500); }

/* ── Sections ── */
.section { padding: 5rem 0; }
.section-alt { background: var(--warm-gray-100); }
.section h2 { font-size: clamp(1.6rem, 4vw, 2rem); color: var(--indigo-900); text-align: center; }
.section .sub {
  text-align: center; color: var(--warm-gray-500); max-width: 560px;
  margin: 0.75rem auto 3rem; font-size: 1.02rem;
}

/* Features grid */
.features { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.5rem; max-width: 680px; margin: 0 auto; }
.feature {
  background: var(--warm-white); border: 1px solid var(--warm-gray-300);
  border-radius: 16px; padding: 2rem 1.6rem; transition: transform .15s ease, box-shadow .15s ease;
}
.feature:hover { transform: translateY(-3px); box-shadow: 0 12px 30px rgba(27,31,59,0.08); }
.feature .ic {
  width: 44px; height: 44px; border-radius: 12px; background: var(--indigo-50);
  display: flex; align-items: center; justify-content: center; margin-bottom: 1.1rem;
  color: var(--indigo-700); font-size: 1.4rem;
}
.feature h3 { font-size: 1.15rem; color: var(--indigo-900); margin-bottom: 0.5rem; }
.feature p { color: var(--warm-gray-700); font-size: 0.97rem; }

/* Quote / philosophy band */
.band { background: var(--indigo-700); color: white; text-align: center; padding: 4rem 1.5rem; }
.band .jp { font-size: clamp(1.4rem, 4vw, 2.1rem); color: white; margin-bottom: 0.6rem; overflow-wrap: anywhere; line-break: normal; }
.band .en { color: var(--indigo-100); font-size: 1.05rem; font-style: italic; }

/* ── Content pages (about / legal) ── */
.page { padding: 3.5rem 0 4.5rem; }
.page-head { border-bottom: 1px solid var(--warm-gray-300); padding-bottom: 1.5rem; margin-bottom: 2rem; }
.page-head h1 { font-size: clamp(1.9rem, 5vw, 2.5rem); color: var(--indigo-900); }
.page-head .meta { color: var(--warm-gray-500); margin-top: 0.5rem; font-size: 0.95rem; }
.prose { max-width: 720px; }
.prose h2 { font-size: 1.3rem; color: var(--indigo-700); margin: 2.25rem 0 0.6rem; }
.prose h3 { font-size: 1.08rem; color: var(--indigo-900); margin: 1.5rem 0 0.4rem; }
.prose p { margin-bottom: 1rem; color: var(--warm-gray-700); }
.prose ul { margin: 0 0 1rem 1.25rem; color: var(--warm-gray-700); }
.prose li { margin-bottom: 0.5rem; }
.prose strong { color: var(--warm-gray-900); }
.callout {
  background: var(--sage-100); border-left: 3px solid var(--sage-500);
  padding: 1rem 1.25rem; border-radius: 8px; margin: 1.25rem 0; color: var(--warm-gray-900);
}

/* ── Footer ── */
.footer { background: var(--indigo-900); color: var(--indigo-300); padding: 3rem 0 2.5rem; }
.footer .container { display: flex; flex-wrap: wrap; gap: 1.5rem; justify-content: space-between; align-items: flex-start; }
.footer .brand { color: white; }
.footer .brand .spark { background: var(--vermillion-500); }
.footer-tag { color: var(--indigo-300); font-size: 0.9rem; margin-top: 0.5rem; max-width: 320px; }
.footer-links { display: flex; flex-direction: column; gap: 0.5rem; }
.footer-links a { color: var(--indigo-100); font-size: 0.92rem; }
.footer-bottom {
  border-top: 1px solid rgba(255,255,255,0.1); margin-top: 2rem; padding-top: 1.5rem;
  color: var(--indigo-300); font-size: 0.85rem; text-align: center;
}

@media (max-width: 720px) {
  .features { grid-template-columns: 1fr; }
  .nav-links { gap: 1.1rem; }
  .section { padding: 3.5rem 0; }
}
