.public-header { display:flex; align-items:center; justify-content:space-between; gap:20px; padding-block:22px; }
.public-header nav { display:flex; flex-wrap:wrap; gap:18px; }
.public-main { padding-block:30px; min-height:70vh; }
.public-main h1 { margin-block:18px; font-size:clamp(28px,5vw,48px); }
.public-main h2 { margin-block:16px; }
.public-main p { line-height:1.9; margin-block:12px; }
.public-main label { display:block; margin-block:18px 6px; }
.public-main input,.public-main select { max-width:540px; width:100%; padding:14px; border:1px solid var(--border); border-radius:12px; background:var(--card); color:var(--foreground); font:inherit; }
.public-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr)); gap:22px; margin-block:28px; }
.public-offer { overflow:hidden; }
.public-offer a { color:inherit; text-decoration:none; }
.public-offer img { width:100%; height:auto; aspect-ratio:3/4; object-fit:contain; background:var(--secondary); }
.public-offer[hidden] { display:none; }
.public-placeholder { display:grid; place-items:center; aspect-ratio:3/4; color:var(--primary); background:var(--secondary); font-size:32px; }
.public-detail { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:28px; }
.public-gallery { display:grid; gap:16px; align-content:start; }
.public-gallery img { width:100%; height:auto; border-radius:16px; }
.public-price { font-size:30px; color:var(--primary); }
.public-lines { white-space:pre-line; }
.public-footer { padding-block:30px; border-top:1px solid var(--border); }
@media(max-width:700px) { .public-detail { grid-template-columns:1fr; } .public-header { align-items:flex-start; flex-direction:column; } }
