.rk-card {
	--rk-accent: var(--wp--preset--color--accent, #c9603f);
	--rk-ink: var(--wp--preset--color--foreground, #1f1d1a);
	--rk-muted: var(--wp--preset--color--muted, #8a8378);
	--rk-line: var(--wp--preset--color--border, #e7e2d9);
	--rk-soft: var(--wp--preset--color--surface, #faf7f2);
	background:#fff;
	border:1px solid var(--rk-line);
	border-radius:22px;
	padding:clamp(20px, 4vw, 44px);
	margin:32px 0;
	color:var(--rk-ink);
	box-shadow:0 16px 40px rgba(150,70,110,0.14);
	border-top:6px solid var(--rk-accent);
}

.rk-card-head { display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap; }
.rk-card-title { margin:0; font-size:clamp(1.5rem, 3vw, 2rem); line-height:1.2; }
.rk-print {
	display:inline-flex; align-items:center; gap:6px;
	background:var(--rk-accent); border:none;
	border-radius:999px; padding:9px 18px; cursor:pointer;
	color:#fff; font-size:.9rem; font-weight:600; transition:all .15s ease;
	box-shadow:0 6px 16px rgba(224,96,143,0.30);
}
.rk-print:hover { background:var(--rk-ink); }

/* Rating */
.rk-rating { display:flex; align-items:center; gap:10px; margin:14px 0 6px; }
.rk-stars { display:inline-flex; }
.rk-star {
	background:none; border:none; cursor:pointer; padding:0 2px;
	font-size:1.4rem; line-height:1; color:var(--rk-line); transition:color .1s ease;
}
.rk-star.is-on { color:var(--rk-accent); }
.rk-rating-summary { color:var(--rk-muted); font-size:.9rem; }
.rk-rating-avg { font-weight:700; color:var(--rk-ink); }

/* Meta */
.rk-meta {
	display:flex; flex-wrap:wrap; gap:12px;
	margin:22px 0;
}
.rk-meta-item {
	flex:1 1 auto; min-width:96px; text-align:center;
	display:flex; flex-direction:column; gap:3px;
	padding:14px 12px; border-radius:14px;
	background:var(--rk-soft); border:1px solid var(--rk-line);
}
.rk-meta-label { font-size:.72rem; text-transform:uppercase; letter-spacing:.08em; color:var(--rk-muted); font-weight:700; }
.rk-meta-value { font-weight:800; font-size:1.05rem; color:var(--rk-accent); }

/* Sections */
.rk-section { margin-top:32px; }
.rk-section-head { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:16px; border-bottom:3px solid var(--rk-accent); padding-bottom:10px; }
.rk-section-head h3 { margin:0; font-size:1.4rem; color:var(--rk-ink); }

/* Servings stepper */
.rk-servings { display:inline-flex; align-items:center; gap:8px; font-size:.9rem; }
.rk-serv-minus, .rk-serv-plus {
	width:30px; height:30px; border-radius:50%; border:1px solid var(--rk-line);
	background:#fff; cursor:pointer; font-size:1.1rem; line-height:1; color:var(--rk-ink);
	display:inline-flex; align-items:center; justify-content:center;
}
.rk-serv-minus:hover, .rk-serv-plus:hover { border-color:var(--rk-accent); color:var(--rk-accent); }
.rk-serv-count { font-weight:700; min-width:20px; text-align:center; }
.rk-serv-label { color:var(--rk-muted); }

/* Ingredients */
.rk-ingredients { list-style:none; margin:0; padding:0; }
.rk-ingredient { display:flex; align-items:flex-start; gap:12px; padding:10px 0; border-bottom:1px dashed var(--rk-line); }
.rk-ingredient.is-checked .rk-ing-text { opacity:.45; text-decoration:line-through; }
.rk-check { position:relative; display:inline-flex; cursor:pointer; flex:0 0 auto; margin-top:2px; }
.rk-check input { position:absolute; opacity:0; width:0; height:0; }
.rk-check span { width:20px; height:20px; border:2px solid var(--rk-line); border-radius:6px; display:inline-block; transition:all .15s ease; }
.rk-check input:checked + span { background:var(--rk-accent); border-color:var(--rk-accent); }
.rk-check input:checked + span::after { content:""; position:absolute; left:7px; top:3px; width:5px; height:10px; border:solid #fff; border-width:0 2px 2px 0; transform:rotate(45deg); }
.rk-amount, .rk-unit { font-weight:700; }
.rk-amount-text { font-weight:700; }
.rk-ing-name { color:var(--rk-ink); }

/* Steps */
.rk-steps { list-style:none; margin:0; padding:0; counter-reset:rk-step; }
.rk-step { display:flex; gap:16px; padding:16px 0; border-bottom:1px solid var(--rk-line); }
.rk-step:last-child { border-bottom:none; }
.rk-step-number {
	flex:0 0 auto; width:36px; height:36px; border-radius:50%;
	background:var(--rk-accent); color:#fff; font-weight:700;
	display:flex; align-items:center; justify-content:center;
}
.rk-step-body { flex:1 1 auto; }
.rk-step-body p { margin:0 0 10px; line-height:1.65; }
.rk-step-figure { margin:8px 0 0; }
.rk-step-figure img { border-radius:10px; width:100%; height:auto; display:block; }

@media (max-width:600px) {
	.rk-meta-item { min-width:70px; }
}

/* Filter bar */
.rk-filter-bar {
	--rk-accent: var(--wp--preset--color--accent, #c9603f);
	--rk-line: var(--wp--preset--color--border, #e7e2d9);
	--rk-soft: var(--wp--preset--color--surface, #faf7f2);
	display:flex; flex-wrap:wrap; gap:10px; align-items:center;
	padding:14px; background:var(--rk-soft); border:1px solid var(--rk-line);
	border-radius:14px; margin:0 0 28px;
}
.rk-filter-search { flex:1 1 220px; }
.rk-filter-bar input[type="search"],
.rk-filter-bar select {
	width:100%; padding:10px 14px; border:1px solid var(--rk-line);
	border-radius:999px; background:#fff; font-size:.92rem; color:inherit;
}
.rk-filter-bar select { width:auto; min-width:140px; cursor:pointer; }
.rk-filter-bar input[type="search"]:focus,
.rk-filter-bar select:focus { outline:2px solid var(--rk-accent); outline-offset:1px; }
.rk-filter-go { padding:10px 18px; border-radius:999px; border:none; background:var(--rk-accent); color:#fff; cursor:pointer; }

/* Print */
@media print {
	body * { visibility:hidden; }
	.rk-card, .rk-card * { visibility:visible; }
	.rk-card { position:absolute; left:0; top:0; width:100%; margin:0; border:none; padding:0; }
	.rk-print, .rk-servings, .rk-rating, .rk-check { display:none !important; }
	.rk-ingredient { break-inside:avoid; }
	.rk-step { break-inside:avoid; }
}
