/* ── DESIGN TOKENS ─────────────────────────────────────────────── */
:root {
  --sage:        #7A9E7E;
  --sage-light:  #B8D4BB;
  --sage-dark:   #4A7050;
  --earth:       #C4956A;
  --earth-light: #E8D5C0;
  --cream:       #FAF8F4;
  --warm-white:  #FFFFFF;
  --charcoal:    #2C2C2C;
  --mid-grey:    #6B6B6B;
  --light-grey:  #E8E8E4;
  --border:      #DEDAD4;
  --font-display:'Playfair Display', Georgia, serif;
  --font-body:   'Source Sans 3', system-ui, sans-serif;
  --max-width:   1200px;
  --gap:         2rem;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { font-size: 16px; scroll-behavior: smooth; }
body {
  font-family: var(--font-body);
  background: var(--cream);
  color: var(--charcoal);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
img { display: block; width: 100%; object-fit: cover; }

/* TOPBAR */
.bm-topbar {
  background: var(--sage-dark);
  color: var(--cream);
  text-align: center;
  padding: 0.5rem 1rem;
  font-size: 0.8rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

/* HEADER */
.bm-header {
  background: var(--warm-white);
  border-bottom: 1px solid var(--border);
  position: sticky;
  top: 0;
  z-index: 100;
  box-shadow: 0 2px 12px rgba(0,0,0,0.04);
}
.bm-header-inner {
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 0 2rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 72px;
}
.bm-logo { display:flex; flex-direction:column; line-height:1; }
.bm-logo-main { font-family:var(--font-display); font-size:1.6rem; font-weight:700; color:var(--charcoal); letter-spacing:-0.02em; }
.bm-logo-main span { color: var(--sage-dark); }
.bm-logo-tag { font-size:0.65rem; font-weight:500; color:var(--mid-grey); letter-spacing:0.15em; text-transform:uppercase; margin-top:2px; }

/* NAV */
.bm-nav { display:flex; align-items:center; gap:0.25rem; list-style:none; }
.bm-nav a { font-size:0.78rem; font-weight:600; color:var(--charcoal); letter-spacing:0.05em; text-transform:uppercase; padding:0.5rem 0.75rem; border-radius:4px; transition:color 0.2s,background 0.2s; }
.bm-nav a:hover { color:var(--sage-dark); background:var(--earth-light); }
.bm-nav .awards-link a { color:var(--warm-white); background:var(--sage-dark); padding:0.4rem 0.9rem; border-radius:20px; }
.bm-nav .awards-link a:hover { background:var(--sage); }
.bm-subscribe { background:var(--earth); color:var(--warm-white); font-size:0.8rem; font-weight:600; letter-spacing:0.08em; text-transform:uppercase; padding:0.5rem 1.2rem; border-radius:24px; border:none; cursor:pointer; transition:background 0.2s; }
.bm-subscribe:hover { background:#B07D55; }

/* CATEGORY BAR */
.bm-catbar { background:var(--cream); border-bottom:2px solid var(--sage-light); }
.bm-catbar-inner { max-width:var(--max-width); margin:0 auto; padding:0 2rem; display:flex; overflow-x:auto; scrollbar-width:none; }
.bm-catbar-inner::-webkit-scrollbar { display:none; }
.bm-cat-link { font-size:0.78rem; font-weight:600; color:var(--mid-grey); letter-spacing:0.06em; text-transform:uppercase; padding:0.65rem 1rem; white-space:nowrap; border-bottom:2px solid transparent; margin-bottom:-2px; transition:color 0.2s,border-color 0.2s; }
.bm-cat-link:hover, .bm-cat-link.active { color:var(--sage-dark); border-bottom-color:var(--sage-dark); }

/* CONTENT */
.bm-content { max-width:var(--max-width); margin:0 auto; padding:2.5rem 2rem; }

/* AD SLOTS */
.bm-ad { display:flex; flex-direction:column; align-items:center; padding:0.75rem 0; border-top:1px solid var(--border); border-bottom:1px solid var(--border); margin-bottom:2rem; background:var(--warm-white); }
.bm-ad-label { font-size:0.6rem; color:var(--mid-grey); letter-spacing:0.1em; text-transform:uppercase; margin-bottom:0.3rem; opacity:0.5; }

/* HERO */
.bm-hero { display:grid; grid-template-columns:1.6fr 1fr; gap:var(--gap); margin-bottom:3rem; padding-bottom:3rem; border-bottom:1px solid var(--border); }
.bm-hero-main .article-img { height:420px; border-radius:4px; overflow:hidden; background:var(--sage-light); }
.bm-hero-main .article-img img { height:100%; width:100%; object-fit:cover; transition:transform 0.4s; }
.bm-hero-main:hover .article-img img { transform:scale(1.03); }
.bm-hero-side { display:flex; flex-direction:column; gap:1.25rem; }

/* ARTICLE ELEMENTS */
.article-cat { display:inline-block; font-size:0.7rem; font-weight:700; letter-spacing:0.12em; text-transform:uppercase; color:var(--sage-dark); margin:1rem 0 0.5rem; }
.article-title { font-family:var(--font-display); font-size:2rem; font-weight:700; line-height:1.2; color:var(--charcoal); margin-bottom:0.75rem; letter-spacing:-0.02em; }
.article-title:hover { color:var(--sage-dark); }
.article-excerpt { font-size:0.95rem; color:var(--mid-grey); line-height:1.65; margin-bottom:0.75rem; }
.article-meta { font-size:0.75rem; color:var(--mid-grey); font-weight:500; }

/* SIDE ARTICLES */
.side-article { display:grid; grid-template-columns:100px 1fr; gap:1rem; padding-bottom:1.25rem; border-bottom:1px solid var(--border); }
.side-article:last-child { border-bottom:none; padding-bottom:0; }
.side-article .article-img { height:80px; border-radius:3px; overflow:hidden; background:var(--earth-light); }
.side-article .article-img img { height:100%; width:100%; object-fit:cover; }
.side-article .article-title { font-family:var(--font-display); font-size:0.95rem; font-weight:600; line-height:1.35; }
.side-article .article-cat { margin:0 0 0.3rem; }
.side-article .article-meta { margin-top:0.3rem; }

/* SECTION HEADER */
.bm-section-header { display:flex; align-items:baseline; justify-content:space-between; margin-bottom:1.5rem; padding-bottom:0.75rem; border-bottom:2px solid var(--sage-light); }
.bm-section-title { font-family:var(--font-display); font-size:1.4rem; font-weight:700; color:var(--charcoal); letter-spacing:-0.01em; }
.bm-section-link { font-size:0.78rem; font-weight:600; color:var(--sage-dark); letter-spacing:0.06em; text-transform:uppercase; }
.bm-section-link:hover { color:var(--earth); }

/* ARTICLE GRID */
.bm-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:var(--gap); margin-bottom:3rem; }
.article-card .article-img { height:200px; border-radius:4px; overflow:hidden; background:var(--sage-light); margin-bottom:0.9rem; }
.article-card .article-img img { height:100%; width:100%; object-fit:cover; transition:transform 0.4s; }
.article-card:hover .article-img img { transform:scale(1.04); }
.article-card .article-title { font-size:1.05rem; }

/* TWO COL */
.bm-two-col { display:grid; grid-template-columns:1fr 1fr; gap:3rem; margin-bottom:3rem; padding-bottom:3rem; border-bottom:1px solid var(--border); }

/* AWARDS WIDGET */
.bm-awards { background:var(--sage-dark); color:var(--warm-white); border-radius:8px; padding:1.75rem; margin-bottom:3rem; }
.bm-awards .bm-section-title { color:var(--warm-white); }
.bm-awards .bm-section-header { border-bottom-color:rgba(255,255,255,0.2); }
.bm-awards .bm-section-link { color:var(--earth-light); }
.bm-awards-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; }
.award-item { background:rgba(255,255,255,0.08); border-radius:6px; overflow:hidden; transition:transform 0.2s,background 0.2s; }
.award-item:hover { transform:translateY(-3px); background:rgba(255,255,255,0.15); }
.award-item .article-img { height:120px; }
.award-item .article-img img { height:100%; width:100%; object-fit:cover; }
.award-item-info { padding:0.75rem; }
.award-badge { font-size:0.6rem; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; color:var(--earth-light); margin-bottom:0.3rem; }
.award-item .article-title { font-size:0.85rem; color:var(--warm-white); margin-bottom:0.5rem; }
.btn-buy { display:inline-block; background:var(--earth); color:var(--warm-white); font-size:0.65rem; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; padding:0.3rem 0.7rem; border-radius:12px; }
.btn-buy:hover { background:#B07D55; }

/* SUBSCRIBE */
.bm-subscribe-banner { background:var(--cream); border:2px solid var(--sage-light); border-radius:8px; padding:2.5rem; text-align:center; margin-bottom:3rem; }
.bm-subscribe-banner h3 { font-family:var(--font-display); font-size:1.6rem; font-weight:700; margin-bottom:0.5rem; }
.bm-subscribe-banner p { color:var(--mid-grey); font-size:0.95rem; margin-bottom:1.25rem; }
.bm-sub-form { display:flex; justify-content:center; gap:0.75rem; max-width:440px; margin:0 auto; }
.bm-sub-form input { flex:1; padding:0.7rem 1rem; border:1.5px solid var(--border); border-radius:24px; font-family:var(--font-body); font-size:0.9rem; background:var(--warm-white); outline:none; }
.bm-sub-form input:focus { border-color:var(--sage); }
.bm-sub-form button { background:var(--sage-dark); color:var(--warm-white); font-family:var(--font-body); font-size:0.85rem; font-weight:600; padding:0.7rem 1.5rem; border:none; border-radius:24px; cursor:pointer; white-space:nowrap; }
.bm-sub-form button:hover { background:var(--sage); }

/* FOOTER */
.bm-footer { background:var(--charcoal); color:rgba(255,255,255,0.7); padding:3rem 2rem 1.5rem; }
.bm-footer-inner { max-width:var(--max-width); margin:0 auto; }
.bm-footer-top { display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr; gap:2rem; padding-bottom:2rem; border-bottom:1px solid rgba(255,255,255,0.1); margin-bottom:1.5rem; }
.bm-footer-brand p { font-size:0.85rem; margin-top:0.75rem; line-height:1.6; }
.bm-footer-col h4 { font-size:0.7rem; font-weight:700; letter-spacing:0.12em; text-transform:uppercase; color:#fff; margin-bottom:1rem; }
.bm-footer-col ul { list-style:none; }
.bm-footer-col ul li { margin-bottom:0.5rem; }
.bm-footer-col ul li a { font-size:0.85rem; color:rgba(255,255,255,0.6); transition:color 0.2s; }
.bm-footer-col ul li a:hover { color:var(--sage-light); }
.bm-footer-bottom { display:flex; justify-content:space-between; font-size:0.78rem; color:rgba(255,255,255,0.4); }

/* RESPONSIVE */
@media (max-width:900px) {
  .bm-hero { grid-template-columns:1fr; }
  .bm-grid { grid-template-columns:repeat(2,1fr); }
  .bm-two-col { grid-template-columns:1fr; gap:2rem; }
  .bm-awards-grid { grid-template-columns:repeat(2,1fr); }
  .bm-footer-top { grid-template-columns:1fr 1fr; }
  .bm-nav { display:none; }
}
@media (max-width:600px) {
  .bm-grid { grid-template-columns:1fr; }
  .bm-awards-grid { grid-template-columns:1fr 1fr; }
  .bm-footer-top { grid-template-columns:1fr; }
}
.bm-footer .bm-logo-main { color: var(--warm-white); } .bm-footer .bm-logo-main span { color: var(--sage-light); }
