/* =============================================
   RESET
   ============================================= */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; font-size: 16px; scroll-padding-top: var(--header-h); }
body {
  font-family: var(--font-ja);
  font-weight: 400;
  font-size: 15px;
  line-height: 1.9;
  color: var(--color-text);
  background: var(--color-bg);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
body.menu-open { overflow: hidden; }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
button { border: none; background: none; cursor: pointer; font-family: inherit; }
ul, ol { list-style: none; }

/* =============================================
   LAYOUT
   ============================================= */
.container {
  width: 100%;
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 40px;
}

/* =============================================
   SHARED
   ============================================= */
.section-label {
  display: inline-block;
  font-family: var(--font-hand);
  font-size: 22px;
  font-weight: 600;
  letter-spacing: 0.02em;
  margin-bottom: 8px;
  position: relative;
}
.section-label--pink { color: var(--color-pink); }
.section-label--blue { color: var(--color-blue); }
.section-label--purple { color: var(--color-purple); }
.section-label--orange { color: var(--color-orange); }
.section-label--green { color: var(--color-green); }

.section-title {
  font-size: clamp(26px, 3.5vw, 38px);
  font-weight: 800;
  line-height: 1.45;
  color: var(--color-black);
  margin-bottom: 16px;
}
.section-lead {
  font-size: 14px;
  color: var(--color-muted);
  line-height: 1.85;
  max-width: 560px;
}

/* Section separator (dotted line) */
.section-sep {
  border: none;
  border-top: 2px dashed var(--color-border);
  margin: 0;
}

/* =============================================
   ILLUSTRATIONS (img-based)
   ============================================= */
.illust-img {
  display: block;
  margin: 0 auto;
  object-fit: contain;
}
