/* ---------- hero ---------- */
.hero{border-bottom:1px solid var(--ink)}
.hero__in{display:grid;grid-template-columns:1.08fr .92fr;min-height:min(78vh,660px)}
.hero__text{padding:52px var(--gut) 44px;display:flex;flex-direction:column;justify-content:center;border-right:1px solid var(--ink);max-width:760px;margin-left:auto}
.kicker{font-family:var(--mono);font-size:10px;letter-spacing:.28em;text-transform:uppercase;color:var(--rust);margin-bottom:20px}
.hero h1{font-size:clamp(38px,6.4vw,74px);letter-spacing:-.035em}
.hero h1 em{font-style:italic;color:var(--moss)}
.hero__lede{font-size:clamp(16px,1.5vw,19px);color:var(--ink-soft);max-width:48ch;margin:22px 0 30px}
.hero__cta{display:flex;gap:12px;flex-wrap:wrap}
.hero__stats{display:flex;gap:28px;margin-top:34px;padding-top:20px;border-top:1px solid var(--line);flex-wrap:wrap}
.hero__stats div strong{display:block;font-size:26px;letter-spacing:-.02em}
.hero__stats div span{font-family:var(--mono);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft)}
.hero__art{position:relative;background:var(--moss-deep);overflow:hidden}
.hero__art img{width:100%;height:100%;object-fit:cover;filter:saturate(1.06) contrast(1.03)}
.hero__tag{position:absolute;left:0;bottom:26px;background:var(--paper);border:1px solid var(--ink);border-left:0;padding:9px 16px;font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;max-width:82%}
@media(max-width:900px){.hero__in{grid-template-columns:1fr}.hero__text{border-right:0;border-bottom:1px solid var(--ink)}.hero__art{min-height:340px}}

.btn{display:inline-flex;align-items:center;gap:9px;font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;padding:13px 22px;border:1px solid var(--ink);background:var(--ink);color:var(--paper);cursor:pointer;transition:.16s}
.btn:hover{background:var(--moss);border-color:var(--moss)}
.btn--ghost{background:none;color:var(--ink)}
.btn--ghost:hover{background:var(--ink);color:var(--paper)}
.btn--block{width:100%;justify-content:center}
.btn[disabled]{opacity:.45;cursor:not-allowed}

/* ---------- section frames ---------- */
.sec{padding:56px 0 8px}
.sec__head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;border-bottom:3px solid var(--ink);padding-bottom:10px;margin-bottom:26px;flex-wrap:wrap}
.sec__head h2{font-size:clamp(24px,3.4vw,38px)}
.sec__head h2 em{font-style:italic;color:var(--moss)}
.sec__head p{margin:6px 0 0;color:var(--ink-soft);font-size:15px;max-width:56ch}
.seelink{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;border-bottom:1px solid var(--ink);padding-bottom:2px;white-space:nowrap}
.seelink:hover{color:var(--rust);border-color:var(--rust)}

/* ---------- product grid ---------- */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(255px,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.card{background:var(--paper);padding:0;display:flex;flex-direction:column;position:relative;transition:.18s}
.card:hover{background:#fffdf6}
.card__media{position:relative;aspect-ratio:1/1;overflow:hidden;background:var(--paper-2);border-bottom:1px solid var(--line)}
.card__media img{width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.card:hover .card__media img{transform:scale(1.045)}
.card__flags{position:absolute;top:9px;left:9px;display:flex;flex-direction:column;gap:5px;align-items:flex-start}
.flag{font-family:var(--mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;padding:4px 8px;background:var(--ink);color:var(--paper)}
.flag--sale{background:var(--rust)}
.flag--out{background:var(--line-strong)}
.flag--pick{background:var(--amber);color:#221a00}
.card__body{padding:14px 15px 16px;display:flex;flex-direction:column;gap:7px;flex:1}
.card__cat{font-family:var(--mono);font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft)}
.card__title{font-size:17px;line-height:1.24;letter-spacing:-.01em}
.card:hover .card__title{color:var(--moss)}
.card__spec{font-family:var(--mono);font-size:10px;color:var(--ink-soft);line-height:1.6;letter-spacing:.02em}
.card__foot{margin-top:auto;display:flex;align-items:flex-end;justify-content:space-between;gap:10px;padding-top:9px;border-top:1px solid var(--line)}
.price{font-size:19px;letter-spacing:-.02em;white-space:nowrap}
.price s{color:var(--line-strong);font-size:13px;margin-left:6px}
.stars{font-family:var(--mono);font-size:9.5px;color:var(--amber);letter-spacing:.05em}
.stars b{color:var(--ink-soft);font-weight:400;margin-left:4px}
.addbtn{border:1px solid var(--ink);background:none;padding:8px 12px;font-family:var(--mono);font-size:9.5px;letter-spacing:.13em;text-transform:uppercase;cursor:pointer;transition:.15s}
.addbtn:hover{background:var(--ink);color:var(--paper)}
.addbtn.is-added{background:var(--moss);border-color:var(--moss);color:#fff}

/* ---------- category strip ---------- */
.cats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.cats a{background:var(--paper);padding:20px 16px;display:flex;flex-direction:column;gap:5px;min-height:118px;justify-content:flex-end;position:relative;overflow:hidden}
.cats a:hover{background:var(--moss);color:#fff}
.cats a:hover .cats__n{color:rgba(255,255,255,.7)}
.cats__t{font-size:19px;letter-spacing:-.015em}
.cats__n{font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft)}
.cats__idx{position:absolute;top:10px;right:12px;font-family:var(--mono);font-size:9px;color:var(--line-strong)}

/* ---------- editorial band ---------- */
.band{margin-top:60px;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);background:var(--paper-2)}
.band__in{display:grid;grid-template-columns:repeat(3,1fr)}
.band__col{padding:34px var(--gut);border-right:1px solid var(--line)}
.band__col:last-child{border-right:0}
.band__col h3{font-size:20px;margin-bottom:8px}
.band__col p{margin:0;font-size:15px;color:var(--ink-soft)}
.band__num{font-family:var(--mono);font-size:9.5px;letter-spacing:.2em;color:var(--rust);margin-bottom:12px}
@media(max-width:820px){.band__in{grid-template-columns:1fr}.band__col{border-right:0;border-bottom:1px solid var(--line)}}

/* ---------- journal ---------- */
.journal{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:26px}
.jitem{border-top:3px solid var(--ink);padding-top:14px}
.jitem span{font-family:var(--mono);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--rust)}
.jitem h3{font-size:21px;margin:8px 0 8px;letter-spacing:-.02em}
.jitem p{margin:0;font-size:15px;color:var(--ink-soft)}

/* ---------- newsletter ---------- */
.news{margin-top:58px;border:1px solid var(--ink);background:var(--paper);display:grid;grid-template-columns:1.2fr 1fr}
.news__l{padding:36px;border-right:1px solid var(--ink)}
.news__l h2{font-size:clamp(24px,3vw,34px);letter-spacing:-.03em}
.news__l h2 em{font-style:italic;color:var(--moss)}
.news__l p{color:var(--ink-soft);font-size:15px;max-width:44ch}
.news__r{padding:36px;display:flex;flex-direction:column;justify-content:center;gap:12px;background:var(--paper-2)}
.news__r input{border:1px solid var(--line-strong);background:var(--paper);padding:13px 14px;font-family:var(--mono);font-size:11px;letter-spacing:.1em;outline:none}
.news__r input:focus{border-color:var(--moss)}
.news__r small{font-family:var(--mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft)}
@media(max-width:760px){.news{grid-template-columns:1fr}.news__l{border-right:0;border-bottom:1px solid var(--ink)}}
