/* ============================================================
 * single-przepis.css
 *
 * Style dla:
 *   1) Archive /przepisy/ — featured grid (.rpz-listing, .rcard-a/b/c, .filter-btn)
 *   2) Single CPT przepis — 8 template parts (rp-breadcrumb, rp-hero,
 *      rp-ingredients, rp-steps, rp-note, rp-author, rp-related, news)
 *
 * Port 1:1 z mockupów: przepisy.html + przepis-slony-karmel.html.
 *
 * Enqueue: warunkowo gdy is_singular('dl_przepis') || is_post_type_archive('dl_przepis').
 * @package dulcedeleche
 * ============================================================ */

/* ── BREADCRUMB ─────────────────────────────────────────────── */
.rp-breadcrumb{
	background: var(--paper);
	padding: 14px var(--gutter);
	border-bottom: 1px solid color-mix(in srgb, var(--karmel) 12%, transparent);
}
.rp-breadcrumb-inner{
	max-width: var(--max); margin: 0 auto;
	display: flex; align-items: center; gap: 8px;
	font-family: var(--body);
	font-size: 12px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	font-variant: small-caps;
	color: var(--karmel);
}
.rp-breadcrumb-inner a{ color: var(--karmel); transition: opacity .2s ease; }
.rp-breadcrumb-inner a:hover{ opacity: 0.7; }
.rp-breadcrumb-inner .sep{ color: color-mix(in srgb, var(--karmel) 45%, transparent); font-size: 10px; }
.rp-breadcrumb-inner .current{ color: color-mix(in srgb, var(--espresso) 70%, transparent); font-weight: 600; }

/* ── ARCHIVE HERO (--plain) ─────────────────────────────────── */
.rp-archive-hero{ padding: clamp(40px,5vw,80px) 0 clamp(28px,3vw,56px); }

/* ============================================================
 * ARCHIVE: rpz-listing (Sprint 6 — port z mockupu .rpz-listing)
 * ============================================================ */
.rpz-listing{
	background: var(--paper);
	padding: clamp(56px,7vw,96px) 0;
	position: relative;
}
.rpz-filt-header{
	display: grid;
	grid-template-columns: auto 1fr;
	gap: clamp(16px, 2.5vw, 36px);
	align-items: end;
	margin-bottom: clamp(28px, 3.5vw, 48px);
}
.rpz-filt-header .section-num{
	font-family: var(--display);
	font-weight: 300;
	font-style: italic;
	font-size: clamp(52px, 8vw, 96px);
	line-height: 0.9;
	color: var(--karmel);
	opacity: 0.7;
	letter-spacing: -0.02em;
	font-variation-settings: "opsz" 144;
	user-select: none;
}
.rpz-filt-header .eyebrow{
	font-family: var(--body);
	font-size: 11px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--karmel);
	font-weight: 500;
	margin-bottom: 8px;
}
.rpz-filt-title{
	font-family: var(--display);
	font-weight: 350;
	font-variation-settings: "opsz" 144;
	font-size: clamp(32px, 4vw, 56px);
	line-height: 1.0;
	letter-spacing: -0.02em;
	margin: 0;
	color: var(--ink);
	align-self: end;
}
.rpz-filt-title em{ font-style: italic; color: var(--karmel); font-weight: 300; }

/* Filter chips */
.filter-bar{
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
	align-items: center;
	margin-bottom: clamp(48px, 6vw, 80px);
	padding-bottom: clamp(28px, 3.5vw, 44px);
	border-bottom: 1px solid color-mix(in srgb, var(--karmel) 14%, transparent);
}
.filter-btn{
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 9px 18px;
	border: 1px solid color-mix(in srgb, var(--karmel) 38%, transparent);
	border-radius: 2px;
	font-family: var(--body);
	font-size: 11px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	font-weight: 500;
	color: var(--espresso);
	background: transparent;
	cursor: pointer;
	transition: background .2s ease, color .2s ease, border-color .2s ease;
	outline: none;
}
.filter-btn:hover{ border-color: var(--karmel); color: var(--karmel); }
.filter-btn:focus-visible{ outline: 2px solid var(--karmel); outline-offset: 2px; }
.filter-btn.active{ background: var(--espresso); color: var(--cream-50); border-color: var(--espresso); }
.filter-btn-dot{
	width: 5px; height: 5px; border-radius: 50%;
	background: var(--karmel);
	flex-shrink: 0;
	transition: background .2s ease;
}
.filter-btn.active .filter-btn-dot{ background: var(--gold); }

.filter-empty{
	padding: clamp(48px,6vw,80px) 0;
	text-align: center;
}
.filter-empty p{
	font-family: var(--display);
	font-style: italic;
	font-size: clamp(24px,2.4vw,32px);
	color: var(--espresso);
	margin: 0 0 16px;
}
.filter-empty .hint{
	font-size: 14px;
	letter-spacing: 0.08em;
	color: color-mix(in srgb, var(--espresso) 60%, transparent);
}

/* Grid header (02) */
.rpz-grid-header{
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	margin-bottom: clamp(28px, 4vw, 52px);
	gap: 24px;
}
.rpz-grid-num{
	font-family: var(--display);
	font-weight: 300; font-style: italic;
	font-size: clamp(44px, 6vw, 72px);
	line-height: 0.9;
	color: var(--karmel);
	opacity: 0.65;
	letter-spacing: -0.02em;
	font-variation-settings: "opsz" 144;
	user-select: none;
}
.rpz-grid-sub{
	font-size: 14px;
	letter-spacing: 0.04em;
	color: var(--espresso);
	max-width: 36ch;
	text-align: right;
	align-self: end;
	margin: 0;
}

/* Cards grid */
.rpz-full-grid{
	display: grid;
	grid-template-columns: 1.1fr 1fr 0.9fr;
	gap: clamp(20px, 2.5vw, 40px);
	align-items: stretch;
}

/* Shared rcard parts */
.rcard{
	text-decoration: none;
	color: var(--ink);
	display: flex;
	flex-direction: column;
	position: relative;
}
.rcard .rec-metarow{
	font-family: ui-monospace, "SF Mono", Menlo, monospace;
	font-size: 10px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	display: flex;
	gap: 6px;
	flex-wrap: wrap;
	line-height: 1.6;
}
.rcard .rec-metarow .msep{ color: color-mix(in srgb, var(--karmel) 40%, transparent); }
.rcard .rec-cta{
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 12px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	font-family: var(--body);
	font-weight: 500;
	border-bottom: 1px solid currentColor;
	padding-bottom: 3px;
	transition: gap .25s ease;
}
.rcard:hover .rec-cta{ gap: 13px; }
.rcard .rec-author{
	font-family: var(--body);
	font-size: 11px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
}

/* CARD A — full bleed photo, dark overlay, copy bottom */
.rcard-a{ height: 680px; overflow: hidden; position: relative; background: var(--cream-200); }
.rcard-a .rpz-photo{
	position: absolute; inset: 0;
	background-size: cover; background-position: center;
	transform: scale(1.02);
	transition: transform .8s cubic-bezier(.22,1,.36,1);
}
.rcard-a:hover .rpz-photo{ transform: scale(1.055); }
.rcard-a::after{
	content:""; position: absolute; inset: 0;
	background: linear-gradient(180deg, rgba(26,20,16,0) 20%, rgba(26,20,16,0.75) 75%, rgba(26,20,16,0.88) 100%);
}
.rcard-a .card-body{
	position: absolute; left:0; right:0; bottom:0;
	padding: 28px 32px;
	color: var(--cream-50);
	z-index: 1;
}
.rcard-a .cat-row{ display: flex; align-items: center; gap: 12px; margin-bottom: 10px; }
.rcard-a .cat-label{
	font-size: 11px; letter-spacing: 0.22em; text-transform: uppercase;
	color: var(--gold);
	font-family: var(--body); font-weight: 500;
}
.rcard-a .pos-badge{
	font-family: ui-monospace, monospace;
	font-size: 10px; letter-spacing: 0.18em;
	color: color-mix(in srgb, var(--gold) 70%, transparent);
	border: 1px solid color-mix(in srgb, var(--gold) 40%, transparent);
	padding: 2px 7px;
}
.rcard-a h3{
	font-family: var(--display);
	font-style: italic;
	font-weight: 350;
	font-size: clamp(30px, 3.2vw, 42px);
	line-height: 1.05;
	margin: 0 0 10px;
	letter-spacing: -0.015em;
}
.rcard-a h3 em{ font-style: italic; color: var(--gold); font-weight: 300; }
.rcard-a .desc{
	font-size: 14px; line-height: 1.5;
	color: color-mix(in srgb, var(--cream-50) 82%, transparent);
	margin: 0 0 14px;
	max-width: 36ch;
}
.rcard-a .rec-metarow{ color: color-mix(in srgb, var(--gold) 80%, transparent); margin-bottom: 18px; }
.rcard-a .rec-metarow .msep{ color: color-mix(in srgb, var(--gold) 35%, transparent); }
.rcard-a .card-foot{ display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.rcard-a .rec-author{ color: color-mix(in srgb, var(--cream-50) 70%, transparent); }
.rcard-a .rec-author b{ color: var(--cream-50); font-weight: 600; }
.rcard-a .rec-cta{ color: var(--cream-50); }

/* CARD B — cream bg, ghost number, title top, photo center */
.rcard-b{
	background: var(--cream-100);
	padding: 28px;
	position: relative;
	overflow: hidden;
	height: 680px;
	display: grid;
	grid-template-rows: auto auto 1fr auto;
	gap: 0;
}
.rcard-b .ghost{
	position: absolute; right: -12px; top: -24px;
	font-family: var(--display);
	font-style: italic;
	font-variation-settings: "opsz" 144;
	font-size: clamp(200px, 28vw, 340px);
	line-height: 0.8;
	color: color-mix(in srgb, var(--karmel) 11%, transparent);
	pointer-events:none;
	user-select: none;
	letter-spacing: -0.04em;
}
.rcard-b .cat-row{ display: flex; align-items: center; gap: 10px; margin-bottom: 8px; position: relative; z-index: 1; }
.rcard-b .cat-label{
	font-size: 11px; letter-spacing: 0.22em; text-transform: uppercase;
	color: var(--karmel);
	font-family: var(--body); font-weight: 500;
}
.rcard-b .pos-badge{
	font-family: ui-monospace, monospace;
	font-size: 10px; letter-spacing: 0.18em;
	color: color-mix(in srgb, var(--karmel) 60%, transparent);
	border: 1px solid color-mix(in srgb, var(--karmel) 28%, transparent);
	padding: 2px 7px;
}
.rcard-b h3{
	font-family: var(--display);
	font-style: italic;
	font-weight: 350;
	font-size: clamp(28px, 3vw, 38px);
	line-height: 1.05;
	margin: 0;
	letter-spacing: -0.015em;
	color: var(--ink);
	position: relative; z-index: 1;
}
.rcard-b h3 em{ font-style: italic; color: var(--karmel); font-weight: 300; }
.rcard-b .rpz-photo{
	margin-top: 22px;
	background-size: cover; background-position: center;
	position: relative; z-index: 1;
	overflow: hidden;
}
.rcard-b .card-foot{ padding-top: 18px; position: relative; z-index: 1; }
.rcard-b .desc{
	font-size: 13px; line-height: 1.55;
	color: var(--espresso);
	margin: 0 0 12px;
	max-width: 34ch;
}
.rcard-b .rec-metarow{ color: var(--karmel); margin-bottom: 14px; }
.rcard-b .card-actions{ display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.rcard-b .rec-author{ color: var(--espresso); }
.rcard-b .rec-author b{ color: var(--ink); font-weight: 600; }
.rcard-b .rec-cta{ color: var(--ink); }

/* CARD C — framed, landscape photo top */
.rcard-c{
	border: 1px solid color-mix(in srgb, var(--karmel) 22%, transparent);
	display: flex;
	flex-direction: column;
	height: 680px;
	background: var(--paper);
}
.rcard-c .photo-wrap{ overflow: hidden; height: 260px; flex-shrink: 0; }
.rcard-c .rpz-photo{
	height: 100%;
	background-size: cover; background-position: center;
	transition: transform .8s cubic-bezier(.22,1,.36,1);
}
.rcard-c:hover .rpz-photo{ transform: scale(1.04); }
.rcard-c .card-body{ flex: 1; padding: 24px 26px 26px; display: flex; flex-direction: column; }
.rcard-c .cat-row{ display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.rcard-c .cat-label{
	font-size: 11px; letter-spacing: 0.22em; text-transform: uppercase;
	color: var(--burgund);
	font-family: var(--body); font-weight: 500;
}
.rcard-c .pos-badge{
	font-family: ui-monospace, monospace;
	font-size: 10px; letter-spacing: 0.18em;
	color: color-mix(in srgb, var(--burgund) 60%, transparent);
	border: 1px solid color-mix(in srgb, var(--burgund) 28%, transparent);
	padding: 2px 7px;
}
.rcard-c h3{
	font-family: var(--display);
	font-style: italic;
	font-weight: 350;
	font-size: clamp(26px, 2.8vw, 36px);
	line-height: 1.05;
	margin: 0 0 12px;
	letter-spacing: -0.015em;
	color: var(--ink);
}
.rcard-c h3 em{ font-style: italic; color: var(--karmel); font-weight: 300; }
.rcard-c .desc{
	font-size: 14px; line-height: 1.55;
	color: var(--espresso);
	margin: 0 0 14px;
}
.rcard-c .rec-metarow{ color: var(--karmel); margin-bottom: 14px; }
.rcard-c .card-foot{
	display: flex; justify-content: space-between; align-items: center;
	gap: 12px;
	margin-top: auto;
	padding-top: 16px;
	border-top: 1px solid color-mix(in srgb, var(--karmel) 14%, transparent);
}
.rcard-c .rec-author{ color: var(--espresso); }
.rcard-c .rec-author b{ color: var(--ink); font-weight: 600; }
.rcard-c .rec-cta{ color: var(--ink); }

/* Placeholder fallback */
.rcard .rpz-photo.ph,
.rp-author-photo.ph,
.rp-related-recipes .recipe .photo.ph,
.prod-img.ph{
	background:
		repeating-linear-gradient(135deg, var(--cream-200) 0 12px, var(--cream-100) 12px 24px);
	display: flex; align-items: center; justify-content: center;
	font-family: ui-monospace, "SF Mono", Menlo, monospace;
	font-size: 11px; letter-spacing: 0.15em; text-transform: uppercase;
	color: var(--karmel);
}

.rp-pagination{ margin-top: clamp(48px,6vw,80px); }
.rp-empty{
	font-family: var(--display);
	font-style: italic;
	font-size: 22px;
	color: var(--karmel);
	text-align: center;
	padding: clamp(48px,6vw,80px) 0;
}

/* ============================================================
 * SINGLE PRZEPIS — sekcje 01–05 + newsletter
 * ============================================================ */

.rp-section-head{
	display: grid;
	grid-template-columns: auto 1fr;
	gap: clamp(20px, 3vw, 40px);
	align-items: end;
	margin-bottom: clamp(40px, 5.5vw, 80px);
}
.rp-section-head .num{
	font-family: var(--display);
	font-weight: 300;
	font-style: italic;
	font-size: clamp(80px, 13vw, 180px);
	line-height: 0.85;
	color: var(--karmel);
	opacity: 0.85;
	letter-spacing: -0.02em;
	font-variation-settings: "opsz" 144;
	user-select: none;
	margin-bottom: -8px;
}
.rp-section-head .eyebrow{
	font-family: var(--body);
	font-size: 11px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--karmel);
	font-weight: 500;
	margin-bottom: 10px;
}
.rp-section-title{
	font-family: var(--display);
	font-weight: 350;
	font-variation-settings: "opsz" 144;
	font-size: clamp(36px, 4.8vw, 72px);
	line-height: 1.02;
	letter-spacing: -0.02em;
	margin: 0;
	color: var(--ink);
	text-wrap: balance;
}
.rp-section-title em{ font-style: italic; color: var(--karmel); font-weight: 300; }

/* ── 01 Składniki ───────────────────────────────────────────── */
.rp-ingredients{
	background: var(--cream-50);
	padding: clamp(64px,8vw,128px) 0;
	position: relative;
}
.ing-cols{
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 0.42fr);
	gap: clamp(32px, 5vw, 80px);
	align-items: start;
}
.ing-aside{ position: sticky; top: 96px; }
.ing-aside-block{
	background: var(--paper);
	border: 1px solid color-mix(in srgb, var(--karmel) 20%, transparent);
	padding: 28px;
	margin-bottom: 20px;
}
.ing-aside-block h4{
	font-family: var(--display);
	font-style: italic;
	font-weight: 350;
	font-size: 22px;
	margin: 0 0 12px;
	color: var(--ink);
	letter-spacing: -0.01em;
}
.ing-aside-block h4 em{ font-style: italic; color: var(--karmel); font-weight: 300; }
.ing-aside-block p{ font-size: 15px; line-height: 1.55; color: var(--espresso); margin: 0; }
.ing-aside-block a{ color: var(--karmel); text-decoration: underline; text-underline-offset: 3px; }

.ing-group-label{
	font-family: var(--body);
	font-size: 11px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	font-weight: 600;
	color: var(--karmel);
	padding: 24px 0 10px;
	border-top: 1px solid color-mix(in srgb, var(--karmel) 20%, transparent);
}
.ing-group-label:first-child{ padding-top: 0; border-top: none; }
.ing-row{
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 16px;
	align-items: baseline;
	padding: 12px 0;
	border-bottom: 1px solid color-mix(in srgb, var(--karmel) 10%, transparent);
	position: relative;
}
.ing-row:last-child{ border-bottom: none; }
.ing-name{
	font-size: 17px;
	color: var(--ink);
	line-height: 1.3;
	position: relative;
	padding-right: 12px;
}
.ing-name a{ color: var(--karmel); text-decoration: underline; text-underline-offset: 3px; }
.ing-gram{
	font-family: ui-monospace, "SF Mono", Menlo, monospace;
	font-size: 15px;
	letter-spacing: 0.06em;
	color: var(--espresso);
	text-align: right;
	white-space: nowrap;
	min-width: 68px;
	font-feature-settings: "tnum" 1;
}
.ing-row.huso{
	background: color-mix(in srgb, var(--karmel) 6%, transparent);
	margin: 0 -16px;
	padding-left: 16px;
	padding-right: 16px;
	border-top: 1px solid color-mix(in srgb, var(--karmel) 18%, transparent);
	border-bottom: 1px solid color-mix(in srgb, var(--karmel) 18%, transparent);
}
.ing-row.huso .ing-name a{
	color: var(--karmel);
	font-weight: 500;
	text-decoration-color: color-mix(in srgb, var(--karmel) 50%, transparent);
	transition: text-decoration-color .2s ease;
}
.ing-row.huso .ing-name a:hover{ text-decoration-color: var(--karmel); }
.ing-huso-badge{
	display: inline-block;
	margin-left: 10px;
	font-size: 10px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	font-family: var(--body);
	color: var(--karmel);
	border: 1px solid color-mix(in srgb, var(--karmel) 45%, transparent);
	border-radius: 999px;
	padding: 1px 8px;
	vertical-align: middle;
	font-weight: 500;
}
.ing-total{
	margin-top: 20px;
	padding-top: 14px;
	border-top: 2px solid var(--karmel);
}
.ing-total .ing-name{
	font-weight: 600;
	font-size: 17px;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	font-family: var(--body);
	color: var(--ink);
}
.ing-total .ing-gram{ font-weight: 700; color: var(--ink); font-size: 16px; }

/* ── 02 Kroki ───────────────────────────────────────────────── */
.rp-steps{
	background: var(--paper);
	padding: clamp(64px,8vw,128px) 0;
	position: relative;
}
.steps-list{ counter-reset: step; display: flex; flex-direction: column; gap: 0; }
.step-item{
	counter-increment: step;
	display: grid;
	grid-template-columns: 96px 1fr;
	gap: clamp(24px, 3.5vw, 52px);
	padding: clamp(24px, 3.5vw, 44px) 0;
	border-bottom: 1px solid color-mix(in srgb, var(--karmel) 14%, transparent);
	position: relative;
	align-items: start;
}
.step-item:last-child{ border-bottom: none; }
.step-num{
	font-family: var(--display);
	font-weight: 300;
	font-style: italic;
	font-variation-settings: "opsz" 144;
	font-size: clamp(52px, 7vw, 96px);
	line-height: 1;
	letter-spacing: -0.03em;
	color: var(--karmel);
	opacity: 0.8;
	padding-top: 4px;
	text-align: right;
	user-select: none;
}
.step-body{ padding-top: clamp(8px, 1.5vw, 18px); }
.step-body h4{
	font-family: var(--display);
	font-weight: 400;
	font-variation-settings: "opsz" 60;
	font-size: clamp(22px, 2.2vw, 30px);
	margin: 0 0 10px;
	letter-spacing: -0.01em;
	line-height: 1.15;
	color: var(--ink);
}
.step-body p{
	margin: 0 0 12px;
	font-size: 17px;
	line-height: 1.6;
	color: var(--espresso);
	max-width: 62ch;
}
.step-body a{ color: var(--karmel); text-decoration: underline; text-underline-offset: 3px; }
.step-img{ margin: 16px 0 0; max-width: 480px; }
.step-img img{ width: 100%; height: auto; display: block; }

/* Callout */
.callout{
	background: color-mix(in srgb, var(--karmel) 7%, var(--cream-100));
	border-left: 3px solid var(--karmel);
	padding: 20px 24px;
	margin-top: clamp(32px, 4vw, 52px);
}
.callout .c-label{
	font-family: var(--body);
	font-size: 11px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	font-weight: 600;
	color: var(--karmel);
	margin-bottom: 10px;
}
.callout p{ margin: 0 0 8px; font-size: 16px; line-height: 1.55; color: var(--espresso); }
.callout p:last-child{ margin-bottom: 0; }

/* ── 03 Notatka (espresso full-bleed) ───────────────────────── */
.rp-note{
	background: var(--espresso);
	color: var(--cream-50);
	padding: clamp(64px,8vw,128px) 0;
	position: relative;
	overflow: hidden;
}
.rp-note::before{
	content:""; position:absolute; inset:0;
	background:
		radial-gradient(60% 70% at 90% 10%, rgba(201,162,74,0.12), transparent 60%),
		radial-gradient(50% 60% at 0% 100%, rgba(122,42,46,0.18), transparent 60%);
	pointer-events:none;
}
.rp-note .wrap{ position: relative; z-index:1; }
.rp-note-grid{
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
	gap: clamp(40px, 6vw, 96px);
	align-items: center;
}
.rp-note-num{
	font-family: var(--display);
	font-weight: 300; font-style: italic;
	font-size: clamp(80px, 13vw, 180px);
	line-height: 0.85;
	color: var(--gold);
	opacity: 0.85;
	letter-spacing: -0.02em;
	font-variation-settings: "opsz" 144;
	user-select: none;
	margin-bottom: -8px;
}
.rp-note .eyebrow.on-dark{
	font-family: var(--body);
	font-size: 11px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--gold);
	font-weight: 500;
	margin-bottom: 16px;
	display: block;
}
.rp-note h2{
	font-family: var(--display);
	font-weight: 350;
	font-variation-settings: "opsz" 144;
	font-size: clamp(32px, 4vw, 60px);
	line-height: 1.06;
	letter-spacing: -0.02em;
	margin: 0 0 clamp(20px, 2.5vw, 32px);
	color: var(--cream-50);
	text-wrap: balance;
}
.rp-note h2 em{ font-style: italic; color: var(--gold); font-weight: 300; }
.rp-note p{
	font-size: 17px;
	line-height: 1.6;
	color: color-mix(in srgb, var(--cream-50) 80%, transparent);
	margin: 0 0 clamp(24px, 3vw, 36px);
	max-width: 52ch;
}
.rp-note-aside{ display: flex; flex-direction: column; gap: 20px; }
.rp-note-card{
	background: color-mix(in srgb, var(--paper) 8%, transparent);
	border: 1px solid color-mix(in srgb, var(--gold) 28%, transparent);
	padding: 24px 28px;
	position: relative;
}
.rp-note-card .nc-label{
	font-size: 11px; letter-spacing: 0.22em; text-transform: uppercase;
	color: var(--gold); font-weight: 500;
	margin-bottom: 10px;
}
.rp-note-card p{
	margin: 0;
	font-size: 15px;
	line-height: 1.55;
	color: color-mix(in srgb, var(--cream-50) 75%, transparent);
}
.rp-note-card a{ color: var(--gold); text-decoration: underline; text-underline-offset: 3px; }
/* removed — unified button system */

/* ── 04 Autor ───────────────────────────────────────────────── */
.rp-author{
	background: var(--cream-100);
	padding: clamp(64px,8vw,128px) 0;
	position: relative;
}
.rp-author-grid{
	display: grid;
	grid-template-columns: minmax(0, 1.3fr) minmax(0, 0.7fr);
	gap: clamp(40px, 6vw, 96px);
	align-items: start;
}
.rp-author-copy .au-initial{
	font-family: var(--display);
	font-style: italic;
	font-weight: 300;
	font-variation-settings: "opsz" 144;
	font-size: clamp(100px, 16vw, 200px);
	line-height: 0.85;
	color: var(--karmel);
	opacity: 0.12;
	margin-bottom: -clamp(40px, 6vw, 72px);
	margin-top: -16px;
	user-select: none;
	pointer-events:none;
}
.rp-author-copy .au-name{
	font-family: var(--display);
	font-weight: 400;
	font-variation-settings: "opsz" 60;
	font-size: clamp(40px, 5vw, 72px);
	line-height: 1.02;
	letter-spacing: -0.02em;
	margin: 0 0 6px;
	color: var(--ink);
}
.rp-author-copy .au-name em{ font-style: italic; color: var(--karmel); font-weight: 300; }
.rp-author-copy .au-role{
	font-size: 13px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--karmel);
	font-weight: 500;
	margin-bottom: clamp(18px, 2.5vw, 28px);
}
.rp-author-copy .au-bio{
	font-size: 17px;
	line-height: 1.6;
	color: var(--espresso);
	max-width: 52ch;
	margin: 0 0 clamp(16px, 2vw, 24px);
}
.rp-author-copy .au-signature{
	margin-top: clamp(16px, 2.5vw, 28px);
	padding-top: clamp(14px, 2vw, 22px);
	border-top: 1px solid color-mix(in srgb, var(--karmel) 20%, transparent);
}
.rp-author-copy .au-signature p{
	font-family: ui-monospace, monospace;
	font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase;
	color: color-mix(in srgb, var(--espresso) 65%, transparent);
	margin: 0 0 8px;
}
.rp-author-copy .au-signature img{ max-width: 220px; height: auto; }
.rp-author-photo-col{ display: flex; flex-direction: column; gap: 12px; }
.rp-author-photo{
	width: 100%;
	aspect-ratio: 3 / 4;
	max-width: 320px;
	background-size: cover; background-position: center;
}
.rp-photo-hint{
	font-size: 12px;
	color: color-mix(in srgb, var(--espresso) 60%, transparent);
	font-style: italic;
	font-family: var(--display);
	font-variation-settings: "opsz" 14;
	max-width: 320px;
}
.rp-placeholder{
	font-style: italic;
	color: color-mix(in srgb, var(--espresso) 55%, transparent);
}

/* ── 05 Powiązane ───────────────────────────────────────────── */
.rp-related{
	background: var(--paper);
	padding: clamp(64px,8vw,128px) 0;
	position: relative;
}
.rp-related-product{
	display: grid;
	grid-template-columns: minmax(0, 0.45fr) minmax(0, 1fr);
	gap: clamp(32px, 4.5vw, 72px);
	align-items: center;
	padding: clamp(32px, 4vw, 56px);
	background: var(--cream-50);
	border: 1px solid color-mix(in srgb, var(--karmel) 15%, transparent);
	margin-bottom: clamp(48px, 6vw, 80px);
}
.rp-related-product .prod-img{
	aspect-ratio: 1 / 1;
	background-size: cover; background-position: center;
}
.rp-related-product .prod-label{
	font-size: 11px; letter-spacing: 0.22em; text-transform: uppercase;
	color: var(--karmel); font-weight: 500; margin-bottom: 12px;
}
.rp-related-product h3{
	font-family: var(--display);
	font-weight: 350;
	font-variation-settings: "opsz" 60;
	font-size: clamp(28px, 3.2vw, 48px);
	line-height: 1.06;
	letter-spacing: -0.015em;
	margin: 0 0 14px;
	color: var(--ink);
}
.rp-related-product h3 em{ font-style: italic; color: var(--karmel); font-weight: 300; }
.rp-related-product p{
	font-size: 16px; line-height: 1.55; color: var(--espresso);
	margin: 0 0 clamp(18px, 2.5vw, 28px); max-width: 48ch;
}
.rp-related-product .btn{
	display: inline-flex; align-items: center; gap: 12px;
	padding: 16px 26px;
	background: var(--espresso);
	color: var(--paper);
	border: 1px solid var(--espresso);
	border-radius: 2px;
	font-size: 13px; letter-spacing: 0.18em; text-transform: uppercase;
	font-weight: 500;
	transition: background .3s ease, border-color .3s ease;
}
.rp-related-product .btn:hover{ background: var(--ink); border-color: var(--ink); }

.rp-related-recipes{
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(20px, 2.5vw, 40px);
}
.rp-related-recipes .rr-head{
	font-family: var(--body);
	font-size: 11px; letter-spacing: 0.22em; text-transform: uppercase;
	color: var(--karmel); font-weight: 600;
	grid-column: 1 / -1;
	margin-bottom: -4px;
	padding-bottom: 16px;
	border-bottom: 1px solid color-mix(in srgb, var(--karmel) 18%, transparent);
}
.rp-related-recipes .recipe{
	display: flex; flex-direction: column;
	text-decoration: none;
	color: var(--ink);
}
.rp-related-recipes .recipe .photo{
	background-size: cover; background-position: center;
	overflow: hidden;
}
.rp-related-recipes .recipe:hover .photo{ filter: brightness(1.04); }
.rp-related-recipes .recipe .meta{
	display: flex; justify-content: space-between;
	margin-top: 18px;
	font-family: var(--body);
	font-size: 11px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--karmel);
}
.rp-related-recipes .recipe h4{
	font-family: var(--display);
	font-style: italic;
	font-weight: 350;
	font-size: clamp(26px, 2.6vw, 34px);
	margin: 10px 0 12px;
	line-height: 1.1;
	letter-spacing: -0.015em;
	color: var(--ink);
}
.rp-related-recipes .recipe h4 em{ font-style: italic; color: var(--karmel); font-weight: 300; }
.rp-related-recipes .recipe .author{
	font-family: var(--body);
	font-size: 11px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--espresso);
}
.rp-related-recipes .recipe .author b{ font-weight: 600; color: var(--ink); }

/* smallcaps utility */
.smallcaps{
	font-family: var(--body);
	letter-spacing: 0.22em;
	text-transform: uppercase;
	font-size: 12px;
	font-weight: 500;
}

/* ============================================================
 * RESPONSIVE
 * ============================================================ */
@media (max-width: 1100px){
	.rpz-full-grid{ grid-template-columns: 1fr 1fr; }
	.rcard-a, .rcard-b, .rcard-c{ height: 560px; }
	.ing-cols,
	.rp-note-grid,
	.rp-author-grid,
	.rp-related-product{ grid-template-columns: 1fr; }
	.ing-aside{ position: static; }
	.rp-related-product .prod-img{ max-width: 320px; }
	.rp-author-copy .au-initial{ display: none; }
}
@media (max-width: 760px){
	.rpz-full-grid{ grid-template-columns: 1fr; }
	.rcard-a, .rcard-b, .rcard-c{ height: 540px; }
	.rpz-filt-header{ grid-template-columns: 1fr; gap: 12px; }
	.rpz-grid-header{ flex-direction: column; align-items: flex-start; gap: 12px; }
	.rpz-grid-sub{ text-align: left; }
	.rp-section-head{ grid-template-columns: 1fr; gap: 12px; }
	.step-item{ grid-template-columns: 56px 1fr; }
	.step-num{ font-size: 44px; }
	.rp-related-recipes{ grid-template-columns: 1fr; }
}
