:root {
  --bg-primary: #fdf8f0;
  --text-primary: #2d2418;
  --text-secondary: #6b5c4d;
  --accent: #a87c42;
  --font-sans: 'Inter', 'Noto Sans JP', sans-serif;
}

body {
  background-color: var(--bg-primary);
  color: var(--text-primary);
  font-family: var(--font-sans);
  line-height: 1.8;
}

.text-sub {
  color: var(--text-secondary);
}

.accent-color {
  color: var(--accent);
}

.header {
  background-color: transparent;
  transition: background-color 0.3s ease, box-shadow 0.3s ease;
}

.header-scrolled {
  background-color: rgba(253, 248, 240, 0.95);
  box-shadow: 0 2px 20px rgba(0, 0, 0, 0.08);
  backdrop-filter: blur(10px);
}

.hero-section {
  background: linear-gradient(135deg, var(--bg-primary) 0%, #f5ead6 50%, #e0e8e0 100%);
}

.cta-section {
  background: linear-gradient(135deg, #f5ead6 0%, var(--bg-primary) 50%, #e0e8e0 100%);
}

/* Fade-in animation */
.fade-in {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}

.fade-in.visible {
  opacity: 1;
  transform: translateY(0);
}

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes pulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.05); }
}

details summary {
  list-style: none;
}

details summary::-webkit-details-marker {
  display: none;
}

details summary::after {
  content: '+';
  float: right;
  font-size: 1.25rem;
  color: var(--accent);
  transition: transform 0.3s ease;
}

details[open] summary::after {
  content: '-';
}

@media (max-width: 768px) {
  .hero-section {
    min-height: 80vh;
    padding-top: 5rem;
  }
}
