/* ============================================================
 * Doseclaw v3.0.2 — dc-fix.css
 * 全方位重構：
 *   (1) 修正字級系統（全頁 H1/H2/H3 中文長標題不破版）
 *   (2) 完整響應式 320 / 390 / 640 / 768 / 900 / 1280 六斷點
 *   (3) 圖片比例統一、object-fit cover、加 overlay 防殘留標籤
 *   (4) iOS Safari 滑動修復、安全區、touch target ≥ 44px
 * ============================================================ */

/* ---------- ROOT 變數覆寫 ----------
 * 原 global.css: --dc-fz-h1: clamp(2.2rem, 4.5vw, 3.6rem)
 * 問題：mobile 320 寬度下 2.2rem(35px) 中文長標題會吃滿並破版
 * 修正：用 vw 主導 + 較窄的 min/max
 */
:root {
  --dc-fz-h1: clamp(1.6rem, 4.2vw, 2.8rem);   /* 25.6 → 44.8 px */
  --dc-fz-h2: clamp(1.35rem, 2.6vw, 2rem);    /* 21.6 → 32 px */
  --dc-fz-h3: clamp(1.1rem, 1.7vw, 1.35rem);  /* 17.6 → 21.6 px */
}

/* ============== 0. iOS 滑動 / 容器兜底 ============== */
html, body {
  overflow-x: clip;
  max-width: 100%;
  -webkit-text-size-adjust: 100%;
}
#dcMain { display: block; width: 100%; }
#dcMain > section { box-sizing: border-box; max-width: 100%; }

.dc-hero,
.dc-section {
  box-sizing: border-box;
  padding-left: max(24px, env(safe-area-inset-left));
  padding-right: max(24px, env(safe-area-inset-right));
}
.dc-hero .dc-hero__grid,
.dc-section .dc-container {
  max-width: 1280px;
  margin: 0 auto;
  width: 100%;
}

/* ============== 1. HERO H1 — 全方位修正 ============== */
.dc-hero__text h1 {
  font-size: var(--dc-fz-h1);
  line-height: 1.25;
  letter-spacing: -.01em;
  font-weight: 800;
  word-break: keep-all;
  overflow-wrap: break-word;
  margin: 0 0 18px;
  color: var(--dc-primary);
}
/* hero <br> 在大屏保留斷行美感，小屏轉空格避免奇怪換行 */
.dc-hero__text h1 br {
  display: inline;
}
@media (min-width: 769px) {
  .dc-hero__text h1 br {
    display: block;
    content: "";
    margin-top: 4px;
  }
}

/* ============== 2. SECTION H2 ============== */
.dc-section__h2 {
  font-size: var(--dc-fz-h2);
  line-height: 1.3;
  word-break: keep-all;
  overflow-wrap: break-word;
  letter-spacing: -.01em;
}

/* ============== 3. Feature grid icon ============== */
.dc-feature__icon {
  width: 52px; height: 52px;
  border-radius: 12px;
  background: linear-gradient(135deg, rgba(255,107,26,.10), rgba(31,166,122,.10));
  color: var(--dc-primary);
  display: inline-flex;
  align-items: center; justify-content: center;
  margin-bottom: 14px;
  font-size: 0;
  flex-shrink: 0;
}
.dc-feature__icon svg { width: 28px; height: 28px; display: block; }

/* ============== 4. 圖片比例 + overlay 漸層 ============== */
.dc-hero__img,
.dc-usecase__img,
.dc-step__img,
.dc-solcard__img,
.dc-founder__img {
  position: relative;
  background: var(--dc-bg-2);
  overflow: hidden;
}

.dc-hero__img {
  width: 100%;
  max-width: 560px;
  aspect-ratio: 4 / 3;
  border-radius: var(--dc-radius-lg, 16px);
  box-shadow: var(--dc-shadow-lg, 0 12px 40px rgba(11,61,46,.12));
  margin-left: auto;
}
.dc-hero__img img,
.dc-usecase__img img,
.dc-step__img img,
.dc-solcard__img img,
.dc-founder__img img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  border-radius: 0;
  box-shadow: none;
}
/* 底部漸層 overlay — 蓋住 PPT 殘留品牌標籤 */
.dc-hero__img::after,
.dc-usecase__img::after,
.dc-solcard__img::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 30%;
  background: linear-gradient(to top, rgba(11,61,46,.18), transparent);
  pointer-events: none;
}

.dc-usecase__img  { aspect-ratio: 4 / 3; }
.dc-usecase__img img { min-height: 0 !important; }
.dc-step__img     {
  width: 100%; aspect-ratio: 4 / 3;
  border-radius: 10px;
  margin: 10px 0 14px;
}
.dc-solcard__img  { aspect-ratio: 4 / 3; border-radius: var(--dc-radius, 12px); }
.dc-founder__img  {
  width: 220px; aspect-ratio: 1 / 1;
  border-radius: 50%;
  display: block;
  box-shadow: var(--dc-shadow);
}
.dc-founder__img .dc-lightbox-link {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: inherit;
  overflow: hidden;
}
.dc-founder__img img {
  border-radius: 50%;
  object-position: center;
  transform: none;
  transform-origin: center;
}

/* ============== 5. Card / Component 中字標題 ============== */
.dc-feature__title,
.dc-solcard__h,
.dc-usecase__h,
.dc-founder__name {
  word-break: keep-all;
  overflow-wrap: break-word;
  line-height: 1.4;
}
.dc-step__h {
  word-break: keep-all;
  overflow-wrap: break-word;
  line-height: 1.4;
}

/* ============== 6. Contact form ============== */
.dc-cform__wrap {
  background: #fff;
  border-radius: var(--dc-radius-lg, 16px);
  padding: 32px;
  box-shadow: var(--dc-shadow, 0 6px 24px rgba(11,61,46,.06));
  max-width: 980px;
  margin: 0 auto;
}
.dc-cform__form { display: grid; gap: 18px; }
.dc-cform__row  { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.dc-cform__form label {
  display: flex; flex-direction: column; gap: 6px;
  font-size: .92rem; color: var(--dc-primary, #0B3D2E); font-weight: 600;
}
.dc-cform__form input,
.dc-cform__form select,
.dc-cform__form textarea {
  width: 100%;
  padding: 12px 14px;
  border: 1px solid var(--dc-line, #E5E7E1);
  border-radius: 10px;
  background: #FAFBF9;
  font-size: 1rem;
  font-family: inherit;
  color: var(--dc-ink, #1F2A24);
  transition: border-color .2s, background .2s;
  box-sizing: border-box;
}
.dc-cform__form input:focus,
.dc-cform__form select:focus,
.dc-cform__form textarea:focus {
  outline: none;
  border-color: var(--dc-accent, #FF6B1A);
  background: #fff;
}
.dc-cform__msg textarea { resize: vertical; min-height: 120px; }
.dc-cform__form button[type="submit"] { justify-self: start; margin-top: 8px; }

.dc-flash { padding: 12px 16px; border-radius: 10px; margin-bottom: 16px; font-weight: 600; }
.dc-flash--success { background: #E8F5EE; color: #0B3D2E; border-left: 4px solid #1FA67A; }
.dc-flash--error   { background: #FDECEC; color: #8A2222; border-left: 4px solid #D03B3B; }

/* ============================================================
 * RESPONSIVE — 六斷點
 * ≤1280px → 大平板 / 小桌機，hero 字級保持
 * ≤ 900px → 平板，nav 漢堡、grid 2 欄
 * ≤ 768px → 平板直向，全部 grid 1 欄
 * ≤ 640px → 大手機
 * ≤ 480px → 一般手機
 * ≤ 390px → iPhone 14 Pro
 * ============================================================ */

/* ---------- ≤ 1280px ---------- */
@media (max-width: 1280px) {
  .dc-hero { padding-top: 70px; padding-bottom: 56px; }
}

/* ---------- ≤ 900px : 平板 ---------- */
@media (max-width: 900px) {
  /* 漢堡內 nav */
  .dc-header__inner.open .dc-nav a {
    padding: 12px 4px;
    border-bottom: 1px solid #F0F1ED;
    font-size: 1rem;
  }
  .dc-header__inner.open .dc-nav a.dc-cta-btn--mobile {
    border-bottom: 0;
    padding: 13px 22px;
    color: #fff;
  }
  .dc-header__inner.open .dc-nav a:nth-last-child(3) { border-bottom: 0; }

  /* Hero 兩欄變一欄 */
  .dc-hero { padding: 48px 24px 40px; }
  .dc-hero__grid { grid-template-columns: 1fr; gap: 32px; }
  .dc-hero__text h1 { font-size: clamp(1.55rem, 4vw, 2.4rem); }
  .dc-hero__img { max-width: 100%; margin: 0 auto; }

  .dc-section { padding: 56px 0; }
  .dc-section__h2 { margin: 0 0 32px; }

  /* Founder 卡 */
  .dc-founder__card { padding: 24px; text-align: center; }
  .dc-founder__img  { width: 160px; margin: 0 auto; }
  .dc-founder__hl li { text-align: left; }
}

/* ---------- ≤ 768px : 平板直向 ---------- */
@media (max-width: 768px) {
  .dc-hero { padding: 36px 20px 32px; }
  .dc-hero__text h1 { font-size: clamp(1.5rem, 5.5vw, 2.1rem); }
  .dc-hero__text p.lead { font-size: 1rem; margin-bottom: 22px; line-height: 1.6; }
  .dc-hero__cta { gap: 10px; }
  .dc-hero__cta .dc-cta-btn { flex: 1 1 auto; justify-content: center; }

  .dc-section { padding: 48px 0; }
  .dc-section__h2 { font-size: clamp(1.3rem, 4vw, 1.7rem); margin: 0 0 28px; }

  /* Stats 2 欄 */
  .dc-stats { padding: 40px 0; }
  .dc-stats__grid { grid-template-columns: 1fr 1fr; gap: 16px; }
  .dc-stats__item { padding: 18px 12px; }
  .dc-stats__value { font-size: clamp(1.5rem, 6vw, 2rem); }
  .dc-stats__label { font-size: .88rem; }

  /* Feature grid 1 欄 */
  .dc-feature-grid__items { grid-template-columns: 1fr; gap: 16px; }
  .dc-feature { padding: 22px 20px; }
  .dc-feature__title { font-size: 1.05rem; }
  .dc-feature__text { font-size: .92rem; }

  .dc-callout__box { padding: 28px 22px; }
  .dc-callout__h { font-size: 1.1rem; }
  .dc-callout__t { font-size: .95rem; }

  .dc-cta__box { padding: 32px 22px; }
  .dc-cta__h { font-size: clamp(1.25rem, 4.5vw, 1.6rem); }
  .dc-cta__t { font-size: .95rem; }

  /* Solution card 1 欄 */
  .dc-solcard__row { grid-template-columns: 1fr; gap: 20px; padding: 20px; }
  .dc-solcard:nth-child(even) .dc-solcard__row { direction: ltr; }
  .dc-solcard__h { font-size: 1.15rem; }
  .dc-solcard__list li { padding: 7px 0 7px 26px; font-size: .92rem; }

  /* Steps 1 欄 */
  .dc-steps__grid { grid-template-columns: 1fr; gap: 28px; }
  .dc-step { padding: 26px 20px 20px; }

  /* Use case 1 欄 */
  .dc-usecase__card { grid-template-columns: 1fr; }
  .dc-usecase__body { padding: 22px; }
  .dc-usecase__h { font-size: 1.15rem; }
  .dc-usecase__metrics { grid-template-columns: 1fr 1fr; gap: 10px 14px; padding-top: 14px; }

  /* Capacity table 橫向滾 */
  .dc-captbl__wrap { padding: 12px; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .dc-captbl__table { font-size: .9rem; min-width: 480px; }
  .dc-captbl__table th, .dc-captbl__table td { padding: 11px 12px; }
  .dc-captbl__table th { width: 38%; }

  .dc-contactblk__box { padding: 22px; }

  .dc-founder__card { padding: 22px; }
  .dc-founder__img  { width: 140px; }
  .dc-founder__name { font-size: 1.25rem; }

  .dc-awards__grid { grid-template-columns: 1fr 1fr; gap: 14px; }

  .dc-cform__row { grid-template-columns: 1fr; gap: 14px; }
  .dc-cform__wrap { padding: 24px 20px; }
  .dc-cform__form { gap: 14px; }
  .dc-cform__form button[type="submit"] { justify-self: stretch; width: 100%; }

  /* Footer 2 欄 */
  .dc-footer { padding: 40px 18px 16px; margin-top: 48px; }
  .dc-footer__inner {
    grid-template-columns: 1fr 1fr;
    gap: 20px 24px;
    padding-bottom: 22px;
  }
  .dc-footer__brand   { grid-column: 1 / -1; }
  .dc-footer__contact { grid-column: 1 / -1; }
  .dc-footer__col h4 { font-size: .82rem; margin: 0 0 10px; letter-spacing: .04em; }
  .dc-footer__col ul li { padding: 2px 0; }
  .dc-footer__col ul li a { font-size: .85rem; }
  .dc-footer__col p { font-size: .82rem; margin: 4px 0; line-height: 1.55; }
  .dc-footer__brand img { height: 36px !important; }
  .dc-footer__tag { font-size: .82rem; margin: 10px 0 10px; line-height: 1.55; }
  .dc-footer__legal { font-size: .72rem; }
  .dc-footer__bar {
    font-size: .72rem;
    gap: 8px;
    padding-top: 14px;
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
  }
  .dc-footer__bar > div:first-child { line-height: 1.55; }
}

/* ---------- ≤ 640px : 大手機 ---------- */
@media (max-width: 640px) {
  .dc-hero, .dc-section { padding-left: 16px; padding-right: 16px; }
  .dc-hero { padding-top: 32px; padding-bottom: 28px; }
  .dc-hero__text h1 { font-size: clamp(1.4rem, 6.5vw, 1.95rem); line-height: 1.25; }
  .dc-hero__text p.lead { font-size: .96rem; margin-bottom: 20px; line-height: 1.6; }
  .dc-hero__cta { flex-direction: column; align-items: stretch; }
  .dc-hero__cta .dc-cta-btn { width: 100%; padding: 13px 18px; min-height: 44px; }

  .dc-section { padding: 40px 0; }
  .dc-section__h2 { font-size: clamp(1.2rem, 5vw, 1.55rem); margin: 0 0 24px; }

  /* Stats 緊湊 2 欄 */
  .dc-stats { padding: 32px 0; }
  .dc-stats__grid { gap: 12px; }
  .dc-stats__item { padding: 14px 10px; }
  .dc-stats__value { font-size: 1.5rem; }
  .dc-stats__label { font-size: .82rem; }
  .dc-stats__note  { font-size: .72rem; }

  .dc-solcard__row { padding: 16px; gap: 16px; }
  .dc-solcard__h { font-size: 1.05rem; }

  .dc-usecase__body { padding: 18px; }
  .dc-usecase__metrics { grid-template-columns: 1fr 1fr; gap: 10px; }
  .dc-usecase__metrics .k { font-size: .72rem; }
  .dc-usecase__metrics .v { font-size: .92rem; }

  .dc-captbl__table { font-size: .85rem; min-width: 420px; }
  .dc-captbl__table th, .dc-captbl__table td { padding: 10px; }

  .dc-contactblk__box { padding: 18px 16px; }
  .dc-contactblk__box p { font-size: .9rem; word-break: break-word; }

  .dc-founder__img { width: 120px; }
  .dc-founder__name { font-size: 1.15rem; }
  .dc-founder__role { font-size: .88rem; }
  .dc-founder__bio  { font-size: .92rem; }

  .dc-footer { padding: 36px 16px 14px; margin-top: 40px; }
  .dc-footer__inner {
    grid-template-columns: 1fr 1fr !important;
    gap: 16px 18px;
  }
  .dc-footer__brand,
  .dc-footer__contact { grid-column: 1 / -1; }
  .dc-footer__col h4 { font-size: .78rem; margin: 0 0 8px; }
  .dc-footer__col p, .dc-footer__col ul li a { font-size: .8rem; }
  .dc-footer__tag { font-size: .78rem; }
  .dc-footer__legal { font-size: .68rem; }

  .dc-header__inner { padding: 10px 14px; }
  .dc-logo img { height: 32px; }
  .dc-logo__zh { font-size: .95rem; }
  .dc-logo__en { font-size: .7rem; }
}

/* ---------- ≤ 480px : 一般手機 ---------- */
@media (max-width: 480px) {
  .dc-hero__text h1 { font-size: clamp(1.35rem, 7vw, 1.8rem); }
  .dc-section__h2  { font-size: clamp(1.15rem, 5.4vw, 1.5rem); }
}

/* ---------- ≤ 390px : iPhone 14 Pro / SE ---------- */
@media (max-width: 390px) {
  .dc-hero, .dc-section { padding-left: 14px; padding-right: 14px; }
  .dc-hero__text h1 {
    font-size: clamp(1.25rem, 7.5vw, 1.7rem);
    line-height: 1.28;
  }
  .dc-section__h2 { font-size: clamp(1.1rem, 5.8vw, 1.4rem); margin: 0 0 20px; }
  .dc-stats__value { font-size: 1.35rem; }
  .dc-logo__en { display: none; }
  .dc-section { padding: 36px 0; }
}

/* ---------- 觸控目標 ≥ 44px ---------- */
@media (hover: none) and (pointer: coarse) {
  .dc-cta-btn,
  .dc-nav a,
  .dc-header__lang button,
  .dc-cform__form button[type="submit"] {
    min-height: 44px;
  }
}
