:root{--ink:#2a241d;--muted:#766b5f;--bg:#fbf8f3;--card:#fff;--line:#e7ddd0;--accent:#5a4632;--accent-2:#7d9a6a;--soft:#f0e9df;--font-head:"Iowan Old Style",Baskerville,"Times New Roman",serif;--font-body:"Helvetica Neue",Helvetica,Arial,sans-serif;--r-lg:22px;--r-md:14px;--r-sm:10px;--r-btn:999px;--cols:4}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--font-body);background:var(--bg);color:var(--ink);line-height:1.6}
a{color:inherit}
img{display:block}
.wrap{max-width:1140px;margin:0 auto;padding:0 20px}
.muted{color:var(--muted)}
.topbar{background:var(--accent);color:var(--bg);text-align:center;font-size:.82rem;padding:.45rem 1rem}
.header{background:rgba(250,247,242,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50}
.header-inner{display:flex;align-items:center;gap:2rem;height:66px}
.logo{display:flex;align-items:center;gap:.6rem;font-family:var(--font-head);font-size:1.3rem;font-weight:700;text-decoration:none;color:var(--accent)}
.nav{display:flex;gap:1.6rem;margin-left:auto}
.nav a{text-decoration:none;color:var(--muted);font-size:.93rem}
.nav a:hover{color:var(--ink)}
.cart-link{position:relative;color:var(--ink);display:flex}
.header-actions{display:flex;align-items:center;gap:1.2rem}
.lang{font-size:.78rem;font-weight:700;letter-spacing:.06em;text-decoration:none;color:var(--muted);border:1px solid var(--line);border-radius:var(--r-btn);padding:.2rem .6rem}
.lang:hover{color:var(--ink);border-color:var(--ink)}
.badge{position:absolute;top:-7px;right:-10px;background:var(--accent-2);color:#fff;font-size:.68rem;font-weight:700;min-width:18px;height:18px;border-radius:9px;display:flex;align-items:center;justify-content:center;padding:0 4px}
.btn{display:inline-block;background:var(--accent);color:#fff;border:0;border-radius:var(--r-btn);padding:.8rem 1.7rem;font-size:.95rem;font-weight:600;text-decoration:none;cursor:pointer;transition:background .2s,transform .1s}
.btn:hover{filter:brightness(.88)}
.btn:active{transform:translateY(1px)}
.btn.ghost{background:transparent;color:var(--accent);border:1.5px solid var(--accent)}
.btn.ghost:hover{background:var(--accent);color:#fff;filter:none}
.btn.small{padding:.5rem 1rem;font-size:.85rem}
/* hero */
.hero{display:grid;grid-template-columns:1.1fr 1fr;gap:3rem;align-items:center;padding:4.5rem 0 3.5rem}
.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.75rem;font-weight:700;color:var(--accent-2);margin-bottom:1rem}
.hero h1{font-family:var(--font-head);font-size:3.1rem;line-height:1.1;font-weight:700;margin-bottom:1.2rem}
.hero p{color:var(--muted);font-size:1.08rem;max-width:470px;margin-bottom:2rem}
.hero .actions{display:flex;gap:1rem;flex-wrap:wrap}
.hero-art{background:var(--soft);border-radius:var(--r-lg);aspect-ratio:5/4;display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:20px}
.hero.flip>div:first-child{order:2}
.hero-art div{background:#fff;border-radius:var(--r-md);display:flex;align-items:center;justify-content:center}
.hero-art svg{width:90%}
/* perks */
.perks{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:1.6rem 0;margin-bottom:4rem}
.perk{display:flex;gap:.8rem;align-items:center;font-size:.9rem}
.perk b{display:block}
.perk span{color:var(--muted);font-size:.82rem}
.perk-icon{width:40px;height:40px;border-radius:50%;background:var(--soft);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--accent)}
/* catalog */
.section-head{display:flex;align-items:end;justify-content:space-between;gap:1rem;margin-bottom:1.8rem;flex-wrap:wrap}
.section-head h2,.page h1{font-family:var(--font-head);font-size:2rem}
.filters{display:flex;gap:.5rem;flex-wrap:wrap}
.chip{border:1px solid var(--line);background:#fff;border-radius:var(--r-btn);padding:.4rem 1rem;font-size:.85rem;cursor:pointer;color:var(--muted)}
.chip.active{background:var(--ink);border-color:var(--ink);color:#fff}
.grid{display:grid;grid-template-columns:repeat(var(--cols),1fr);gap:1.4rem;margin-bottom:5rem}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;display:flex;flex-direction:column;transition:transform .2s,box-shadow .2s}
.card:hover{transform:translateY(-3px);box-shadow:0 12px 30px rgba(34,38,31,.08)}
.card .thumb{display:block;background:var(--soft);aspect-ratio:5/4;position:relative}
.card .thumb svg{width:100%;height:100%}
.sale{position:absolute;top:12px;left:12px;background:var(--accent-2);color:#fff;font-size:.72rem;font-weight:700;border-radius:999px;padding:.2rem .6rem}
.card .body{padding:1rem 1.1rem 1.2rem;display:flex;flex-direction:column;gap:.3rem;flex:1}
.card .cat{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.card h3{font-size:1rem;font-weight:600}
.card h3 a{text-decoration:none}
.card .row{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:.6rem}
.price{font-weight:700}
.old{color:var(--muted);text-decoration:line-through;font-size:.88rem;margin-left:.3rem}
/* today: weekday theme + deal of the day */
.today{display:grid;grid-template-columns:1.3fr 1fr;gap:2rem;align-items:center;background:var(--soft);border-radius:var(--r-lg);padding:2.4rem;margin-bottom:4rem}
.today h2{font-family:var(--font-head);font-size:2rem;margin-bottom:.6rem}
.today p{color:var(--muted);margin-bottom:.6rem}
.today .today-offer{color:var(--accent-2);font-weight:700}
.deal{display:grid;grid-template-columns:120px 1fr;gap:1.2rem;align-items:center;background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:1.2rem;text-decoration:none;transition:box-shadow .2s}
.deal:hover{box-shadow:0 12px 30px rgba(34,38,31,.08)}
.deal .eyebrow{margin-bottom:.3rem}
.deal h3{font-size:1.1rem;margin-bottom:.3rem}
.deal-art{background:var(--soft);border-radius:var(--r-sm);aspect-ratio:1}
.deal-art svg{width:100%;height:100%}
.deal-badge{background:var(--accent)}
.deal-note{background:var(--soft);border-radius:var(--r-sm);padding:.6rem .9rem;font-size:.9rem;margin:-.4rem 0 1.2rem;color:var(--accent-2);font-weight:600}
.notice-inline{background:var(--soft);border-radius:var(--r-sm);padding:.7rem 1rem;font-size:.92rem}
.small{font-size:.82rem}
/* banner */
.banner{background:var(--accent);color:var(--bg);border-radius:var(--r-lg);padding:3rem;display:grid;grid-template-columns:1.2fr 1fr;gap:2rem;align-items:center;margin-bottom:5rem}
.banner h2{font-family:var(--font-head);font-size:2rem;margin-bottom:.6rem}
.banner p{opacity:.8}
.promo{display:flex;gap:1rem;align-items:center;justify-content:flex-end;flex-wrap:wrap}
.promo-code{border:2px dashed currentColor;border-radius:var(--r-sm);padding:.6rem 1.2rem;font-size:1.3rem;font-weight:700;letter-spacing:.12em}
.promo .btn{background:var(--accent-2)}
/* product page */
.crumbs{font-size:.85rem;color:var(--muted);padding:1.6rem 0}
.crumbs a{text-decoration:none}
.product{display:grid;grid-template-columns:1fr 1fr;gap:3.5rem;margin-bottom:5rem}
.product .gallery{background:var(--soft);border-radius:var(--r-lg);aspect-ratio:1;display:flex;align-items:center;justify-content:center}
.product .gallery svg{width:85%}
.product h1{font-family:var(--font-head);font-size:2.4rem;line-height:1.15;margin:.4rem 0 .8rem}
.product .prices{font-size:1.5rem;margin:1rem 0}
.product .desc{color:var(--muted);margin-bottom:1.6rem}
.buy{display:flex;gap:.8rem;align-items:center;margin-bottom:2rem}
.qty{display:flex;align-items:center;border:1px solid var(--line);border-radius:var(--r-btn);background:#fff}
.qty button{border:0;background:none;width:38px;height:44px;font-size:1.1rem;cursor:pointer;color:var(--ink)}
.qty input{width:36px;border:0;text-align:center;font-size:1rem;outline:0;background:none}
.specs{border-top:1px solid var(--line)}
.specs li{list-style:none;display:flex;justify-content:space-between;padding:.75rem 0;border-bottom:1px solid var(--line);font-size:.92rem}
.specs li span:first-child{color:var(--muted)}
/* text pages */
.page{max-width:760px;margin:0 auto;padding:3.5rem 20px 5rem}
.page h1{margin-bottom:1.2rem}
.page h2{font-size:1.2rem;margin:2rem 0 .6rem}
.page p,.page li{color:#474b42;margin-bottom:.8rem}
.page ul{padding-left:1.2rem}
.policy h2{font-size:1.05rem}
.policy .muted{font-size:.9rem}
/* cart */
.cart-items{border-top:1px solid var(--line);margin:1.5rem 0}
.cart-item{display:grid;grid-template-columns:72px 1fr auto auto;gap:1rem;align-items:center;padding:1rem 0;border-bottom:1px solid var(--line)}
.cart-item .mini{background:var(--soft);border-radius:var(--r-sm);aspect-ratio:1}
.cart-item .mini svg{width:100%;height:100%}
.cart-item a{text-decoration:none;font-weight:600}
.link-btn{border:0;background:none;color:var(--muted);cursor:pointer;font-size:.85rem;text-decoration:underline}
.summary{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}
.summary .total{font-size:1.3rem;font-weight:700}
.empty{text-align:center;padding:3rem 0;color:var(--muted)}
.empty .btn{margin-top:1.2rem}
.notice{background:var(--soft);border-radius:var(--r-sm);padding:1rem 1.2rem;margin-top:1.2rem;font-size:.92rem;display:none}
/* footer */
.footer{background:#fff;border-top:1px solid var(--line);padding:3.5rem 0 1.5rem}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1.4fr;gap:2rem;margin-bottom:2.5rem}
.footer h4{font-size:.8rem;text-transform:uppercase;letter-spacing:.1em;margin-bottom:.8rem}
.footer a,.footer span{display:block;text-decoration:none;color:var(--muted);font-size:.9rem;margin-bottom:.4rem}
.footer a:hover{color:var(--ink)}
.footer p{font-size:.9rem;margin-top:.8rem;max-width:260px}
.copy{font-size:.8rem;color:var(--muted);border-top:1px solid var(--line);padding-top:1.5rem}
.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,20px);background:var(--ink);color:#fff;padding:.75rem 1.4rem;border-radius:999px;font-size:.9rem;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;z-index:100}
.toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:900px){
  .grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .perks{grid-template-columns:repeat(2,1fr)}
  .hero,.product,.banner,.today{grid-template-columns:minmax(0,1fr)}
  .hero.flip>div:first-child{order:0}
  .hero h1{font-size:2.3rem}
  .footer-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:600px){
  .nav{display:none}
  .header-inner{justify-content:space-between}
  .grid{gap:.8rem}
  .card .body{padding:.8rem}
  .card .row{flex-wrap:wrap;gap:.5rem}
  .banner{padding:2rem 1.4rem}
  .cart-item{grid-template-columns:56px 1fr auto}
  .cart-item .line-total{display:none}
}
