/* ==========================================================================
   Pillow Finder — in the Treasure Works style: ivory and sand, ink and gold,
   Cormorant Garamond headings, Jost text, fine gold rules and diamonds.
   Colors are set in Pillow Finder → Settings and arrive as --pf-* variables.
   ========================================================================== */
.pf, .pf-scope {
	--pf-gold: #C2A15C;
	--pf-gold2: #E0CB9A;
	--pf-ink: #16130F;
	--pf-mahogany: #6E3123;
	--pf-ivory: #FBF8F2;
	--pf-sand: #F1E9DC;
	--pf-mist: #E3E7E4;
	--pf-text: #221D17;
	--pf-muted: #5E5347;
	--pf-line: color-mix(in srgb, var(--pf-gold) 50%, transparent);
	--pf-goldtext: color-mix(in srgb, var(--pf-gold) 62%, #000);
	--pf-display: "Cormorant Garamond", Cormorant, Georgia, "Times New Roman", serif;
	--pf-sans: Jost, "Avenir Next", "Helvetica Neue", Helvetica, Arial, sans-serif;
	--pf-ease: cubic-bezier(.22, .61, .36, 1);
}
@supports not (color: color-mix(in srgb, red 50%, blue)) {
	.pf, .pf-scope { --pf-line: rgba(194, 161, 92, .5); --pf-goldtext: #7A6234; }
}

.pf {
	box-sizing: border-box;
	font-family: var(--pf-sans);
	font-weight: 400;
	font-size: clamp(16px, 1.02vw, 17.5px);
	line-height: 1.55;
	letter-spacing: .012em;
	color: var(--pf-text);
	-webkit-font-smoothing: antialiased;
	max-width: 1100px;
	margin: 0 auto clamp(40px, 6vw, 80px);
}
.pf *, .pf *::before, .pf *::after { box-sizing: border-box; }
.pf h1, .pf h2, .pf h3, .pf h4 {
	font-family: var(--pf-display);
	font-weight: 500;
	line-height: 1.12;
	letter-spacing: .005em;
	color: var(--pf-ink);
	text-wrap: balance;
	margin: 0 0 .5em;
	text-transform: none;
}
.pf h2 { font-size: clamp(2rem, 3.6vw, 3.1rem); }
.pf h3 { font-size: clamp(1.45rem, 2.1vw, 1.9rem); }
.pf h4 { font-size: clamp(1.15rem, 1.4vw, 1.35rem); font-weight: 400; }
.pf p { margin: 0 0 .75em; }
.pf a { color: inherit; }
.pf img { max-width: 100%; height: auto; display: block; }
.pf :focus-visible { outline: 2px solid var(--pf-gold); outline-offset: 3px; }
.pf strong { font-weight: 500; color: var(--pf-ink); }

/* ---------- ornaments ---------- */
.pf-eyebrow {
	font-family: var(--pf-sans);
	font-size: .7rem !important;
	font-weight: 500;
	letter-spacing: .34em;
	text-transform: uppercase;
	color: var(--pf-goldtext);
	margin: 0 0 1.2em !important;
}
.pf-eyebrow--light { color: var(--pf-gold2); }
.pf-num {
	font-family: var(--pf-display);
	font-size: .95rem !important;
	letter-spacing: .3em;
	color: var(--pf-goldtext);
	margin: 0 0 .4rem !important;
}
.pf-fine { font-size: .88rem !important; color: var(--pf-muted); line-height: 1.45; }
.pf-center { text-align: center; }
.pf-lede {
	font-family: var(--pf-display);
	font-size: clamp(1.15rem, 1.6vw, 1.4rem);
	line-height: 1.5;
	color: var(--pf-muted);
}
hr.pf-rule {
	border: 0;
	height: 1px;
	width: 64px;
	margin: 1.6rem 0;
	opacity: 1;
	background: linear-gradient(90deg, var(--pf-gold), transparent);
}
hr.pf-rule--center {
	margin-inline: auto;
	width: 120px;
	background: linear-gradient(90deg, transparent, var(--pf-gold), transparent);
}
.pf-tint { background: var(--pf-sand); }

ul.pf-list { list-style: none; margin: .7rem 0 .9rem; padding: 0; display: grid; gap: .4rem; }
ul.pf-list li { position: relative; padding-left: 1.8em; font-size: .98rem; }
ul.pf-list li::before {
	content: ""; position: absolute; left: 0; top: .62em; width: 7px; height: 7px;
	transform: rotate(45deg); border: 1px solid var(--pf-gold);
}
ul.pf-list--check li::before {
	width: 10px; height: 6px; border: 0; top: .6em;
	border-left: 1px solid var(--pf-gold); border-bottom: 1px solid var(--pf-gold);
	transform: rotate(-45deg);
}
ol.pf-steps { margin: .7rem 0 0; padding-left: 1.4em; display: grid; gap: .4rem; }
ol.pf-steps li::marker { font-family: var(--pf-display); color: var(--pf-goldtext); }

.pf-ico { width: 44px; height: 44px; color: var(--pf-gold); flex: 0 0 auto; }

/* ---------- buttons ---------- */
.pf-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: .5em;
	font-family: var(--pf-sans); font-size: .74rem; font-weight: 400;
	letter-spacing: .24em; text-transform: uppercase; text-decoration: none !important;
	padding: 1.1em 2.3em; border-radius: 2px; cursor: pointer;
	border: 1px solid var(--pf-ink); background: var(--pf-ink); color: var(--pf-ivory) !important;
	transition: background .45s var(--pf-ease), color .45s var(--pf-ease), border-color .45s var(--pf-ease), transform .45s var(--pf-ease);
	line-height: 1.3;
}
.pf-btn:hover { background: var(--pf-mahogany); border-color: var(--pf-mahogany); color: #fff !important; transform: translateY(-2px); }
.pf-btn--gold { background: var(--pf-gold); border-color: var(--pf-gold); color: #20190E !important; }
.pf-btn--gold:hover { background: var(--pf-ivory); border-color: var(--pf-ivory); color: var(--pf-ink) !important; }
.pf-btn--ghost { background: transparent; border-color: var(--pf-line); color: var(--pf-ink) !important; }
.pf-btn--ghost:hover { background: var(--pf-ink); border-color: var(--pf-ink); color: var(--pf-ivory) !important; }
.pf-btn--sm { padding: .85em 1.6em; font-size: .68rem; }
.pf-link {
	background: none; border: 0; padding: .6em 0; cursor: pointer;
	font-family: var(--pf-sans); font-size: .74rem; letter-spacing: .2em; text-transform: uppercase;
	color: var(--pf-text); border-bottom: 1px solid transparent;
}
.pf-link:hover { color: var(--pf-ink); border-bottom-color: var(--pf-gold); }
.pf-actions { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; margin: 1.6rem 0 1rem; }
.pf-actions--center { justify-content: center; }

/* ---------- navigation ---------- */
.pf-nav {
	display: flex; justify-content: center; flex-wrap: wrap; gap: 6px clamp(10px, 3vw, 36px);
	padding: 14px 0; margin-bottom: 0; border-bottom: 1px solid var(--pf-line);
}
.pf-nav__item {
	display: inline-flex; align-items: center; gap: 8px; text-decoration: none !important;
	font-size: .7rem; letter-spacing: .24em; text-transform: uppercase; color: var(--pf-text);
	padding: 6px 2px; border-bottom: 1px solid transparent;
}
.pf-nav__item .pf-ico { width: 22px; height: 22px; }
.pf-nav__item:hover, .pf-nav__item.is-on { color: var(--pf-ink); border-bottom-color: var(--pf-gold); }

/* ---------- hero ---------- */
.pf-hero {
	position: relative; overflow: hidden; display: grid; place-items: center; text-align: center;
	min-height: clamp(460px, 72vh, 760px); padding: clamp(80px, 11vw, 140px) clamp(20px, 5vw, 64px);
	background: var(--pf-ink); max-width: none; isolation: isolate; margin-bottom: 0;
}
.pf-hero--short { min-height: clamp(320px, 46vh, 460px); padding-block: clamp(60px, 8vw, 100px); }
.pf.pf-hero--full, .pf.pf-band { width: 100vw; max-width: 100vw; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); }
.pf-hero__img { position: absolute; inset: 0; width: 100%; height: 100% !important; object-fit: cover; z-index: -2; }
.pf-hero__shade { position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(22,19,15,.55), rgba(22,19,15,.35) 45%, rgba(22,19,15,.75)); }
.pf-hero__inner { max-width: 880px; text-shadow: 0 2px 24px rgba(22,19,15,.45); }
.pf .pf-hero__title, .pf-hero__title { color: #fff; font-size: clamp(2.6rem, 6vw, 5rem); margin-bottom: .2em; }
.pf-hero__title em { font-style: italic; color: var(--pf-gold2); }
.pf-hero__lede {
	font-family: var(--pf-display); font-size: clamp(1.15rem, 1.8vw, 1.5rem); line-height: 1.45; font-weight: 500;
	color: rgba(255,255,255,.9); max-width: 640px; margin: 0 auto 2.2rem !important;
}
.pf-hero hr.pf-rule { margin-block: 1.4rem 1.6rem; }
body:has(.pf-hero--full), body:has(.pf-band) { overflow-x: clip; }

/* ---------- advisor ---------- */
.pf-advisor {
	background: #fff; border: 1px solid var(--pf-line); max-width: 980px;
	box-shadow: 0 50px 90px -60px rgba(22,19,15,.6);
	padding: clamp(26px, 5vw, 64px); position: relative; z-index: 2;
	scroll-margin-top: 20px;
}
.pf-intro { text-align: center; max-width: 720px; margin: 0 auto; }
.pf-title { font-size: clamp(2rem, 3.6vw, 3rem) !important; }
.pf-welcome { text-align: center; }

.pf-progress { height: 1px; background: var(--pf-line); margin-bottom: 1.8rem; position: relative; }
.pf-progress span { position: absolute; left: 0; top: -1px; height: 3px; background: var(--pf-gold); transition: width .6s var(--pf-ease); }
.pf-q { text-align: center; }
.pf-q__title { font-size: clamp(1.8rem, 3.2vw, 2.6rem) !important; outline: none; }
.pf-q__help { color: var(--pf-muted); max-width: 620px; margin-inline: auto !important; }
.pf-choices {
	display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 14px;
	margin: 2rem auto 1.4rem; max-width: 860px;
}
.pf-choices--5 { grid-template-columns: repeat(5, 1fr); }
.pf-choice {
	display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px;
	min-height: 150px; padding: 22px 14px; cursor: pointer; text-align: center;
	background: var(--pf-ivory); border: 1px solid var(--pf-line); border-radius: 2px;
	font-family: var(--pf-sans); color: var(--pf-text);
	transition: border-color .4s var(--pf-ease), background .4s var(--pf-ease), transform .4s var(--pf-ease), box-shadow .4s var(--pf-ease);
}
.pf-choice:hover { border-color: var(--pf-gold); transform: translateY(-2px); box-shadow: 0 24px 40px -32px rgba(22,19,15,.6); }
.pf-choice.is-on { background: var(--pf-ink); border-color: var(--pf-ink); color: #fff; }
.pf-choice.is-on .pf-ico { color: var(--pf-gold2); }
.pf-choice__label { font-family: var(--pf-display); font-weight: 500; font-size: 1.3rem; line-height: 1.2; color: inherit; }
.pf-choice.is-on .pf-choice__label { color: #fff; }
.pf-choice__sub { font-size: .82rem; color: var(--pf-muted); line-height: 1.35; }
.pf-choice.is-on .pf-choice__sub { color: rgba(255,255,255,.7); }
.pf-q__nav { display: flex; justify-content: space-between; align-items: center; gap: 12px; max-width: 860px; margin: 0 auto; min-height: 48px; }

/* ---------- report ---------- */
.pf-report__head { text-align: center; padding-bottom: 1rem; }
.pf-report__title { font-size: clamp(1.9rem, 3.4vw, 2.8rem) !important; max-width: 780px; margin-inline: auto !important; }
.pf-report__date { font-size: .78rem; font-weight: 500; letter-spacing: .18em; text-transform: uppercase; color: var(--pf-muted); }
.pf-toolbar { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin: 1.6rem 0 .6rem; }
.pf-toolbar--end { margin-top: 2.4rem; padding-top: 1.8rem; border-top: 1px solid var(--pf-line); }

.pf-glance {
	display: grid; grid-template-columns: repeat(4, 1fr); margin: 2rem 0 1rem;
	background: var(--pf-sand); padding: clamp(22px, 3vw, 34px) 10px;
}
.pf-glance__item { position: relative; text-align: center; padding: 0 12px; display: flex; flex-direction: column; align-items: center; gap: 4px; }
.pf-glance__item + .pf-glance__item::before { content: ""; position: absolute; left: 0; top: 12%; bottom: 12%; width: 1px; background: var(--pf-line); }
.pf-glance__item span { font-size: .68rem; font-weight: 500; letter-spacing: .26em; text-transform: uppercase; color: var(--pf-muted); }
.pf-glance__item strong { font-family: var(--pf-display); font-weight: 600; font-size: 1.45rem; line-height: 1.2; color: var(--pf-ink); }
.pf-glance__item em { font-style: normal; font-size: .8rem; color: var(--pf-muted); }

.pf-sec { padding: clamp(16px, 2.2vw, 26px) 0; border-bottom: 1px solid var(--pf-line); }
.pf-sec:last-of-type { border-bottom: 0; }
.pf-sec h3 { margin-bottom: .4em; }
.pf-route { background: var(--pf-ivory); padding-inline: clamp(18px, 3vw, 36px); border: 1px solid var(--pf-line); border-bottom: 1px solid var(--pf-line); margin: 1rem 0; }
.pf-route--custom { background: var(--pf-mist); }
.pf-height__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(20px, 4vw, 48px); align-items: center; }
.pf-figure { width: 100%; height: auto; }
.pf-fig-bed { fill: var(--pf-sand); stroke: var(--pf-line); }
.pf-fig-pillow { fill: #fff; stroke: var(--pf-gold); stroke-width: 1.2; }
.pf-fig-body { fill: var(--pf-mist); stroke: var(--pf-muted); stroke-width: .8; }
.pf-fig-line { stroke: var(--pf-mahogany); stroke-width: 1.2; stroke-dasharray: 5 5; fill: none; }
.pf-fig-dim { stroke: var(--pf-gold); stroke-width: 1.2; fill: none; }
.pf-fig-label { font-family: var(--pf-display); font-size: 17px; fill: var(--pf-ink); }
.pf-fig-note { font-family: var(--pf-sans); font-size: 10px; letter-spacing: .2em; text-transform: uppercase; fill: var(--pf-mahogany); }

.pf-fill { padding: .6rem 0; }
.pf-fill--main { padding: clamp(18px, 2.4vw, 28px); background: var(--pf-ivory); border-left: 2px solid var(--pf-gold); margin-bottom: 1rem; }
.pf-fill-alts { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(16px, 3vw, 36px); }
.pf-tag {
	display: inline-block; vertical-align: middle; margin-left: .5em;
	font-family: var(--pf-sans); font-size: .6rem; letter-spacing: .24em; text-transform: uppercase;
	padding: .35em .9em; background: var(--pf-ink); color: var(--pf-gold2); border-radius: 2px;
}
.pf-tag--soft { background: transparent; color: var(--pf-goldtext); border: 1px solid var(--pf-line); }
.pf-pro, .pf-con { font-size: .72rem; letter-spacing: .2em; text-transform: uppercase; color: var(--pf-goldtext); font-weight: 500; margin-right: .4em; }
.pf-con { color: var(--pf-mahogany); }

.pf-acc { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 18px; }
.pf-acc__item { padding: 16px 20px; border: 1px solid var(--pf-line); background: var(--pf-ivory); }
.pf-acc__item h4::before { content: ""; display: block; width: 7px; height: 7px; margin-bottom: .9rem; transform: rotate(45deg); background: var(--pf-gold); }
.pf-acc__item p { font-size: .95rem; margin-bottom: .4em; }

.pf-picks__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 18px; }
.pf-pick { display: grid; gap: 12px; padding: 18px; border: 1px solid var(--pf-line); background: #fff; margin-top: .8rem; }
.pf-pick img { aspect-ratio: 4/3; object-fit: cover; width: 100%; border-radius: 2px; }
.pf-pick h4 { margin-bottom: .2em; }
.pf-pick p { font-size: .92rem; margin-bottom: .6em; }
.pf-pick__price { font-size: .72rem !important; letter-spacing: .22em; text-transform: uppercase; color: var(--pf-mahogany); }

.pf-safety { font-size: .92rem; padding: 14px 18px; border-left: 2px solid var(--pf-mahogany); background: var(--pf-sand); }
.pf-answers dl { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 0 32px; margin: 0; }
.pf-answers dl > div { padding: .4rem 0; border-bottom: 1px dotted var(--pf-line); }
.pf-answers dt { font-size: .8rem; color: var(--pf-muted); }
.pf-answers dd { margin: 0; font-family: var(--pf-display); font-weight: 600; font-size: 1.15rem; color: var(--pf-ink); }
.pf-report__foot { text-align: center; font-size: .82rem; color: var(--pf-muted); padding-top: 1.2rem; }

.pf-install { margin-top: 2rem; padding: 24px 26px; background: var(--pf-ink); color: rgba(255,255,255,.75); text-align: center; }
.pf-install p { color: rgba(255,255,255,.78); }
.pf-install .pf-eyebrow { color: var(--pf-gold2); }
.pf-install .pf-actions { justify-content: center; }
.pf-install .pf-link { color: rgba(255,255,255,.7); }

.pf-toast {
	position: fixed; left: 50%; bottom: 24px; transform: translate(-50%, 20px); opacity: 0; pointer-events: none;
	background: var(--pf-ink); color: #fff; padding: 14px 22px; font-size: .9rem; border-radius: 2px; z-index: 9999;
	transition: opacity .4s var(--pf-ease), transform .4s var(--pf-ease); max-width: calc(100vw - 32px); text-align: center;
	box-shadow: 0 20px 40px -20px rgba(0,0,0,.6);
}
.pf-toast.is-on { opacity: 1; transform: translate(-50%, 0); }

/* ---------- how it works ---------- */
.pf-how { background: var(--pf-sand); text-align: center; padding: clamp(32px, 4.5vw, 56px) clamp(20px, 5vw, 64px); max-width: none; }
.pf.pf-how > * { max-width: 1100px; margin-left: auto; margin-right: auto; }
.pf-how__row { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 1.4rem; }
.pf-how__item { position: relative; padding: 0 clamp(14px, 2.4vw, 30px); }
.pf-how__item + .pf-how__item::after { content: ""; position: absolute; left: 0; top: 14%; bottom: 14%; width: 1px; background: var(--pf-line); }
.pf-how__item h4::before { content: ""; display: block; width: 7px; height: 7px; margin: 0 auto 1.1rem; transform: rotate(45deg); background: var(--pf-gold); }
.pf-how__item p { font-size: .97rem; color: var(--pf-text); }

/* ---------- section titles, tips, guides ---------- */
.pf-section-title { text-align: center; max-width: 760px; margin-bottom: clamp(14px, 2vw, 24px); }
.pf-tip {
	display: grid; grid-template-columns: 64px 1fr; gap: clamp(16px, 2.4vw, 28px); align-items: start;
	max-width: 860px; padding: clamp(14px, 2vw, 22px) 0; margin-bottom: 0; border-top: 1px solid var(--pf-line);
}
.pf-tip + .pf-tip { margin-top: 0; }
.pf-tip__icon { width: 64px; height: 64px; display: grid; place-items: center; border: 1px solid var(--pf-line); border-radius: 50%; background: #fff; }
.pf-tip__icon .pf-ico { width: 34px; height: 34px; }
.pf-tip h3 { font-size: clamp(1.35rem, 1.9vw, 1.7rem); margin-bottom: .3em !important; }
.pf-tip p { color: var(--pf-text); }
.pf-tip__img { margin-top: 1rem; border-radius: 2px; }

.pf-index { text-align: center; max-width: 860px; padding: clamp(24px, 3vw, 36px); border: 1px solid var(--pf-line); background: #fff; position: relative; z-index: 2; }
.pf-index ol { list-style: none; margin: 0; padding: 0; columns: 2 260px; column-gap: 32px; text-align: left; }
.pf-index li { padding: .3rem 0; border-bottom: 1px dotted var(--pf-line); break-inside: avoid; }
.pf-index a { text-decoration: none; font-family: var(--pf-display); font-weight: 600; font-size: 1.18rem; color: var(--pf-ink); }
.pf-index a:hover { color: var(--pf-mahogany); }

.pf-guide { max-width: 860px; padding: clamp(22px, 3vw, 38px) 0; border-bottom: 1px solid var(--pf-line); scroll-margin-top: 20px; }
.pf-guide .pf-frame { margin: 0 0 2.4rem; }
.pf-guide h2 { font-size: clamp(1.9rem, 3vw, 2.6rem); }

/* framed photographs: gold frame offset behind */
.pf-frame, .pf-image { position: relative; margin: 0; isolation: isolate; }
.pf-frame img, .pf-image img { position: relative; z-index: 1; width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: 2px; box-shadow: 0 30px 70px -40px rgba(22,19,15,.55); }
.pf-frame::before, .pf-image--frame::before { content: ""; position: absolute; top: 18px; left: 18px; right: -18px; bottom: -18px; border: 1px solid var(--pf-line); border-radius: 2px; z-index: 0; }
.pf-image--arch img { aspect-ratio: 4/4.6; border-radius: 999px 999px 4px 4px / 42% 42% 4px 4px; }
.pf-image--plain img { box-shadow: none; }
.pf-image figcaption { margin-top: 1.4rem; font-size: .68rem; letter-spacing: .24em; text-transform: uppercase; color: var(--pf-muted); }
.pf-image { max-width: 860px; }

/* ---------- statement, quote ---------- */
.pf-statement { text-align: center; padding: clamp(36px, 5vw, 70px) clamp(20px, 5vw, 64px); max-width: none; }
.pf.pf-statement > * { max-width: 760px; margin-left: auto; margin-right: auto; }
.pf-statement__text { font-family: var(--pf-display); font-weight: 500; font-size: clamp(1.15rem, 1.65vw, 1.42rem); line-height: 1.5; color: var(--pf-text); }
.pf-quote {
	text-align: center; background: var(--pf-ink); max-width: none; margin-inline: 0;
	padding: clamp(40px, 6vw, 80px) clamp(20px, 6vw, 80px);
}
.pf-quote blockquote {
	margin: 0 auto; max-width: 860px; border: 0; padding: 0;
	font-family: var(--pf-display); font-style: italic; font-weight: 400; color: #fff;
	font-size: clamp(1.6rem, 3vw, 2.6rem); line-height: 1.38;
}
.pf-quote blockquote::before { content: ""; display: block; width: 7px; height: 7px; margin: 0 auto 2rem; transform: rotate(45deg); background: var(--pf-gold); }
.pf-quote figcaption { margin-top: 1.6rem; font-size: .7rem; letter-spacing: .3em; text-transform: uppercase; color: var(--pf-gold2); }

/* ---------- features (sleepwear) ---------- */
.pf-feature { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(30px, 5vw, 80px); align-items: center; padding: clamp(24px, 3vw, 44px) 0; }
.pf-feature:nth-of-type(even) .pf-frame { order: 2; }
.pf-feature:nth-of-type(even) .pf-frame::before { left: -18px; right: 18px; }
.pf-feature__price { font-family: var(--pf-display); font-size: 1.8rem; color: var(--pf-ink); }
.pf-feature--empty { display: block; text-align: center; border: 1px dashed var(--pf-gold); background: #fff; padding: 28px; max-width: 760px; }

/* ---------- related, faq, disclaimer ---------- */
.pf-related { text-align: center; }
.pf-related__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 18px; }
.pf-related__card {
	display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 20px 18px; text-decoration: none !important;
	background: #fff; border: 1px solid var(--pf-line); transition: transform .45s var(--pf-ease), box-shadow .45s var(--pf-ease), border-color .45s var(--pf-ease);
}
.pf-related__card:hover { transform: translateY(-3px); border-color: var(--pf-gold); box-shadow: 0 30px 60px -45px rgba(22,19,15,.6); }
.pf-related__card strong { font-family: var(--pf-display); font-weight: 600; font-size: 1.35rem; color: var(--pf-ink); }
.pf-related__card span { font-size: .92rem; color: var(--pf-muted); line-height: 1.4; }

.pf-faq { text-align: center; max-width: 860px; }
.pf-faq__item { border-bottom: 1px solid var(--pf-line); text-align: left; }
.pf-faq h2 + .pf-faq__item { border-top: 1px solid var(--pf-line); margin-top: clamp(16px, 2.4vw, 28px); }
.pf-faq summary {
	cursor: pointer; list-style: none; padding: .9em 2.6em .9em 0; position: relative; font-weight: 600;
	font-family: var(--pf-display); font-size: clamp(1.12rem, 1.5vw, 1.3rem); color: var(--pf-ink);
}
.pf-faq summary::-webkit-details-marker { display: none; }
.pf-faq summary::after {
	content: ""; position: absolute; right: 6px; top: 50%; width: 11px; height: 11px;
	border-right: 1px solid var(--pf-gold); border-bottom: 1px solid var(--pf-gold);
	transform: translateY(-70%) rotate(45deg); transition: transform .4s var(--pf-ease);
}
.pf-faq details[open] summary::after { transform: translateY(-30%) rotate(-135deg); }
.pf-faq details p { padding: 0 2.6em 1em 0; color: var(--pf-text); font-size: .97rem; }
.pf-disclaimer { max-width: 760px; text-align: center; font-size: .85rem; color: var(--pf-muted); line-height: 1.45; }

/* ---------- bedroom check ---------- */
.pf-check { background: #fff; border: 1px solid var(--pf-line); max-width: 920px; padding: clamp(26px, 5vw, 60px); box-shadow: 0 50px 90px -60px rgba(22,19,15,.6); position: relative; z-index: 2; scroll-margin-top: 20px; }
.pf-check__head { text-align: center; }
.pf-check__list { list-style: none; margin: 0; padding: 0; }
.pf-check__item { padding: 1rem 0; border-bottom: 1px solid var(--pf-line); }
.pf-check__item h3 { font-size: clamp(1.3rem, 1.9vw, 1.6rem); margin-bottom: .6rem; }
.pf-chips { display: flex; flex-wrap: wrap; gap: 10px; }
.pf-chip {
	padding: .75em 1.3em; border: 1px solid var(--pf-line); background: var(--pf-ivory); border-radius: 999px;
	font-family: var(--pf-sans); font-size: .92rem; color: var(--pf-text); cursor: pointer;
	transition: background .35s var(--pf-ease), border-color .35s var(--pf-ease), color .35s var(--pf-ease);
}
.pf-chip:hover { border-color: var(--pf-gold); }
.pf-chip.is-on { background: var(--pf-ink); border-color: var(--pf-ink); color: #fff; }
.pf-ring { width: 150px; height: 150px; display: block; margin: .6rem auto 1.2rem; }
.pf-ring__bg { fill: none; stroke: var(--pf-sand); stroke-width: 6; }
.pf-ring__fg { fill: none; stroke: var(--pf-gold); stroke-width: 6; stroke-linecap: round; transform: rotate(-90deg); transform-origin: 60px 60px; transition: stroke-dashoffset 1.2s var(--pf-ease); }
.pf-ring__num { font-family: var(--pf-display); font-size: 40px; fill: var(--pf-ink); }
.pf-fixes { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 18px; }
.pf-fix { padding: 18px; background: var(--pf-ivory); border: 1px solid var(--pf-line); }

/* Sections that sit straight after the opening picture rise slightly into it. */
body .pf-hero + .pf-advisor, body .pf-hero + .pf-check { margin-top: clamp(-90px, -6vw, -40px); }
body .pf-hero + .pf-index { margin-top: clamp(-70px, -5vw, -30px); }

body .pf h1, body .pf h2, body .pf h3, body .pf h4 { margin-top: 0; }

/* Widths, stated firmly enough that block themes' narrow content column doesn't squeeze them. */
body .pf { max-width: 1100px; }
body .pf-advisor { max-width: 980px; }
body .pf-check { max-width: 920px; }
body .pf-tip, body .pf-index, body .pf-guide, body .pf-faq, body .pf-image { max-width: 860px; }
body .pf-section-title, body .pf-disclaimer, body .pf-feature--empty { max-width: 760px; }
body .pf.pf-hero--full, body .pf.pf-band { max-width: 100vw; }

/* ---------- phones ---------- */
@media (max-width: 820px) {
	.pf-choices--5 { grid-template-columns: repeat(3, 1fr); }
	.pf-glance { grid-template-columns: 1fr 1fr; row-gap: 22px; }
	.pf-glance__item:nth-child(3)::before { display: none; }
	.pf-height__grid, .pf-fill-alts, .pf-feature { grid-template-columns: 1fr; }
	.pf-feature:nth-of-type(even) .pf-frame { order: 0; }
	.pf-how__row { grid-template-columns: 1fr; gap: 28px; }
	.pf-how__item + .pf-how__item::after { display: none; }
}
@media (max-width: 560px) {
	.pf-hero__shade { opacity: .78 !important; }
	.pf-advisor, .pf-check { padding: 26px 18px; }
	body .pf-hero + .pf-advisor, body .pf-hero + .pf-check { margin-top: -36px; }
	.pf-choices { grid-template-columns: 1fr 1fr; gap: 10px; }
	.pf-choices--5 { grid-template-columns: 1fr 1fr; }
	.pf-choice { min-height: 124px; padding: 16px 10px; }
	.pf-choice .pf-ico { width: 36px; height: 36px; }
	.pf-choice__label { font-size: 1.12rem; }
	.pf-tip { grid-template-columns: 48px 1fr; }
	.pf-tip__icon { width: 48px; height: 48px; }
	.pf-tip__icon .pf-ico { width: 26px; height: 26px; }
	.pf-toolbar .pf-btn { width: 100%; }
	.pf-nav { gap: 4px 14px; }
	.pf-nav__item span { letter-spacing: .14em; font-size: .64rem; }
	.pf-glance__item strong { font-size: 1.25rem; }
	.pf-frame::before, .pf-image--frame::before { top: 12px; left: 12px; right: -12px; bottom: -12px; }
}
@media (prefers-reduced-motion: reduce) {
	.pf *, .pf-toast { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* ---------- printing the report ---------- */
#pf-print { display: none; }
@media print {
	html.pf-printing body > *:not(#pf-print) { display: none !important; }
	html.pf-printing body { background: #fff !important; margin: 0 !important; padding: 0 !important; }
	html.pf-printing #pf-print { display: block !important; max-width: none !important; margin: 0 !important; font-size: 10.5pt; }
	#pf-print .pf-noprint, .pf-toast { display: none !important; }
	#pf-print .pf-report__title { font-size: 22pt !important; }
	#pf-print h3 { font-size: 15pt; }
	#pf-print .pf-sec { padding: 12pt 0; }
	#pf-print .pf-glance { grid-template-columns: repeat(4, 1fr); padding: 12pt 6pt; margin: 12pt 0 4pt; }
	#pf-print .pf-glance__item::before { display: block !important; }
	#pf-print .pf-glance__item:first-child::before { display: none !important; }
	#pf-print .pf-glance__item strong { font-size: 13pt; }
	#pf-print .pf-height__grid { grid-template-columns: 1fr 1.3fr; }
	#pf-print .pf-figure-wrap { max-width: 3.4in; }
	#pf-print .pf-fill-alts { grid-template-columns: 1fr 1fr; }
	#pf-print .pf-acc { grid-template-columns: 1fr 1fr; }
	#pf-print ul.pf-list { gap: 4pt; }
	#pf-print li, #pf-print .pf-fill, #pf-print .pf-acc__item, #pf-print .pf-figure-wrap, #pf-print .pf-answers dl > div, #pf-print h3, #pf-print h4 { break-inside: avoid; }
	#pf-print h3, #pf-print h4, #pf-print .pf-num { break-after: avoid; }
	#pf-print .pf-glance, #pf-print .pf-route, #pf-print .pf-fill--main, #pf-print .pf-acc__item, #pf-print .pf-safety { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}
@page { margin: 0.55in; }
