/* CrossbowLife Pro — editorial design system (v1.1).
   Loaded after main.css / blocks.css / article.css and overrides them.
   Palette: forest #173D32 · charcoal #202723 · off-white #F7F6F0 · sage #A7B5A3
   · amber #D79A35 (CTAs + focus only; always with charcoal text for AA contrast). */

@font-face {
	font-family: 'Fraunces';
	src: url('../fonts/fraunces-var.woff2') format('woff2');
	font-weight: 300 900;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: 'Inter';
	src: url('../fonts/inter-var.woff2') format('woff2');
	font-weight: 100 900;
	font-style: normal;
	font-display: swap;
}

:root {
	--cbl-forest:   #173D32;
	--cbl-forest-2: #1f4d40;
	--cbl-charcoal: #202723;
	--cbl-paper:    #F7F6F0;
	--cbl-sage:     #A7B5A3;
	--cbl-sage-soft:#E6EBE3;
	--cbl-amber:    #D79A35;
	--cbl-amber-2:  #c4862a;
	--cbl-line:     #DEDCD2;
	--cbl-ink-soft: #4D5650;

	--cbl-font-head: 'Fraunces', Georgia, 'Times New Roman', serif;
	--cbl-font-body: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;
	--cbl-measure: 68ch;
	--cbl-radius: 6px;
}

body {
	font-family: var(--cbl-font-body);
	background: var(--cbl-paper);
	color: var(--cbl-charcoal);
	line-height: 1.6;
}
h1, h2, h3, h4 {
	font-family: var(--cbl-font-head);
	color: var(--cbl-charcoal);
	font-weight: 650;
	letter-spacing: -0.01em;
	font-variation-settings: 'opsz' 72;
}
h1 { font-size: clamp(2rem, 4.2vw, 3.1rem); line-height: 1.1; }
h2 { font-size: clamp(1.45rem, 2.6vw, 2rem); line-height: 1.2; }
h3 { font-size: 1.2rem; line-height: 1.3; }
a { color: var(--cbl-forest); }
a:hover { color: var(--cbl-forest-2); }

/* Accessible focus: amber ring everywhere. */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible,
textarea:focus-visible, summary:focus-visible, [tabindex]:focus-visible {
	outline: 3px solid var(--cbl-amber);
	outline-offset: 2px;
	border-radius: 3px;
}

.cbl-container { max-width: 1200px; padding: 0 16px; }
@media (min-width: 720px) { .cbl-container { padding: 0 24px; } }

.cbl-eyebrow {
	font-family: var(--cbl-font-body);
	font-size: .78rem;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--cbl-forest);
	margin: 0 0 .5rem;
}
.cbl-eyebrow a { color: inherit; }

/* ===== Buttons ===== */
.cbl-btn { border-radius: var(--cbl-radius); padding: 13px 20px; font-size: .95rem; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; gap: 6px; box-shadow: none; }
.cbl-btn:hover { transform: none; }
.cbl-btn--solid { background: var(--cbl-forest); color: #fff; }
.cbl-btn--solid:hover { background: var(--cbl-forest-2); color: #fff; }
.cbl-btn--outline { background: transparent; color: var(--cbl-forest); border: 2px solid var(--cbl-forest); }
.cbl-btn--outline:hover { background: var(--cbl-forest); color: #fff; }
/* Amazon / affiliate CTAs: amber with charcoal text (AA). */
.cbl-btn--primary,
.cbl-amz-btn .wp-block-button__link {
	background: var(--cbl-amber);
	color: var(--cbl-charcoal);
	box-shadow: none;
	font-weight: 700;
	border-radius: var(--cbl-radius);
}
.cbl-btn--primary:hover,
.cbl-amz-btn .wp-block-button__link:hover { background: var(--cbl-amber-2); color: var(--cbl-charcoal); }

.cbl-more { font-weight: 700; font-size: .92rem; white-space: nowrap; }

/* ===== Header ===== */
.cbl-bar--top { background: var(--cbl-charcoal); color: #cfd6cf; font-size: .78rem; padding: 5px 0; }
.cbl-header__main { background: var(--cbl-forest); border-bottom: 0; }
.cbl-header__inner { padding: 12px 16px; gap: 20px; }
@media (min-width: 720px) { .cbl-header__inner { padding: 14px 24px; } }
.cbl-brand__title {
	font-family: var(--cbl-font-head);
	font-weight: 700;
	font-size: 1.45rem;
	letter-spacing: -0.01em;
	color: #fff;
}
.cbl-brand__title:hover { color: #fff; text-decoration: none; }
.cbl-nav__list { gap: 4px 22px; }
.cbl-nav__list > li > a { color: #fff; font-weight: 600; font-size: .95rem; }
.cbl-nav__list > li > a:hover,
.cbl-nav__list > .current-menu-ancestor > a { color: var(--cbl-amber); text-decoration: none; }
.cbl-nav__list > li > .cbl-nav__toggle { color: #fff; }
.cbl-nav .sub-menu { border-radius: var(--cbl-radius); border-color: var(--cbl-line); }
.cbl-nav .sub-menu a { color: var(--cbl-charcoal); font-weight: 500; }
.cbl-nav .sub-menu .current-menu-item > a { color: var(--cbl-forest); font-weight: 700; }
@media (min-width: 881px) {
	.cbl-nav .sub-menu { width: 260px; grid-template-columns: 1fr; }
}
.cbl-menu-toggle span { background: #fff; }
.cbl-menu-toggle { min-width: 44px; min-height: 44px; }
@media (min-width: 881px) { .cbl-header__search { width: 240px; } }
.cbl-search__input { border-radius: var(--cbl-radius) 0 0 var(--cbl-radius); border-color: transparent; }
.cbl-search__btn { background: var(--cbl-amber); color: var(--cbl-charcoal); border-radius: 0 var(--cbl-radius) var(--cbl-radius) 0; }
.cbl-search__btn:hover { background: var(--cbl-amber-2); }
.cbl-site-header.is-stuck .cbl-header__main { box-shadow: 0 2px 12px rgba(0,0,0,.18); }
@media (max-width: 880px) {
	.cbl-nav { background: var(--cbl-forest); }
	.cbl-nav .sub-menu { background: rgba(255,255,255,.06); border: 0; }
	.cbl-nav .sub-menu a { color: #e8ede6; }
	.cbl-nav .sub-menu .current-menu-item > a { color: var(--cbl-amber); }
	.cbl-nav__list > li { border-bottom: 1px solid rgba(255,255,255,.1); }
	.cbl-nav__list > li > a { padding: 12px 0; }
}

/* ===== Article cards ===== */
.cbl-cards { display: grid; gap: 28px 24px; grid-template-columns: 1fr; }
@media (min-width: 640px)  { .cbl-cards { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1000px) { .cbl-cards { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1000px) { .cbl-home-row--comparisons .cbl-cards { grid-template-columns: repeat(4, 1fr); } }

.cbl-article { background: transparent; border: 0; border-radius: 0; overflow: visible; display: flex; flex-direction: column; }
.cbl-article__media { aspect-ratio: 3 / 2; border-radius: var(--cbl-radius); overflow: hidden; background: var(--cbl-sage-soft); }
.cbl-article__media img { transition: transform .4s ease; }
.cbl-article:hover .cbl-article__media img { transform: scale(1.03); }
.cbl-article__body { padding: 14px 0 0; }
.cbl-article__cat { margin: 0 0 6px; font-size: .74rem; letter-spacing: .07em; }
.cbl-article__cat a { color: var(--cbl-forest); }
.cbl-article__title { font-family: var(--cbl-font-head); font-size: 1.22rem; line-height: 1.25; margin: 0 0 8px; font-weight: 600; }
.cbl-article__title a { color: var(--cbl-charcoal); }
.cbl-article__title a:hover { color: var(--cbl-forest); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.cbl-article__excerpt { color: var(--cbl-ink-soft); font-size: .95rem; line-height: 1.55; margin: 0 0 8px; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.cbl-article__meta { font-size: .82rem; color: var(--cbl-ink-soft); }

/* ===== Homepage: featured hero ===== */
.cbl-lead { padding: 36px 0 44px; border-bottom: 1px solid var(--cbl-line); }
.cbl-lead__inner { display: grid; gap: 24px; align-items: center; }
@media (min-width: 900px) { .cbl-lead__inner { grid-template-columns: 1.35fr 1fr; gap: 48px; } }
.cbl-lead__media { display: block; aspect-ratio: 16 / 10; border-radius: var(--cbl-radius); overflow: hidden; background: var(--cbl-sage-soft); }
.cbl-lead__media img { width: 100%; height: 100%; object-fit: cover; }
.cbl-lead__title { margin: 0 0 14px; font-size: clamp(1.9rem, 3.4vw, 2.75rem); }
.cbl-lead__title a { color: var(--cbl-charcoal); }
.cbl-lead__title a:hover { color: var(--cbl-forest); text-decoration: none; }
.cbl-lead__excerpt { font-size: 1.08rem; color: var(--cbl-ink-soft); max-width: 52ch; }
.cbl-lead__meta { font-size: .86rem; color: var(--cbl-ink-soft); margin: 0 0 20px; }

/* ===== Homepage rows ===== */
.cbl-home-row { padding: 48px 0; }
.cbl-home-row + .cbl-home-row { border-top: 1px solid var(--cbl-line); }
.cbl-home-row__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 26px; }
.cbl-home-row__title { margin: 0; }
.cbl-home-row__intro { margin: 8px 0 0; color: var(--cbl-ink-soft); max-width: 60ch; }

/* Essential guides: numbered list */
.cbl-home-row--essentials { background: #fff; }
.cbl-guide-list { list-style: none; margin: 0; padding: 0; counter-reset: cbl-g; display: grid; gap: 0 32px; }
@media (min-width: 760px) { .cbl-guide-list { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1100px) { .cbl-guide-list { grid-template-columns: repeat(3, 1fr); } }
.cbl-guide-list__item { counter-increment: cbl-g; border-top: 1px solid var(--cbl-line); }
.cbl-guide-list__link { display: flex; gap: 14px; align-items: center; padding: 16px 0; color: var(--cbl-charcoal); }
.cbl-guide-list__link::before {
	content: counter(cbl-g, decimal-leading-zero);
	font-family: var(--cbl-font-head);
	font-size: 1.6rem;
	font-weight: 600;
	color: var(--cbl-sage);
	min-width: 2.2ch;
}
.cbl-guide-list__link:hover { text-decoration: none; }
.cbl-guide-list__link:hover .cbl-guide-list__title { color: var(--cbl-forest); text-decoration: underline; text-underline-offset: 3px; }
.cbl-guide-list__media { flex: 0 0 72px; width: 72px; height: 72px; border-radius: var(--cbl-radius); overflow: hidden; background: var(--cbl-sage-soft); }
.cbl-guide-list__media img { width: 100%; height: 100%; object-fit: cover; }
.cbl-guide-list__text { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.cbl-guide-list__cat { font-size: .72rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: var(--cbl-forest); }
.cbl-guide-list__title { font-family: var(--cbl-font-head); font-size: 1.08rem; font-weight: 600; line-height: 1.3; }

/* Learn */
.cbl-learn { padding: 52px 0; background: var(--cbl-forest); color: #e8ede6; }
.cbl-learn .cbl-eyebrow { color: var(--cbl-sage); }
.cbl-learn .cbl-home-row__title { color: #fff; }
.cbl-learn__grid { list-style: none; margin: 0; padding: 0; display: grid; gap: 16px; grid-template-columns: 1fr; }
@media (min-width: 640px)  { .cbl-learn__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1000px) { .cbl-learn__grid { grid-template-columns: repeat(4, 1fr); } }
.cbl-learn__tile a { display: flex; flex-direction: column; gap: 8px; height: 100%; padding: 20px; border: 1px solid rgba(255,255,255,.18); border-radius: var(--cbl-radius); color: #e8ede6; transition: background .2s ease, border-color .2s ease; }
.cbl-learn__tile a:hover { background: rgba(255,255,255,.06); border-color: var(--cbl-sage); text-decoration: none; }
.cbl-learn__name { font-family: var(--cbl-font-head); font-size: 1.25rem; font-weight: 600; color: #fff; }
.cbl-learn__intro { font-size: .93rem; line-height: 1.5; }
.cbl-learn__count { margin-top: auto; font-size: .8rem; font-weight: 700; color: var(--cbl-amber); }

/* Closing band: tool + trust */
.cbl-closing { padding: 52px 0; }
.cbl-closing__inner { display: grid; gap: 32px; }
@media (min-width: 900px) { .cbl-closing__inner { grid-template-columns: 1fr 1fr; gap: 48px; } }
.cbl-closing__tool, .cbl-closing__trust { padding: 28px; background: #fff; border: 1px solid var(--cbl-line); border-radius: var(--cbl-radius); }
.cbl-closing__title { font-size: 1.5rem; margin: 0 0 10px; }
.cbl-closing p { color: var(--cbl-ink-soft); }
.cbl-closing__links { list-style: none; margin: 16px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 20px; }
.cbl-closing__links a { font-weight: 700; }

/* ===== Archive ===== */
.cbl-archive { padding: 32px 16px 48px; }
@media (min-width: 720px) { .cbl-archive { padding: 40px 24px 56px; } }
.cbl-archive__head { margin-bottom: 32px; padding-bottom: 24px; border-bottom: 1px solid var(--cbl-line); }
.cbl-archive__title { margin: .2em 0 .3em; }
.cbl-archive__desc { color: var(--cbl-ink-soft); font-size: 1.05rem; max-width: 65ch; margin: 0; }
.cbl-chips { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin: 18px 0 0; padding: 0; }
.cbl-chips a { display: inline-block; padding: 8px 14px; min-height: 36px; border: 1px solid var(--cbl-line); border-radius: 999px; background: #fff; font-size: .88rem; font-weight: 600; }
.cbl-chips a:hover { border-color: var(--cbl-forest); text-decoration: none; }
.cbl-empty { padding: 32px 0; color: var(--cbl-ink-soft); }
.pagination { margin-top: 40px; }
.page-numbers { border-radius: var(--cbl-radius); min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
.page-numbers.current { background: var(--cbl-forest); border-color: var(--cbl-forest); }

/* ===== Single article ===== */
.cbl-layout { padding: 28px 16px 48px; gap: 48px; }
@media (min-width: 720px) { .cbl-layout { padding: 36px 24px 56px; } }
@media (min-width: 981px) { .cbl-layout--article { grid-template-columns: minmax(0, 1fr) 280px; } }
.cbl-post { max-width: 760px; }
.cbl-post__cat { margin: 14px 0 8px; letter-spacing: .08em; font-size: .76rem; }
.cbl-post__cat a { color: var(--cbl-forest); }
.cbl-post__title { margin: 0 0 14px; }
.cbl-post__byline { font-size: .88rem; color: var(--cbl-ink-soft); gap: 6px 14px; margin: 0 0 4px; }
.cbl-post__author a { font-weight: 700; color: var(--cbl-charcoal); }
.cbl-post__hero { margin: 20px 0 10px; border-radius: var(--cbl-radius); aspect-ratio: 16 / 9; background: var(--cbl-sage-soft); }
.cbl-post__hero img { height: 100%; object-fit: cover; }
.cbl-post__disclosure { font-size: .82rem; color: var(--cbl-ink-soft); margin: 0 0 28px; padding: 0 0 12px; border-bottom: 1px solid var(--cbl-line); }
.cbl-post__content { font-size: 1.08rem; line-height: 1.75; max-width: var(--cbl-measure); }
.cbl-post__content > * { max-width: 100%; }
.cbl-post__content h2 { margin-top: 2em; font-size: clamp(1.45rem, 2.4vw, 1.85rem); }
.cbl-post__content h3 { margin-top: 1.6em; }
.cbl-post__content :is(h2, h3) { scroll-margin-top: 96px; }
.cbl-post__content a:not(.wp-block-button__link):not([class*="btn"]) { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.cbl-post__content img { border-radius: var(--cbl-radius); }
.cbl-post__content figcaption { font-size: .85rem; color: var(--cbl-ink-soft); }
/* Tables never force the page to scroll sideways. */
.cbl-post__content .wp-block-table,
.cbl-post__content > table { display: block; max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.cbl-post__content table { border-collapse: collapse; font-size: .95rem; }
.cbl-post__content th, .cbl-post__content td { padding: 10px 12px; border-bottom: 1px solid var(--cbl-line); text-align: left; vertical-align: top; }
.cbl-post__content thead th { background: var(--cbl-forest); color: #fff; font-weight: 600; }

.cbl-card--disclaimer { margin: 36px 0 0; background: var(--cbl-sage-soft); border-left: 3px solid var(--cbl-forest); border-radius: var(--cbl-radius); }
.cbl-card--disclaimer p { font-size: .86rem; color: var(--cbl-ink-soft); }
.cbl-author { margin: 20px 0 0; padding: 20px; border-radius: var(--cbl-radius); border-color: var(--cbl-line); }
.cbl-author__name { font-family: var(--cbl-font-head); font-size: 1.15rem; font-weight: 600; margin: 0 0 6px; }
.cbl-author__name a { color: var(--cbl-charcoal); }
.cbl-author__links { display: flex; gap: 16px; flex-wrap: wrap; margin: 10px 0 0; font-size: .9rem; font-weight: 700; }
.cbl-related { border-top: 1px solid var(--cbl-line); }
.cbl-related .cbl-article__title { font-size: 1.08rem; }
@media (min-width: 640px) { .cbl-cards--related { grid-template-columns: repeat(3, 1fr); } }
.cbl-toc { border-radius: var(--cbl-radius); border-color: var(--cbl-line); }
.cbl-toc__title { color: var(--cbl-charcoal); }
.cbl-toc__link.is-active { border-left-color: var(--cbl-amber); background: rgba(215,154,53,.1); color: var(--cbl-charcoal); }
.cbl-toc--sticky { top: 96px; max-height: calc(100vh - 120px); }
.cbl-reading-progress__bar { background: var(--cbl-amber); }
.cbl-postnav .nav-previous a, .cbl-postnav .nav-next a { border-radius: var(--cbl-radius); border-color: var(--cbl-line); }
.cbl-postnav__title { color: var(--cbl-charcoal); font-family: var(--cbl-font-head); font-weight: 600; }

/* ===== Review / buying-guide components (block patterns) ===== */
.cbl-verdict { padding: 22px 24px; background: #fff; border: 1px solid var(--cbl-line); border-top: 4px solid var(--cbl-forest); border-radius: var(--cbl-radius); margin: 28px 0; }
.cbl-verdict__label { font-size: .76rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--cbl-forest); margin: 0 0 6px; }
.cbl-verdict__facts { list-style: none; padding: 0; margin: 14px 0; font-size: .95rem; }
.cbl-verdict__facts li { padding: 6px 0; border-top: 1px solid var(--cbl-line); }
.cbl-specs table { width: 100%; }
.cbl-specs th { width: 40%; background: var(--cbl-sage-soft); color: var(--cbl-charcoal); font-weight: 600; }
.cbl-proscons-pattern { gap: 16px; }
.cbl-pc { padding: 18px 20px; border-radius: var(--cbl-radius); background: #fff; border: 1px solid var(--cbl-line); }
.cbl-pc h3 { margin-top: 0 !important; font-size: 1.05rem; }
.cbl-pc--pro { border-top: 3px solid var(--cbl-forest); }
.cbl-pc--con { border-top: 3px solid var(--cbl-amber); }
.cbl-pc ul { padding-left: 1.1em; margin: 0; }
.cbl-method { padding: 16px 20px; background: var(--cbl-sage-soft); border-radius: var(--cbl-radius); font-size: .93rem; margin: 28px 0; }
.cbl-method p { margin: 0; }

/* ===== Footer ===== */
.cbl-site-footer { background: var(--cbl-charcoal); margin-top: 0; padding: 48px 0 24px; }
.cbl-footer__title { font-family: var(--cbl-font-head); font-weight: 700; font-size: 1.4rem; }
.cbl-footer__tagline { max-width: 34ch; line-height: 1.55; }
.cbl-footer__heading { font-family: var(--cbl-font-body); font-size: .76rem; letter-spacing: .08em; text-transform: uppercase; color: var(--cbl-sage); font-weight: 700; }
.cbl-footer__list li { margin-bottom: 8px; }
.cbl-footer__list a, .cbl-footer__menu a { color: #cfd6cf; }
.cbl-footer__list a:hover, .cbl-footer__menu a:hover { color: #fff; }
.cbl-footer__legal { border-top-color: #333c37; color: #a9b1ab; }
.cbl-footer__copy { color: #a9b1ab; }

/* ===== Motion ===== */
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.cbl-article__media img, .cbl-learn__tile a { transition: none; }
	.cbl-article:hover .cbl-article__media img { transform: none; }
}

/* ===== Contact form ===== */
.cbl-contact { max-width: 620px; margin: 24px 0; }
.cbl-contact__form .cbl-field { display: flex; flex-direction: column; gap: 6px; margin: 0 0 16px; }
.cbl-contact__form label { font-weight: 600; font-size: .95rem; }
.cbl-contact__form input[type=text], .cbl-contact__form input[type=email], .cbl-contact__form select, .cbl-contact__form textarea {
	font: inherit; padding: 11px 12px; border: 1px solid #b9bdb4; border-radius: var(--cbl-radius); background: #fff; color: var(--cbl-charcoal); min-height: 44px; width: 100%;
}
.cbl-contact__form .cbl-field--check label { font-weight: 400; display: flex; gap: 10px; align-items: flex-start; }
.cbl-contact__form .cbl-field--check input { margin-top: 4px; width: 18px; height: 18px; flex: 0 0 auto; }
.cbl-contact__hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.cbl-contact__notice { padding: 14px 16px; border-radius: var(--cbl-radius); font-weight: 600; }
.cbl-contact__notice.is-ok { background: #e6f2ea; color: #1d5a33; border-left: 4px solid #2f7a4a; }
.cbl-contact__notice.is-error { background: #fbeaea; color: #8a1f1f; border-left: 4px solid #b23b3b; }
