/*
Theme Name: CampVanguard
Theme URI: https://campvanguard.com
Author: CampVanguard Studio
Author URI: https://campvanguard.com
Description: Production-grade magazine block theme for outdoor gear affiliate sites. 8 homepage layouts, full inner-page pattern library, click-to-edit sections built 100% with native Gutenberg blocks, product CPT + shortcode cards, optional Bootstrap 5 bundle. Warm-earth editorial design: charcoal, ember orange, cream.
Requires at least: 6.4
Tested up to: 6.7
Requires PHP: 7.4
Version: 1.4.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: campvanguard
Tags: blog, news, entertainment, block-patterns, full-site-editing, wide-blocks
*/

/* ============================================================
   CAMPVANGUARD BLOCK THEME — front + editor styles
   All decorative chrome hangs off cv-* classes so every block
   stays a plain, fully click-editable core block.
   ============================================================ */

:root{
  --cv-shadow-card:0 18px 40px -18px rgba(28,25,20,.28);
  --cv-shadow-pop:0 26px 60px -20px rgba(28,25,20,.4);
  --cv-radius:18px;
  --cv-line:#d8cfb9;
}

body{
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  overflow-x:clip; /* clip, not hidden: hidden creates a scroll container and silently kills position:sticky descendants */
}
/* paper grain */
body::after{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:9999;opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='0.6'/%3E%3C/svg%3E");
}
.editor-styles-wrapper::after{content:none}

::selection{background:var(--wp--preset--color--ember);color:#fff}
a{text-decoration:none}
.entry-content a:not(.wp-block-button__link):not(.wp-element-button){
  color:var(--wp--preset--color--ember);font-weight:600;
}
.entry-content a:not(.wp-block-button__link):hover{text-decoration:underline}

h1,h2,h3,h4,.wp-block-post-title,.wp-block-site-title{
  letter-spacing:-.02em;text-wrap:balance;
}

img{height:auto;max-width:100%}
.wp-block-image img,.wp-block-post-featured-image img{border-radius:var(--cv-radius)}
.cv-img-flat img{border-radius:0}

/* ---------- Topbar ---------- */
.cv-topbar{font-size:.78rem;letter-spacing:.08em;text-transform:uppercase}
.cv-topbar p{margin:0}

/* ---------- Header ---------- */
.cv-header{
  position:sticky;top:0;z-index:120;
  border-bottom:1px solid var(--cv-line);
}
/* Blur lives on a pseudo-element: backdrop-filter on the header itself
   turns it into the containing block for position:fixed children, which
   traps the mobile fullscreen menu inside the header bar. */
.cv-header::before{
  content:"";position:absolute;inset:0;z-index:-1;
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
}
.admin-bar .cv-header{top:32px}
.cv-header .wp-block-site-title a{
  font-family:var(--wp--preset--font-family--display);
  font-weight:700;font-size:1.45rem;letter-spacing:-.02em;text-decoration:none;
}
.cv-brand-tag{font-size:.62rem;letter-spacing:.32em;text-transform:uppercase;margin:0}

/* Desktop nav: roomy pill links with hover + current-page states */
.cv-header .wp-block-navigation{gap:.35rem}
.cv-header .wp-block-navigation .wp-block-navigation-item__content{
  font-weight:600;font-size:.95rem;letter-spacing:.01em;
  padding:.55rem 1.1rem;border-radius:99px;
  transition:background .25s,color .25s,transform .25s;
}
.cv-header .wp-block-navigation .wp-block-navigation-item__content:hover{
  background:var(--wp--preset--color--sand);
  color:var(--wp--preset--color--ink);
  transform:translateY(-1px);
}
.cv-header .wp-block-navigation .wp-block-navigation-item__content[aria-current="page"]{
  background:var(--wp--preset--color--ink);
  color:var(--wp--preset--color--cream);
}

/* Hamburger: bigger, easier target */
.cv-header .wp-block-navigation__responsive-container-open{padding:.45rem}
.cv-header .wp-block-navigation__responsive-container-open svg{width:32px;height:32px}

/* Mobile overlay menu: true fullscreen, centered, magazine type */
.cv-header .wp-block-navigation__responsive-container.is-menu-open{
  position:fixed;inset:0;z-index:99999;
  padding:5.5rem 2rem 3rem;
  background:var(--wp--preset--color--ink);
  animation:cv-menu-in .35s cubic-bezier(.2,.7,.2,1);
}
@keyframes cv-menu-in{from{opacity:0;transform:translateY(-14px)}to{opacity:1;transform:none}}
.admin-bar .cv-header .wp-block-navigation__responsive-container.is-menu-open{top:46px}
.cv-header .wp-block-navigation__responsive-container.is-menu-open
  .wp-block-navigation__responsive-container-content{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;height:100%;
}
.cv-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,
.cv-header .wp-block-navigation__responsive-container.is-menu-open ul{
  flex-direction:column;align-items:center;gap:.5rem;
}
.cv-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content{
  font-family:var(--wp--preset--font-family--display);
  font-size:1.7rem;font-weight:600;
  color:var(--wp--preset--color--cream);
  padding:.7rem 1.6rem;border-radius:99px;
}
.cv-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:hover{
  background:rgba(255,255,255,.08);color:var(--wp--preset--color--ember-soft);transform:none;
}
.cv-header .wp-block-navigation__responsive-container.is-menu-open
  .wp-block-navigation-item__content[aria-current="page"]{
  background:var(--wp--preset--color--ember);color:#fff;
}
.cv-header .wp-block-navigation__responsive-container-close{
  position:absolute;top:1.3rem;right:1.3rem;color:var(--wp--preset--color--cream);padding:.5rem;
}
.cv-header .wp-block-navigation__responsive-container-close svg{width:30px;height:30px}
.cv-brand-mark{
  width:46px;height:46px;border-radius:12px;
  background:var(--wp--preset--color--ink);
  display:grid;place-items:center;flex-shrink:0;
}

/* ---------- Kicker / labels ---------- */
.cv-kicker{
  display:flex;align-items:center;gap:.6rem;
  font-size:.78rem !important;font-weight:700;letter-spacing:.3em;text-transform:uppercase;
}
.cv-kicker::before{content:"";width:42px;height:2px;background:var(--wp--preset--color--ember)}
.cv-label{font-size:.72rem !important;font-weight:800;letter-spacing:.22em;text-transform:uppercase}
.cv-meta{font-size:.78rem !important;letter-spacing:.1em;text-transform:uppercase;font-weight:600}

/* ---------- Hero ---------- */
.cv-hero span.wp-block-cover__background{
  background:linear-gradient(185deg,rgba(28,25,20,.18) 30%,rgba(28,25,20,.84) 92%) !important;
  opacity:1 !important;
}
.cv-hero .wp-block-cover__inner-container{align-self:flex-end;padding-bottom:3.5rem}
.cv-hero h1 em{font-style:italic;color:#ff9c63}
.cv-hero-stat p{margin:0;line-height:1.2}
.cv-hero-stat strong{
  font-family:var(--wp--preset--font-family--display);
  font-size:1.9rem;font-weight:600;display:block;
}

/* ---------- Marquee strip ---------- */
.cv-marquee{
  border-top:3px solid var(--wp--preset--color--ember);
  border-bottom:3px solid var(--wp--preset--color--ember);
  overflow:hidden;white-space:nowrap;
}
.cv-marquee p{
  display:inline-block;margin:0;white-space:nowrap;
  font-family:var(--wp--preset--font-family--display);
  font-style:italic;letter-spacing:.04em;
  animation:cv-scroll 30s linear infinite;
}
@keyframes cv-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.editor-styles-wrapper .cv-marquee p{animation:none}

/* ---------- Section headers ---------- */
.cv-h2 em,h2 em{font-style:italic;color:var(--wp--preset--color--ember)}
.cv-see-all a{font-weight:700;color:var(--wp--preset--color--ember) !important}

/* ---------- Category tiles (cover blocks) ---------- */
.cv-cat-tile{border-radius:var(--cv-radius);overflow:hidden;transition:.35s}
.cv-cat-tile:hover{transform:translateY(-6px);box-shadow:var(--cv-shadow-pop)}
.cv-cat-tile .wp-block-cover__inner-container{align-self:flex-end}
.cv-cat-tile h3{margin:0}
.cv-cat-tile p{margin:.2rem 0 0}

/* ---------- Cards (group based) ---------- */
.cv-card{
  border:1px solid var(--cv-line);border-radius:var(--cv-radius);
  overflow:hidden;transition:.35s;height:100%;
}
.cv-card:hover{transform:translateY(-7px);box-shadow:var(--cv-shadow-pop);border-color:transparent}
.cv-card .wp-block-image{margin:0}
.cv-card .wp-block-image img{border-radius:0;width:100%;aspect-ratio:4/3;object-fit:cover}
.cv-card-body{padding:1.4rem}
.cv-card h3{font-size:1.22rem;line-height:1.25;margin:0 0 .45rem}
.cv-price{font-family:var(--wp--preset--font-family--display);font-size:1.3rem;font-weight:600;margin:0}
.cv-price small{display:block;font-size:.62rem;letter-spacing:.06em;text-transform:uppercase;font-weight:400;font-family:var(--wp--preset--font-family--body);color:var(--wp--preset--color--ink-mute)}
.cv-rank{
  display:inline-block;background:var(--wp--preset--color--ember);color:#fff;
  font-family:var(--wp--preset--font-family--display);font-weight:700;font-size:.82rem;
  padding:.35rem .9rem;border-radius:99px;margin:0;
}
.cv-chip{
  display:inline-block;font-size:.72rem !important;font-weight:600;
  background:var(--wp--preset--color--sand);color:var(--wp--preset--color--ink-soft);
  padding:.3rem .75rem;border-radius:99px;margin:0;
}

/* ---------- Stars ---------- */
.cv-stars{color:var(--wp--preset--color--gold);letter-spacing:2px;font-size:.95rem !important;margin:0}
.cv-stars strong{color:var(--wp--preset--color--ink-mute);letter-spacing:0;font-size:.8rem;margin-left:.35rem}
.has-ink-background-color .cv-stars strong,
.cv-rec-head .cv-stars strong{color:#cfc6b4}

/* ---------- Rec card (in-article product card) ---------- */
.cv-rec-card{
  border:2px solid var(--wp--preset--color--ink);
  border-radius:calc(var(--cv-radius) + 4px);overflow:hidden;
  box-shadow:8px 8px 0 var(--wp--preset--color--sand);
  margin-block:2.4rem;
}
.cv-rec-head{padding:.8rem 1.6rem}
.cv-rec-head p{margin:0}
.cv-rec-card .wp-block-image{margin:0;height:100%}
.cv-rec-card .wp-block-image img{
  border-radius:0;width:100%;height:100%;min-height:260px;object-fit:cover;
}
.cv-rec-card .wp-block-columns{gap:0;margin:0}
.cv-rec-body{padding:1.7rem 1.9rem}
.cv-rec-body h3{margin:0 0 .3rem;font-size:1.45rem}
.cv-rec-stats{
  background:var(--wp--preset--color--sand);border-radius:12px;
  padding:.9rem 1.1rem;
}
.cv-rec-stats p{margin:0;line-height:1.3;font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:var(--wp--preset--color--ink-mute);font-weight:700}
.cv-rec-stats strong{
  display:block;font-family:var(--wp--preset--font-family--display);
  font-size:1.05rem;letter-spacing:0;text-transform:none;color:var(--wp--preset--color--ink);
}
.cv-pros h4,.cv-cons h4{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;margin:0 0 .5rem;font-family:var(--wp--preset--font-family--body);font-weight:800}
.cv-pros h4{color:var(--wp--preset--color--pine)}
.cv-cons h4{color:#b73e0e}
.cv-pros ul,.cv-cons ul{margin:0;padding-left:1.1rem;font-size:.9rem}
.cv-pros li::marker{content:"✓  ";color:var(--wp--preset--color--pine);font-weight:800}
.cv-cons li::marker{content:"—  ";color:#b73e0e;font-weight:800}
.cv-pros li,.cv-cons li{margin-bottom:.4rem}

/* ---------- Buttons ---------- */
.wp-block-button__link{
  border-radius:99px;font-weight:700;font-size:.95rem;
  padding:.85rem 1.7rem;transition:.25s;
}
.wp-block-button__link:hover{transform:translateY(-2px)}
.wp-block-button.is-style-outline .wp-block-button__link{border-width:2px}
/* store button styles (registered in functions.php) */
.is-style-cv-amazon .wp-block-button__link{
  background:var(--wp--preset--color--ink);color:var(--wp--preset--color--cream);
  border:2px solid var(--wp--preset--color--ink);font-size:.85rem;padding:.65rem 1.3rem;
}
.is-style-cv-amazon .wp-block-button__link:hover{background:var(--wp--preset--color--ember);border-color:var(--wp--preset--color--ember)}
.is-style-cv-rei .wp-block-button__link{
  background:transparent;color:var(--wp--preset--color--ink);
  border:2px solid var(--wp--preset--color--ink);font-size:.85rem;padding:.65rem 1.3rem;
}
.is-style-cv-rei .wp-block-button__link:hover{background:var(--wp--preset--color--pine);border-color:var(--wp--preset--color--pine);color:#fff}
.is-style-cv-bc .wp-block-button__link{
  background:transparent;color:var(--wp--preset--color--ink);
  border:2px solid var(--wp--preset--color--ink);font-size:.85rem;padding:.65rem 1.3rem;
}
.is-style-cv-bc .wp-block-button__link:hover{background:var(--wp--preset--color--gold);border-color:var(--wp--preset--color--gold);color:#fff}
.is-style-cv-ghost .wp-block-button__link{
  background:transparent;color:#fff;border:2px solid rgba(255,255,255,.55);
}
.is-style-cv-ghost .wp-block-button__link:hover{background:#fff;color:var(--wp--preset--color--ink)}

/* ---------- Trust items ---------- */
.cv-trust-item{
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);
  border-radius:var(--cv-radius);transition:.3s;height:100%;
}
.cv-trust-item:hover{background:rgba(255,255,255,.09);transform:translateY(-4px)}
.cv-trust-num{
  font-family:var(--wp--preset--font-family--display);font-style:italic;
  color:var(--wp--preset--color--ember);font-size:2rem !important;margin:0;
}

/* ---------- Newsletter ---------- */
.cv-newsletter{
  background:linear-gradient(120deg,var(--wp--preset--color--ember) 0%,#b73e0e 100%) !important;
  border-radius:calc(var(--cv-radius) + 8px);overflow:hidden;position:relative;
  box-shadow:0 30px 70px -25px rgba(183,62,14,.6);
}
.cv-newsletter::before{
  content:"";position:absolute;width:420px;height:420px;border-radius:50%;
  border:60px solid rgba(255,255,255,.08);top:-180px;right:-140px;pointer-events:none;
}
.cv-newsletter .wp-block-button__link{background:var(--wp--preset--color--ink);color:#fff}
.cv-newsletter .wp-block-button__link:hover{background:#000}

/* ---------- Journal / query cards ---------- */
.cv-post-card{
  border:1px solid var(--cv-line);border-radius:var(--cv-radius);overflow:hidden;
  transition:.35s;height:100%;display:flex;flex-direction:column;
}
.cv-post-card:hover{transform:translateY(-7px);box-shadow:var(--cv-shadow-pop)}
.cv-post-card .wp-block-post-featured-image{margin:0}
.cv-post-card .wp-block-post-featured-image img{border-radius:0;width:100%}
.cv-post-card .wp-block-post-title{font-size:1.32rem;line-height:1.25;margin:.5rem 0}
.cv-post-card .wp-block-post-title a{color:inherit}
.cv-post-card .wp-block-post-title a:hover{color:var(--wp--preset--color--ember)}
.cv-post-card .wp-block-post-excerpt{font-size:.9rem;color:var(--wp--preset--color--ink-mute)}
.cv-post-card .wp-block-post-excerpt__more-link{color:var(--wp--preset--color--ember);font-weight:700;font-size:.86rem}
.cv-post-card .wp-block-post-date{font-size:.76rem;letter-spacing:.06em;text-transform:uppercase;font-weight:600;color:var(--wp--preset--color--ink-mute)}
.cv-post-body{padding:1.5rem;display:flex;flex-direction:column;flex:1}

.cv-featured-post .wp-block-cover{border-radius:calc(var(--cv-radius) + 6px);overflow:hidden;box-shadow:var(--cv-shadow-pop)}
.cv-featured-post .wp-block-post-title{font-size:clamp(1.6rem,2.6vw,2.3rem);line-height:1.12}
.cv-featured-post .wp-block-post-title a{color:#fff}
.cv-featured-post .wp-block-post-title a:hover{color:#ff9c63}
.cv-featured-post .wp-block-post-excerpt{color:#cfc6b4;max-width:60ch}
.cv-featured-post .wp-block-post-date{color:#b6ad9a;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700}
.cv-featured-post .wp-block-post-excerpt__more-link{color:#ff9c63;font-weight:700}

/* pagination */
.wp-block-query-pagination{margin-top:2.5rem}
.wp-block-query-pagination a,.wp-block-query-pagination .page-numbers{
  font-weight:700;padding:.55rem 1.05rem;border-radius:99px;border:1.5px solid var(--cv-line);
  color:var(--wp--preset--color--ink-soft);
}
.wp-block-query-pagination a:hover{border-color:var(--wp--preset--color--ink);color:var(--wp--preset--color--ink)}
.wp-block-query-pagination .page-numbers.current{
  background:var(--wp--preset--color--ink);color:var(--wp--preset--color--cream);border-color:var(--wp--preset--color--ink);
}

/* ---------- Single post ---------- */
.cv-post-hero span.wp-block-cover__background{
  background:linear-gradient(185deg,rgba(28,25,20,.15) 25%,rgba(28,25,20,.9) 95%) !important;opacity:1 !important;
}
.cv-post-hero .wp-block-post-title{
  font-size:clamp(2rem,4.6vw,3.6rem);line-height:1.06;color:#fff;max-width:22ch;
}
.cv-single-content > p:first-of-type{
  font-size:1.28rem;font-family:var(--wp--preset--font-family--display);line-height:1.6;
}
.cv-single-content > p:first-of-type::first-letter{
  font-size:4.2rem;font-weight:700;float:left;line-height:.85;
  margin:.32rem .8rem 0 0;color:var(--wp--preset--color--ember);
}
.cv-single-content h2{margin-top:3rem}
.cv-single-content blockquote{
  border-left:5px solid var(--wp--preset--color--ember);
  background:var(--wp--preset--color--paper);
  border-radius:0 var(--cv-radius) var(--cv-radius) 0;
  padding:1.8rem 2.2rem;margin:2.5rem 0;
  font-family:var(--wp--preset--font-family--display);
  font-size:1.3rem;font-style:italic;line-height:1.5;
}
.cv-single-content blockquote cite{
  display:block;font-family:var(--wp--preset--font-family--body);font-style:normal;
  font-size:.8rem;color:var(--wp--preset--color--ink-mute);margin-top:.9rem;
  letter-spacing:.08em;text-transform:uppercase;font-weight:700;
}
.cv-verdict{
  border-radius:calc(var(--cv-radius) + 4px);position:relative;overflow:hidden;
}
.cv-verdict::before{
  content:"";position:absolute;width:260px;height:260px;border-radius:50%;
  border:40px solid rgba(255,255,255,.06);bottom:-120px;right:-90px;pointer-events:none;
}
.cv-verdict strong{color:#ffc89e}
.cv-disclosure{
  font-size:.8rem !important;border-left:4px solid var(--wp--preset--color--gold);
  border-radius:12px;line-height:1.6;
}
.wp-block-post-author{align-items:center}
.wp-block-post-author__avatar img{border-radius:50%;border:3px solid var(--wp--preset--color--ember)}
.wp-block-post-author__name{font-family:var(--wp--preset--font-family--display);font-size:1.2rem;font-weight:600}
.wp-block-post-author__bio{font-size:.9rem;color:var(--wp--preset--color--ink-mute)}

/* ---------- Sidebar cards ---------- */
.cv-sb-card{border:1px solid var(--cv-line);border-radius:var(--cv-radius)}
.cv-sb-card h4{
  font-size:.74rem;font-weight:800;letter-spacing:.22em;text-transform:uppercase;
  color:var(--wp--preset--color--ember);margin:0 0 1rem;
  font-family:var(--wp--preset--font-family--body);
}
/* Sticky sidebar.
   WP wraps every template part in <div class="wp-block-template-part">
   whose height collapses to its content - sticky inside it has no room
   to travel. So we stretch the wrapper chain to full column height and
   stick the inner rail. Belt-and-braces: a tiny JS fallback in
   functions.php handles browsers/structures :has() misses. */
.wp-block-column:has(.cv-sidebar){align-self:stretch}
.wp-block-column:has(.cv-sidebar) > .wp-block-template-part{height:100%}
.cv-sidebar{position:sticky;top:96px}
.admin-bar .cv-sidebar{top:128px}
.cv-sb-sticky{position:sticky;top:96px}
.admin-bar .cv-sb-sticky{top:128px}
/* when the whole rail sticks, inner cards must not double-stick */
.cv-sidebar .cv-sb-sticky{position:static}

/* ---------- Table of contents (in sidebar) ---------- */
.cv-toc-list{list-style:none;margin:0;padding:0}
.cv-toc-list li{margin:0 0 .15rem}
.cv-toc-list a{
  display:flex;gap:.6rem;align-items:baseline;
  font-size:.9rem;font-weight:600;line-height:1.4;
  color:var(--wp--preset--color--ink-soft);text-decoration:none;
  padding:.4rem .6rem;border-radius:10px;border-left:3px solid transparent;
  transition:all .22s;
}
.cv-toc-list a:hover{color:var(--wp--preset--color--ember);transform:translateX(4px)}
.cv-toc-list a.is-active{
  color:var(--wp--preset--color--ember);
  background:var(--wp--preset--color--sand);
  border-left-color:var(--wp--preset--color--ember);
}
.cv-toc-num{
  font-family:var(--wp--preset--font-family--display);
  font-style:italic;color:var(--wp--preset--color--ember);
  font-size:.8rem;min-width:1.4em;flex-shrink:0;
}
.cv-toc-list .cv-toc-h3 a{padding-left:1.6rem;font-weight:500;font-size:.84rem}
.cv-toc-empty{font-size:.85rem;color:var(--wp--preset--color--ink-mute);margin:0}
/* smooth anchor jumps + headroom under the sticky header */
html{scroll-behavior:smooth}
.cv-single-content h2,.cv-single-content h3{scroll-margin-top:110px}

/* ---------- Journal category filter bar ---------- */
.cv-filter-bar{
  display:flex;gap:.7rem;flex-wrap:wrap;align-items:center;
  margin-bottom:2.6rem;
}
.cv-filter-bar .wp-block-button__link{
  font-size:.88rem;font-weight:700;padding:.55rem 1.4rem;
  border-radius:99px;border:1.5px solid var(--cv-line);
  background:var(--wp--preset--color--paper);
  color:var(--wp--preset--color--ink-soft);
  transition:all .25s;
}
.cv-filter-bar .wp-block-button__link:hover{
  border-color:var(--wp--preset--color--ink);
  color:var(--wp--preset--color--ink);transform:translateY(-2px);
}
.cv-filter-bar .is-style-cv-filter-active .wp-block-button__link,
.cv-filter-bar .wp-block-button__link[aria-current="true"]{
  background:var(--wp--preset--color--ink);
  color:var(--wp--preset--color--cream);
  border-color:var(--wp--preset--color--ink);
}
.cv-sb-mini .wp-block-post-featured-image{margin:0}
.cv-sb-mini .wp-block-post-featured-image img{width:74px;height:74px;object-fit:cover;border-radius:12px}
.cv-sb-mini .wp-block-post-title{font-size:.92rem;line-height:1.35;margin:0}
.cv-sb-mini .wp-block-post-title a{color:inherit}
.cv-sb-mini .wp-block-post-title a:hover{color:var(--wp--preset--color--ember)}

/* ---------- Related guides (under single posts) ---------- */
/* Editorial rows instead of cramped mini-cards: full-width image-left
   entries with display-serif titles and generous breathing room. */
.cv-related .wp-block-post-template{
  display:flex !important;flex-direction:column;gap:1.4rem;
  grid-template-columns:none !important;
}
.cv-related .cv-post-card{
  flex-direction:row;align-items:center;gap:1.6rem;
  border:0;border-radius:var(--cv-radius);
  background:var(--wp--preset--color--paper);
  border:1px solid var(--cv-line);
  padding:1rem;counter-increment:cv-rel;
}
.cv-related .cv-post-card:hover{transform:translateX(8px);box-shadow:var(--cv-shadow-card)}
.cv-related .cv-post-card .wp-block-post-featured-image{
  flex:0 0 220px;margin:0;overflow:hidden;border-radius:12px;
}
.cv-related .cv-post-card .wp-block-post-featured-image img{
  aspect-ratio:16/10;width:100%;object-fit:cover;border-radius:12px;
  transition:transform .6s cubic-bezier(.2,.6,.2,1);
}
.cv-related .cv-post-card:hover .wp-block-post-featured-image img{transform:scale(1.06)}
.cv-related .cv-post-body{
  padding:0;flex:1;position:relative;
}
.cv-related .cv-post-body::before{
  content:counter(cv-rel,decimal-leading-zero) ".";
  font-family:var(--wp--preset--font-family--display);
  font-style:italic;font-size:1rem;font-weight:600;
  color:var(--wp--preset--color--ember);
  display:block;margin-bottom:.3rem;
}
.cv-related .cv-post-card .wp-block-post-title{
  font-size:1.35rem !important;line-height:1.25;margin:.1rem 0 .4rem;
}
.cv-related .cv-post-card .wp-block-post-date{font-size:.74rem}
.cv-related{counter-reset:cv-rel}

/* ---------- Journal grid: airy editorial, no boxed cards ---------- */
.blog .wp-block-query:not(.cv-featured-post):not(.cv-related) .wp-block-post-template,
.cv-journal .wp-block-post-template{
  gap:3.2rem 2.2rem !important;
}
.blog .wp-block-query:not(.cv-featured-post):not(.cv-related) .cv-post-card,
.cv-journal .cv-post-card{
  border:0;background:transparent;border-radius:0;overflow:visible;
}
.blog .wp-block-query:not(.cv-featured-post):not(.cv-related) .cv-post-card:hover,
.cv-journal .cv-post-card:hover{transform:none;box-shadow:none}
.blog .wp-block-query:not(.cv-featured-post):not(.cv-related) .cv-post-card .wp-block-post-featured-image,
.cv-journal .cv-post-card .wp-block-post-featured-image{
  overflow:hidden;border-radius:var(--cv-radius);box-shadow:var(--cv-shadow-card);
}
.blog .wp-block-query:not(.cv-featured-post):not(.cv-related) .cv-post-card .wp-block-post-featured-image img,
.cv-journal .cv-post-card .wp-block-post-featured-image img{
  border-radius:var(--cv-radius);
  transition:transform .7s cubic-bezier(.2,.6,.2,1);
}
.blog .wp-block-query:not(.cv-featured-post):not(.cv-related) .cv-post-card:hover .wp-block-post-featured-image img,
.cv-journal .cv-post-card:hover .wp-block-post-featured-image img{transform:scale(1.05)}
.blog .wp-block-query:not(.cv-featured-post):not(.cv-related) .cv-post-body,
.cv-journal .cv-post-body{padding:1.4rem 0 0}
.blog .wp-block-query:not(.cv-featured-post):not(.cv-related) .cv-post-card .wp-block-post-title,
.cv-journal .cv-post-card .wp-block-post-title{
  font-size:1.6rem;line-height:1.18;margin:.55rem 0 .5rem;letter-spacing:-.015em;
}
.blog .wp-block-query:not(.cv-featured-post):not(.cv-related) .cv-post-card .wp-block-post-excerpt,
.cv-journal .cv-post-card .wp-block-post-excerpt{font-size:.98rem;line-height:1.65}
.blog .wp-block-query:not(.cv-featured-post):not(.cv-related) .cv-post-card .wp-block-post-date,
.cv-journal .cv-post-card .wp-block-post-date{
  color:var(--wp--preset--color--ember);font-weight:800;letter-spacing:.14em;
}
.blog .wp-block-query:not(.cv-featured-post):not(.cv-related) .cv-post-card .wp-block-post-terms,
.cv-journal .cv-post-card .wp-block-post-terms{font-size:.7rem}

/* ---------- Comparison table ---------- */
.cv-compare table{border-collapse:collapse;font-size:.9rem;border-radius:var(--cv-radius)}
.cv-compare thead th,.cv-compare thead td{
  background:var(--wp--preset--color--ink);color:var(--wp--preset--color--cream);
  font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;padding:.95rem 1.2rem;border:0;
}
.cv-compare tbody td{padding:.95rem 1.2rem;border:0;border-bottom:1px solid var(--cv-line)}
.cv-compare tbody tr:hover td{background:var(--wp--preset--color--sand)}

/* ---------- Footer ---------- */
.cv-footer a{color:#b6ad9a}
.cv-footer a:hover{color:var(--wp--preset--color--ember)}
.cv-footer h4{
  color:var(--wp--preset--color--cream);font-size:.8rem;font-weight:800;
  letter-spacing:.22em;text-transform:uppercase;
  font-family:var(--wp--preset--font-family--body);margin:0 0 1rem;
}
.cv-footer ul{list-style:none;padding:0;margin:0}
.cv-footer li{margin-bottom:.65rem}
.cv-footer-fine{font-size:.78rem;color:#8d8472;line-height:1.7}
.cv-footer .wp-block-site-title a{color:var(--wp--preset--color--cream)}

/* ---------- Page hero (inner pages) ---------- */
.cv-page-hero span.wp-block-cover__background{
  background:linear-gradient(185deg,rgba(28,25,20,.25) 30%,rgba(28,25,20,.86) 95%) !important;opacity:1 !important;
}
.cv-page-hero h1 em{font-style:italic;color:#ff9c63}

/* ---------- Misc ---------- */
.cv-rounded{border-radius:var(--cv-radius);overflow:hidden}
.cv-shadow{box-shadow:var(--cv-shadow-pop)}
.cv-badge-tilt{
  display:inline-block;background:var(--wp--preset--color--ember);color:#fff;
  font-family:var(--wp--preset--font-family--display);font-style:italic;
  padding:.9rem 1.5rem;border-radius:14px;transform:rotate(-3deg);
  box-shadow:var(--cv-shadow-pop);
}
.cv-check li::marker{content:"✓  ";color:var(--wp--preset--color--pine);font-weight:800}
.cv-check li{margin-bottom:.5rem;font-weight:500}

@media (max-width:781px){
  .cv-sb-sticky,.cv-sidebar{position:static}
  .cv-rec-card .wp-block-image img{min-height:200px}
  .admin-bar .cv-header{top:0}
  /* Related rows stack vertically on phones */
  .cv-related .cv-post-card{flex-direction:column;align-items:stretch;gap:1rem}
  .cv-related .cv-post-card .wp-block-post-featured-image{flex-basis:auto}
  .cv-related .cv-post-card:hover{transform:none}
  /* Journal titles scale down gracefully */
  .blog .wp-block-query:not(.cv-featured-post):not(.cv-related) .cv-post-card .wp-block-post-title,
  .cv-journal .cv-post-card .wp-block-post-title{font-size:1.35rem}
}
