
  :root {
    --bg: #F7F7F6;
    --panel: #EDEEEC;
    --ink: #1A2223;
    --ink-mid: #465557;
    --ink-soft: #6C7B7D;
    --line: #E0E2DF;
    --line-soft: #E9EBE8;
    --accent: #0C6F75;
    --cta-ink: #FFFFFF;
    --heat: #C2551F;
    --heat-bg: #F5EFE9;

    --f-body: 'Noto Sans TC', system-ui, -apple-system, sans-serif;
    --f-mono: 'IBM Plex Mono', ui-monospace, monospace;
  }

  @media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) {
      --bg: #0F1415;
      --panel: #171E1F;
      --ink: #E4E9E9;
      --ink-mid: #C2CFD0;
      --ink-soft: #9CABAC;
      --line: #2E3839;
      --line-soft: #1C2324;
      --accent: #3AB2B8;
      --cta-ink: #05191B;
      --heat: #EE8552;
      --heat-bg: #1D1613;
    }
  }
  :root[data-theme="dark"] {
    --bg: #0F1415;
    --panel: #171E1F;
    --ink: #E4E9E9;
    --ink-mid: #C2CFD0;
    --ink-soft: #9CABAC;
    --line: #2E3839;
    --line-soft: #1C2324;
    --accent: #3AB2B8;
    --cta-ink: #05191B;
    --heat: #EE8552;
    --heat-bg: #1D1613;
  }

  * { box-sizing: border-box; }

  body {
    background: var(--bg);
    color: var(--ink);
    font-family: var(--f-body);
    font-size: 16px;
    line-height: 1.9;
    -webkit-font-smoothing: antialiased;
  }

  .wrap { max-width: 60rem; margin: 0 auto; padding: 0 1.75rem; }

  h2 {
    font-weight: 700;
    font-size: clamp(1.3rem, 3.2vw, 1.7rem);
    line-height: 1.45;
    letter-spacing: -0.005em;
    margin: 0 0 1.4rem;
    text-wrap: balance;
  }
  h3 { font-size: 1.14rem; font-weight: 700; margin: 0 0 0.45rem; }
  p { margin: 0 0 1.1rem; }
  .lede { color: var(--ink-mid); max-width: 42rem; font-size: 1.06rem; line-height: 1.9; }

  /* ═══ hero ═══ */
  .hero .wrap { padding-top: 2rem; padding-bottom: 4.5rem; }

  .brand {
    display: flex; align-items: center;
    justify-content: space-between;
    gap: 1.4rem 2rem; flex-wrap: wrap;
    padding-bottom: 4rem;
  }
  .brand { align-items: center; }
  .brandmark { display: flex; align-items: center; gap: 1.5rem; }
  .nameblock { display: flex; flex-direction: column; }
  .logochip {
    background: #241A18;
    border-radius: 6px;
    padding: 0.85rem 1.25rem;
    display: flex; align-items: center;
    flex: none;
  }
  .logochip img { display: block; height: 82px; width: auto; }
  .brand .cat { font-size: 1.12rem; font-weight: 500; color: var(--ink-mid); letter-spacing: 0.06em; margin-top: 0.45rem; }
    .brand .name {
    font-weight: 900; font-size: clamp(1.65rem, 3.4vw, 2.25rem);
    letter-spacing: 0.03em; line-height: 1.25;
  }
  .brand .name b {
    font-weight: 700; font-size: 0.62em; letter-spacing: 0.06em;
    color: var(--ink-mid); margin-left: 0.35rem;
  }

  /* 代理品牌 */
  .brands { display: grid; grid-template-columns: repeat(auto-fit, minmax(16.5rem, 1fr)); gap: 2.2rem 2.6rem; margin-top: 2.8rem; }
  .bcard { padding-top: 1.3rem; border-top: 2px solid var(--line); }
  .bcard .flag {
    display: inline-block; font-size: 0.88rem; font-weight: 700;
    letter-spacing: 0.16em; color: var(--cta-ink); background: var(--accent);
    border-radius: 3px; padding: 0.2rem 0.75rem; margin-bottom: 0.9rem;
  }
  .bcard .bo { text-wrap: pretty; }
  .bcard .bn { font-weight: 700; font-size: 1.28rem; letter-spacing: 0.005em; line-height: 1.4; }
  .bcard .be { font-family: var(--f-mono); font-size: 0.8rem; color: var(--ink-soft); letter-spacing: 0.1em; margin-top: 0.15rem; }
  .bcard .bo { font-size: 0.98rem; color: var(--ink-mid); margin-top: 0.6rem; line-height: 1.8; }
  .brand .name em {
    font-family: var(--f-mono); font-style: normal; font-weight: 400;
    font-size: 0.63rem; letter-spacing: 0.2em; color: var(--accent);
  }

  /* 實測數據 */
  .measured {
    margin-top: 3rem; padding: 2rem 2.1rem;
    background: var(--panel); border-radius: 4px;
    border-left: 3px solid var(--accent);
  }
  .measured .mk {
    font-size: 0.94rem; font-weight: 700; letter-spacing: 0.22em;
    color: var(--accent); margin-bottom: 1.2rem;
  }
  .measured .figs { display: flex; flex-wrap: wrap; gap: 1.2rem 3rem; margin-bottom: 1rem; }
  .measured .fig .n {
    font-family: var(--f-mono); font-size: 2.9rem; font-weight: 600;
    font-variant-numeric: tabular-nums; line-height: 1.12; letter-spacing: -0.025em;
  }
  .measured .fig .n.down { color: var(--accent); }
  .measured .fig .n.up { color: var(--heat); }
  .measured .fig .l { font-size: 1rem; font-weight: 500; color: var(--ink-mid); margin-top: 0.25rem; }
  .measured p { font-size: 1.02rem; color: var(--ink-mid); margin: 0; max-width: 42rem; line-height: 1.9; }

  /* 施工現場 */
  .shots { display: grid; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); gap: 1.1rem; margin-top: 2.4rem; }
  .shots figure { margin: 0; }
  .shots img { width: 100%; aspect-ratio: 4/3; object-fit: cover; display: block; border-radius: 3px; }
  .shots figcaption { font-family: var(--f-mono); font-size: 0.72rem; color: var(--ink-soft); margin-top: 0.6rem; }

  /* 據點 */
  .stores { display: grid; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); gap: 2.4rem 3rem; margin-top: 2.6rem; }
  .store .sn { font-weight: 700; font-size: 1.3rem; margin-bottom: 0.7rem; }
  .store .sn span { font-family: var(--f-mono); font-size: 0.78rem; letter-spacing: 0.14em; color: var(--accent); margin-left: 0.65rem; vertical-align: 0.12em; }
  .store dl { margin: 0; display: grid; grid-template-columns: 3.6rem 1fr; gap: 0.55rem 0.9rem; font-size: 1.02rem; }
  .store dt { font-size: 0.88rem; font-weight: 700; letter-spacing: 0.1em; color: var(--ink-soft); padding-top: 0.42rem; }
  .store dd { margin: 0; color: var(--ink-mid); }
  .store dd a { color: var(--ink); text-decoration: none; border-bottom: 1px solid var(--line); }
  .store dd a:hover { border-bottom-color: var(--accent); color: var(--accent); }
  .store .ph a { font-family: var(--f-mono); font-size: 1.45rem; font-weight: 600; font-variant-numeric: tabular-nums; letter-spacing: 0.01em; border-bottom: 0; color: var(--accent); }
  .store .ph a:hover { text-decoration: underline; }

  /* LINE */
  .lineblock { display: flex; align-items: center; gap: 1.1rem; }
  .lineblock img { width: 84px; height: 84px; display: block; border-radius: 4px; background: #fff; padding: 5px; }
  .lineblock .lt { font-size: 1rem; color: var(--ink-mid); line-height: 1.8; }
    .brand .tel {
    margin-left: auto; display: grid; gap: 0.22rem; text-align: right;
    font-family: var(--f-mono); font-size: 0.96rem; font-weight: 500;
    color: var(--ink-mid); font-variant-numeric: tabular-nums; letter-spacing: 0.01em;
  }
  .brand .tel b {
    font-family: var(--f-body); font-weight: 700; font-size: 0.86rem;
    color: var(--ink-soft); margin-right: 0.6rem; letter-spacing: 0.06em;
  }

  .hero-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 3rem;
    align-items: center;
  }

  .hero h1 {
    font-weight: 900;
    font-size: clamp(2.15rem, 6vw, 3.5rem);
    line-height: 1.25;
    letter-spacing: -0.022em;
    margin: 0 0 1.5rem;
    max-width: 15ch;
    text-wrap: balance;
  }
  .hero h1 .yr { color: var(--accent); }
  .hero .sub { max-width: 33rem; margin: 0 0 2rem; color: var(--ink-mid); font-size: 1.03rem; }

  .offers {
    list-style: none; margin: 0 0 2.4rem; padding: 0;
    display: grid; gap: 0.32rem;
    font-size: 1rem; font-weight: 500; color: var(--ink-mid);
  }
  .offers li::before { content: "—"; color: var(--accent); margin-right: 0.55rem; }

  .cta {
    display: inline-block;
    background: var(--accent);
    color: var(--cta-ink);
    font-weight: 700;
    font-size: 0.95rem;
    padding: 0.8rem 1.7rem;
    border-radius: 2px;
    text-decoration: none;
  }
  .cta:hover { filter: brightness(1.12); }
  .cta:focus-visible { outline: 2px solid var(--ink); outline-offset: 3px; }

  /* hero 吉祥物 */
  .heroart { margin: 0; }
  .heroart img { width: 100%; height: auto; display: block; border-radius: 5px; }
  .sloganband { background: var(--panel); padding: 3.6rem 0; }
  .sloganband p {
    margin: 0; font-size: clamp(1.15rem, 2.9vw, 1.85rem);
    font-weight: 700; line-height: 1.6; letter-spacing: 0.005em;
    color: var(--ink); white-space: nowrap;
  }
  @media (max-width: 660px) {
    .sloganband p { white-space: normal; }
  }
  .sloganband p em { font-style: normal; color: var(--accent); }

  /* 據點吉祥物 */
  .storefoot { display: flex; align-items: center; gap: 1.1rem; margin-top: 2.4rem; }
  .storefoot img { width: 74px; height: auto; display: block; flex: none; }
  .storefoot .note { margin: 0; font-size: 0.95rem; }

  /* 頁尾吉祥物 */
  .footmascot { width: 62px; height: auto; display: block; margin-bottom: 0.6rem; }

  /* 案例段的熱像圖放大 */
  .thermo-lg { margin: 0 0 2.6rem; max-width: 21rem; }

  /* thermal hero image */
  .thermo { margin: 0; }
  .thermo svg { width: 100%; height: auto; display: block; border-radius: 3px; }
  .thermo figcaption {
    font-size: 0.95rem; color: var(--ink-mid);
    margin-top: 0.85rem; line-height: 1.75;
  }

  /* ═══ 實測對照（實拍＋熱像） ═══ */
  .cmp { display: grid; grid-template-columns: 1fr 1fr; gap: 1.4rem; }
  .cmp-col { display: grid; grid-template-columns: 1fr 1fr; gap: 0.5rem; align-content: start; }
  .cmp-h { grid-column: 1 / -1; display: flex; align-items: baseline; gap: 0.7rem; flex-wrap: wrap; border-top: 4px solid; padding-top: 0.45rem; }
  .cmp-h span { font-weight: 700; font-size: 1.02rem; }
  .cmp-h b { font-family: var(--f-mono); font-size: 2.1rem; font-weight: 600; line-height: 1.1; }
  .cmp-h b small { font-family: var(--f-body); font-size: 0.95rem; font-weight: 700; margin-right: 0.2rem; }
  .cmp-img { position: relative; margin: 0; }
  .cmp-img img { display: block; width: 100%; height: auto; border-radius: 4px; }
  .cmp-img i { position: absolute; right: 0.4rem; top: 0.4rem; font-style: normal; font-size: 0.78rem; font-weight: 700; padding: 0.12rem 0.5rem; border-radius: 3px; background: rgba(0,0,0,.62); color: #fff; }
  .cmp .is-film .cmp-h { border-color: var(--accent); } .cmp .is-film .cmp-h span, .cmp .is-film .cmp-h b { color: var(--accent); }
  .cmp .is-sun .cmp-h { border-color: var(--heat); } .cmp .is-sun .cmp-h span, .cmp .is-sun .cmp-h b { color: var(--heat); }
  @media (max-width: 760px) {
    .cmp { gap: 0.7rem; }
    .cmp-col { grid-template-columns: 1fr; }
    .cmp-h { gap: 0 0.5rem; }
    .cmp-h span { font-size: 0.92rem; width: 100%; }
    .cmp-h b { font-size: 1.6rem; }
  }
  .proof { margin: 0.6rem 0 3.2rem; }
  .proof-k { font-size: 0.95rem; font-weight: 700; color: var(--ink-soft); margin: 0 0 0.2rem; letter-spacing: 0.04em; }
  .proof-h { font-size: clamp(1.6rem, 4.2vw, 2.5rem); font-weight: 900; line-height: 1.3; margin: 0 0 1.3rem; }
  .proof-h b { color: var(--accent); font-family: var(--f-mono); font-size: 1.35em; white-space: nowrap; letter-spacing: -0.02em; }
  .filmbox { position: absolute; left: .5%; top: .5%; width: 90.5%; height: 35.5%; border: 2px dashed #3AB2B8; border-radius: 3px; pointer-events: none; }
  .filmbox em, .nofilm { position: absolute; font-style: normal; font-weight: 700; font-size: 1rem; line-height: 1.3; color: #fff; padding: .15rem .5rem; border-radius: 4px; white-space: nowrap; pointer-events: none; }
  .filmbox em { left: .35rem; bottom: .35rem; background: #0C6F75; }
  .nofilm { left: 3%; bottom: 65.5%; background: #C2551F; }
  @media (max-width: 760px) { .filmbox em, .nofilm { font-size: .74rem; padding: .08rem .3rem; } .filmbox em { left: .2rem; bottom: .2rem; } }
  .tmk { position: absolute; transform: translate(-50%, 12px); white-space: nowrap; pointer-events: none; font-family: var(--f-mono); font-weight: 700; font-size: 1.05rem; line-height: 1.25; color: #fff; background: rgba(0,0,0,.74); padding: .12rem .45rem; border-radius: 4px; }
  .tmk small { font-family: var(--f-body); font-size: .74em; font-weight: 700; margin-right: .25rem; }
  .tmk.hot-film { background: #0C6F75; }
  .tmk.hot-sun { background: #C2551F; }
  .tmk.up { transform: translate(-50%, calc(-100% - 12px)); }
  @media (max-width: 760px) { .tmk { font-size: .8rem; padding: .08rem .3rem; transform: translate(-50%, 8px); } .tmk.up { transform: translate(-50%, calc(-100% - 8px)); } }
  .proof-info { margin-top: 1.4rem; display: grid; gap: 1.1rem; }
  .proof-dl { display: grid; grid-template-columns: repeat(3, auto); justify-content: start; gap: .5rem 2.8rem; margin: 0; }
  .proof-dl dt { font-size: .82rem; font-weight: 700; color: var(--ink-soft); letter-spacing: .08em; }
  .proof-dl dd { margin: 0; font-size: 1rem; font-weight: 700; line-height: 1.6; }
  .proof-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .9rem 1.5rem; background: var(--panel); border-radius: 8px; padding: 1rem 1.2rem; }
  .proof-why { margin: 0; flex: 1 1 22rem; font-size: .96rem; color: var(--ink-mid); line-height: 1.75; }
  .proof-why b { display: block; color: var(--ink); font-size: 1.02rem; }
  .proof-more { flex: none; color: var(--accent); font-weight: 700; text-decoration: none; border: 2px solid var(--accent); border-radius: 6px; padding: .5rem 1.05rem; white-space: nowrap; }
  @media (max-width: 760px) {
    .proof-dl { grid-template-columns: 1fr; gap: .6rem; }
    .proof-more { width: 100%; text-align: center; }
  }

  .thermal-rule {
    height: 3px; border: 0; margin: 0;
    background: linear-gradient(90deg,#0C6F75 0%,#4A8489 22%,#B08A34 56%,#C2551F 82%,#9B3A12 100%);
  }

  /* ═══ sections ═══ */
  section { padding: 5rem 0; }
  section + section { padding-top: 0; }
  section + section > .wrap { border-top: 1px solid var(--line); padding-top: 5rem; }

  .eyebrow {
    font-size: 0.88rem; font-weight: 700;
    letter-spacing: 0.28em; color: var(--accent);
    margin: 0 0 0.9rem;
  }

  /* ═══ mechanism ═══ */
  .mech { display: grid; grid-template-columns: 1fr 1fr; gap: 1.6rem; margin-top: 2.4rem; }
  .mech figure { margin: 0; }
  .mech svg { width: 100%; height: auto; display: block; border: 1px solid var(--line-soft); border-radius: 3px; }
  .mech figcaption {
    font-size: 0.98rem; font-weight: 500; margin-top: 0.95rem;
    color: var(--ink-mid); line-height: 1.75;
  }
  .note { font-size: 0.9rem; color: var(--ink-soft); margin-top: 1.5rem; line-height: 1.85; }

  .teaser { margin-top: 2.4rem; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.2rem 2rem; background: var(--panel); border-radius: 10px; padding: 1.4rem 1.6rem; }
  .teaser > div { flex: 1 1 24rem; }
  .teaser .fk { margin: 0; font-size: .85rem; font-weight: 700; letter-spacing: .12em; color: var(--accent); }
  .teaser .fx { margin: .25rem 0 .5rem; font-family: var(--f-mono); font-size: 1.6rem; font-weight: 600; line-height: 1.3; }
  .teaser .fd { margin: 0; font-size: .96rem; color: var(--ink-mid); line-height: 1.8; }
  .teaser .cta { flex: none; }
  @media (max-width: 760px) { .teaser .fx { font-size: 1.3rem; } .teaser .cta { width: 100%; text-align: center; } }
  /* SHGC bars */
  .shgc { margin-top: 3rem; display: grid; gap: 1.3rem; max-width: 40rem; }
  .shgc .bar-row { display: grid; grid-template-columns: 9.5rem 1fr 5rem; gap: 1.3rem; align-items: center; font-size: 1.05rem; font-weight: 500; }
  .shgc .track { display: block; height: 22px; background: var(--line); border-radius: 3px; overflow: hidden; }
  .shgc .fill { display: block; height: 100%; border-radius: 3px; }
  .shgc .val { font-family: var(--f-mono); font-size: 1.7rem; font-weight: 600; text-align: right; font-variant-numeric: tabular-nums; letter-spacing: -0.02em; }
    .shgc .cap { font-size: 0.92rem; color: var(--ink-soft); margin-top: 0.2rem; white-space: nowrap; }
  @media (max-width: 560px) { .shgc .cap { white-space: normal; } }
  .shgc-out {
    display: flex; align-items: center; gap: 1.1rem;
    margin-top: 1.4rem; padding: 1.1rem 1.4rem;
    background: var(--accent); border-radius: 4px; width: max-content; max-width: 100%;
  }
  .shgc-out .ov {
    font-family: var(--f-mono); font-size: 2.6rem; font-weight: 600;
    color: var(--cta-ink); line-height: 1; letter-spacing: -0.03em;
    font-variant-numeric: tabular-nums;
  }
  .shgc-out .ol { font-size: 1rem; font-weight: 700; color: var(--cta-ink); line-height: 1.45; opacity: .95; }
  .shgc-out .oex {
    align-self: flex-start; margin-left: 0.4rem;
    font-size: 0.78rem; font-weight: 700; letter-spacing: 0.14em;
    color: var(--cta-ink); border: 1.5px solid var(--cta-ink);
    border-radius: 3px; padding: 0.06rem 0.42rem; opacity: .85;
  }
  .shgc .cap.warn { color: var(--ink-soft); white-space: normal; margin-top: 0.55rem; line-height: 1.75; }
  .shgc .bar-row small { display: block; font-family: var(--f-mono); font-size: .8rem; color: var(--ink-soft); font-weight: 500; }
  .formula { background: var(--panel); border-radius: 8px; padding: 1.2rem 1.4rem; }
  .formula .fk { margin: 0; font-size: .85rem; font-weight: 700; letter-spacing: .12em; color: var(--accent); }
  .formula .fx { margin: .3rem 0 .6rem; font-family: var(--f-mono); font-size: 1.75rem; font-weight: 600; line-height: 1.3; }
  .formula .fd { margin: 0; font-size: .96rem; color: var(--ink-mid); line-height: 1.8; }
  .calc { margin-top: 1.4rem; border: 1px solid var(--line); border-radius: 10px; padding: 1.3rem 1.4rem; background: var(--bg); }
  .calc h3 { margin: 0 0 .4rem; font-size: 1.2rem; }
  .calc .cl { margin: 0 0 1rem; font-size: .95rem; color: var(--ink-mid); }
  .cin { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: .9rem; }
  .cin label { display: grid; gap: .3rem; font-size: .9rem; font-weight: 700; color: var(--ink-mid); }
  .cin input, .cin select { font: inherit; font-weight: 500; font-size: 1rem; color: var(--ink); background: var(--panel); border: 1px solid var(--line); border-radius: 6px; padding: .5rem .6rem; width: 100%; min-width: 0; }
  .cout { display: grid; grid-template-columns: repeat(3, 1fr); gap: .8rem; margin-top: 1.1rem; }
  .cout div { background: var(--accent); color: var(--cta-ink); border-radius: 6px; padding: .7rem .9rem; }
  .cout span { display: block; font-size: .85rem; font-weight: 700; opacity: .9; }
  .cout b { display: block; font-family: var(--f-mono); font-size: 1.6rem; font-weight: 600; line-height: 1.25; }
  .cf { margin: .9rem 0 0; font-size: .86rem; color: var(--ink-soft); line-height: 1.75; }
  @media (max-width: 760px) {
    .cin, .cout { grid-template-columns: 1fr; }
    .formula .fx { font-size: 1.4rem; }
  }

  /* ═══ services ═══ */
  .svcs { display: grid; grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr)); gap: 2.6rem 3rem; margin-top: 2.6rem; }
  .svc { display: grid; grid-template-columns: 2.75rem 1fr; gap: 1.1rem; align-items: start; }
  .svc .ico { color: var(--accent); padding-top: 0.3rem; }
  .svc .ico svg { display: block; width: 30px; height: 30px; }
  .svc p { color: var(--ink-mid); font-size: 1rem; margin: 0; line-height: 1.85; }

  /* ═══ load chart ═══ */
  .chart { margin-top: 2.4rem; }
  .chart svg { width: 100%; height: auto; display: block; }
  .legend {
    display: flex; flex-wrap: wrap; gap: 0.5rem 2rem; margin-top: 1.2rem;
    font-size: 0.95rem; font-weight: 500; color: var(--ink-mid);
  }
  .legend i { display: inline-block; width: 1.1rem; height: 3px; margin-right: 0.5rem; vertical-align: 0.22em; border-radius: 2px; }

  /* ═══ process ═══ */
  .steps { margin-top: 2.4rem; display: grid; gap: 1.9rem; }
  .step { display: grid; grid-template-columns: 2.6rem 1fr; gap: 1.2rem; align-items: start; }
  .step .n { font-family: var(--f-mono); font-size: 0.8rem; color: var(--accent); padding-top: 0.42rem; letter-spacing: 0.04em; }
  .step p { color: var(--ink-mid); font-size: 1rem; margin: 0; max-width: 38rem; line-height: 1.85; }
  .free { font-size: 0.84rem; font-weight: 700; color: var(--accent); margin-left: 0.6rem; letter-spacing: 0.08em; }

  /* ═══ 實績 ═══ */
  .track-list { margin-top: 2.4rem; display: grid; gap: 2.2rem; }
  .group { display: grid; grid-template-columns: 2.5rem 8rem 1fr; gap: 1.2rem; align-items: start; }
  .group .gi { color: var(--accent); padding-top: 0.45rem; }
  .group .gi svg { display: block; width: 26px; height: 26px; }
  .group .gk {
    font-size: 0.95rem; font-weight: 700; letter-spacing: 0.15em;
    color: var(--accent); padding-top: 0.4rem;
  }
  .group ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 0.5rem; }
  .group li { display: grid; grid-template-columns: 10.5rem 1fr; gap: 1.1rem; font-size: 1.05rem; }
  .group li span { color: var(--ink-mid); font-size: 0.98rem; }

  .quals {
    margin-top: 2.6rem; padding-top: 1.7rem; border-top: 1px solid var(--line);
    display: grid; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr));
    gap: 1.6rem; font-size: 0.92rem;
  }
  .quals .k { font-size: 0.9rem; font-weight: 700; letter-spacing: 0.16em; color: var(--accent); margin-bottom: 0.45rem; }
  .quals .v { color: var(--ink-mid); }

  /* ═══ closing ═══ */
  .close { background: var(--panel); padding: 5rem 0; border-top: 1px solid var(--line); }
  .close h2 { max-width: 20ch; }
  .close p { color: var(--ink-mid); max-width: 36rem; }
  .close .crow { display: flex; flex-wrap: wrap; gap: 1.2rem 2.2rem; align-items: center; margin-top: 2rem; }
  .close .telbig { font-family: var(--f-mono); font-size: 1.6rem; font-weight: 600; letter-spacing: 0.01em; }

  .foot { display: grid; grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); gap: 2rem; }
  .foot .k { font-size: 0.88rem; font-weight: 700; letter-spacing: 0.16em; color: var(--accent); margin-bottom: 0.5rem; }
  .foot div > span { color: var(--ink-mid); line-height: 1.95; }
  .footlogo { display: block; background: #241A18; border-radius: 3px; padding: 0.5rem 0.7rem; width: max-content; margin-bottom: 0.7rem; }
  .footlogo img { display: block; height: 34px; width: auto; }
  .todo { color: var(--heat); font-family: var(--f-mono); font-size: 0.95rem; font-weight: 500; }

  @media (max-width: 860px) {
    .hero-grid { grid-template-columns: 1fr; gap: 2.5rem; }
    .heroart { max-width: 24rem; }
  }
  @media (max-width: 700px) {
    .mech { grid-template-columns: 1fr; gap: 2rem; }
    .group { grid-template-columns: 2.2rem 1fr; gap: 0.9rem; }
    .group .gk { grid-column: 2; padding-top: 0; }
    .group ul { grid-column: 2; }
    .group li { grid-template-columns: 1fr; gap: 0.1rem; }
    .shgc .bar-row { grid-template-columns: 7rem 1fr 3.2rem; gap: 0.7rem; }
    section { padding: 3.5rem 0; }
    section + section > .wrap { padding-top: 3.5rem; }
    .brand { padding-bottom: 2.5rem; }
  }

  /* Hero：企業版 */
  .hero h1 { font-size: clamp(1.95rem, 4.8vw, 3.1rem) !important; max-width: none !important; }
  .scenes { list-style: none; margin: 0 0 2.2rem; padding: 0; display: flex; flex-wrap: wrap; gap: 0.55rem; }
  .scenes li {
    font-size: 0.98rem; font-weight: 700; color: var(--ink);
    padding: 0.34rem 0.9rem; border: 1.5px solid var(--ink-soft); border-radius: 3px;
  }
  .homelink {
    display: block; width: max-content; margin-top: 1.3rem;
    font-size: 0.96rem; font-weight: 500; color: var(--ink-mid);
    text-decoration: none; border-bottom: 1px solid var(--line);
  }
  .homelink:hover { color: var(--accent); border-bottom-color: var(--accent); }
  .hero .thermo { margin: 0; }

  /* Slogan 帶 + 鯊魚 */
  .bandgrid { display: grid; grid-template-columns: 1fr 15rem; gap: 2.5rem; align-items: center; }
  .bandgrid p { font-size: clamp(1.1rem, 2.4vw, 1.5rem); white-space: nowrap; }
  .bandgrid img { width: 100%; height: auto; display: block; border-radius: 5px; }
  @media (max-width: 860px) {
    .bandgrid { grid-template-columns: 1fr; gap: 1.6rem; }
    .bandgrid img { max-width: 22rem; }
    .hero .thermo { max-width: 20rem; }
  }
  @media (max-width: 660px) {
    .bandgrid p { white-space: normal; font-size: 1.3rem; line-height: 1.7; }
  }

  /* ═══ 手機版 ═══ */
  @media (max-width: 560px) {
    .wrap { padding: 0 1.25rem; }
    /* 頁首：Logo 獨立一行，公司名才有完整寬度 */
    .brandmark { flex-direction: column; align-items: flex-start; gap: 1rem; }
    .logochip { padding: 0.6rem 0.95rem; border-radius: 5px; }
    .logochip img { height: 58px; }
    .brand { gap: 1.2rem; padding-bottom: 2.8rem; }
    .brand .name { font-size: 1.72rem; }
    .brand .name b { font-size: 0.6em; }
    .brand .cat { font-size: 0.98rem; margin-top: 0.3rem; }
    .brand .tel {
      margin-left: 0; text-align: left; width: 100%;
      padding-top: 1rem; border-top: 1px solid var(--line);
      gap: 0.3rem; font-size: 1rem;
    }
    .brand .tel b { margin-right: 0.8rem; font-size: 0.9rem; }

    .hero h1 { font-size: 2.15rem; max-width: none; }
    .hero .sub { font-size: 1rem; }
    .heroart { max-width: none; }

    .sloganband { padding: 2.6rem 0; }
    .sloganband p { font-size: 1.32rem; line-height: 1.7; }

    .shgc .bar-row { grid-template-columns: 6rem 1fr; gap: 0.6rem 0.8rem; font-size: 0.95rem; }
    .shgc .val { grid-column: 2; text-align: left; font-size: 1.45rem; margin-top: -0.3rem; }
    .shgc-out { width: 100%; }
    .shgc-out .ov { font-size: 2.1rem; }

    .measured { padding: 1.5rem 1.3rem; }
    .measured .fig .n { font-size: 2.3rem; }
    .measured .figs { gap: 1.2rem 2rem; }

    .svc { grid-template-columns: 2.4rem 1fr; gap: 0.9rem; }
    .step { grid-template-columns: 2.2rem 1fr; gap: 0.9rem; }
    .lineblock { align-items: flex-start; }
    .close .crow { gap: 1.4rem; }
  }

  @media (prefers-reduced-motion: reduce) { * { animation: none !important; transition: none !important; } }

  .store .full { margin: -.2rem 0 .6rem; font-size: .88rem; color: var(--ink-soft); }

  /* 常見問題連結清單（各頁底部） */
  .glinks .glist { list-style: none; margin: 1.4rem 0 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: .2rem 2rem; }
  .glinks .glist li { border-bottom: 1px solid var(--line); }
  .glinks .glist a { display: block; padding: .75rem 0; color: var(--ink); text-decoration: none; font-weight: 500; }
  .glinks .glist a:hover { color: var(--accent); }
  .glinks .glist a::after { content: " →"; color: var(--accent); }
  .glinks .gall { margin-top: 1.2rem; font-weight: 700; }
  @media (max-width: 760px) { .glinks .glist { grid-template-columns: 1fr; } }

  .proof-meta2 { margin: 0; font-size: .92rem; color: var(--ink-soft); }
