/* Willow Oak — blog (list, latest posts, single article). Matches the site's page design. */
.wo-blog{
  --forest:#1F5130; --forest-deep:#143823; --leaf:#7AB648; --leaf-soft:#E6F2DA; --leaf-text:#477528;
  --mint:#F4F9F0; --white:#FFFFFF; --ink:#1E2A22; --muted:#55665A; --line:rgba(31,81,48,0.12);
  font-family:'Source Sans 3', system-ui, sans-serif; color:var(--ink); font-size:1.05rem; line-height:1.65;
}
.wo-blog *{box-sizing:border-box;}
.wo-blog h1, .wo-blog h2, .wo-blog h3{font-family:'Lora', Georgia, serif; font-weight:600; color:var(--forest); line-height:1.2; margin:0;}
.wo-blog a{color:inherit;}
.wo-blog a:focus-visible{outline:3px solid var(--leaf); outline-offset:3px;}
.wo-blog.wo-page{max-width:none !important; width:100%;}

/* Full width + hide the theme's own title, date, author, comments (same as the other pages) */
html, body{overflow-x:hidden;}
.wo-blog .wo-full{width:100vw !important; max-width:100vw !important; margin-left:calc(50% - 50vw) !important; margin-right:calc(50% - 50vw) !important;}
.wp-site-blocks > :has(.wo-page), .wp-site-blocks > :has(.wo-page) + *{margin-block-start:0 !important;}
:has(> .wo-page){margin-block-start:0 !important; margin-top:0 !important; padding-top:0 !important;}
main:has(.wo-page) > :not(:has(.wo-page)){display:none !important;}
main:has(.wob-post) .wp-block-post-content{max-width:none !important; padding:0 !important; margin:0 !important;}
main:has(.wob-post) .wp-block-post-content > .wo-page{max-width:none !important; margin:0 !important;}

.wob-wrap{max-width:1180px; margin:0 auto; padding:0 clamp(20px, 4vw, 56px);}
.wob-narrow{max-width:860px;}
.wob-kicker{display:block; font-size:0.78rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--leaf); font-weight:700; margin-bottom:12px;}

/* Hero */
.wob-hero{color:#fff; padding:72px 0 84px; background:radial-gradient(ellipse at 85% 0%, rgba(122,182,72,0.30), transparent 55%), linear-gradient(135deg, var(--forest-deep) 0%, var(--forest) 100%);}
.wob-hero .wob-hero-title{color:#fff !important; font-size:clamp(2.1rem, 4.4vw, 3.3rem); margin-bottom:14px;}
.wob-hero p{color:#E1ECDC; font-size:1.15rem; max-width:640px; margin:0;}
.wob-post-hero{padding:56px 0 64px;}
.wob-post-hero .wob-hero-title{font-size:clamp(1.9rem, 3.8vw, 2.9rem); margin-bottom:22px;}
.wob-crumbs{font-size:0.95rem !important; font-weight:700; letter-spacing:0.04em; margin:0 0 14px !important; color:#CFE3C6 !important;}
.wob-crumbs a{color:#CFE3C6 !important; text-decoration:underline; text-underline-offset:3px;}
.wob-crumbs a:hover{color:#fff !important;}
.wob-byline{display:flex; align-items:center; gap:14px;}
.wob-byline strong{display:block; color:#fff; font-size:1.05rem;}
.wob-cred{display:block; color:#CFE3C6; font-size:0.95rem;}
.wob-date{display:block; color:#B9D4AE; font-size:0.9rem; margin-top:2px;}
.wob-avatar{flex:none; width:48px; height:48px; border-radius:50%; display:grid; place-items:center; background:var(--leaf); color:var(--forest-deep); font-family:'Lora', Georgia, serif; font-weight:600; font-size:1.05rem; letter-spacing:0.02em;}
.wob-avatar.is-lg{width:64px; height:64px; font-size:1.35rem;}

/* List */
.wob-list{padding:44px 0 80px; background:#fff;}
.wob-topics{display:flex; flex-wrap:wrap; gap:8px; margin:0 0 30px;}
.wob-topics a{display:inline-flex; align-items:center; min-height:40px; padding:8px 16px; border:1.5px solid var(--line); border-radius:99px; font-weight:600; font-size:0.95rem; color:var(--forest); text-decoration:none;}
.wob-topics a:hover{border-color:var(--leaf);}
.wob-topics a[aria-current]{background:var(--forest); border-color:var(--forest); color:#fff;}
.wob-feature{margin:0 0 28px;}
.wob-grid{display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:24px;}
.wob-card{background:#fff; border:1px solid var(--line); border-radius:14px; overflow:hidden; box-shadow:0 10px 26px rgba(20,56,35,0.06); transition:transform .2s ease, box-shadow .2s ease;}
.wob-card:hover{transform:translateY(-3px); box-shadow:0 18px 36px rgba(20,56,35,0.12);}
.wob-card-link{display:flex; flex-direction:column; height:100%; text-decoration:none; color:inherit;}
.wob-card-media{aspect-ratio:16/10; background:var(--mint); overflow:hidden;}
.wob-card-media img{width:100%; height:100%; object-fit:cover; display:block;}
.wob-card-ph{display:block; width:100%; height:100%; background:radial-gradient(circle at 80% 20%, rgba(122,182,72,0.35), transparent 50%), linear-gradient(135deg, var(--forest-deep), var(--forest));}
.wob-card-body{display:flex; flex-direction:column; gap:8px; padding:20px 22px 22px; flex:1;}
.wob-cat{align-self:flex-start; font-size:0.74rem; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; color:var(--forest); background:var(--leaf-soft); border-radius:99px; padding:4px 10px;}
.wob-card-title{font-size:1.3rem !important;}
.wob-card-ex{margin:0; color:var(--muted); font-size:0.98rem;}
.wob-card-meta{display:flex; flex-wrap:wrap; gap:6px; margin:auto 0 0; padding-top:6px; font-size:0.88rem; color:var(--muted);}
.wob-card-meta span:first-child{font-weight:700; color:var(--ink);}
.wob-more{font-weight:700; color:var(--forest); font-size:0.92rem;}
.wob-card-link:hover .wob-more{text-decoration:underline; text-underline-offset:3px;}
.wob-card.is-feature .wob-card-link{flex-direction:row;}
.wob-card.is-feature .wob-card-media{flex:1.15; aspect-ratio:auto; min-height:340px;}
.wob-card.is-feature .wob-card-body{flex:1; padding:34px 36px; justify-content:center;}
.wob-card.is-feature .wob-card-title{font-size:clamp(1.6rem, 2.6vw, 2.1rem) !important;}
.wob-card.is-feature .wob-card-meta{margin-top:6px;}
.wob-empty{text-align:center; padding:56px 20px; background:var(--mint); border:1px solid var(--line); border-radius:14px;}
.wob-empty h2{font-size:1.7rem; margin-bottom:8px;}
.wob-empty p{margin:0; color:var(--muted);}
.wob-empty a{color:var(--forest); font-weight:700; text-decoration:underline;}
.wob-pages{display:flex; justify-content:center; align-items:center; gap:18px; flex-wrap:wrap; margin-top:40px; color:var(--muted); font-weight:600;}

/* Buttons */
.wob-btn{display:inline-flex; align-items:center; gap:8px; padding:14px 26px; border-radius:4px; background:var(--forest); color:#fff !important; font-weight:700; font-size:0.92rem; letter-spacing:0.04em; text-transform:uppercase; text-decoration:none !important; border:2px solid var(--forest); transition:background .2s ease;}
.wob-btn:hover{background:var(--forest-deep); border-color:var(--forest-deep);}
.wob-btn.ghost{background:transparent; color:var(--forest) !important;}
.wob-btn.ghost:hover{background:var(--forest); color:#fff !important;}

/* Latest posts section */
.wob-latest{padding:72px 0; background:var(--mint); border-top:1px solid var(--line);}
.wob-latest-head{display:flex; justify-content:space-between; align-items:flex-end; gap:16px; flex-wrap:wrap; margin-bottom:26px;}
.wob-latest-head h2{font-size:clamp(1.8rem, 3vw, 2.4rem);}

/* Single article */
.wob-body{max-width:780px; margin:0 auto; padding:0 clamp(20px, 4vw, 40px) 56px;}
.wob-figure{margin:-36px 0 34px; border-radius:14px; overflow:hidden; box-shadow:0 20px 40px rgba(20,56,35,0.16); background:var(--mint);}
.wob-figure img{display:block; width:100%; height:auto; max-height:520px; object-fit:cover;}
.wob-figure figcaption{font-size:0.88rem; color:var(--muted); padding:10px 16px; background:#fff;}
.wob-body:not(:has(.wob-figure)){padding-top:40px;}
.wob-content{font-size:1.12rem; line-height:1.75;}
.wob-content > *{max-width:100% !important; margin-left:0 !important; margin-right:0 !important;}
.wob-content p{margin:0 0 1.15em;}
.wob-content h2{font-size:1.75rem; margin:1.6em 0 0.5em;}
.wob-content h3{font-size:1.35rem; margin:1.4em 0 0.4em;}
.wob-content ul, .wob-content ol{margin:0 0 1.15em 1.3em; padding:0;}
.wob-content li{margin:0 0 0.4em;}
.wob-content a{color:var(--forest); font-weight:600; text-decoration:underline; text-underline-offset:3px;}
.wob-content blockquote{margin:1.6em 0; padding:16px 22px; border-left:4px solid var(--leaf); background:var(--mint); border-radius:0 10px 10px 0; font-family:'Lora', Georgia, serif; font-size:1.25rem; color:var(--forest);}
.wob-content img{max-width:100%; height:auto; border-radius:10px;}
.wob-content figure{margin:1.6em 0;}
.wob-content figcaption{font-size:0.88rem; color:var(--muted); margin-top:6px;}
.wob-author{display:flex; gap:18px; align-items:flex-start; margin:40px 0 26px; padding:22px 24px; background:var(--mint); border:1px solid var(--line); border-radius:14px;}
.wob-author p{margin:0;}
.wob-author-label{font-size:0.78rem !important; letter-spacing:0.16em; text-transform:uppercase; font-weight:700; color:var(--leaf-text);}
.wob-author-name{font-family:'Lora', Georgia, serif; font-weight:600; font-size:1.2rem; color:var(--forest); margin:2px 0 6px !important;}
.wob-cta{margin:26px 0 18px; padding:28px; border-radius:14px; color:#fff; background:radial-gradient(ellipse at 90% 0%, rgba(122,182,72,0.3), transparent 55%), linear-gradient(135deg, var(--forest-deep), var(--forest));}
.wob-cta h2{color:#fff !important; font-size:1.6rem; margin-bottom:8px;}
.wob-cta p{color:#E1ECDC; margin:0 0 18px;}
.wob-cta-btns{display:flex; flex-wrap:wrap; gap:12px;}
.wob-cta .wob-btn{background:var(--leaf); border-color:var(--leaf); color:var(--forest-deep) !important;}
.wob-cta .wob-btn:hover{background:#8CC45C; border-color:#8CC45C;}
.wob-cta .wob-btn.ghost{background:transparent; border-color:rgba(255,255,255,0.7); color:#fff !important;}
.wob-cta .wob-btn.ghost:hover{background:#fff; color:var(--forest) !important;}
.wob-disclaimer{font-size:0.9rem; color:var(--muted); margin:0; padding-top:14px; border-top:1px solid var(--line);}
.wob-disclaimer a{color:var(--forest); font-weight:700;}
.wob-related{padding:60px 0 72px; background:var(--mint); border-top:1px solid var(--line);}
.wob-related h2{font-size:clamp(1.6rem, 2.6vw, 2.1rem);}

@media (max-width: 960px){
  .wob-grid{grid-template-columns:repeat(2, minmax(0,1fr));}
  .wob-card.is-feature .wob-card-link{flex-direction:column;}
  .wob-card.is-feature .wob-card-media{min-height:0; aspect-ratio:16/9;}
  .wob-card.is-feature .wob-card-body{padding:22px;}
}
@media (max-width: 640px){
  .wob-grid{grid-template-columns:1fr;}
  .wob-hero{padding:52px 0 60px;}
  .wob-figure{margin-top:-24px;}
  .wob-content{font-size:1.06rem;}
  .wob-author{flex-direction:column;}
  .wob-cta{padding:22px;}
  .wob-cta .wob-btn{width:100%; justify-content:center;}
}
@media (prefers-reduced-motion: reduce){ .wob-card{transition:none;} .wob-card:hover{transform:none;} }
