/* ===== base / reset / tokens ===== */
* { margin: 0; padding: 0; box-sizing: border-box; }

html {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

:root {
  --ac-text: #1d1d1f;
  --ac-text-2: #6e6e73;
  --ac-blue: #0071e3;       /* filled button */
  --ac-link: #06c;          /* text link blue */
  --ac-gray-bg: #f5f5f7;    /* light section bg */
  --ac-content: 980px;      /* Apple content width */

  /* Design spacing tokens */
  --space-xs: 4px;
  --space-sm: 8px;
  --space-md: 12px;
  --space-lg: 16px;
  --space-xl: 20px;
  --space-2xl: 24px;
  --space-3xl: 32px;

  /* Design typography tokens */
  --fs-caption: 0.8125rem;  /* 13px */
  --fs-body: 1rem;          /* 16px */
  --fs-subheading: 1.0625rem; /* 17px */
  --fs-title: 1.3125rem;    /* 21px */
  --fs-display: 1.5rem;     /* 24px */
}

body {
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", "Helvetica Neue", "PingFang TC", Arial, sans-serif;
  color: var(--ac-text);
  background-color: #fff;
  letter-spacing: -0.01em;
}

a { text-decoration: none; color: inherit; }

/* ===== shared button / cta primitives ===== */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: clamp(1rem, 1.6vw, 1.0625rem);
  line-height: 1.4;
  font-weight: 500;
  letter-spacing: -0.01em;
  border-radius: 980px;
  padding: 0.85em 1.7em;
  transition: all 0.2s ease;
  cursor: pointer;
  white-space: nowrap;
  border: 1px solid transparent;
  height: 3.1em;
  min-height: 44px;
}
.btn-pill-blue {
  background-color: var(--ac-blue);
  color: #fff;
  border: 1px solid transparent;
}
.btn-pill-blue:hover {
  background-color: #0077ed;
}
.btn-pill-outline {
  background-color: transparent;
  color: var(--ac-blue);
  border: 1px solid var(--ac-blue);
}
.btn-pill-outline:hover {
  background-color: var(--ac-blue);
  color: #fff;
}

/* blue chevron text link, Apple "進一步了解 ›" style */
.ac-cta {
  display: inline-block;
  color: var(--ac-link);
  font-size: clamp(0.95rem, 1.6vw, 1.0625rem);
  line-height: 1.2;
  font-weight: 500;
  letter-spacing: -0.01em;
  transition: all 0.2s ease;
  cursor: pointer;
}
.ac-cta::after { content: "\2009\203A"; }
.ac-cta:hover { text-decoration: underline; }

/* ===== Section ① — Global nav ===== */

.global-nav {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: 44px;
  background: rgba(29, 29, 31, 0.8);
  -webkit-backdrop-filter: saturate(180%) blur(20px);
  backdrop-filter: saturate(180%) blur(20px);
  z-index: 9999;
}

.global-nav .nav-list {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 44px;
  max-width: 1024px;
  margin: 0 auto;
  padding: 0 clamp(16px, 4vw, 22px);
  list-style: none;
  gap: clamp(6px, 1.5vw, 12px);
}

.global-nav .nav-item {
  display: flex;
  align-items: center;
  height: 44px;
}

.global-nav .nav-item a {
  display: block;
  color: #f5f5f7;
  opacity: 0.92;
  font-size: clamp(1rem, 1.6vw, 1.0625rem);
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: -0.01em;
  padding: clamp(8px, 1.2vw, 12px) clamp(10px, 1.4vw, 14px);
  text-decoration: none;
  white-space: nowrap;
  transition: opacity 0.2s ease;
}

.global-nav .nav-item a:hover {
  opacity: 1;
}

.global-nav .nav-item-logo a,
.global-nav .nav-item-search a,
.global-nav .nav-item-bag a {
  padding: 0 clamp(8px, 1.2vw, 12px);
  display: flex;
  align-items: center;
  justify-content: center;
  height: 44px;
}

.global-nav .icon-apple,
.global-nav .icon-search,
.global-nav .icon-bag {
  display: block;
  height: auto;
  vertical-align: middle;
  opacity: 0.92;
  transition: opacity 0.2s ease;
}

.global-nav .nav-item a:hover .icon-apple,
.global-nav .nav-item a:hover .icon-search,
.global-nav .nav-item a:hover .icon-bag {
  opacity: 1;
}

.global-nav .icon-apple { width: clamp(16px, 1.8vw, 18px); }
.global-nav .icon-search { width: clamp(16px, 1.8vw, 18px); }
.global-nav .icon-bag { width: clamp(15px, 1.8vw, 17px); }

@media (max-width: 833px) {
  .nav-list { gap: clamp(10px, 2vw, 14px); overflow-x: auto; justify-content: flex-start; padding: 0 clamp(12px, 3vw, 16px); }
  .global-nav .nav-item a { font-size: clamp(0.95rem, 1.4vw, 1rem); padding: clamp(8px, 1vw, 10px) clamp(8px, 1.2vw, 12px); }
}

@media (max-width: 480px) {
  .global-nav .nav-item a { font-size: clamp(0.9rem, 1.2vw, 0.95rem); padding: clamp(6px, 1vw, 8px) clamp(6px, 1vw, 8px); }
}

/* --- Hero: WWDC26 --- */
.hero {
  position: relative;
  height: clamp(340px, 50vw, 480px);
  margin-top: 44px;
  background: #000;
  overflow: hidden;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
}

.hero::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background:
    radial-gradient(ellipse 180vw 110vh at center, rgba(100, 150, 255, 0.25) 0%, rgba(100, 150, 255, 0.08) 40%, transparent 75%),
    radial-gradient(ellipse 200vw 120vh at center, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.3) 100%),
    linear-gradient(180deg, transparent 0%, rgba(0, 0, 0, 0.55) 100%);
  z-index: 5;
  pointer-events: none;
}

.hero-visual {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: clamp(280px, 85vw, 750px);
  height: auto;
  max-width: 100%;
  pointer-events: none;
  filter: drop-shadow(0 0 80px rgba(120, 160, 255, 0.7))
    drop-shadow(0 0 150px rgba(180, 200, 255, 0.4))
    drop-shadow(0 0 200px rgba(100, 120, 200, 0.25));
  z-index: 1;
}

.hero-visual img {
  display: block;
  width: 100%;
  height: auto;
  background: transparent;
  mix-blend-mode: screen;
}

.hero-content {
  position: relative;
  width: 100%;
  max-width: var(--ac-content);
  margin-inline: auto;
  padding-inline: clamp(16px, 4vw, 22px);
  z-index: 10;
  text-align: center;
}

.hero-title {
  font-size: clamp(48px, 9vw, 68px);
  font-weight: 600;
  line-height: 1.05;
  letter-spacing: -0.01em;
  margin: 0;
  background: linear-gradient(180deg, #f5f5f7 0%, #c4c4c9 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5);
  -webkit-text-stroke: 0.5px rgba(0, 0, 0, 0.3);
}

.hero-subtitle {
  color: #f5f5f7;
  font-size: clamp(20px, 3.8vw, 26px);
  font-weight: 500;
  line-height: 1.2;
  margin: 12px 0 0;
  text-shadow: 0 1px 8px rgba(0, 0, 0, 0.6), 0 2px 4px rgba(0, 0, 0, 0.4);
}

.hero-copy {
  color: #f5f5f7;
  font-size: clamp(16px, 2.8vw, 19px);
  font-weight: 400;
  line-height: 1.4;
  margin: 6px 0 0;
  text-shadow: 0 1px 6px rgba(0, 0, 0, 0.5);
}

.hero-content .btn {
  margin-top: 16px;
}

.hero-pause {
  position: absolute;
  bottom: clamp(16px, 4vw, 22px);
  right: clamp(16px, 4vw, 22px);
  width: 36px;
  height: 36px;
  padding: 0;
  border: none;
  border-radius: 50%;
  background: rgba(80, 80, 80, 0.55);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background 0.2s ease;
  z-index: 30;
  min-width: 36px;
  min-height: 36px;
}

.hero-pause:hover {
  background: rgba(110, 110, 110, 0.7);
}

.pause-bars {
  display: inline-block;
  width: 8px;
  height: 9px;
  border-left: 2px solid #fff;
  border-right: 2px solid #fff;
}

/* --- Section ① responsive --- */
@media (max-width: 833px) {
  .hero { height: clamp(300px, 45vw, 420px); }
  .hero-visual { width: clamp(240px, 70vw, 400px); }
  .hero-content { padding-inline: clamp(16px, 4vw, 22px); }
  .hero-title { font-size: clamp(38px, 7vw, 52px); }
  .hero-subtitle { font-size: clamp(18px, 3.4vw, 23px); margin-top: 10px; }
  .hero-pause { bottom: clamp(16px, 4vw, 22px); right: clamp(16px, 4vw, 22px); }
}

@media (max-width: 480px) {
  .hero { height: clamp(280px, 60vw, 360px); }
  .hero-visual { width: clamp(180px, 75vw, 320px); }
  .hero-content { padding-inline: 16px; }
  .hero-title { font-size: clamp(32px, 6.2vw, 44px); }
  .hero-subtitle { font-size: clamp(16px, 3vw, 20px); margin-top: 8px; }
  .hero-copy { font-size: clamp(14px, 2.4vw, 16px); margin-top: 4px; }
  .hero-content .btn { font-size: clamp(14px, 2vw, 15px); margin-top: 12px; }
  .hero-pause { width: 32px; height: 32px; min-width: 32px; min-height: 32px; bottom: clamp(16px, 4vw, 22px); right: clamp(16px, 4vw, 22px); }
}

/* ===== iPhone Section (ip-section) ===== */
.ip-section {
  background-color: var(--ac-gray-bg);
  width: 100%;
  text-align: center;
  position: relative;
  padding: clamp(32px, 6vw, 48px) 0 clamp(32px, 6vw, 48px);
  overflow: hidden;
}

.ip-content {
  max-width: var(--ac-content);
  margin: 0 auto;
  padding: 0 clamp(16px, 4vw, 22px);
  position: relative;
  z-index: 1;
}

.ip-title {
  font-size: clamp(36px, 5.5vw, 48px);
  line-height: 1.08;
  font-weight: 600;
  color: var(--ac-text);
  letter-spacing: -0.003em;
  margin: 0;
}

.ip-subtitle {
  font-size: clamp(17px, 3vw, 21px);
  line-height: 1.38;
  font-weight: 400;
  color: var(--ac-text);
  margin-top: 6px;
}

.ip-actions {
  display: flex;
  justify-content: center;
  gap: clamp(12px, 2vw, 16px);
  margin-top: clamp(14px, 2vw, 18px);
}

.ip-picture {
  position: relative;
  width: 100%;
  max-width: clamp(420px, 60vw, 620px);
  margin: clamp(20px, 4vw, 28px) auto 0;
  padding: 0 clamp(16px, 4vw, 28px);
  display: block;
  line-height: 0;
  aspect-ratio: 1 / 1;
}

.ip-image {
  display: block;
  width: 100%;
  height: 100%;
  max-width: 1200px;
  object-fit: contain;
  margin: 0 auto;
}

@media (max-width: 833px) {
  .ip-section {
    padding: clamp(28px, 5vw, 40px) 0 clamp(28px, 5vw, 40px);
  }

  .ip-title {
    font-size: clamp(32px, 4.5vw, 40px);
  }

  .ip-subtitle {
    font-size: clamp(16px, 2.8vw, 19px);
  }

  .ip-picture {
    margin: clamp(16px, 3vw, 24px) auto 0;
    padding: 0 clamp(12px, 3vw, 20px);
    max-width: clamp(360px, 70vw, 520px);
    aspect-ratio: 1 / 1;
  }

  .ip-image {
    width: 100%;
    height: 100%;
  }
}

@media (max-width: 480px) {
  .ip-section {
    padding: clamp(24px, 4vw, 32px) 0 clamp(24px, 4vw, 32px);
  }

  .ip-title {
    font-size: clamp(28px, 4vw, 36px);
  }

  .ip-subtitle {
    font-size: clamp(15px, 2.5vw, 18px);
  }

  .ip-picture {
    margin: clamp(12px, 2vw, 20px) auto 0;
    padding: 0 clamp(12px, 3vw, 16px);
    max-width: 86vw;
    aspect-ratio: 1 / 1;
  }
}

/* ===== MacBook Air Section (mba-section) ===== */
.mba-section {
  background: linear-gradient(180deg, #d6e7f7 0%, #e8f1fb 45%, #f3f8fd 100%);
  width: 100%;
  text-align: center;
  padding: clamp(32px, 6vw, 48px) clamp(16px, 4vw, 22px) clamp(32px, 6vw, 48px);
  overflow: hidden;
}

.mba-content {
  max-width: var(--ac-content);
  margin: 0 auto;
  padding: 0 clamp(16px, 4vw, 22px);
}

.mba-title {
  font-size: clamp(36px, 5.5vw, 48px);
  font-weight: 600;
  color: var(--ac-text);
  line-height: 1.04;
  letter-spacing: -0.003em;
  margin: 0;
}

.mba-subtitle {
  font-size: clamp(17px, 3vw, 21px);
  font-weight: 400;
  color: var(--ac-text);
  line-height: 1.19;
  margin-top: 6px;
}

.mba-actions {
  display: flex;
  justify-content: center;
  gap: clamp(12px, 2vw, 16px);
  margin-top: clamp(14px, 2vw, 18px);
}

.mba-image {
  display: block;
  margin: clamp(20px, 4vw, 28px) auto 0;
  width: 100%;
  max-width: 100%;
  height: 100%;
  background: transparent;
  object-fit: contain;
  padding: 0 clamp(16px, 4vw, 28px);
  aspect-ratio: 16 / 9;
}

@media (max-width: 833px) {
  .mba-section {
    padding: clamp(28px, 5vw, 40px) clamp(16px, 4vw, 22px) clamp(28px, 5vw, 40px);
  }

  .mba-title {
    font-size: clamp(32px, 4.5vw, 40px);
  }

  .mba-subtitle {
    font-size: clamp(16px, 2.8vw, 19px);
  }

  .mba-image {
    margin: clamp(16px, 3vw, 24px) auto 0;
    width: 100%;
    height: 100%;
    padding: 0 clamp(12px, 3vw, 20px);
    aspect-ratio: 16 / 9;
  }
}

@media (max-width: 480px) {
  .mba-section {
    padding: clamp(24px, 4vw, 32px) clamp(16px, 3vw, 16px) clamp(24px, 4vw, 32px);
  }

  .mba-title {
    font-size: clamp(28px, 4vw, 36px);
  }

  .mba-subtitle {
    font-size: clamp(15px, 2.5vw, 18px);
  }

  .mba-image {
    margin: clamp(12px, 2vw, 20px) auto 0;
    width: 100%;
    height: 100%;
    padding: 0 clamp(12px, 3vw, 16px);
    aspect-ratio: 16 / 9;
  }
}

/* ===== promo card grid (pg-grid) ===== */
.pg-grid {
  background: #fff;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  max-width: var(--ac-content);
  margin: 0 auto;
  padding: clamp(20px, 4vw, 40px);
}

.pg-cell {
  text-align: center;
  padding: clamp(24px, 4vw, 36px) clamp(18px, 3.5vw, 32px);
  min-height: clamp(220px, 32vh, 300px);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border-radius: 12px;
  position: relative;
  overflow: hidden;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
  gap: clamp(12px, 2.2vw, 18px);
}

/* Per-cell tinted gradients with subtle radial highlights */
.pg-cell:nth-child(1) {
  background: linear-gradient(135deg, #f5f5f7 0%, #edf4f8 100%);
}
.pg-cell:nth-child(1)::before {
  content: "";
  position: absolute;
  top: -40%;
  right: -20%;
  width: 300px;
  height: 300px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(13, 110, 253, 0.08) 0%, transparent 70%);
  pointer-events: none;
}

.pg-cell:nth-child(2) {
  background: linear-gradient(135deg, #f5f5f7 0%, #f9f0f5 100%);
}
.pg-cell:nth-child(2)::before {
  content: "";
  position: absolute;
  bottom: -30%;
  left: -15%;
  width: 280px;
  height: 280px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255, 107, 107, 0.06) 0%, transparent 70%);
  pointer-events: none;
}

.pg-cell:nth-child(3) {
  background: linear-gradient(135deg, #f5f5f7 0%, #f0f8f4 100%);
}
.pg-cell:nth-child(3)::before {
  content: "";
  position: absolute;
  top: -35%;
  left: -18%;
  width: 290px;
  height: 290px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(34, 197, 94, 0.07) 0%, transparent 70%);
  pointer-events: none;
}

.pg-cell:nth-child(4) {
  background: linear-gradient(135deg, #f5f5f7 0%, #fef5ed 100%);
}
.pg-cell:nth-child(4)::before {
  content: "";
  position: absolute;
  bottom: -25%;
  right: -20%;
  width: 310px;
  height: 310px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(245, 158, 11, 0.07) 0%, transparent 70%);
  pointer-events: none;
}

.pg-cell:nth-child(5) {
  background: linear-gradient(135deg, #f5f5f7 0%, #f8f0fc 100%);
}
.pg-cell:nth-child(5)::before {
  content: "";
  position: absolute;
  top: -40%;
  right: -15%;
  width: 300px;
  height: 300px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(168, 85, 247, 0.06) 0%, transparent 70%);
  pointer-events: none;
}

.pg-cell:nth-child(6) {
  background: linear-gradient(135deg, #f5f5f7 0%, #eff6fc 100%);
}
.pg-cell:nth-child(6)::before {
  content: "";
  position: absolute;
  bottom: -30%;
  left: -20%;
  width: 295px;
  height: 295px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(14, 165, 233, 0.07) 0%, transparent 70%);
  pointer-events: none;
}

.pg-cell:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08);
}

.pg-title {
  margin: 0 auto;
  max-width: 90%;
  font-size: clamp(24px, 3.5vw, 34px);
  line-height: 1.4;
  font-weight: 600;
  color: var(--ac-text);
  letter-spacing: -0.012em;
  position: relative;
  z-index: 1;
}

.pg-title-sm {
  margin: 0 auto;
  max-width: 90%;
  font-size: clamp(20px, 3vw, 28px);
  font-weight: 600;
  line-height: 1.45;
  letter-spacing: -0.014em;
  color: var(--ac-text);
}

.pg-sub {
  margin: 0 auto;
  max-width: 90%;
  font-size: clamp(16px, 2.2vw, 19px);
  line-height: 1.6;
  font-weight: 400;
  color: #424245;
  position: relative;
  z-index: 1;
}

.pg-actions {
  margin-top: auto;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: clamp(12px, 2vw, 16px);
  position: relative;
  z-index: 1;
}

/* smaller buttons scoped to this grid - inherit base .btn sizing */
.pg-actions .btn {
  /* inherits all properties from .btn base class */
}

@media (max-width: 833px) {
  .pg-grid {
    grid-template-columns: 1fr;
    gap: clamp(8px, 2vw, 10px);
    padding: clamp(12px, 3vw, 16px);
  }
  .pg-cell {
    min-height: clamp(200px, 50vw, 280px);
    padding: clamp(18px, 3.5vw, 24px) clamp(14px, 2.8vw, 16px);
    gap: clamp(10px, 2vw, 14px);
  }
  .pg-title {
    font-size: clamp(20px, 4vw, 24px);
    line-height: 1.35;
    margin: 0 auto;
    max-width: 90%;
  }
  .pg-title-sm {
    font-size: clamp(17px, 3.5vw, 20px);
    line-height: 1.4;
    margin: 0 auto;
    max-width: 90%;
  }
  .pg-sub {
    font-size: clamp(14px, 2.2vw, 16px);
    margin: 0 auto;
    margin-inline: auto;
    max-width: 90%;
  }
  .pg-actions {
    margin: 0 auto;
    gap: clamp(12px, 2vw, 14px);
  }
}

/* ===== Apple Story carousel (car-section) ===== */
.car-section {
  background: #fff;
  padding: clamp(12px, 2vw, 24px) 0;
  overflow: hidden;
}

.car-stage {
  max-width: var(--ac-content);
  margin: 0 auto;
  padding-inline: clamp(16px, 4vw, 40px);
  padding-block: clamp(32px, 6vw, 48px);
  height: auto;
  background: linear-gradient(135deg, #1a1a1a 0%, #2d2d2d 50%, #0f3460 100%);
  border-radius: 12px;
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: clamp(8px, 2vw, 14px);
}

.car-label {
  display: block;
  font-size: clamp(13px, 2.2vw, 18px);
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ac-blue);
  margin: 0;
}

.car-title {
  font-size: clamp(32px, 5.5vw, 48px);
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -0.015em;
  color: #f5f5f7;
  margin: 0;
  max-width: 90%;
}

.car-cta {
  margin-top: clamp(4px, 1vw, 10px);
}

.car-controls {
  max-width: var(--ac-content);
  margin: clamp(24px, 4vw, 36px) auto 0;
  padding-inline: clamp(16px, 4vw, 40px);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(16px, 3vw, 24px);
}

.car-dots {
  display: flex;
  align-items: center;
  gap: clamp(8px, 2vw, 12px);
}

.car-dot {
  width: 12px;
  height: 12px;
  padding: 6px;
  border: none;
  border-radius: 50%;
  background: #b8b8bd;
  cursor: pointer;
  transition: background 0.2s ease, transform 0.2s ease;
  min-width: 24px;
  min-height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.car-dot:hover {
  background: var(--ac-text-2);
  transform: scale(1.15);
}

.car-dot.is-active {
  background: var(--ac-text);
}

.car-play {
  width: 36px;
  height: 36px;
  padding: 0;
  border: none;
  border-radius: 50%;
  background: #a0a0a5;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s ease;
}

.car-play:hover {
  background: var(--ac-text-2);
}

.car-play-bars {
  position: relative;
  width: 10px;
  height: 10px;
}

.car-play-bars::before,
.car-play-bars::after {
  content: "";
  position: absolute;
  top: 0;
  width: 2.5px;
  height: 10px;
  background: #fff;
  border-radius: 1px;
}

.car-play-bars::before { left: 0; }
.car-play-bars::after { right: 0; }

@media (max-width: 833px) {
  .car-section { padding: clamp(8px, 2vw, 18px) 0; }
  .car-stage {
    padding-block: clamp(24px, 5vw, 36px);
    border-radius: 8px;
    gap: clamp(6px, 1.5vw, 10px);
  }
  .car-title { font-size: clamp(24px, 4.5vw, 32px); }
  .car-label { font-size: clamp(12px, 2vw, 16px); }
  .car-controls { margin-top: clamp(18px, 3vw, 28px); gap: clamp(12px, 2vw, 18px); }
  .car-dot { width: 10px; height: 10px; min-width: 20px; min-height: 20px; }
  .car-play { width: 32px; height: 32px; }
  .car-play-bars { width: 8px; height: 8px; }
  .car-play-bars::before,
  .car-play-bars::after { width: 2px; height: 8px; }
}

/* ===== Footer — .ft section ===== */

.ft {
  background: var(--ac-gray-bg);
  color: var(--ac-text-2);
  padding: clamp(32px, 6vw, 48px) 0 clamp(24px, 4vw, 32px);
}

.ft-container {
  max-width: var(--ac-content);
  margin: 0 auto;
  padding: 0 clamp(16px, 4vw, 22px);
}

/* --- PART A — Legal / Footnotes --- */

.ft-legal {
  padding: clamp(16px, 3vw, 24px) 0 0;
}

.ft-legal p {
  font-size: clamp(1rem, 2.2vw, 1.0625rem);
  line-height: 1.85;
  font-weight: 400;
  color: var(--ac-text);
  margin: 0 0 clamp(12px, 2.5vw, 16px);
}

.ft-legal p:last-child {
  margin-bottom: 0;
}

/* --- PART B — Sitemap Grid --- */

.ft-sitemap {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: clamp(20px, 4vw, 32px) clamp(24px, 5vw, 32px);
  border-top: 1px solid #d2d2d7;
  margin-top: clamp(20px, 4vw, 28px);
  padding: clamp(20px, 4vw, 28px) 0;
}

.ft-h {
  font-size: clamp(1rem, 2vw, 1.0625rem);
  font-weight: 600;
  line-height: 1.85;
  color: var(--ac-text);
  margin: 0 0 clamp(12px, 2.5vw, 16px);
  letter-spacing: -0.01em;
}

.ft-h-stack {
  margin-top: clamp(16px, 3vw, 24px);
}

.ft-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.ft-list li {
  line-height: 1.85;
  margin-bottom: clamp(8px, 1.5vw, 12px);
}

.ft-list a {
  font-size: clamp(0.95rem, 2.2vw, 1.0625rem);
  line-height: 1.85;
  font-weight: 400;
  color: var(--ac-text);
  text-decoration: none;
  transition: color 0.2s ease;
}

.ft-list a:hover {
  color: var(--ac-text);
  text-decoration: underline;
}

/* --- PART C — Bottom Copyright / Policy Bar --- */

.ft-bottom {
  border-top: 1px solid #d2d2d7;
  padding: clamp(14px, 2.5vw, 18px) 0 clamp(12px, 2vw, 16px);
  margin-top: clamp(16px, 3vw, 24px);
}

.ft-more {
  font-size: clamp(0.95rem, 2.2vw, 1.0625rem);
  line-height: 1.85;
  color: var(--ac-text);
  margin: clamp(10px, 2vw, 14px) 0;
}

.ft-more a {
  color: var(--ac-link);
  text-decoration: none;
  transition: color 0.2s ease;
}

.ft-more a:hover {
  text-decoration: underline;
}

.ft-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: clamp(8px, 1.5vw, 12px) 0;
  border-top: 1px solid #d2d2d7;
  padding-top: clamp(12px, 2.5vw, 16px);
  margin-top: clamp(12px, 2vw, 16px);
}

.ft-copy {
  font-size: clamp(0.95rem, 2.2vw, 1.0625rem);
  line-height: 1.85;
  color: var(--ac-text);
  margin: 0;
  padding-right: clamp(10px, 2vw, 14px);
  border-right: 1px solid #d2d2d7;
}

.ft-policy {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  margin: 0;
  padding: 0 0 0 clamp(8px, 1.5vw, 12px);
}

.ft-policy li {
  font-size: clamp(0.95rem, 2.2vw, 1.0625rem);
  line-height: 1.85;
}

.ft-policy li + li {
  margin-left: clamp(6px, 1.2vw, 10px);
  padding-left: clamp(6px, 1.2vw, 10px);
  border-left: 1px solid #d2d2d7;
}

.ft-policy a {
  font-size: clamp(0.95rem, 2.2vw, 1.0625rem);
  color: var(--ac-text);
  text-decoration: none;
  transition: color 0.2s ease;
}

.ft-policy a:hover {
  color: var(--ac-text);
  text-decoration: underline;
}

.ft-region {
  font-size: clamp(0.95rem, 2.2vw, 1.0625rem);
  line-height: 1.85;
  color: var(--ac-text);
  margin: 0 0 0 auto;
}

/* --- Footer Responsive --- */

@media (max-width: 833px) {
  .ft {
    padding: clamp(24px, 5vw, 40px) 0 clamp(20px, 3vw, 28px);
  }

  .ft-sitemap {
    grid-template-columns: repeat(2, 1fr);
    gap: clamp(16px, 3vw, 24px) clamp(16px, 3vw, 24px);
    padding: clamp(16px, 3vw, 24px) 0;
    margin-top: clamp(16px, 3vw, 24px);
  }

  .ft-h {
    font-size: clamp(0.95rem, 2vw, 1rem);
    margin-bottom: clamp(10px, 2vw, 14px);
  }

  .ft-list li {
    margin-bottom: clamp(8px, 1.5vw, 10px);
  }

  .ft-legal {
    padding: clamp(12px, 2vw, 20px) 0 0;
  }

  .ft-legal p {
    font-size: clamp(0.95rem, 2vw, 1rem);
    line-height: 1.85;
    margin-bottom: clamp(10px, 2vw, 14px);
  }

  .ft-bar {
    gap: clamp(8px, 1.5vw, 10px) 0;
    padding-top: clamp(10px, 2vw, 14px);
    margin-top: clamp(10px, 2vw, 14px);
  }

  .ft-copy {
    padding-right: clamp(10px, 2vw, 12px);
    font-size: clamp(0.95rem, 2vw, 1rem);
    line-height: 1.85;
  }

  .ft-policy li,
  .ft-policy a {
    font-size: clamp(0.95rem, 2vw, 1rem);
    line-height: 1.85;
  }

  .ft-region {
    font-size: clamp(0.95rem, 2vw, 1rem);
    line-height: 1.85;
  }
}

@media (max-width: 480px) {
  .ft {
    padding: clamp(20px, 4vw, 32px) 0 clamp(16px, 3vw, 24px);
  }

  .ft-sitemap {
    grid-template-columns: 1fr;
    gap: clamp(16px, 3vw, 20px) 0;
    padding: clamp(14px, 2vw, 20px) 0;
    margin-top: clamp(12px, 2vw, 18px);
  }

  .ft-h {
    font-size: clamp(0.95rem, 2vw, 1rem);
    margin-bottom: clamp(10px, 2vw, 12px);
  }

  .ft-legal {
    padding: clamp(10px, 2vw, 16px) 0 0;
  }

  .ft-legal p {
    font-size: clamp(0.95rem, 2vw, 1rem);
    line-height: 1.85;
    margin-bottom: clamp(10px, 2vw, 12px);
  }

  .ft-list a {
    font-size: clamp(0.95rem, 2vw, 1rem);
    line-height: 1.85;
  }

  .ft-bar {
    gap: clamp(6px, 1.2vw, 8px) 0;
    padding-top: clamp(10px, 1.8vw, 12px);
    margin-top: clamp(10px, 1.8vw, 12px);
    flex-direction: column;
    align-items: flex-start;
  }

  .ft-copy {
    padding-right: 0;
    border-right: none;
    border-bottom: 1px solid #d2d2d7;
    padding-bottom: clamp(10px, 2vw, 12px);
    margin-bottom: clamp(10px, 2vw, 12px);
    font-size: clamp(0.95rem, 2vw, 1rem);
    line-height: 1.85;
  }

  .ft-policy {
    padding-left: 0;
    flex-direction: column;
    align-items: flex-start;
    width: 100%;
  }

  .ft-policy li {
    font-size: clamp(0.95rem, 2vw, 1rem);
    line-height: 1.85;
  }

  .ft-policy li + li {
    margin-left: 0;
    padding-left: 0;
    border-left: none;
    border-top: 1px solid #d2d2d7;
    padding-top: clamp(8px, 1.5vw, 10px);
    margin-top: clamp(8px, 1.5vw, 10px);
  }

  .ft-policy a {
    font-size: clamp(0.95rem, 2vw, 1rem);
    line-height: 1.85;
  }

  .ft-region {
    width: 100%;
    margin-left: 0;
    font-size: clamp(0.95rem, 2vw, 1rem);
    line-height: 1.85;
    padding-top: clamp(10px, 2vw, 12px);
    border-top: 1px solid #d2d2d7;
  }
}
