:root{
  --cj-bg:#f8f5f0;
  --cj-paper:#fffaf4;
  --cj-ink:#241814;
  --cj-muted:#7d6f67;
  --cj-line:rgba(36,24,20,.12);
  --cj-gold:#b88a44;
  --cj-soft:#eadfd1;
  --cj-shadow:0 18px 60px rgba(36,24,20,.12);
  --cj-radius:28px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body.cj501-body{
  margin:0;
  min-height:100vh;
  color:var(--cj-ink);
  background:
    radial-gradient(circle at 8% 2%, rgba(184,138,68,.16), transparent 34%),
    linear-gradient(180deg,#fffaf4 0%,var(--cj-bg) 44%,#f2ece3 100%);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans TC","Noto Sans SC","Microsoft JhengHei",Arial,sans-serif;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.cj501-wrap{width:min(1180px,calc(100% - 32px));margin:0 auto}
.cj501-main{padding-top:86px}
.cj501-nav{
  position:fixed;top:0;left:0;width:100%;z-index:1000;
  background:rgba(255,250,244,.84);backdrop-filter:blur(18px);
  border-bottom:1px solid var(--cj-line);
}
.cj501-nav-inner{height:86px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.cj501-brand{display:flex;align-items:center;gap:12px;min-width:0}
.cj501-brand-mark{
  width:44px;height:44px;border-radius:16px;display:grid;place-items:center;
  background:linear-gradient(145deg,#211714,#6b4d2c);color:#fff;font-weight:800;letter-spacing:.04em;
  box-shadow:0 12px 28px rgba(36,24,20,.18)
}
.cj501-brand strong{display:block;font-size:18px;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:260px}
.cj501-brand em{display:block;font-style:normal;color:var(--cj-muted);font-size:12px;margin-top:4px}
.cj501-menu{display:flex;align-items:center;gap:8px}
.cj501-menu a{padding:10px 16px;border-radius:999px;color:var(--cj-muted);font-weight:650;font-size:14px}
.cj501-menu a:hover{background:var(--cj-soft);color:var(--cj-ink)}
.cj501-menu-btn{display:none;border:0;background:#241814;color:#fff;border-radius:14px;width:44px;height:44px;font-size:22px}
.cj501-kicker{display:inline-flex;align-items:center;gap:8px;color:var(--cj-gold);font-size:13px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.cj501-kicker:before{content:"";width:28px;height:1px;background:var(--cj-gold);display:inline-block}
.cj501-hero{padding:72px 0 38px;overflow:hidden}
.cj501-hero-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:54px;align-items:center}
.cj501-hero-copy h1{font-size:clamp(42px,7vw,82px);line-height:.95;margin:18px 0 24px;letter-spacing:-.06em}
.cj501-hero-copy p{font-size:18px;line-height:1.85;color:var(--cj-muted);max-width:620px;margin:0 0 28px}
.cj501-actions{display:flex;gap:12px;flex-wrap:wrap}
.cj501-btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 20px;border-radius:999px;font-weight:800;border:1px solid transparent;transition:.2s ease;white-space:nowrap}
.cj501-btn-primary{background:#241814;color:#fff;box-shadow:0 14px 34px rgba(36,24,20,.18)}
.cj501-btn-primary:hover{transform:translateY(-2px);box-shadow:0 18px 42px rgba(36,24,20,.24)}
.cj501-btn-ghost{border-color:var(--cj-line);background:rgba(255,255,255,.45);color:var(--cj-ink)}
.cj501-btn-ghost:hover{background:#fff}
.cj501-hero-collage{display:grid;grid-template-columns:1fr .86fr;grid-template-rows:260px 210px;gap:16px;transform:rotate(-1deg)}
.cj501-hero-collage img{width:100%;height:100%;object-fit:cover;border-radius:var(--cj-radius);box-shadow:var(--cj-shadow);background:#ddd}
.cj501-hero-collage img:first-child{grid-row:span 2}.cj501-hero-collage img:nth-child(2){transform:translateY(24px)}.cj501-hero-collage img:nth-child(3){transform:translateY(8px)}
.cj501-section{padding:54px 0}
.cj501-section-head{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:26px}
.cj501-section-head h2{font-size:clamp(32px,5vw,54px);line-height:1;margin:12px 0 0;letter-spacing:-.04em}
.cj501-section-head p{color:var(--cj-muted);line-height:1.75;max-width:520px;margin:0}
.cj501-filter-row{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:24px}
.cj501-filter-row button{border:1px solid var(--cj-line);background:rgba(255,255,255,.52);border-radius:999px;padding:10px 16px;color:var(--cj-muted);font-weight:750;cursor:pointer}
.cj501-filter-row button.is-active,.cj501-filter-row button:hover{background:#241814;color:#fff;border-color:#241814}
.cj501-model-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.cj501-card{background:rgba(255,250,244,.74);border:1px solid var(--cj-line);border-radius:var(--cj-radius);overflow:hidden;box-shadow:0 10px 34px rgba(36,24,20,.08);transition:.22s ease}
.cj501-card:hover{transform:translateY(-4px);box-shadow:var(--cj-shadow)}
.cj501-card-photo{display:block;position:relative;aspect-ratio:4/5;overflow:hidden;background:#e9dfd3}
.cj501-card-photo img{width:100%;height:100%;object-fit:cover;transition:.42s ease}.cj501-card:hover .cj501-card-photo img{transform:scale(1.04)}
.cj501-card-photo span{position:absolute;left:16px;bottom:16px;background:rgba(255,250,244,.88);backdrop-filter:blur(12px);padding:8px 12px;border-radius:999px;font-size:13px;font-weight:800;color:#241814}
.cj501-card-body{padding:20px}.cj501-card-code{color:var(--cj-gold);font-weight:900;font-size:13px;margin:0 0 6px}.cj501-card h3{font-size:26px;margin:0 0 8px;letter-spacing:-.03em}.cj501-card p{color:var(--cj-muted);line-height:1.6;margin:0}
.cj501-card dl{margin:18px 0;display:grid;gap:10px}.cj501-card dl div{display:flex;align-items:center;justify-content:space-between;gap:14px;border-top:1px solid var(--cj-line);padding-top:10px}.cj501-card dt{color:var(--cj-muted);font-size:13px}.cj501-card dd{margin:0;font-weight:750;text-align:right}
.cj501-card-link{font-weight:850;color:var(--cj-ink)}
.cj501-contact{padding:40px 0 70px}.cj501-contact-card{display:flex;justify-content:space-between;gap:24px;align-items:center;background:#241814;color:#fff;border-radius:var(--cj-radius);padding:34px;box-shadow:var(--cj-shadow)}.cj501-contact-card p{color:rgba(255,255,255,.72);line-height:1.7;max-width:680px}.cj501-contact-card .cj501-kicker{color:#e8c37f}.cj501-contact-card .cj501-kicker:before{background:#e8c37f}.cj501-contact-card .cj501-btn-primary{background:#fff;color:#241814}
.cj501-footer{border-top:1px solid var(--cj-line);padding:24px 0;color:var(--cj-muted);font-size:13px}.cj501-footer-inner{display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap}.cj501-footer p{margin:0;line-height:1.6}
.cj501-detail{padding:56px 0}.cj501-detail-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);gap:38px;align-items:start}.cj501-detail-media,.cj501-detail-info{background:rgba(255,250,244,.72);border:1px solid var(--cj-line);border-radius:var(--cj-radius);box-shadow:0 10px 34px rgba(36,24,20,.08);overflow:hidden}.cj501-detail-info{padding:32px;position:sticky;top:108px}.cj501-detail-main{width:100%;max-height:760px;object-fit:cover;background:#e9dfd3}.cj501-thumbs{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:14px}.cj501-thumbs button{border:0;background:transparent;padding:0;border-radius:18px;overflow:hidden;cursor:pointer}.cj501-thumbs img{width:100%;height:150px;object-fit:cover}.cj501-back{display:inline-flex;margin-bottom:20px;color:var(--cj-muted);font-weight:750}.cj501-detail-info h1{font-size:clamp(40px,6vw,68px);line-height:1;margin:16px 0 12px;letter-spacing:-.06em}.cj501-detail-tagline{font-size:18px;color:var(--cj-muted);line-height:1.7;margin:0 0 24px}.cj501-info-table{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:24px 0}.cj501-info-table div{background:#fff;border:1px solid var(--cj-line);border-radius:18px;padding:14px}.cj501-info-table .wide{grid-column:1/-1}.cj501-info-table span{display:block;color:var(--cj-muted);font-size:13px;margin-bottom:5px}.cj501-info-table strong{font-size:16px}.cj501-intro-box{border-top:1px solid var(--cj-line);padding-top:24px}.cj501-intro-box h2{margin:0 0 10px}.cj501-intro-box p{color:var(--cj-muted);line-height:1.85;margin:0}.cj501-empty{padding:90px 0;text-align:center}.cj501-lightbox{position:fixed;inset:0;z-index:2000;background:rgba(0,0,0,.82);display:grid;place-items:center;padding:24px}.cj501-lightbox[hidden]{display:none}.cj501-lightbox img{max-width:min(980px,96vw);max-height:88vh;object-fit:contain;border-radius:18px}.cj501-lightbox button{position:fixed;top:22px;right:22px;width:48px;height:48px;border:0;border-radius:999px;background:#fff;color:#111;font-size:30px;cursor:pointer}
@media (max-width:920px){.cj501-hero-grid,.cj501-detail-grid{grid-template-columns:1fr}.cj501-detail-info{position:static}.cj501-model-grid{grid-template-columns:repeat(2,1fr)}.cj501-section-head{display:block}.cj501-section-head p{margin-top:14px}.cj501-hero-collage{grid-template-rows:220px 170px}.cj501-contact-card{display:block}.cj501-contact-card .cj501-btn{margin-top:16px}.cj501-menu-btn{display:block}.cj501-menu{position:absolute;left:16px;right:16px;top:78px;display:none;flex-direction:column;align-items:stretch;background:#fffaf4;border:1px solid var(--cj-line);border-radius:22px;padding:10px;box-shadow:var(--cj-shadow)}.cj501-menu.is-open{display:flex}.cj501-menu a{padding:14px 16px}}
@media (max-width:620px){.cj501-main{padding-top:76px}.cj501-nav-inner{height:76px}.cj501-brand strong{max-width:190px}.cj501-hero{padding-top:42px}.cj501-hero-collage{grid-template-columns:1fr;grid-template-rows:auto;transform:none}.cj501-hero-collage img{height:380px}.cj501-hero-collage img:first-child{grid-row:auto}.cj501-hero-collage img:nth-child(2),.cj501-hero-collage img:nth-child(3){display:none}.cj501-model-grid{grid-template-columns:1fr}.cj501-card-photo{aspect-ratio:3/4}.cj501-info-table{grid-template-columns:1fr}.cj501-thumbs img{height:110px}.cj501-contact-card{padding:26px}.cj501-footer-inner{display:block}.cj501-footer p+p{margin-top:10px}}

/* CJ-501 v0.1.1 lightbox mobile fix + prev/next controls */
body.cj501-lightbox-open {
  overflow: hidden;
}

.cj501-lightbox {
  position: fixed;
  inset: 0;
  z-index: 3000;
  width: 100vw;
  min-height: 100vh;
  min-height: 100dvh;
  padding: 24px;
  background: rgba(0,0,0,.82);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.cj501-lightbox[hidden] {
  display: none !important;
}

.cj501-lightbox img,
.cj501-lightbox [data-cj501-lightbox-img] {
  display: block;
  width: auto;
  height: auto;
  max-width: calc(100vw - 48px);
  max-height: calc(100vh - 96px);
  max-height: calc(100dvh - 96px);
  object-fit: contain;
  margin: auto;
  border-radius: 18px;
  box-shadow: 0 24px 80px rgba(0,0,0,.32);
}

.cj501-lightbox-close,
.cj501-lightbox button[data-cj501-lightbox-close] {
  position: fixed;
  top: max(16px, env(safe-area-inset-top));
  right: max(16px, env(safe-area-inset-right));
  z-index: 3010;
  width: 58px;
  height: 58px;
  border: 0;
  border-radius: 999px;
  background: #fff;
  color: #111;
  font-size: 38px;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 16px 40px rgba(0,0,0,.24);
}

.cj501-lightbox-arrow {
  position: fixed;
  top: 50%;
  z-index: 3010;
  width: 54px;
  height: 54px;
  transform: translateY(-50%);
  border: 0;
  border-radius: 999px;
  background: rgba(255,255,255,.94);
  color: #111;
  font-size: 44px;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 16px 40px rgba(0,0,0,.22);
}

.cj501-lightbox-prev {
  left: max(18px, env(safe-area-inset-left));
}

.cj501-lightbox-next {
  right: max(18px, env(safe-area-inset-right));
}

@media (max-width: 620px) {
  .cj501-lightbox {
    padding: 76px 16px 34px;
    align-items: center;
    justify-content: center;
  }

  .cj501-lightbox img,
  .cj501-lightbox [data-cj501-lightbox-img] {
    max-width: calc(100vw - 32px);
    max-height: calc(100vh - 150px);
    max-height: calc(100dvh - 150px);
    border-radius: 14px;
  }

  .cj501-lightbox-close,
  .cj501-lightbox button[data-cj501-lightbox-close] {
    width: 56px;
    height: 56px;
    top: max(14px, env(safe-area-inset-top));
    right: max(14px, env(safe-area-inset-right));
    font-size: 36px;
  }

  .cj501-lightbox-arrow {
    top: auto;
    bottom: max(16px, env(safe-area-inset-bottom));
    transform: none;
    width: 50px;
    height: 50px;
    font-size: 40px;
  }

  .cj501-lightbox-prev {
    left: 22%;
  }

  .cj501-lightbox-next {
    right: 22%;
  }
}

/* CJ-501 v0.1.2 definitive lightbox positioning fix */
body.cj501-lightbox-open {
  overflow: hidden !important;
}

.cj501-lightbox.cj501-lightbox {
  position: fixed !important;
  inset: 0 !important;
  z-index: 99999 !important;
  width: 100vw !important;
  height: 100vh !important;
  height: 100dvh !important;
  padding: 72px 20px 34px !important;
  box-sizing: border-box !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: hidden !important;
  background: rgba(0, 0, 0, .82) !important;
}

.cj501-lightbox.cj501-lightbox[hidden] {
  display: none !important;
}

.cj501-lightbox.cj501-lightbox img[data-cj501-lightbox-img] {
  position: relative !important;
  z-index: 1 !important;
  display: block !important;
  width: auto !important;
  height: auto !important;
  max-width: min(980px, calc(100vw - 40px)) !important;
  max-height: calc(100vh - 130px) !important;
  max-height: calc(100dvh - 130px) !important;
  object-fit: contain !important;
  margin: auto !important;
  transform: none !important;
  border-radius: 18px !important;
  box-shadow: 0 24px 80px rgba(0,0,0,.32) !important;
}

.cj501-lightbox.cj501-lightbox .cj501-lightbox-close {
  position: fixed !important;
  top: max(16px, env(safe-area-inset-top)) !important;
  right: max(16px, env(safe-area-inset-right)) !important;
  left: auto !important;
  bottom: auto !important;
  z-index: 100002 !important;
  width: 58px !important;
  height: 58px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: #fff !important;
  color: #111 !important;
  font-size: 38px !important;
  line-height: 58px !important;
  text-align: center !important;
  cursor: pointer !important;
  box-shadow: 0 16px 40px rgba(0,0,0,.24) !important;
}

.cj501-lightbox.cj501-lightbox .cj501-lightbox-arrow.cj501-lightbox-arrow {
  position: fixed !important;
  top: 50% !important;
  bottom: auto !important;
  transform: translateY(-50%) !important;
  z-index: 100001 !important;
  width: 56px !important;
  height: 56px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,.95) !important;
  color: #111 !important;
  font-size: 44px !important;
  line-height: 52px !important;
  text-align: center !important;
  cursor: pointer !important;
  box-shadow: 0 16px 40px rgba(0,0,0,.22) !important;
}

.cj501-lightbox.cj501-lightbox .cj501-lightbox-prev.cj501-lightbox-arrow {
  left: max(18px, env(safe-area-inset-left)) !important;
  right: auto !important;
}

.cj501-lightbox.cj501-lightbox .cj501-lightbox-next.cj501-lightbox-arrow {
  right: max(18px, env(safe-area-inset-right)) !important;
  left: auto !important;
}

@media (max-width: 620px) {
  .cj501-lightbox.cj501-lightbox {
    padding: 80px 14px 28px !important;
    align-items: center !important;
    justify-content: center !important;
  }

  .cj501-lightbox.cj501-lightbox img[data-cj501-lightbox-img] {
    max-width: calc(100vw - 28px) !important;
    max-height: calc(100vh - 148px) !important;
    max-height: calc(100dvh - 148px) !important;
    border-radius: 14px !important;
  }

  .cj501-lightbox.cj501-lightbox .cj501-lightbox-close {
    top: max(14px, env(safe-area-inset-top)) !important;
    right: max(14px, env(safe-area-inset-right)) !important;
    width: 54px !important;
    height: 54px !important;
    font-size: 34px !important;
    line-height: 54px !important;
  }

  .cj501-lightbox.cj501-lightbox .cj501-lightbox-arrow.cj501-lightbox-arrow {
    top: 50% !important;
    bottom: auto !important;
    transform: translateY(-50%) !important;
    width: 46px !important;
    height: 46px !important;
    font-size: 36px !important;
    line-height: 42px !important;
  }

  .cj501-lightbox.cj501-lightbox .cj501-lightbox-prev.cj501-lightbox-arrow {
    left: 8px !important;
    right: auto !important;
  }

  .cj501-lightbox.cj501-lightbox .cj501-lightbox-next.cj501-lightbox-arrow {
    right: 8px !important;
    left: auto !important;
  }
}

/* CJ-501 v0.1.3 mobile arrow click + translucent arrow polish */
.cj501-lightbox.cj501-lightbox {
  pointer-events: auto !important;
}

.cj501-lightbox.cj501-lightbox img[data-cj501-lightbox-img] {
  pointer-events: none !important;
}

.cj501-lightbox.cj501-lightbox .cj501-lightbox-close,
.cj501-lightbox.cj501-lightbox .cj501-lightbox-arrow {
  pointer-events: auto !important;
  touch-action: manipulation !important;
  user-select: none !important;
  -webkit-user-select: none !important;
  -webkit-tap-highlight-color: transparent !important;
}

.cj501-lightbox.cj501-lightbox .cj501-lightbox-arrow.cj501-lightbox-arrow {
  background: rgba(255, 255, 255, .58) !important;
  color: rgba(0, 0, 0, .86) !important;
  backdrop-filter: blur(10px) !important;
  -webkit-backdrop-filter: blur(10px) !important;
  border: 1px solid rgba(255,255,255,.42) !important;
  box-shadow: 0 14px 36px rgba(0,0,0,.18) !important;
}

.cj501-lightbox.cj501-lightbox .cj501-lightbox-arrow.cj501-lightbox-arrow:active {
  background: rgba(255, 255, 255, .82) !important;
  transform: translateY(-50%) scale(.94) !important;
}

.cj501-lightbox.cj501-lightbox .cj501-lightbox-close {
  background: rgba(255,255,255,.82) !important;
  backdrop-filter: blur(10px) !important;
  -webkit-backdrop-filter: blur(10px) !important;
}

@media (max-width: 620px) {
  .cj501-lightbox.cj501-lightbox .cj501-lightbox-arrow.cj501-lightbox-arrow {
    background: rgba(255, 255, 255, .52) !important;
    color: rgba(0,0,0,.9) !important;
    z-index: 100010 !important;
  }

  .cj501-lightbox.cj501-lightbox .cj501-lightbox-prev.cj501-lightbox-arrow {
    left: 10px !important;
  }

  .cj501-lightbox.cj501-lightbox .cj501-lightbox-next.cj501-lightbox-arrow {
    right: 10px !important;
  }
}

/* ZHU-001 logo support */
.cj501-brand-mark img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: inherit;
}
