/* hvw — domain-prefixed design system. Layout variant: editorial */
:root{
  --hvw-bg-0:#0a0d07;
  --hvw-bg-1:#121a0d;
  --hvw-bg-2:#1d2a14;
  --hvw-fg:#f4ffe6;
  --hvw-fg-dim:#a8c182;
  --hvw-a1:#c0ff3c;
  --hvw-a2:#36e0c8;
  --hvw-a3:#ff6ad5;
  --hvw-line:rgba(200,255,120,.10);
  --hvw-radius:6px;
  --hvw-shadow:0 20px 60px -20px #36e0c866;
  --hvw-grad:linear-gradient(90deg,var(--hvw-a1),var(--hvw-a2) 55%,var(--hvw-a3));
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body.hvw-body{
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",Segoe UI,Roboto,sans-serif;
  color:var(--hvw-fg);
  background:
    radial-gradient(1200px 700px at 90% -10%, #36e0c833, transparent 60%),
    radial-gradient(1000px 600px at -10% 10%, #c0ff3c22, transparent 60%),
    linear-gradient(180deg,var(--hvw-bg-0),var(--hvw-bg-1) 50%,var(--hvw-bg-0));
  min-height:100vh;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
img{max-width:100%;display:block;border:0}
a{color:var(--hvw-fg);text-decoration:none;transition:color .2s ease}
a:hover{color:var(--hvw-a1)}
.hvw-skip{position:absolute;left:-9999px;top:0}
.hvw-skip:focus{left:1rem;top:1rem;background:#000;padding:.5rem 1rem;border-radius:8px;z-index:99}

.hvw-glass{
  background:linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,.03));
  border:1px solid var(--hvw-line);
  backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%);
  border-radius:var(--hvw-radius);
}

.hvw-header{padding:18px clamp(16px,4vw,40px) 8px}
.hvw-header__bar{
  display:flex;gap:18px;align-items:center;padding:12px 18px;
  position:sticky;top:12px;z-index:30;box-shadow:var(--hvw-shadow);
}
.hvw-brand{display:flex;align-items:center;gap:10px;font-weight:700;letter-spacing:.5px}
.hvw-brand__txt{
  background:var(--hvw-grad);-webkit-background-clip:text;background-clip:text;color:transparent;
  font-size:1.05rem;white-space:nowrap;
}
.hvw-nav{display:flex;gap:6px;flex-wrap:wrap;flex:1;justify-content:center}
.hvw-nav__link{padding:8px 14px;border-radius:999px;font-size:.92rem;color:var(--hvw-fg-dim);
  transition:background .25s,color .25s,transform .2s;}
.hvw-nav__link:hover{background:rgba(255,255,255,.06);color:#fff;transform:translateY(-1px)}
.hvw-nav__link.is-active{background:var(--hvw-grad);color:#0b0f1a;font-weight:600;}
.hvw-search{display:flex;align-items:center;background:rgba(255,255,255,.06);border:1px solid var(--hvw-line);
  border-radius:999px;padding:4px 6px 4px 14px;transition:box-shadow .25s,border-color .25s}
.hvw-search:focus-within{border-color:var(--hvw-a1);box-shadow:0 0 0 4px #c0ff3c33}
.hvw-search__input{background:transparent;border:0;outline:0;color:#fff;min-width:220px;padding:8px 6px;font-size:.92rem}
.hvw-search__input::placeholder{color:var(--hvw-fg-dim)}
.hvw-search__btn{background:var(--hvw-grad);border:0;color:#0b0f1a;width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer}

.hvw-h1{
  margin:24px clamp(8px,3vw,24px) 4px;
  font-size:clamp(1.4rem,3vw,2.2rem);
  background:var(--hvw-grad);-webkit-background-clip:text;background-clip:text;color:transparent;
  letter-spacing:.5px;
}
.hvw-crumbs{margin:6px clamp(16px,4vw,40px) 0;color:var(--hvw-fg-dim);font-size:.85rem;display:flex;gap:8px;align-items:center}
.hvw-crumbs a{color:var(--hvw-a1)}

.hvw-main{padding:24px clamp(16px,4vw,40px) 60px;display:flex;flex-direction:column;gap:36px}
.hvw-hero{padding:28px;display:flex;flex-direction:column;gap:8px}
.hvw-h2{font-size:clamp(1.15rem,2vw,1.6rem);margin:0;letter-spacing:.4px}
.hvw-lead{color:var(--hvw-fg-dim);max-width:80ch;line-height:1.7;margin:0}

/* === Layout-specific grid: editorial === */
.hvw-grid{display:grid;gap:18px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
.hvw-card{display:grid;grid-template-columns:140px 1fr;gap:0;background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.01));border:1px solid var(--hvw-line);border-radius:var(--hvw-radius);overflow:hidden;transition:border-color .35s,transform .35s}
.hvw-card:hover{border-color:#c0ff3c;transform:translateY(-2px)}
.hvw-card__media{position:relative;display:block;aspect-ratio:1/1;overflow:hidden}

.hvw-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.hvw-card:hover .hvw-card__media img{transform:scale(1.06)}
.hvw-card__overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;opacity:0;background:linear-gradient(180deg,rgba(11,15,26,0),rgba(11,15,26,.5));transition:opacity .3s}
.hvw-card:hover .hvw-card__overlay{opacity:1}
.hvw-card__tag{position:absolute;left:10px;top:10px;font-size:.72rem;padding:4px 10px;border-radius:999px;background:rgba(11,15,26,.6);backdrop-filter:blur(6px);color:var(--hvw-a1);border:1px solid var(--hvw-line)}
.hvw-card__body{padding:14px 16px 18px;display:flex;flex-direction:column;gap:8px}
.hvw-card__title{margin:0;font-size:1.02rem;line-height:1.45}
.hvw-card__desc{margin:0;color:var(--hvw-fg-dim);font-size:.88rem;line-height:1.6}
.hvw-card__meta{margin-top:4px;font-size:.78rem;color:var(--hvw-fg-dim);display:flex;gap:6px}

.hvw-reviews__grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}
.hvw-review{padding:18px;line-height:1.6}
.hvw-review p{margin:0 0 8px}
.hvw-review cite{color:var(--hvw-a1);font-style:normal;font-size:.85rem}

.hvw-contact__grid{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.hvw-contact__card{padding:20px;display:flex;flex-direction:column;gap:12px}
.hvw-contact__card h3{margin:0;font-size:1.05rem}
.hvw-kv{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}
.hvw-kv li{display:flex;justify-content:space-between;gap:12px;border-bottom:1px dashed var(--hvw-line);padding-bottom:6px;font-size:.88rem}
.hvw-kv span{color:var(--hvw-fg-dim)}
.hvw-contact__shop,.hvw-contact__qr{border-radius:12px;border:1px solid var(--hvw-line);max-height:160px;object-fit:cover}
.hvw-json pre{background:rgba(0,0,0,.35);padding:12px;border-radius:10px;font-size:.78rem;overflow:auto;max-height:200px;color:#cfd6ff}

.hvw-share{display:flex;flex-wrap:wrap;gap:10px}
.hvw-share button{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--hvw-line);background:rgba(255,255,255,.05);color:#fff;padding:8px 14px;border-radius:999px;cursor:pointer;transition:background .2s,transform .2s}
.hvw-share button:hover{background:var(--hvw-grad);color:#0b0f1a;transform:translateY(-1px)}

.hvw-faq{display:flex;flex-direction:column;gap:10px;max-width:880px}
.hvw-faq__item{background:rgba(255,255,255,.04);border:1px solid var(--hvw-line);border-radius:12px;padding:14px 18px;transition:background .2s}
.hvw-faq__item[open]{background:#c0ff3c1A}
.hvw-faq__item summary{cursor:pointer;font-weight:600;list-style:none}
.hvw-faq__item summary::-webkit-details-marker{display:none}
.hvw-faq__item summary::after{content:"+";float:right;color:var(--hvw-a1);transition:transform .25s}
.hvw-faq__item[open] summary::after{content:"−"}
.hvw-faq__item p{margin:8px 0 0;color:var(--hvw-fg-dim);line-height:1.7}

.hvw-footer{margin-top:40px;border-top:1px solid var(--hvw-line);background:rgba(7,10,20,.7)}
.hvw-footer__inner{display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));padding:32px clamp(16px,4vw,40px)}
.hvw-footer h4{margin:0 0 10px;font-size:1rem;color:var(--hvw-a1)}
.hvw-footer ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}
.hvw-footer__bottom{padding:14px clamp(16px,4vw,40px);text-align:center;color:var(--hvw-fg-dim);font-size:.82rem;border-top:1px solid var(--hvw-line)}

@media (max-width:640px){
  .hvw-header__bar{flex-wrap:wrap;gap:10px}
  .hvw-search__input{min-width:0;width:100%}
  .hvw-search{order:3;flex:1 0 100%}
  .hvw-nav{order:2;justify-content:flex-start;overflow-x:auto;flex-wrap:nowrap}
  .hvw-nav::-webkit-scrollbar{display:none}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
