<script setup>
defineProps({
  model: {
    type: Object,
    required: true,
  },
  routes: {
    type: Array,
    default: () => [],
  },
  sectionId: {
    type: String,
    default: "service-model",
  },
});
</script>

<template>
  <section :id="sectionId" class="bg-white py-16 md:py-20">
    <div class="container-gm">
      <div class="flex flex-col gap-5 md:flex-row md:items-end md:justify-between" data-reveal>
        <div class="max-w-3xl">
          <p class="text-sm uppercase tracking-[0.3em] text-[#999]">{{ model.eyebrow }}</p>
          <h2 class="section-title mt-4">{{ model.title }}</h2>
          <p class="mt-4 text-base leading-8 text-[#666]">{{ model.description }}</p>
        </div>
        <SectionRouteLinks :routes="routes" />
      </div>

      <div class="mt-10 grid gap-5 lg:grid-cols-3" data-stagger>
        <article
          v-for="stage in model.stages"
          :key="stage.phase"
          class="rounded-lg border border-gm-border bg-[#f7f8f7] p-6"
          data-stagger-item
        >
          <p class="text-[28px] font-semibold text-gm-green">{{ stage.phase }}</p>
          <h3 class="mt-4 text-[22px] font-semibold text-[#262626]">{{ stage.title }}</h3>
          <p class="mt-3 text-sm leading-7 text-[#666]">{{ stage.summary }}</p>

          <div class="mt-5 space-y-3">
            <div
              v-for="point in stage.points"
              :key="point"
              class="flex gap-3 text-sm text-[#555]"
            >
              <span class="mt-2 size-1.5 shrink-0 rounded-full bg-gm-green" />
              <span>{{ point }}</span>
            </div>
          </div>

          <NuxtLink :to="stage.href" class="mt-6 inline-flex items-center gap-2 text-sm font-medium text-gm-green">
            {{ stage.service }}
            <span aria-hidden="true">→</span>
          </NuxtLink>
          <p class="mt-4 font-mono text-[11px] text-[#999]">
            模型对应路径 {{ stage.path }}
          </p>
        </article>
      </div>
    </div>
  </section>
</template>
