:root{
  --bg:#FBF8F3; --bg-2:#F5EFE4;
  --panel:#FFFFFF;
  --orange:#E8730C; --orange-deep:#C85A00;
  --gold:#B8863A;
  --plum:#241533; --plum-2:#382349;
  --ink:#241726; --ink-dim:rgba(36,23,38,0.68); --ink-muted:rgba(36,23,38,0.48);
  --line:rgba(36,23,38,0.09); --line-strong:rgba(36,23,38,0.16);
  --cream-on-dark:#F5EBD8;
}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:'Archivo',system-ui,sans-serif;background:var(--bg);color:var(--ink);line-height:1.6}
a{color:inherit;text-decoration:none}
.wrap{max-width:1100px;margin:0 auto;padding:0 28px}
.serif-italic{font-family:'Fraunces',serif;font-style:italic;font-weight:400;color:var(--orange-deep)}

/* ---------- top bar ---------- */
.tp-topnav{padding:20px 0;border-bottom:1px solid var(--line);background:var(--bg)}
.tp-topnav .row{display:flex;justify-content:space-between;align-items:center}
.tp-brandlink{display:flex;align-items:center;gap:11px;font-weight:800;color:var(--plum)}
.tp-brandlink .mark{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,var(--orange),var(--gold));display:grid;place-items:center}
.tp-brandlink .mark svg{width:18px;height:18px}
.back-link{font-size:13.5px;font-weight:600;color:var(--ink-dim);display:flex;align-items:center;gap:6px}
.back-link:hover{color:var(--plum)}

/* ---------- listing header ---------- */
.blog-head{padding:64px 0 46px;text-align:center}
.blog-head .eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:12px;font-weight:700;letter-spacing:0.2em;text-transform:uppercase;color:var(--orange-deep);margin-bottom:18px}
.blog-head .eyebrow::before{content:"";width:26px;height:1px;background:var(--orange-deep);opacity:.6}
.blog-head h1{font-size:clamp(34px,5vw,52px);font-weight:800;letter-spacing:-0.025em;color:var(--plum);line-height:1.05}
.blog-head p{font-family:'Fraunces',serif;font-style:italic;font-weight:300;color:var(--ink-dim);font-size:18px;max-width:560px;margin:16px auto 0}

/* ---------- category filter pills ---------- */
.cat-filters{display:flex;flex-wrap:wrap;gap:9px;justify-content:center;margin:32px 0 10px}
.cat-pill{font-size:13px;font-weight:700;padding:9px 18px;border-radius:100px;border:1.5px solid var(--line-strong);color:var(--ink-dim);background:#fff;cursor:pointer;transition:.15s}
.cat-pill:hover{border-color:var(--orange-deep);color:var(--orange-deep)}
.cat-pill.active{background:var(--plum);border-color:var(--plum);color:#fff}

/* ---------- grid ---------- */
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;padding:40px 0 90px}
.blog-card{background:var(--panel);border:1px solid var(--line);border-radius:20px;overflow:hidden;transition:.3s;display:flex;flex-direction:column}
.blog-card:hover{transform:translateY(-6px);box-shadow:0 24px 48px -22px rgba(36,23,38,0.18)}
.blog-card .thumb{height:180px;background:linear-gradient(135deg,var(--bg-2),#EFE6D4);position:relative;overflow:hidden}
.blog-card .thumb img{width:100%;height:100%;object-fit:cover}
.blog-card .thumb-empty{width:100%;height:100%;display:grid;place-items:center;color:var(--ink-muted)}
.blog-card .body{padding:24px 24px 26px;flex:1;display:flex;flex-direction:column}
.blog-card .cat{font-size:11px;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:var(--orange-deep);margin-bottom:11px}
.blog-card h3{font-size:18.5px;color:var(--plum);line-height:1.25;margin-bottom:10px;font-weight:800;letter-spacing:-0.01em}
.blog-card p{font-size:13.5px;color:var(--ink-dim);line-height:1.6;margin-bottom:16px;flex:1}
.blog-card .meta{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--ink-muted)}
.blog-card .more{font-weight:700;color:var(--plum);display:inline-flex;align-items:center;gap:6px}

/* ---------- states ---------- */
.state-box{padding:80px 20px;text-align:center;color:var(--ink-muted)}
.state-box svg{margin:0 auto 18px;opacity:.35}
.state-box h3{color:var(--ink-dim);font-size:18px;margin-bottom:8px;font-weight:700}
.spinner{width:32px;height:32px;border:3px solid var(--line-strong);border-top-color:var(--orange);border-radius:50%;animation:spin 0.8s linear infinite;margin:0 auto 18px}
@keyframes spin{to{transform:rotate(360deg)}}

/* ---------- article page ---------- */
.article-hero{padding:60px 0 0}
.article-hero .meta-row{display:flex;gap:12px;align-items:center;font-size:13px;color:var(--ink-muted);margin-bottom:18px}
.article-hero .cat-tag{font-weight:700;color:var(--orange-deep);text-transform:uppercase;letter-spacing:0.08em;font-size:11.5px}
.article-hero h1{font-size:clamp(30px,4.6vw,48px);font-weight:800;letter-spacing:-0.025em;color:var(--plum);line-height:1.08;margin-bottom:20px;max-width:820px}
.article-hero-img{width:100%;max-width:900px;margin:30px auto 0;border-radius:20px;overflow:hidden}
.article-hero-img img{width:100%;display:block}
.article-body{max-width:720px;margin:0 auto;padding:50px 28px 100px;font-size:17px;line-height:1.8;color:var(--ink)}
.article-body h2{font-size:26px;color:var(--plum);margin:36px 0 16px;font-weight:800;letter-spacing:-0.02em}
.article-body h3{font-size:21px;color:var(--plum);margin:28px 0 12px;font-weight:800}
.article-body p{margin-bottom:20px}
.article-body a{color:var(--orange-deep);font-weight:600;text-decoration:underline}
.article-body blockquote{border-left:3px solid var(--orange);padding-left:20px;margin:26px 0;font-family:'Fraunces',serif;font-style:italic;color:var(--ink-dim);font-size:19px}
.article-body ul,.article-body ol{margin:0 0 20px 24px}
.article-body li{margin-bottom:8px}
.article-tags{max-width:720px;margin:0 auto;padding:0 28px 60px;display:flex;flex-wrap:wrap;gap:8px}
.article-tags span{font-size:12px;font-weight:600;color:var(--ink-dim);background:var(--bg-2);padding:7px 14px;border-radius:100px}

/* ---------- footer ---------- */
.tp-footer{background:var(--plum);color:rgba(245,235,216,0.7);padding:44px 0;text-align:center;font-size:13px;margin-top:60px}
.tp-footer a{color:var(--gold);font-weight:600}

@media (max-width:900px){
  .blog-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:640px){
  .blog-grid{grid-template-columns:1fr;padding:30px 0 60px}
  .blog-head{padding:44px 0 30px}
  .article-body{padding:36px 20px 70px}
}
