:root {
	--cg-forest: #173c2c;
	--cg-forest-dark: #102b20;
	--cg-sage: #8fa68e;
	--cg-earth: #9b7653;
	--cg-sand: #e8e0d2;
	--cg-paper: #f8f7f3;
	--cg-ink: #1e2420;
	--cg-muted: #647067;
	--cg-border: #d8ddd7;
	--cg-radius: 18px;
	--cg-shadow: 0 18px 50px rgba(23, 60, 44, 0.08);
}

html {
	scroll-behavior: smooth;
}

body {
	background: var(--cg-paper);
	color: var(--cg-ink);
}

a {
	text-underline-offset: 0.16em;
}

.cg-header {
	position: relative;
	z-index: 10;
	background: rgba(248, 247, 243, 0.96);
	border-bottom: 1px solid var(--cg-border);
}

.cg-header__inner {
	min-height: 76px;
}

.cg-header .wp-block-site-title {
	font-size: 1.35rem;
	font-weight: 800;
	letter-spacing: -0.03em;
}

.cg-header .wp-block-site-title a {
	color: var(--cg-forest);
	text-decoration: none;
}

.cg-header .wp-block-navigation {
	font-size: 0.95rem;
	font-weight: 650;
}

.cg-hero {
	position: relative;
	overflow: hidden;
	background:
		radial-gradient(circle at 85% 15%, rgba(143, 166, 142, 0.35), transparent 32rem),
		var(--cg-forest);
	color: #fff;
}

.cg-hero__inner {
	min-height: 560px;
	display: flex;
	align-items: center;
	padding-top: clamp(4rem, 8vw, 7rem);
	padding-bottom: clamp(4rem, 8vw, 7rem);
}

.cg-eyebrow {
	margin-bottom: 1rem;
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.13em;
	text-transform: uppercase;
	color: #cbd8cb;
}

.cg-hero h1 {
	max-width: 820px;
	margin-top: 0;
	margin-bottom: 1.25rem;
	font-size: clamp(2.7rem, 7vw, 5.7rem);
	line-height: 0.98;
	letter-spacing: -0.055em;
	color: #fff;
}

.cg-hero__copy {
	max-width: 650px;
	margin-bottom: 2rem;
	font-size: clamp(1.08rem, 2vw, 1.3rem);
	line-height: 1.6;
	color: #e4ebe4;
}

.cg-button .wp-block-button__link {
	padding: 0.9rem 1.35rem;
	border-radius: 999px;
	background: var(--cg-sand);
	color: var(--cg-forest-dark);
	font-weight: 750;
	text-decoration: none;
}

.cg-button .wp-block-button__link:hover {
	transform: translateY(-1px);
	background: #f2ecdf;
}

.cg-section {
	padding-top: clamp(4rem, 7vw, 6rem);
	padding-bottom: clamp(4rem, 7vw, 6rem);
}

.cg-section--white {
	background: #fff;
}

.cg-section-heading {
	max-width: 700px;
	margin-bottom: 2.5rem;
}

.cg-section-heading h2 {
	margin-bottom: 0.7rem;
	font-size: clamp(2rem, 4vw, 3.25rem);
	line-height: 1.05;
	letter-spacing: -0.045em;
	color: var(--cg-forest-dark);
}

.cg-section-heading p {
	color: var(--cg-muted);
	font-size: 1.08rem;
}

.cg-principles {
	gap: 1.25rem;
}

.cg-principle {
	height: 100%;
	padding: clamp(1.4rem, 3vw, 2rem);
	background: #fff;
	border: 1px solid var(--cg-border);
	border-radius: var(--cg-radius);
	box-shadow: var(--cg-shadow);
}

.cg-principle h3 {
	margin-top: 0.85rem;
	margin-bottom: 0.65rem;
	color: var(--cg-forest-dark);
}

.cg-principle p {
	margin-bottom: 0;
	color: var(--cg-muted);
}

.cg-principle__number {
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	color: var(--cg-earth);
}

.cg-post-grid .wp-block-post-template {
	gap: 1.5rem;
}

.cg-post-card {
	height: 100%;
	overflow: hidden;
	background: var(--cg-paper);
	border: 1px solid var(--cg-border);
	border-radius: var(--cg-radius);
}

.cg-post-card .wp-block-post-featured-image {
	margin: 0;
}

.cg-post-card .wp-block-post-featured-image img {
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
}

.cg-post-card__body {
	padding: 1.5rem;
}

.cg-post-card .wp-block-post-title {
	margin: 0 0 0.7rem;
	font-size: clamp(1.3rem, 2vw, 1.65rem);
	line-height: 1.15;
	letter-spacing: -0.025em;
}

.cg-post-card .wp-block-post-title a {
	color: var(--cg-forest-dark);
	text-decoration: none;
}

.cg-post-card .wp-block-post-title a:hover {
	text-decoration: underline;
}

.cg-post-card .wp-block-post-excerpt {
	color: var(--cg-muted);
}

.cg-post-card .wp-block-post-date {
	margin-bottom: 0.75rem;
	color: var(--cg-earth);
	font-size: 0.8rem;
	font-weight: 700;
}

.cg-footer {
	background: var(--cg-forest-dark);
	color: #dce5dc;
}

.cg-footer__inner {
	padding-top: 3rem;
	padding-bottom: 3rem;
}

.cg-footer .wp-block-site-title a {
	color: #fff;
	text-decoration: none;
}

.cg-footer p {
	color: #b8c6ba;
}

@media (max-width: 781px) {
	.cg-header__inner {
		min-height: 64px;
	}

	.cg-hero__inner {
		min-height: 500px;
	}

	.cg-principles {
		gap: 1rem;
	}
}

/* Hero layout correction */
.cg-hero__inner {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
}

.cg-hero__inner > * {
	flex: 0 0 auto;
}

/* Keep homepage content clear of narrow viewport edges. */
.cg-header,
.cg-hero,
.cg-section,
.cg-footer {
	padding-inline: clamp(1.25rem, 4vw, 2rem);
}

/* Article layout: scoped to the guide template and its content. */
.cg-guide-main { margin-block-start: 0; }
.cg-guide-hero { position: relative; background: linear-gradient(120deg,var(--cg-forest-dark),var(--cg-forest)); color: #fff; padding: 0; isolation: isolate; }
.cg-guide-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg,rgba(9,25,17,.85),rgba(9,25,17,.28)); z-index: -1; }
.cg-guide-hero .wp-block-post-featured-image { position: absolute; inset: 0; margin: 0; z-index: -2; }
.cg-guide-hero .wp-block-post-featured-image img { width: 100%; height: 100%; object-fit: cover; }
.cg-guide-hero-inner { box-sizing: border-box; max-width: 1264px; margin: auto; padding: clamp(3rem,7vw,6rem) clamp(1.25rem,4vw,2rem); min-height: 500px; display: flex; flex-direction: column; justify-content: end; align-items: start; gap: 1rem; }
.cg-guide-hero-inner > * { margin: 0; }
.cg-guide-hero .wp-block-post-title { max-width: 880px; font-size: clamp(2.25rem,5.4vw,4.75rem); line-height: 1.06; letter-spacing: -.04em; color: #fff; text-wrap: balance; }
.cg-guide-hero .wp-block-post-excerpt { max-width: 660px; font-size: clamp(1.05rem,2vw,1.35rem); }
.cg-guide-hero .wp-block-post-excerpt__excerpt { margin: 0; }
.cg-guide-hero .cg-eyebrow { color: #e3ecdf; }
.cg-guide-content { box-sizing: border-box; padding: 3rem clamp(1.25rem,4vw,2rem); max-width: 1264px; margin-inline: auto; }
.cg-guide-layout { display: grid; grid-template-columns: minmax(0, 790px) minmax(240px, 300px); gap: clamp(2rem,4vw,3.5rem); align-items: start; }
.cg-guide-body { min-width: 0; font-size: 1.125rem; }
.cg-guide-body p { margin: 0 0 1.25rem; }
.cg-guide-body > p:first-child { font-size: 1.25rem; }
.cg-guide-body h2 { font-size: clamp(1.6rem,3vw,2rem); line-height: 1.2; letter-spacing: -.025em; margin: 3.5rem 0 1.4rem; scroll-margin-top: 2rem; }
.cg-guide-body h3 { font-size: 1.35rem; line-height: 1.3; margin: 2rem 0 1rem; }
.cg-guide-body li { margin-block: .4rem; }
.cg-guide-body ul { padding-left: 1.4rem; }

.cg-nutshell h2 { margin-top: 0; }
.cg-nutshell p:last-child { margin-bottom: 0; }
.cg-guide-toc { position: sticky; top: 2rem; background: #eef3e9; border: 1px solid var(--cg-border); border-radius: 18px; padding: 1.4rem; max-height: calc(100vh - 4rem); overflow-y: auto; font-size: .875rem; }
.cg-guide-toc h2 { font-size: 1.125rem; margin: 0 0 1rem; }
.cg-guide-toc ol { margin: 0; padding-left: 1.4rem; }
.cg-guide-toc li { margin: 0; padding-left: .25rem; }
.cg-guide-toc a { display: block; padding-block: .5rem; line-height: 1.4; color: var(--cg-forest); text-decoration: none; }
.cg-guide-toc a:hover { text-decoration: underline; }
.cg-guide-content a:focus-visible { outline: 3px solid var(--cg-earth); outline-offset: 4px; }
.cg-guide-body .wp-block-table { margin: 1.5rem 0; font-size: 1rem; }
.cg-guide-body .wp-block-table table { border-collapse: collapse; width: 100%; }
.cg-guide-body .wp-block-table th,.cg-guide-body .wp-block-table td { padding: .8rem; border: 1px solid var(--cg-border); text-align: left; overflow-wrap: break-word; }
.cg-guide-body .wp-block-table th { background: #eef3e9; }
.cg-guide-figure { margin: 2rem 0; }
.cg-guide-figure img { display: block; width: 100%; height: auto; border: 1px solid var(--cg-border); border-radius: 16px; box-sizing: border-box; }
.cg-guide-figure figcaption { margin-top: .6rem; font-size: .875rem; color: var(--cg-muted); }
.cg-guide-main + .cg-footer { margin-block-start: 0; }
@media (max-width: 980px) {
  .cg-guide-layout { display: flex; flex-direction: column; gap: 2rem; }
  .cg-guide-toc { order: -1; position: static; max-height: none; box-sizing: border-box; width: 100%; }
  .cg-guide-toc ol { columns: 2; column-gap: 2rem; }
  .cg-guide-toc li { break-inside: avoid; }
  .cg-guide-hero-inner { min-height: 440px; }
}
@media (max-width: 600px) {
  .cg-guide-content { padding-block: 2rem; }
  .cg-guide-toc ol { columns: 1; }
  .cg-guide-body { font-size: 1.0625rem; }
  .cg-guide-hero-inner { min-height: 430px; }
  .cg-guide-body .wp-block-table { font-size: .875rem; }
  .cg-guide-body .wp-block-table th,.cg-guide-body .wp-block-table td { padding: .65rem; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.65}.cg-header__inner,.cg-footer__inner{max-width:1200px;margin:auto;display:flex;justify-content:space-between;align-items:center}.cg-header nav{display:flex;gap:1.5rem}.cg-header nav a{color:var(--cg-forest);text-decoration:none}.wp-block-site-title{font-size:1.5rem;font-weight:700;margin:0}.cg-guide-hero-inner{position:relative}.review-banner{background:#fff3d3;color:#473b19;padding:.65rem 1.25rem;font-size:.85rem;text-align:center}@media(max-width:480px){.cg-header nav{font-size:.8rem;gap:.7rem}.cg-footer__inner{display:block}}/* Approved brief V1.0: responsive information components only. */
.cg-guide-body .cg-info {
  margin: 2rem 0;
  padding: clamp(20px, 3vw, 32px);
  border: 1px solid var(--cg-border);
  border-radius: 20px;
  background: #eef3e9;
  color: var(--cg-ink);
  font-size: 1rem;
  line-height: 1.6;
  overflow-wrap: anywhere;
}
.cg-info *, .cg-info *::before, .cg-info *::after { box-sizing: border-box; }
.cg-guide-body .cg-info h3 {
  margin: 0 0 .75rem;
  color: var(--cg-forest-dark);
  font-size: clamp(1.375rem, 2.4vw, 1.75rem);
  line-height: 1.25;
  letter-spacing: -.025em;
}
.cg-guide-body .cg-info p { margin: 0; }
.cg-info .cg-info-intro { color: #425246; }
.cg-info .cg-info-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin: 1.5rem 0;
}
.cg-info .cg-info-card {
  min-width: 0;
  padding: 20px;
  border: 1px solid var(--cg-border);
  border-radius: 16px;
  background: #fff;
}
.cg-info .cg-material-card { display: flex; flex-direction: column; }
.cg-info .cg-card-header { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; margin-bottom: .8rem; }
.cg-info .cg-card-icon { display: block; width: 44px; height: 44px; flex: 0 0 44px; }
.cg-info h4 { margin: 0; color: var(--cg-forest-dark); font-size: 1.25rem; line-height: 1.3; }
.cg-info .cg-card-deck { color: #425246; }
.cg-guide-body .cg-info ul { padding: 0; margin: 1.25rem 0; list-style: none; }
.cg-guide-body .cg-info ul li { display: flex; align-items: baseline; gap: .6rem; margin: 0 0 .7rem; }
.cg-guide-body .cg-info ul li:last-child { margin-bottom: 0; }
.cg-info .cg-signal { flex: 0 0 1em; color: var(--cg-forest); font-weight: 700; }
.cg-info .cg-caution { color: #796020; }
.cg-guide-body .cg-info .cg-fit-note { margin-top: auto; padding: .8rem; border-radius: 10px; background: #dfe9d9; color: #243d28; }
.cg-guide-body .cg-info .cg-fit-note--blue { background: #dce8ed; color: #294854; }
.cg-info .cg-info-note { color: #425246; }
.cg-info figcaption { margin-top: 1rem; color: #425246; font-size: 1rem; }
.cg-info .cg-shape-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cg-info .cg-shape-card { display: flex; flex-direction: column; align-items: center; text-align: center; padding-inline: 1rem; }
.cg-info .cg-shape-diagram { width: 120px; height: 190px; max-width: 100%; display: block; margin: 1rem auto; }
.cg-guide-body .cg-info .cg-shape-summary { font-weight: 700; margin-bottom: .4rem; }
.cg-info .cg-shape-copy { color: #425246; }
.cg-guide-body .cg-info .cg-process-list {
  list-style: none;
  margin: 1.5rem 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .875rem;
}
.cg-guide-body .cg-info .cg-process-list li {
  display: flex;
  flex-wrap: wrap;
  align-items: start;
  gap: .875rem;
  margin: 0;
  padding: 18px;
  border: 1px solid var(--cg-border);
  border-radius: 14px;
  background: #fff;
  min-width: 0;
}
.cg-info .cg-step-number {
  display: grid;
  place-items: center;
  flex: 0 0 2rem;
  height: 2rem;
  border-radius: 50%;
  background: var(--cg-forest);
  color: #fff;
  font-size: 1rem;
  font-weight: 700;
}
.cg-info .cg-process-list h4 { font-size: 1.125rem; margin: .15rem 0 .4rem; }
.cg-info .cg-process-list li > div { flex: 1 1 10rem; min-width: 0; }
.cg-info .cg-process-list p { color: #425246; }
.cg-info .cg-process-list li:last-child { grid-column: 1 / -1; }
@media (max-width: 700px) {
  .cg-info .cg-info-grid,
  .cg-info .cg-shape-grid,
  .cg-guide-body .cg-info .cg-process-list { grid-template-columns: minmax(0, 1fr); }
  .cg-info .cg-shape-diagram { height: 170px; }
}
@media (max-width: 600px) {
  .cg-article-preview-footer { padding: 40px 32px; }
  .cg-article-preview-footer .cg-footer__inner {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
    padding: 0;
  }
  .cg-article-preview-footer p { margin: 0; }
  .cg-article-preview-footer .wp-block-site-title { color: #dce5dc; }
}

/* Approved brief V1.1: scope additions to the two remaining components. */
.cg-temperature .cg-temperature-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cg-temperature .cg-rating-card { display: flex; flex-direction: column; padding: 0; }
.cg-temperature .cg-rating-card h4 { padding: 1rem; border-radius: 15px 15px 0 0; font-size: 1.125rem; letter-spacing: .035em; }
.cg-temperature .cg-rating-comfort h4 { background: #466b3d; color: #fff; }
.cg-temperature .cg-rating-limit h4 { background: #f0d999; color: #4d3912; }
.cg-temperature .cg-rating-extreme h4 { background: #a63f39; color: #fff; }
.cg-guide-body .cg-temperature .cg-rating-summary { font-weight: 700; margin: 1.125rem 1rem .65rem; }
.cg-guide-body .cg-temperature .cg-rating-copy { margin: 0 1rem 1.25rem; color: #425246; }
.cg-guide-body .cg-temperature .cg-rating-guidance { margin: auto 1rem 1rem; border-radius: 10px; padding: .75rem; font-weight: 600; }
.cg-temperature .cg-rating-comfort .cg-rating-guidance { background: #dfe9d9; color: #243d28; }
.cg-temperature .cg-rating-limit .cg-rating-guidance { background: #f7e8bf; color: #4d3912; }
.cg-temperature .cg-rating-extreme .cg-rating-guidance { background: #f2d7d5; color: #732c28; }
.cg-sleep-system .cg-sleep-cutaway { position: relative; margin: 1.5rem 0; border: 1px solid var(--cg-border); border-radius: 14px; background: #f8f7f3; }
.cg-sleep-cutaway svg, .cg-sleep-cutaway img { display: block; width: 100%; height: auto; border-radius: 14px; }
.cg-sleep-system .cg-layer-marker,
.cg-sleep-system .cg-layer-number { display: grid; place-items: center; width: 2rem; height: 2rem; flex: 0 0 2rem; border-radius: 50%; color: #fff; font-weight: 700; font-size: 1rem; line-height: 1; }
.cg-sleep-system .cg-layer-marker { position: absolute; transform: translate(-50%, -50%); box-shadow: 0 0 0 2px #fff; }
.cg-sleep-system .cg-layer-loft { background: #173c2c; }
.cg-sleep-system .cg-layer-compressed { background: #52675e; }
.cg-sleep-system .cg-layer-mat { background: #765816; }
.cg-sleep-system .cg-layer-ground { background: #6a4e34; }
.cg-sleep-cutaway .cg-layer-loft { left: 42%; top: 33%; }
.cg-sleep-cutaway .cg-layer-compressed { left: 57%; top: 73%; }
.cg-sleep-cutaway .cg-layer-mat { left: 85%; top: 80.5%; }
.cg-sleep-cutaway .cg-layer-ground { left: 23%; top: calc(100% - 1rem - 4px); }
.cg-guide-body .cg-sleep-system .cg-layer-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; list-style: none; padding: 0; margin: 1.5rem 0; }
.cg-guide-body .cg-sleep-system .cg-layer-list li { display: flex; flex-wrap: wrap; gap: .8rem; margin: 0; padding: 18px; border: 1px solid var(--cg-border); border-radius: 14px; background: #fff; }
.cg-layer-list li > div { flex: 1 1 10rem; min-width: 0; }
.cg-sleep-system .cg-layer-list h4 { margin: .1rem 0 .5rem; font-size: 1.125rem; }
.cg-sleep-system .cg-layer-list p { color: #425246; }
.cg-sleep-system .cg-sleep-takeaways { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem 1.5rem; margin: 1.75rem 0 1.5rem; padding-top: 1.5rem; border-top: 1px solid #b9c8b7; }
.cg-sleep-system .cg-sleep-takeaway h4 { margin: 0 0 .5rem; font-size: 1.125rem; }
.cg-sleep-system .cg-sleep-takeaway p { color: #425246; }
.cg-guide-body .cg-sleep-system .cg-sleep-closing { margin-top: 1.5rem; color: var(--cg-forest); font-weight: 600; }
@media (max-width: 700px) {
  .cg-temperature .cg-temperature-grid,
  .cg-guide-body .cg-sleep-system .cg-layer-list,
  .cg-sleep-system .cg-sleep-takeaways { grid-template-columns: minmax(0, 1fr); }
}

/* Summary visual variant; source values preserved. */
.cg-guide-body .cg-nutshell.cg-summary{--cg-summary-background:linear-gradient(135deg,#edf4e8,#f8f7ed);--cg-summary-border:1px solid var(--cg-border);--cg-summary-padding:clamp(1.25rem,3vw,2rem);--cg-summary-margin:2rem 0 3rem;--cg-summary-p-margin:0 0 1.25rem;--cg-summary-last-margin:0;--cg-summary-heading-margin:0 0 1.4rem;}
