:root{
  --cream:#F9F5EE;
  --cream-2:#F2EBDD;
  --paper:#FFFDF8;
  --ink:#1C1C1A;
  --ink-2:#57544F;
  --ink-3:#8C8882;
  --line:#E8E0D0;
  --line-2:#DDD6C6;
  --terracotta:#C84C2E;
  --terracotta-2:#A93E24;
  --terracotta-soft:#F3D9CF;
  --sage:#7A8E7F;
  --sage-soft:#E3E9E1;
  --mustard:#C89A2E;
  --mustard-soft:#F5E6B8;
  --radius-lg:22px;
  --radius-md:16px;
  --radius-sm:10px;
  --shadow:0 8px 32px rgba(28,28,26,.08), 0 1px 3px rgba(28,28,26,.06);
  --shadow-lg:0 20px 60px rgba(28,28,26,.12), 0 4px 16px rgba(28,28,26,.08);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto} *{animation:none!important;transition:none!important}}
body{
  margin:0;
  font-family: ui-sans-system, -apple-system, BlinkMacSystemFont, "SF Pro Text", "Inter", "Helvetica Neue", Arial, sans-serif;
  background:var(--cream);
  color:var(--ink);
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit}
button{font:inherit}
:focus-visible{outline:2px solid var(--terracotta); outline-offset:2px; border-radius:4px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Top bar */
.topbar{
  position:sticky; top:0; z-index:20;
  backdrop-filter:blur(14px);
  background:rgba(249,245,238,.88);
  border-bottom:1px solid var(--line);
}
.topbar-inner{
  max-width:1320px; margin:0 auto;
  padding:14px 24px;
  display:flex; align-items:center; justify-content:space-between; gap:20px;
}
.brand{
  display:flex; align-items:center; gap:14px; text-decoration:none;
}
.brand-mark{
  width:40px; height:40px; border-radius:12px;
  background:var(--ink); color:var(--cream);
  display:grid; place-items:center;
  font-family: Georgia, "Times New Roman", serif;
  font-weight:700; font-size:18px; letter-spacing:.02em;
}
.brand-text{line-height:1}
.brand-name{
  font-family: Georgia, "Times New Roman", serif;
  font-size:22px; font-weight:700; letter-spacing:.04em; text-transform:uppercase;
}
.brand-sub{font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-3); margin-top:2px}
.top-links{
  display:flex; align-items:center; gap:22px; font-size:13px; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-2)
}
.top-links a{text-decoration:none; border-bottom:1px solid transparent}
.top-links a:hover{color:var(--ink); border-color:var(--line-2)}
.saved-badge{
  display:inline-flex; align-items:center; gap:7px;
  background:var(--paper); border:1px solid var(--line); border-radius:999px; padding:7px 14px; font-size:13px;
}
.saved-badge strong{font-weight:600}
.saved-badge-dot{
  width:8px; height:8px; border-radius:50%; background:var(--terracotta)
}

/* Hero */
.hero{
  max-width:1320px; margin:0 auto; padding:42px 24px 28px;
  display:grid; grid-template-columns: 1.15fr .85fr; gap:36px; align-items:end;
}
@media (max-width:900px){ .hero{grid-template-columns:1fr; gap:24px; padding:28px 18px 20px} .hero-visual{order:-1} }
.hero-copy h1{
  font-family: Georgia, "Times New Roman", serif;
  font-size:clamp(38px, 5.2vw, 64px);
  line-height:.92; letter-spacing:-.03em; margin:12px 0 16px; font-weight:400;
}
.hero-copy h1 em{ font-style:italic; font-weight:400; color:var(--terracotta)}
.hero-copy p{
  font-size:17px; line-height:1.6; color:var(--ink-2); max-width:560px; margin:0;
}
.eyebrow{
  display:inline-flex; align-items:center; gap:8px;
  font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-3);
  border:1px solid var(--line); background:var(--paper); padding:6px 10px; border-radius:999px;
}
.eyebrow::before{content:""; width:7px; height:7px; border-radius:50%; background:var(--terracotta); display:inline-block}
.hero-visual{
  position:relative; min-height:360px;
  background:var(--paper); border:1px solid var(--line); border-radius:var(--radius-lg);
  overflow:hidden; box-shadow:var(--shadow);
  display:grid; grid-template-columns:1.2fr .8fr; gap:0;
}
.hero-visual img{width:100%; height:100%; object-fit:cover; display:block}
.hero-visual-left{position:relative; overflow:hidden}
.hero-visual-right{display:flex; flex-direction:column; background:var(--cream-2)}
.hero-visual-right img{height:180px}
.hero-card{
  padding:18px 18px 16px; flex:1; display:flex; flex-direction:column; justify-content:space-between;
  border-top:1px solid var(--line);
}
.hero-card small{font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-3)}
.hero-card h3{font-family: Georgia, serif; font-size:20px; margin:8px 0 8px; line-height:1.1}
.hero-card p{font-size:13px; color:var(--ink-2); margin:0; line-height:1.5}
.hero-stat-row{display:flex; gap:10px; margin-top:14px}
.hero-stat{flex:1; background:var(--paper); border:1px solid var(--line); border-radius:12px; padding:10px 12px; text-align:center}
.hero-stat strong{display:block; font-size:18px; line-height:1}
.hero-stat span{font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-3)}
.hero-image-label{
  position:absolute; left:14px; bottom:14px;
  background:rgba(255,253,248,.92); border:1px solid rgba(255,255,255,.6);
  backdrop-filter:blur(8px); padding:10px 12px; border-radius:12px; max-width:220px;
}
.hero-image-label strong{display:block; font-size:13px}
.hero-image-label span{font-size:12px; color:var(--ink-2)}

/* Controls */
.controls-wrap{
  max-width:1320px; margin:0 auto; padding:0 24px;
}
.controls{
  background:var(--paper); border:1px solid var(--line); border-radius:18px;
  padding:14px; box-shadow:var(--shadow);
  display:flex; flex-wrap:wrap; gap:12px; align-items:center; justify-content:space-between;
}
.controls-left{display:flex; flex-wrap:wrap; gap:12px; align-items:center; flex:1}
.controls-right{display:flex; gap:10px; align-items:center}
.search-wrap{
  position:relative; flex:1; min-width:240px; max-width:420px;
}
.search-wrap svg{position:absolute; left:12px; top:50%; transform:translateY(-50%); width:16px; height:16px; color:var(--ink-3); pointer-events:none}
.search-input{
  width:100%; height:44px; padding:0 14px 0 38px;
  border:1px solid var(--line); border-radius:12px; background:var(--cream);
  font-size:15px; color:var(--ink);
}
.search-input::placeholder{color:var(--ink-3)}
.search-input:focus{outline:none; border-color:var(--ink-3); background:var(--paper)}
.filter-wrap{display:flex; align-items:center; gap:8px}
.filter-wrap label{font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-3); font-weight:600}
.select{
  height:44px; padding:0 36px 0 14px; border:1px solid var(--line); border-radius:12px;
  background:var(--cream); font-size:14px; font-weight:500; color:var(--ink);
  appearance:none;
  background-image: url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%238C8882' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 14px center;
}
.count{
  font-size:13px; color:var(--ink-3); background:var(--cream); border:1px solid var(--line); padding:10px 12px; border-radius:999px; white-space:nowrap;
}
.saved-filter-btn{
  height:44px; padding:0 16px; border-radius:999px; border:1px solid var(--line);
  background:var(--paper); display:inline-flex; align-items:center; gap:8px;
  font-size:14px; font-weight:600; cursor:pointer; transition:.18s; white-space:nowrap;
}
.saved-filter-btn[aria-pressed="true"]{background:var(--ink); color:var(--cream); border-color:var(--ink)}
.saved-filter-btn svg{width:16px; height:16px; flex-shrink:0}
.saved-filter-btn:hover{transform:translateY(-1px); box-shadow:0 4px 12px rgba(0,0,0,.08)}
@media (max-width:900px){
  .controls{flex-direction:column; align-items:stretch}
  .controls-left{flex-direction:column; align-items:stretch}
  .search-wrap{max-width:none}
  .controls-right{justify-content:space-between}
}

/* List */
.list-section{max-width:1320px; margin:22px auto 0; padding:0 24px 48px}
.grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:18px;
}
@media (max-width:1020px){ .grid{grid-template-columns:repeat(2,1fr)} }
@media (max-width:640px){ .grid{grid-template-columns:1fr} .list-section{padding:0 18px 40px} }
.item{
  background:var(--paper); border:1px solid var(--line); border-radius:var(--radius-lg);
  overflow:hidden; display:flex; flex-direction:column;
  box-shadow:var(--shadow); transition:.2s;
}
.item:hover{transform:translateY(-3px); box-shadow:var(--shadow-lg); border-color:var(--line-2)}
.item-media{position:relative; height:220px; overflow:hidden; background:var(--cream-2)}
.item-media img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s}
.item:hover .item-media img{transform:scale(1.04)}
.item-topbar{
  position:absolute; left:12px; right:12px; top:12px; display:flex; justify-content:space-between; align-items:center; gap:8px;
}
.pill{
  font-size:11px; letter-spacing:.08em; text-transform:uppercase; font-weight:700;
  padding:7px 10px; border-radius:999px; background:rgba(255,253,248,.92); border:1px solid rgba(0,0,0,.06); backdrop-filter:blur(6px);
}
.pill.ceramics{background:#FFF3E8; color:#8A4A2B}
.pill.painting{background:#EAF0FF; color:#3A4A7A}
.pill.floristry{background:#EAF6EC; color:#2E5E3B}
.pill.baking{background:#FFF5D6; color:#7A5A1A}
.price-pill{
  background:var(--ink); color:var(--cream); font-weight:700; font-size:13px; padding:7px 10px; border-radius:999px;
}
.item-body{padding:16px 16px 14px; display:flex; flex-direction:column; flex:1; gap:10px}
.item-meta{font-size:12px; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-3); display:flex; gap:8px; align-items:center; flex-wrap:wrap}
.item-meta span.dot{width:3px; height:3px; border-radius:50%; background:var(--ink-3); display:inline-block}
.item-title{
  font-family: Georgia, "Times New Roman", serif; font-size:22px; line-height:1.05; margin:0; font-weight:400; letter-spacing:-.02em;
}
.item-desc{font-size:14px; line-height:1.55; color:var(--ink-2); margin:0; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden}
.item-footer{
  margin-top:auto; display:flex; align-items:center; justify-content:space-between; gap:10px; padding-top:12px; border-top:1px solid var(--line)
}
.item-details{font-size:12px; color:var(--ink-2); line-height:1.4}
.item-details strong{color:var(--ink)}
.open-item{
  height:36px; padding:0 14px; border-radius:999px; border:1px solid var(--ink); background:var(--paper);
  font-size:13px; font-weight:600; cursor:pointer; transition:.15s; flex-shrink:0;
}
.open-item:hover{background:var(--ink); color:var(--cream)}
.saved-indicator{
  display:inline-flex; align-items:center; gap:6px; font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
  color:var(--terracotta); background:var(--terracotta-soft); border:1px solid #E8CFC4; padding:6px 8px; border-radius:999px;
}
.saved-indicator svg{width:12px; height:12px}

/* Empty */
.empty-state{
  background:var(--paper); border:1px dashed var(--line-2); border-radius:var(--radius-lg);
  padding:40px 24px; text-align:center; margin-top:14px;
}
.empty-state h3{font-family: Georgia, serif; font-size:24px; margin:0 0 8px; font-weight:400}
.empty-state p{color:var(--ink-2); margin:0 0 16px}
.empty-btn{
  height:42px; padding:0 18px; border-radius:999px; border:1px solid var(--ink); background:var(--ink); color:var(--cream);
  font-weight:600; cursor:pointer;
}
.empty-btn:hover{background:var(--ink); opacity:.92}
[hidden]{display:none !important}

/* Detail overlay */
.detail-backdrop{
  position:fixed; inset:0; background:rgba(28,28,26,.42); backdrop-filter:blur(6px);
  opacity:0; pointer-events:none; transition:.22s; z-index:40;
}
.detail-backdrop.open{opacity:1; pointer-events:auto}
.detail-panel{
  position:fixed; inset:0; z-index:41; display:grid; place-items:center; padding:24px;
  opacity:0; pointer-events:none; transition:.22s;
}
.detail-panel.open{opacity:1; pointer-events:auto}
.detail-card{
  width:min(860px, 100%); max-height:min(88vh, 860px); overflow:auto;
  background:var(--paper); border:1px solid var(--line); border-radius:24px; box-shadow:var(--shadow-lg);
  display:grid; grid-template-columns: 1fr 1fr; gap:0; position:relative;
}
@media (max-width:760px){ .detail-card{grid-template-columns:1fr; max-height:92vh} .detail-panel{padding:12px; align-items:end} }
.detail-media{position:relative; min-height:320px; background:var(--cream-2); overflow:hidden; border-radius:24px 0 0 24px}
@media (max-width:760px){ .detail-media{border-radius:24px 24px 0 0; min-height:260px} }
.detail-media img{width:100%; height:100%; object-fit:cover; display:block}
.detail-media-overlay{
  position:absolute; inset:auto 14px 14px 14px;
  background:rgba(255,253,248,.92); border:1px solid rgba(255,255,255,.7); backdrop-filter:blur(8px);
  border-radius:14px; padding:12px 14px; display:flex; justify-content:space-between; gap:12px;
}
.detail-content{padding:22px 22px 20px; display:flex; flex-direction:column; gap:14px}
.detail-eyebrow{font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-3); font-weight:700}
.detail-title{font-family: Georgia, serif; font-size:32px; line-height:1; letter-spacing:-.02em; margin:0; font-weight:400}
.detail-body{font-size:15px; line-height:1.65; color:var(--ink-2); margin:0}
.detail-facts{
  display:grid; grid-template-columns:1fr 1fr; gap:10px; margin:4px 0 2px;
}
.fact{
  background:var(--cream); border:1px solid var(--line); border-radius:12px; padding:12px 12px;
}
.fact small{display:block; font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-3); font-weight:700; margin-bottom:4px}
.fact strong{font-size:14px; line-height:1.2}
.detail-actions{display:flex; gap:10px; flex-wrap:wrap; margin-top:6px}
.save-item{
  flex:1; min-width:160px; height:46px; border-radius:999px; border:1px solid var(--ink);
  background:var(--paper); font-weight:700; font-size:14px; cursor:pointer;
  display:inline-flex; align-items:center; justify-content:center; gap:8px; transition:.15s;
}
.save-item[aria-pressed="true"]{background:var(--terracotta); border-color:var(--terracotta); color:white}
.save-item svg{width:16px; height:16px}
.close-detail{
  height:46px; padding:0 18px; border-radius:999px; border:1px solid var(--line); background:var(--paper);
  font-weight:600; font-size:14px; cursor:pointer; display:inline-flex; align-items:center; gap:8px;
}
.close-detail:hover{background:var(--cream)}
.detail-close-x{
  position:absolute; top:14px; right:14px; z-index:2;
  width:38px; height:38px; border-radius:50%; border:1px solid rgba(0,0,0,.08);
  background:rgba(255,253,248,.92); backdrop-filter:blur(6px); cursor:pointer;
  display:grid; place-items:center;
}
.detail-close-x:hover{background:var(--paper)}

/* Footer */
.footer{
  border-top:1px solid var(--line); background:var(--paper);
  padding:28px 24px; margin-top:24px;
}
.footer-inner{max-width:1320px; margin:0 auto; display:flex; flex-wrap:wrap; gap:20px; justify-content:space-between; align-items:flex-start}
.footer h4{font-family: Georgia, serif; font-size:18px; margin:0 0 6px}
.footer p, .footer li{font-size:13px; color:var(--ink-2); line-height:1.6}
.footer ul{list-style:none; padding:0; margin:0}
.footer-bottom{max-width:1320px; margin:18px auto 0; padding-top:14px; border-top:1px solid var(--line); font-size:12px; color:var(--ink-3); display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px}
