:root{
  --bg:#0a0a0b;
  --panel:#111214;
  --panel2:#17181b;
  --line:#2a2d31;
  --text:#f3f1eb;
  --muted:#b6b1a8;
  --accent:#e65945;
  --soft:#ece4d6;
  --max:1360px;
  --side:280px;
  --radius:0;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:-apple-system,BlinkMacSystemFont,"PingFang TC","Noto Sans TC","Microsoft JhengHei","Segoe UI",sans-serif;
  line-height:1.6;
  overflow-x:hidden;
}
a{text-decoration:none;color:inherit}
img{display:block;max-width:100%}
button,input,textarea,select{font:inherit}
body, .shell, .main, .frame{max-width:100%; overflow-x:hidden}
.shell{
  display:grid;
  grid-template-columns:var(--side) minmax(0,1fr);
  min-height:100vh;
}
.sidebar{
  border-right:1px solid var(--line);
  background:linear-gradient(180deg,#0f1012 0,#0a0b0d 100%);
  padding:26px 24px;
  display:flex;
  flex-direction:column;
  gap:28px;
  position:sticky;
  top:0;
  height:100vh;
}
.brand{
  display:flex;
  flex-direction:column;
  gap:14px;
}
.brand-mark{
  width:84px;
  height:84px;
  border:2px solid var(--soft);
  display:grid;
  place-items:center;
  font-weight:800;
  font-size:1.6rem;
  letter-spacing:.14em;
}
.brand h1{
  margin:0;
  font-size:1.04rem;
  line-height:1.35;
}
.brand p{
  margin:0;
  color:var(--muted);
  font-size:.9rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  overflow-wrap:anywhere;
}
.nav{
  display:grid;
  gap:6px;
}
.nav a{
  padding:13px 12px;
  border:1px solid transparent;
  color:#e9e3d8;
  font-size:1rem;
}
.nav a:hover,
.nav a.active{
  border-color:var(--line);
  background:var(--panel);
}
.side-info{
  margin-top:auto;
  display:grid;
  gap:14px;
  color:var(--muted);
}
.side-info div{
  overflow-wrap:anywhere;
}
.side-info strong{
  display:block;
  color:var(--text);
  margin-bottom:4px;
  font-size:.92rem;
}
.main{
  min-width:0;
}
.mobile-bar{
  display:none;
  position:sticky;
  top:0;
  z-index:50;
  background:rgba(10,10,11,.95);
  backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);
  padding:12px 14px;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.mobile-brand{
  min-width:0;
}
.mobile-brand strong{
  display:block;
  font-size:.96rem;
  line-height:1.2;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.mobile-brand span{
  display:block;
  color:var(--muted);
  font-size:.75rem;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.menu-btn,
.close-btn,
.btn,
.mobile-cta{
  border:1px solid var(--line);
  background:transparent;
  color:var(--text);
  min-height:46px;
  padding:0 16px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
}
.mobile-cta{
  background:var(--soft);
  color:#131313;
  border-color:var(--soft);
  white-space:nowrap;
}
.menu-overlay{
  display:none;
}
.page{
  padding:0 24px 40px;
}
.frame{
  width:min(var(--max),100%);
  margin:0 auto;
}
.topline{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:18px 0 14px;
  border-bottom:1px solid var(--line);
  color:var(--muted);
  font-size:.95rem;
}
.topline-right{
  display:flex;
  gap:16px;
  flex-wrap:wrap;
}
.hero{
  padding:26px 0 0;
}
.hero-grid{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);
  gap:0;
  border:1px solid var(--line);
}
.hero-copy{
  padding:38px 38px 32px;
  border-right:1px solid var(--line);
}
.hero-kicker{
  color:var(--accent);
  font-size:1rem;
  margin-bottom:14px;
}
.hero-copy h2{
  margin:0;
  max-width:100%;
  font-size:clamp(2.5rem,4.2vw,4.9rem);
  line-height:1.06;
  letter-spacing:-.03em;
  overflow-wrap:break-word;
  word-break:normal;
}
.hero-copy p{
  margin:18px 0 0;
  color:var(--muted);
  font-size:1.05rem;
  max-width:720px;
}
.action-row{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:28px;
}
.btn.fill{
  background:var(--accent);
  color:#fff;
  border-color:var(--accent);
}
.btn.soft{
  background:var(--soft);
  color:#111;
  border-color:var(--soft);
}
.hero-stats{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:0;
  margin-top:34px;
  border-top:1px solid var(--line);
}
.hero-stats div{
  padding:18px 18px 0 0;
}
.hero-stats strong{
  display:block;
  font-size:2rem;
  margin-bottom:6px;
}
.hero-stats span{
  display:block;
  color:var(--muted);
}
.hero-media{
  background:#0c0d0f;
  display:grid;
  grid-template-rows:auto auto;
}
.hero-main-image{
  border-bottom:1px solid var(--line);
}
.hero-main-image img{
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  object-position:center;
}
.hero-main-image figcaption{
  padding:12px 14px;
  font-size:.95rem;
}
.hero-subgrid{
  display:grid;
  grid-template-columns:1fr 1fr;
}
.hero-subgrid figure{
  margin:0;
}
.hero-subgrid figure:first-child{
  border-right:1px solid var(--line);
}
.hero-subgrid img{
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  object-position:center;
}
.hero-subgrid figcaption{
  padding:12px 14px;
  font-size:.95rem;
  border-top:1px solid var(--line);
}
.value-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  border:1px solid var(--line);
  border-top:none;
}
.value-grid article{
  padding:18px;
  border-right:1px solid var(--line);
}
.value-grid article:last-child{
  border-right:none;
}
.value-grid strong{
  display:block;
  margin-bottom:8px;
  font-size:1.05rem;
}
.value-grid p{
  margin:0;
  color:var(--muted);
}
.section{
  padding:34px 0 0;
}
.section-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:18px;
  padding-bottom:14px;
  border-bottom:1px solid var(--line);
}
.section-head h3{
  margin:0;
  font-size:2rem;
}
.section-head p{
  margin:0;
  color:var(--muted);
  max-width:720px;
}
.services-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:18px;
  padding-top:18px;
}
.card{
  border:1px solid var(--line);
  background:var(--panel);
}
.card img{
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  object-position:center;
  border-bottom:1px solid var(--line);
}
.card-body{
  padding:18px;
}
.card-body h4{
  margin:0 0 10px;
  font-size:1.28rem;
}
.card-body p{
  margin:0;
  color:var(--muted);
}
.tags{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:14px;
}
.tags span{
  border:1px solid var(--line);
  padding:7px 10px;
  font-size:.9rem;
  color:#ddd7cc;
}
.split{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
  padding-top:18px;
}
.panel{
  border:1px solid var(--line);
  background:var(--panel);
  padding:22px;
}
.panel p{
  margin:0;
  color:var(--muted);
}
.list-grid{
  display:grid;
  gap:14px;
  margin-top:16px;
}
.list-grid div{
  display:grid;
  grid-template-columns:150px 1fr;
  gap:16px;
  padding-top:12px;
  border-top:1px solid var(--line);
}
.list-grid strong{
  font-size:.95rem;
}
.steps{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:18px;
  padding-top:18px;
}
.step{
  border:1px solid var(--line);
  padding:20px;
  background:var(--panel);
}
.step em{
  display:inline-grid;
  place-items:center;
  width:42px;
  height:42px;
  border:1px solid var(--accent);
  color:var(--accent);
  font-style:normal;
  margin-bottom:16px;
}
.step h4{
  margin:0 0 10px;
  font-size:1.1rem;
}
.step p{
  margin:0;
  color:var(--muted);
}
.reviews{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
  padding-top:18px;
}
.review{
  border:1px solid var(--line);
  background:var(--panel);
  padding:22px;
}
.review p{
  margin:0 0 14px;
  color:#ddd9cf;
}
.review strong{
  display:block;
}
.review span{
  display:block;
  color:var(--muted);
  margin-top:6px;
}
.form-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:14px;
  margin-top:14px;
}
.field{
  display:grid;
  gap:8px;
}
.field.full{
  grid-column:1 / -1;
}
.field label{
  color:var(--muted);
}
.field input,
.field select,
.field textarea{
  width:100%;
  min-height:50px;
  border:1px solid var(--line);
  background:#0c0d0f;
  color:var(--text);
  padding:12px 14px;
}
.field textarea{
  min-height:144px;
  resize:vertical;
}
.footer{
  margin-top:34px;
  padding:24px 0 30px;
  border-top:1px solid var(--line);
}
.footer-grid{
  display:grid;
  grid-template-columns:1.2fr .8fr .8fr .8fr;
  gap:18px;
}
.footer h4{
  margin:0 0 12px;
}
.footer p,.footer li{
  margin:0;
  color:var(--muted);
  overflow-wrap:anywhere;
}
.footer ul{
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  gap:10px;
}
.footer-end{
  margin-top:20px;
  color:#8d8880;
  font-size:.88rem;
}
.page-banner{
  padding:26px 0 0;
}
.page-banner-box{
  border:1px solid var(--line);
  padding:28px;
  background:var(--panel);
}
.page-banner-box h2{
  margin:0;
  font-size:2.4rem;
}
.page-banner-box p{
  margin:14px 0 0;
  color:var(--muted);
}
.detail-list{
  display:grid;
  gap:18px;
  padding-top:18px;
}
.detail{
  display:grid;
  grid-template-columns:340px 1fr;
  border:1px solid var(--line);
  background:var(--panel);
}
.detail img{
  width:100%;
  height:100%;
  min-height:220px;
  object-fit:cover;
  object-position:center;
  border-right:1px solid var(--line);
}
.detail-copy{
  padding:20px;
}
.detail-copy h4{
  margin:0 0 10px;
  font-size:1.3rem;
}
.detail-copy p{
  margin:0;
  color:var(--muted);
}
.note{
  margin-top:18px;
  border:1px solid var(--line);
  padding:18px;
  color:var(--muted);
}
.desktop-only{
  display:block;
}
@media (max-width:1200px){
  .hero-grid{grid-template-columns:minmax(0,1fr) 420px}
  .steps{grid-template-columns:repeat(2,1fr)}
  .reviews{grid-template-columns:1fr 1fr}
}
@media (max-width:960px){
  .shell{display:block}
  .sidebar{
    position:fixed;
    top:0;
    left:0;
    width:min(82vw,320px);
    height:100vh;
    z-index:80;
    transform:translateX(-100%);
    transition:transform .24s ease;
    box-shadow:12px 0 40px rgba(0,0,0,.35);
  }
  body.menu-open .sidebar{
    transform:translateX(0);
  }
  .menu-overlay{
    position:fixed;
    inset:0;
    background:rgba(0,0,0,.5);
    z-index:70;
  }
  body.menu-open .menu-overlay{
    display:block;
  }
  .mobile-bar{
    display:flex;
  }
  .desktop-only{
    display:none;
  }
  .page{
    padding:0 14px 26px;
  }
  .hero-grid,
  .split,
  .detail{
    grid-template-columns:1fr;
  }
  .hero-copy{
    border-right:none;
    border-bottom:1px solid var(--line);
    padding:22px 18px 20px;
  }
  .hero-copy h2{
    font-size:2rem;
    line-height:1.1;
  }
  .hero-copy p{
    font-size:.98rem;
  }
  .hero-stats{
    grid-template-columns:1fr;
    gap:0;
  }
  .hero-media{
    grid-template-rows:auto auto;
  }
  .hero-main-image img,
  .hero-subgrid img{
    aspect-ratio:4/3;
    object-fit:cover;
  }
  .hero-subgrid{
    grid-template-columns:1fr 1fr;
  }
  .services-grid,
  .steps,
  .reviews,
  .footer-grid,
  .form-grid{
    grid-template-columns:1fr;
  }
  .list-grid div{
    grid-template-columns:1fr;
    gap:8px;
  }
  .detail img{
    border-right:none;
    border-bottom:1px solid var(--line);
  }
}
@media (max-width:640px){
  .page{padding:0 12px 22px}
  .mobile-bar{
    padding:10px 12px;
    gap:10px;
  }
  .menu-btn,
  .mobile-cta,
  .close-btn,
  .btn{
    min-height:42px;
    padding:0 12px;
    font-size:.94rem;
  }
  .hero-copy h2{
    font-size:1.74rem;
  }
  .hero-kicker{
    font-size:.92rem;
  }
  .hero-subgrid{
    grid-template-columns:1fr;
  }
  .hero-subgrid figure:first-child{
    border-right:none;
    border-bottom:1px solid var(--line);
  }
  .section-head{
    display:grid;
    gap:10px;
  }
  .section-head h3{
    font-size:1.5rem;
  }
  .page-banner-box{
    padding:18px;
  }
  .page-banner-box h2{
    font-size:1.8rem;
  }
  .card-body,
  .panel,
  .step,
  .review,
  .detail-copy{
    padding:16px;
  }
}
