/* ==========================================================================
   Mingfeng Hardware — brass stamping parts for sockets & power strips
   Single stylesheet. No external requests, no frameworks.
   ========================================================================== */

:root{
  --ff: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial,
        "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;

  --ink:      #0F1D2A;
  --ink-2:    #1A2C3C;
  --body:     #33424F;
  --muted:    #6B7A88;
  --line:     #E4E1DA;
  --line-2:   #EFEDE7;
  --bg:       #FFFFFF;
  --tint:     #F7F6F3;
  --dark:     #0F1D2A;

  --brass:    #A8781C;   /* text-safe brass */
  --brass-lt: #D9B15C;   /* on dark */
  --brass-pale:#F3E9D4;
  --brass-rule:#E0CFA8;

  --radius: 3px;
  --max: 1180px;
  --pad: 22px;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0; background:var(--bg); color:var(--body);
  font-family:var(--ff); font-size:16.5px; line-height:1.72;
  font-feature-settings:"kern" 1;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; height:auto; }
a{ color:inherit; text-decoration:none; }
p{ margin:0 0 1em; }
ul,ol{ margin:0 0 1em; padding-left:1.15em; }
li{ margin:.3em 0; }
hr{ border:0; border-top:1px solid var(--line); margin:34px 0; }

.wrap{ width:100%; max-width:var(--max); margin:0 auto; padding:0 var(--pad); }
.wrap--narrow{ max-width:880px; }

/* ---------- typography ---------- */
h1,h2,h3,h4{ color:var(--ink); margin:0 0 .5em; line-height:1.18; font-weight:700; letter-spacing:-.015em; }
h1{ font-size:clamp(32px,4.6vw,54px); line-height:1.1; letter-spacing:-.025em; }
h2{ font-size:clamp(25px,3.2vw,38px); letter-spacing:-.02em; }
h3{ font-size:20px; letter-spacing:-.01em; }
h4{ font-size:16.5px; }
.lede{ font-size:clamp(17px,1.6vw,20px); color:var(--body); line-height:1.65; }
.muted{ color:var(--muted); }
.small{ font-size:14.5px; line-height:1.6; }
.eyebrow{
  display:block; font-size:12px; font-weight:700; letter-spacing:.16em;
  text-transform:uppercase; color:var(--brass); margin:0 0 14px;
}
.eyebrow--on-dark{ color:var(--brass-lt); }
.hr-brass{ width:52px; height:3px; background:var(--brass); border:0; margin:0 0 26px; }
.strong{ color:var(--ink); font-weight:600; }

/* ---------- topbar ---------- */
.topbar{ background:var(--dark); color:#C9D3DB; font-size:13px; }
.topbar__in{ display:flex; gap:18px; align-items:center; justify-content:space-between;
  min-height:38px; flex-wrap:wrap; padding:6px var(--pad); max-width:var(--max); margin:0 auto; }
.topbar a{ color:#E7EDF2; }
.topbar a:hover{ color:var(--brass-lt); }
.topbar__l{ display:flex; gap:18px; align-items:center; flex-wrap:wrap; }
.topbar__r{ display:flex; gap:16px; align-items:center; color:#93A3B0; }
.topbar__r a{ color:#C9D3DB; }
.topbar .muted{ color:#8FA0AE; }

/* ---------- header / nav ---------- */
.hdr{ background:rgba(255,255,255,.96); border-bottom:1px solid var(--line);
  position:sticky; top:0; z-index:60; backdrop-filter:saturate(1.4) blur(6px); }
.hdr__in{ display:flex; align-items:center; justify-content:space-between; gap:20px; min-height:74px; }
.brand{ display:flex; align-items:center; gap:11px; flex:0 0 auto; }
.brand svg{ width:38px; height:38px; flex:0 0 auto; }
.brand__txt{ display:flex; flex-direction:column; line-height:1.05; }
.brand__name{ font-size:19px; font-weight:800; color:var(--ink); letter-spacing:.02em; }
.brand__sub{ font-size:9.5px; letter-spacing:.19em; text-transform:uppercase; color:var(--brass); font-weight:700; }

.nav{ display:flex; align-items:center; gap:26px; }
.nav a{ font-size:14.5px; font-weight:500; color:var(--ink-2); padding:4px 0; border-bottom:2px solid transparent; white-space:nowrap; }
.nav a:hover{ color:var(--brass); }
.nav a.is-active{ color:var(--ink); border-bottom-color:var(--brass); font-weight:600; }
.nav .navcta{ border:1px solid var(--brass); color:var(--brass); padding:9px 17px; border-radius:var(--radius);
  font-weight:600; border-bottom:1px solid var(--brass); }
.nav .navcta:hover{ background:var(--brass); color:#fff; }

.navtog{ display:none; }
.burger{ display:none; width:42px; height:38px; border:1px solid var(--line); border-radius:var(--radius);
  cursor:pointer; padding:10px 9px; flex:0 0 auto; }
.burger span{ display:block; height:2px; background:var(--ink); margin:0 0 5px; }
.burger span:last-child{ margin-bottom:0; }

@media (max-width:1000px){
  .burger{ display:block; }
  .nav{ display:none; position:absolute; left:0; right:0; top:100%; background:#fff;
    border-bottom:1px solid var(--line); flex-direction:column; align-items:stretch;
    gap:0; padding:8px 0 14px; box-shadow:0 18px 30px rgba(15,29,42,.09); }
  .nav a{ padding:13px var(--pad); border-bottom:1px solid var(--line-2); font-size:16px; }
  .nav a.is-active{ border-bottom-color:var(--line-2); box-shadow:inset 3px 0 0 var(--brass); }
  .nav .navcta{ margin:14px var(--pad) 0; text-align:center; padding:13px 17px; }
  .navtog:checked ~ .nav{ display:flex; }
  .hdr__in{ position:relative; }
}

/* ---------- buttons ---------- */
.btn{ display:inline-flex; align-items:center; gap:9px; padding:14px 24px; border-radius:var(--radius);
  font-weight:600; font-size:15px; border:1px solid var(--brass); background:var(--brass); color:#fff;
  cursor:pointer; transition:background .16s ease, color .16s ease, border-color .16s ease; line-height:1.2; }
.btn:hover{ background:#8F6414; border-color:#8F6414; }
.btn--ghost{ background:transparent; color:var(--ink); border-color:var(--line); }
.btn--ghost:hover{ background:var(--ink); color:#fff; border-color:var(--ink); }
.btn--dark{ background:var(--ink); border-color:var(--ink); }
.btn--dark:hover{ background:#08131D; border-color:#08131D; }
.btn--on-dark{ background:var(--brass-lt); border-color:var(--brass-lt); color:#16323F; }
.btn--on-dark:hover{ background:#E9CB84; border-color:#E9CB84; }
.btn--wa{ background:#128C7E; border-color:#128C7E; }
.btn--wa:hover{ background:#0C7165; border-color:#0C7165; }
.btn__row{ display:flex; gap:12px; flex-wrap:wrap; align-items:center; }
.btn svg{ width:17px; height:17px; }

.linkmore{ display:inline-flex; align-items:center; gap:7px; font-weight:600; color:var(--brass); font-size:15px; }
.linkmore:after{ content:"→"; transition:transform .16s ease; }
.linkmore:hover:after{ transform:translateX(4px); }

/* ---------- sections ---------- */
.sec{ padding:clamp(52px,7vw,86px) 0; }
.sec--tight{ padding:clamp(38px,5vw,58px) 0; }
.sec--tint{ background:var(--tint); }
.sec--line{ border-top:1px solid var(--line); }
.sec--dark{ background:var(--dark); color:#B9C6D1; }
.sec--dark h2,.sec--dark h3{ color:#fff; }
.sec--dark a{ color:#E7EDF2; }
.sec__head{ max-width:760px; margin-bottom:clamp(30px,4vw,46px); }
.sec__head--center{ margin-left:auto; margin-right:auto; text-align:center; }
.sec__head p:last-child{ margin-bottom:0; }

/* ---------- hero ---------- */
.hero{ background:linear-gradient(180deg,#FBF9F5 0%,#FFFFFF 100%); border-bottom:1px solid var(--line); padding:clamp(44px,6vw,74px) 0 0; }
.hero__in{ display:grid; grid-template-columns:1.08fr .92fr; gap:clamp(28px,4vw,58px); align-items:center; }
.hero__copy{ padding-bottom:clamp(30px,5vw,58px); }
.hero__kicker{ display:flex; gap:10px; align-items:center; flex-wrap:wrap; margin-bottom:18px; }
.chip{ font-size:12px; font-weight:700; letter-spacing:.09em; text-transform:uppercase;
  background:var(--brass-pale); color:#7A560F; padding:6px 11px; border-radius:2px; }
.hero__img{ align-self:end; }
.hero__img img{ width:100%; aspect-ratio:4/5; object-fit:cover; border-radius:var(--radius);
  border:1px solid var(--line); }
.hero__cap{ font-size:12.5px; color:var(--muted); margin-top:10px; letter-spacing:.02em; }
@media (max-width:900px){
  .hero__in{ grid-template-columns:1fr; gap:26px; }
  .hero__img{ max-width:460px; }
}

/* ---------- trust strip ---------- */
.trust{ background:var(--dark); color:#C4D0DA; }
.trust__in{ display:grid; grid-template-columns:repeat(5,1fr); gap:1px; background:#25384A; }
.trust__i{ background:var(--dark); padding:22px 20px; font-size:14px; line-height:1.5; }
.trust__i b{ display:block; color:#fff; font-size:14.5px; margin-bottom:3px; font-weight:600; }
.trust__i span{ color:#8E9EAC; font-size:13px; }
.trust__i:before{ content:""; display:block; width:22px; height:2px; background:var(--brass-lt); margin-bottom:12px; }
@media (max-width:900px){ .trust__in{ grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .trust__in{ grid-template-columns:1fr; } }

/* ---------- generic grids ---------- */
.grid{ display:grid; gap:clamp(18px,2.4vw,26px); }
.g2{ grid-template-columns:repeat(2,1fr); }
.g3{ grid-template-columns:repeat(3,1fr); }
.g4{ grid-template-columns:repeat(4,1fr); }
@media (max-width:1000px){ .g4{ grid-template-columns:repeat(2,1fr); } .g3{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:640px){ .g2,.g3,.g4{ grid-template-columns:1fr; } }

/* ---------- cards ---------- */
.card{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden;
  display:flex; flex-direction:column; transition:border-color .16s ease, box-shadow .16s ease, transform .16s ease; }
.card:hover{ border-color:var(--brass-rule); box-shadow:0 14px 28px rgba(15,29,42,.07); transform:translateY(-2px); }
.card__img{ aspect-ratio:4/5; overflow:hidden; background:var(--tint); }
.card__img img{ width:100%; height:100%; object-fit:cover; }
.card__body{ padding:20px 20px 22px; flex:1; display:flex; flex-direction:column; }
.card__body h3{ margin-bottom:.35em; font-size:18px; }
.card__body p{ font-size:14.5px; color:var(--muted); margin:0 0 14px; }
.card__body .linkmore{ margin-top:auto; font-size:14px; }
.card--flat{ border:1px solid var(--line); }

/* ---------- feature rows ---------- */
.feat{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(26px,4vw,54px); align-items:center; }
.feat + .feat{ margin-top:clamp(34px,5vw,64px); }
.feat__img img{ width:100%; aspect-ratio:4/5; object-fit:cover; border-radius:var(--radius); border:1px solid var(--line); }
@media (max-width:860px){ .feat{ grid-template-columns:1fr; } .feat--rev .feat__img{ order:-1; } }

/* ---------- numbered steps ---------- */
.steps{ counter-reset:s; display:grid; gap:0; }
.step{ display:grid; grid-template-columns:78px 1fr; gap:20px; padding:26px 0; border-top:1px solid var(--line); }
.step:last-child{ border-bottom:1px solid var(--line); }
.step__n{ counter-increment:s; }
.step__n:before{ content:"0" counter(s); font-size:15px; font-weight:800; color:var(--brass); letter-spacing:.06em; }
.step__b h3{ margin-bottom:.3em; }
.step__b p:last-child{ margin-bottom:0; }
.step__pic{ margin-top:14px; }
.step__pic img{ width:100%; max-width:320px; aspect-ratio:1/1; object-fit:cover; border-radius:var(--radius); border:1px solid var(--line); }
@media (max-width:560px){ .step{ grid-template-columns:1fr; gap:8px; } }

/* ---------- lists with brass ticks ---------- */
.ticks{ list-style:none; padding:0; margin:0 0 1em; }
.ticks li{ position:relative; padding-left:26px; margin:.55em 0; }
.ticks li:before{ content:""; position:absolute; left:0; top:.6em; width:12px; height:2px; background:var(--brass); }
.ticks--dark li:before{ background:var(--brass-lt); }

/* ---------- tables ---------- */
.tblwrap{ overflow-x:auto; -webkit-overflow-scrolling:touch; border:1px solid var(--line); border-radius:var(--radius); }
table.tbl{ width:100%; border-collapse:collapse; font-size:14.5px; min-width:520px; }
table.tbl th,table.tbl td{ text-align:left; padding:13px 16px; border-bottom:1px solid var(--line-2); vertical-align:top; }
table.tbl thead th{ background:var(--tint); color:var(--ink); font-size:12.5px; letter-spacing:.07em;
  text-transform:uppercase; font-weight:700; white-space:nowrap; }
table.tbl tbody tr:last-child td{ border-bottom:0; }
table.tbl td:first-child{ color:var(--ink); font-weight:600; }

/* ---------- notes ---------- */
.note{ border-left:3px solid var(--brass); background:var(--tint); padding:18px 20px; border-radius:0 var(--radius) var(--radius) 0; font-size:15px; }
.note strong{ color:var(--ink); }
.note p:last-child{ margin-bottom:0; }

/* ---------- faq ---------- */
.faq{ border-top:1px solid var(--line); }
.faq details{ border-bottom:1px solid var(--line); }
.faq summary{ cursor:pointer; list-style:none; padding:20px 34px 20px 0; position:relative;
  font-weight:600; color:var(--ink); font-size:16.5px; }
.faq summary::-webkit-details-marker{ display:none; }
.faq summary:after{ content:"+"; position:absolute; right:4px; top:17px; font-size:22px; font-weight:400; color:var(--brass); line-height:1; }
.faq details[open] summary:after{ content:"–"; }
.faq details > div{ padding:0 34px 22px 0; font-size:15.5px; color:var(--body); }
.faq details > div p:last-child{ margin-bottom:0; }

/* ---------- band CTA ---------- */
.band{ position:relative; background:var(--dark) center/cover no-repeat; color:#C4D0DA; overflow:hidden; }
.band:before{ content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(10,20,30,.94) 0%,rgba(10,20,30,.86) 45%,rgba(10,20,30,.62) 100%); }
.band__in{ position:relative; padding:clamp(56px,7vw,92px) 0; max-width:720px; }
.band h2{ color:#fff; }

/* ---------- forms ---------- */
.form{ display:grid; gap:16px; }
.f2{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media (max-width:640px){ .f2{ grid-template-columns:1fr; } }
.field label{ display:block; font-size:13px; font-weight:700; letter-spacing:.05em; text-transform:uppercase;
  color:var(--ink); margin-bottom:7px; }
.field input,.field select,.field textarea{
  width:100%; padding:12px 14px; border:1px solid var(--line); border-radius:var(--radius);
  font-family:inherit; font-size:15.5px; color:var(--ink); background:#fff; }
.field input:focus,.field select:focus,.field textarea:focus{ outline:2px solid var(--brass-rule); outline-offset:0; border-color:var(--brass); }
.field textarea{ min-height:132px; resize:vertical; }
.req{ color:var(--brass); }
.formout{ display:none; border-left:3px solid var(--brass); background:var(--brass-pale); padding:16px 18px; font-size:15px; }
.formout.show{ display:block; }

/* ---------- contact rows ---------- */
.crow{ display:flex; gap:16px; align-items:flex-start; padding:20px 0; border-bottom:1px solid var(--line); }
.crow:first-child{ border-top:1px solid var(--line); }
.crow__i{ width:44px; height:44px; flex:0 0 auto; border:1px solid var(--brass-rule); border-radius:var(--radius);
  display:grid; place-items:center; color:var(--brass); background:var(--brass-pale); }
.crow__i svg{ width:19px; height:19px; }
.crow__b b{ display:block; color:var(--ink); font-size:15px; }
.crow__b a{ color:var(--brass); font-weight:600; }
.crow__b div{ font-size:14.5px; color:var(--muted); }

/* ---------- floating actions ---------- */
.fab{ position:fixed; right:18px; bottom:18px; z-index:80; display:flex; flex-direction:column; gap:10px; }
.fab a{ display:flex; align-items:center; gap:9px; background:#128C7E; color:#fff; padding:14px 18px;
  border-radius:40px; font-size:14px; font-weight:600; box-shadow:0 8px 22px rgba(15,29,42,.22); }
.fab a:hover{ background:#0C7165; }
.fab a svg{ width:19px; height:19px; }
@media (max-width:640px){ .fab a span{ display:none; } .fab a{ padding:15px; } }

/* ---------- footer ---------- */
.ftr{ background:var(--ink); color:#8FA0AE; font-size:14px; padding:56px 0 26px; }
.ftr h4{ color:#fff; font-size:12.5px; letter-spacing:.13em; text-transform:uppercase; margin-bottom:16px; }
.ftr a:hover{ color:var(--brass-lt); }
.ftr__grid{ display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr; gap:32px; }
@media (max-width:900px){ .ftr__grid{ grid-template-columns:1fr 1fr; gap:28px; } }
@media (max-width:560px){ .ftr__grid{ grid-template-columns:1fr; } }
.ftr ul{ list-style:none; padding:0; margin:0; }
.ftr li{ margin:.55em 0; }
.ftr__bot{ margin-top:42px; padding-top:20px; border-top:1px solid #26384A; display:flex;
  justify-content:space-between; gap:16px; flex-wrap:wrap; font-size:13px; color:#76889A; }
.ftr .brand__name{ color:#fff; }
.ftr__about{ color:#8FA0AE; max-width:34ch; margin-top:14px; font-size:13.5px; }

/* ---------- misc ---------- */
.mt0{ margin-top:0; } .mb0{ margin-bottom:0; }
.mb1{ margin-bottom:14px; } .mb2{ margin-bottom:26px; } .mb3{ margin-bottom:40px; }
.center{ text-align:center; }
.sec__head--center .hr-brass{ margin-left:auto; margin-right:auto; }
.article{ font-size:17px; }
.article h2{ margin-top:1.6em; font-size:clamp(22px,2.4vw,29px); }
.article h3{ margin-top:1.5em; }
.article ul,.article ol{ padding-left:1.3em; }
.article figure{ margin:30px 0; }
.article figure img{ width:100%; border-radius:var(--radius); border:1px solid var(--line); }
.article figcaption{ font-size:13.5px; color:var(--muted); margin-top:9px; }
.meta{ font-size:13.5px; color:var(--muted); letter-spacing:.03em; text-transform:uppercase; }
.crumb{ font-size:13.5px; color:var(--muted); margin-bottom:14px; }
.crumb a{ color:var(--brass); }
.skip{ position:absolute; left:-9999px; }
