/*
Theme Name: Platos Verdes
Theme URI: https://platosverdes.com
Author: Platos Verdes
Author URI: https://platosverdes.com
Description: Bilingual (EN/ES) plant-forward Mexican-American content theme — "warm craft, clean bones." Block theme (FSE), token-driven per design language v0.2 (cobalt-led, leaf-meter journey). Reads only --wp--custom--* semantic tokens so a Phase-2 Astro re-skin is a re-skin, not a migration.
Version: 0.2.2
Requires at least: 6.5
Tested up to: 6.7
Requires PHP: 8.0
License: GPL-2.0-or-later
Text Domain: platos-verdes
*/

/* Most styling lives in theme.json. Component CSS (leaf meter, swap meter,
   recipe card) is added here as those components ship. */

/* ---------- Leaf meter (journey-stage badge) ---------- */
.pv-leaf-meter { display:inline-flex; align-items:center; gap:.5rem; line-height:1; }
.pv-leaf-meter__leaves { display:inline-flex; gap:2px; }
.pv-leaf { width:1.4em; height:1.4em; display:block; }
.pv-leaf-meter.is-mini .pv-leaf { width:1.05em; height:1.05em; }
.pv-leaf-slot.is-filled .pv-leaf-body { fill:var(--wp--custom--meter); }
.pv-leaf-slot.is-empty .pv-leaf-body { fill:var(--wp--custom--meter-empty); }
.pv-leaf-vein { stroke:var(--wp--custom--surface); stroke-width:1.3; opacity:.55; }
.pv-leaf-meter__label {
	font-family:var(--wp--preset--font-family--text);
	font-size:var(--wp--preset--font-size--small);
	font-weight:700; text-transform:uppercase; letter-spacing:.08em;
	color:var(--wp--custom--text-soft);
}
.pv-leaf-meter.is-mini .pv-leaf-meter__label { font-size:12px; letter-spacing:.04em; }

/* =========================================================================
   Landing components (v0.3 — ported from docs/brand/landing-mockup.html).
   Token-only (--wp--custom--* / --wp--preset--*). Applied via block-pattern
   classNames. Cultural-pattern SVGs are baked data-URIs (documented ornament
   exception to "tokens only" — multi-color talavera can't use a single var).
   ========================================================================= */

/* shared bits */
.pv-eyebrow { font-family:var(--wp--preset--font-family--stamp); font-weight:400; font-size:13px; letter-spacing:.1em; text-transform:uppercase; color:var(--wp--preset--color--terra-deep); }
.pv-hand { font-family:var(--wp--preset--font-family--hand); color:var(--wp--custom--warm); font-size:27px; line-height:1.1; display:inline-block; transform:rotate(-1.5deg); }
/* hero two-tone — the emphasized phrase carries the brand accent (mockup .hero h1 em) */
h1.wp-block-heading em { font-style:italic; color:var(--wp--custom--brand); }
/* why-it-works column headings sit a notch below recipe-card h3 (mockup .ev h3 = 18px) */
.pv-ev h3 { font-size:18px; }
.pv-cta { display:inline-flex; align-items:center; gap:10px; background:var(--wp--custom--cta-bg); color:var(--wp--custom--cta-text); text-decoration:none; font-weight:700; padding:14px 24px; border-radius:var(--wp--custom--radius--pill); border:1.5px solid var(--wp--custom--cta-bg); }
.pv-cta.is-ghost { background:transparent; color:var(--wp--custom--brand); border-color:var(--wp--custom--brand); }

/* save-recipe — ghost button that fills nopal once saved */
.pv-save-recipe { display:inline-flex; }
.pv-save-btn { display:inline-flex; align-items:center; gap:8px; cursor:pointer; font:inherit; font-weight:600; padding:9px 18px; border-radius:var(--wp--custom--radius--pill); background:transparent; color:var(--wp--custom--accent); border:1.5px solid var(--wp--custom--accent); transition:background .18s ease, color .18s ease; }
.pv-save-btn:hover { background:var(--wp--custom--accent-tint); }
.pv-save-btn.is-saved { background:var(--wp--custom--accent); color:#fff; }
@media (prefers-reduced-motion: reduce) { .pv-save-btn { transition:none; } }

/* language switcher — opacity-based so it reads on both light header and dark footer */
.pv-lang-switcher { display:flex; gap:12px; list-style:none; margin:0; padding:0; align-items:center; }
.pv-lang-switcher li { margin:0; }
.pv-lang-switcher a { color:inherit; text-decoration:none; text-transform:uppercase; font-size:13px; font-weight:600; letter-spacing:.06em; opacity:.6; }
.pv-lang-switcher .current-lang a { opacity:1; font-weight:700; }
.pv-lang-switcher a:hover { opacity:1; }

/* primary nav (header) */
.pv-nav-wrap { display:flex; }
.pv-nav { display:flex; flex-wrap:wrap; gap:26px; list-style:none; margin:0; padding:0; font-weight:600; font-size:15px; }
.pv-nav li { margin:0; }
.pv-nav a { color:inherit; text-decoration:none; }
.pv-nav a:hover { color:var(--wp--custom--brand); }

/* footer: full-bleed band, content constrained to the wide container with gutters */
.pv-footer__inner { max-width:var(--wp--style--global--wide-size, 1180px); margin-left:auto; margin-right:auto; padding-left:24px; padding-right:24px; color:var(--wp--preset--color--cobalt-tint); }
/* footer column headings: Mulish uppercase label (not the terracotta stamp eyebrow) */
.pv-footer__inner .pv-eyebrow { font-family:var(--wp--preset--font-family--text); font-weight:700; font-size:13px; letter-spacing:.1em; text-transform:uppercase; color:var(--wp--preset--color--cobalt-tint); opacity:.85; margin-bottom:12px; }
.pv-footer__inner ul { list-style:none; margin:0; padding:0; }
.pv-footer__inner li { margin:8px 0; }
.pv-footer__inner a { color:var(--wp--preset--color--cobalt-tint); text-decoration:none; font-size:15px; transition:color .15s ease; }
.pv-footer__inner a:hover { color:var(--wp--preset--color--white); }
.pv-footer__inner .wp-block-site-title { font-family:var(--wp--preset--font-family--display); font-weight:600; font-size:23px; color:var(--wp--preset--color--white); }
.pv-footer__inner .has-small-font-size { opacity:.8; max-width:34ch; }
.pv-footer__inner .pv-lang-switcher a { font-size:13px; opacity:.85; }

/* recipe details (structured fields) */
.pv-recipe { margin-top:var(--wp--preset--spacing--50); }
.pv-recipe__meta { font-family:var(--wp--preset--font-family--stamp); font-size:13px; letter-spacing:.06em; text-transform:uppercase; color:var(--wp--preset--color--terra-deep); }
.pv-recipe__cols { display:grid; grid-template-columns:1fr; gap:var(--wp--preset--spacing--50); margin-top:24px; }
@media (min-width:782px) { .pv-recipe__cols { grid-template-columns:5fr 7fr; } }
.pv-recipe__ingredients { background:var(--wp--custom--warm-tint); border-radius:14px; padding:22px 24px; align-self:start; }
.pv-recipe h2 { font-size:1.4rem; margin:0 0 .6em; }
.pv-recipe__ingredients ul { list-style:none; margin:0; padding:0; }
.pv-recipe__ingredients li { padding:8px 0; border-bottom:1px solid var(--wp--custom--border); }
.pv-recipe__qty { font-weight:700; color:var(--wp--custom--accent); }
.pv-recipe__note { color:var(--wp--custom--text-soft); font-size:.9em; }
.pv-recipe__steps ol { margin:0; padding-left:1.2em; }
.pv-recipe__steps li { margin-bottom:14px; line-height:1.6; }
.pv-recipe__variants { margin-top:var(--wp--preset--spacing--50); border-top:1px solid var(--wp--custom--border); padding-top:var(--wp--preset--spacing--40); }
.pv-variant { margin-bottom:16px; }
.pv-variant h3 { margin:0 0 .2em; color:var(--wp--custom--accent-strong); }
.pv-recipe__disclaimer { font-size:.85em; color:var(--wp--custom--text-soft); font-style:italic; }
.pv-recipe__sources ol { font-size:.9em; color:var(--wp--custom--text-soft); }

/* recipe version toggle (pv_versions) — CSS-only tabs; radios precede tabs+panels */
.pv-recipe--versions { margin-top:var(--wp--preset--spacing--50); }
.pv-ver-legend { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }
.pv-ver-radio { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
.pv-ver-tabs { display:inline-flex; gap:4px; background:var(--wp--custom--warm-tint); border-radius:var(--wp--custom--radius--pill); padding:4px; margin:6px 0 20px; }
.pv-ver-tab { padding:8px 18px; border-radius:var(--wp--custom--radius--pill); font-weight:700; font-size:14px; color:var(--wp--custom--text-soft); cursor:pointer; transition:background .15s ease, color .15s ease; }
.pv-ver-tab:hover { color:var(--wp--custom--text); }
.pv-version-panel { display:none; }
.pv-version-stage { margin:0 0 12px; }
.pv-ver-radio--0:checked ~ .pv-version-panels .pv-version-panel--0,
.pv-ver-radio--1:checked ~ .pv-version-panels .pv-version-panel--1,
.pv-ver-radio--2:checked ~ .pv-version-panels .pv-version-panel--2 { display:block; }
.pv-ver-radio--0:checked ~ .pv-ver-tabs .pv-ver-tab:nth-child(1),
.pv-ver-radio--1:checked ~ .pv-ver-tabs .pv-ver-tab:nth-child(2),
.pv-ver-radio--2:checked ~ .pv-ver-tabs .pv-ver-tab:nth-child(3) { background:var(--wp--custom--cta-bg); color:var(--wp--custom--cta-text); }
.pv-ver-radio:focus-visible ~ .pv-ver-tabs { outline:2px solid var(--wp--custom--brand); outline-offset:3px; border-radius:var(--wp--custom--radius--pill); }
@media (prefers-reduced-motion: reduce) { .pv-ver-tab { transition:none; } }

/* recipe single — overlay hero: title + meta on the featured image over a
   MANDATORY gradient scrim (legibility). Reclaims the stacked title+image space
   (content reached the fold at 1132px before; the hero band is ~440px). */
.pv-recipe-hero { position:relative; border-radius:var(--wp--custom--radius--lg); overflow:hidden; color:#fff; min-height:440px; display:flex; padding:36px; margin-bottom:var(--wp--preset--spacing--50);
  background-image:linear-gradient(to top, rgba(12,9,7,.84) 0%, rgba(12,9,7,.45) 38%, rgba(12,9,7,.08) 70%, rgba(12,9,7,.22) 100%), var(--hero-img, none);
  background-size:cover; background-position:center; background-color:var(--wp--preset--color--nopal-deep); }
.pv-recipe-hero--noimg { min-height:300px; background-image:linear-gradient(135deg, var(--wp--preset--color--cobalt-deep), var(--wp--preset--color--nopal-deep)); }
.pv-recipe-hero__body { position:relative; align-self:flex-end; max-width:62ch; }
.pv-recipe-hero__eyebrow { font-family:var(--wp--preset--font-family--stamp); font-size:12.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--wp--preset--color--marigold); margin:0; text-shadow:0 1px 8px rgba(0,0,0,.55); }
.pv-recipe-hero__title { color:#fff; font-size:clamp(32px, 4.4vw, 52px); line-height:1.06; margin:.18em 0 .4em; text-shadow:0 2px 18px rgba(0,0,0,.4); }
.pv-recipe-hero__meta { display:flex; flex-wrap:wrap; gap:14px; align-items:center; font-weight:700; font-size:14.5px; color:#fff; }
.pv-recipe-hero__sep { opacity:.5; }
.pv-recipe-hero .pv-save-recipe { position:absolute; top:18px; right:18px; margin:0; }
.pv-recipe-hero .pv-save-btn { background:rgba(255,253,249,.95); color:var(--wp--preset--color--terra-deep); border:0; border-radius:var(--wp--custom--radius--pill); padding:10px 18px; font-weight:800; font-size:13.5px; cursor:pointer; box-shadow:0 4px 14px rgba(0,0,0,.28); }
/* leaf meter sits on the dark scrim → light pips + white label */
.pv-recipe-hero .pv-leaf-meter__label { color:#fff; }
.pv-recipe-hero .pv-leaf-slot.is-filled .pv-leaf-body { fill:var(--wp--preset--color--nopal-tint); }
.pv-recipe-hero .pv-leaf-slot.is-empty .pv-leaf-body { fill:rgba(255,255,255,.34); }
@media (max-width:600px) { .pv-recipe-hero { min-height:340px; padding:22px; } }

/* =========================================================================
 * Quiz "¿Por dónde empiezo?" (F4.4) — mockup mapped to theme tokens.
 * ====================================================================== */
.pv-sr { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }
.pv-quiz { max-width:760px; margin:0 auto; }
.pv-quiz__noscript { text-align:center; padding:30px 20px; }
.pv-quiz__loading { text-align:center; font-size:32px; color:var(--wp--custom--text-soft); }

/* progress */
.pv-prog { display:flex; align-items:center; gap:10px; justify-content:center; margin:0 0 16px; }
.pv-prog__bar { height:6px; width:64px; border-radius:var(--wp--custom--radius--pill); background:var(--wp--custom--border); }
.pv-prog__bar.is-done { background:var(--wp--custom--brand); }
.pv-prog__bar.is-cur { background:var(--wp--custom--accent); }
.pv-prog__lbl { font-size:12.5px; font-weight:700; color:var(--wp--custom--text-soft); letter-spacing:.04em; }

/* card */
.pv-quiz__card { background:var(--wp--custom--surface); border:1px solid var(--wp--custom--border); border-radius:var(--wp--custom--radius--lg); padding:30px 30px 26px; box-shadow:0 6px 26px rgba(20,64,111,.06); }
.pv-quiz__eyebrow { font-weight:700; font-size:12.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--wp--preset--color--terra-deep); text-align:center; margin:0; }
.pv-quiz__q { font-family:var(--wp--preset--font-family--display, serif); font-size:clamp(24px,4vw,32px); text-align:center; margin:8px 0 4px; outline:none; }
.pv-quiz__sub { text-align:center; color:var(--wp--custom--text-soft); font-size:15.5px; max-width:48ch; margin:0 auto 22px; }
.pv-quiz__privacy { display:flex; gap:9px; align-items:flex-start; justify-content:center; margin-top:20px; font-size:13px; color:var(--wp--custom--text-soft); }

/* stage options (radios) */
.pv-q-opts4 { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; border:0; padding:0; margin:0; }
.pv-stageopt { background:var(--wp--custom--bg-page); border:1.5px solid var(--wp--custom--border); border-radius:var(--wp--custom--radius--md); padding:16px 14px; text-align:center; cursor:pointer; transition:border-color .12s, box-shadow .12s; display:block; }
.pv-stageopt:hover { border-color:var(--wp--custom--brand); }
.pv-stageopt.is-sel { border:2px solid var(--wp--custom--brand); background:var(--wp--custom--surface); box-shadow:0 4px 16px rgba(20,64,111,.1); }
.pv-stageopt:has(input:focus-visible) { outline:2px solid var(--wp--custom--brand); outline-offset:2px; }
.pv-stageopt .pv-meter { justify-content:center; margin-bottom:8px; }
.pv-stageopt__nm { display:block; font-family:var(--wp--preset--font-family--display, serif); font-size:17px; }
.pv-stageopt__es { display:block; font-style:italic; font-family:var(--wp--preset--font-family--display, serif); color:var(--wp--custom--text-soft); font-size:13px; }

/* chips (checkboxes) */
.pv-q-chips { display:flex; flex-wrap:wrap; gap:10px; justify-content:center; border:0; padding:0; margin:0; }
.pv-chip { display:inline-flex; align-items:center; gap:8px; background:var(--wp--custom--bg-page); border:1.5px solid var(--wp--custom--border); border-radius:var(--wp--custom--radius--pill); padding:10px 16px; font-weight:600; font-size:15px; cursor:pointer; transition:border-color .12s, background .12s; user-select:none; }
.pv-chip__ic { color:var(--wp--custom--brand); }
.pv-chip:hover { border-color:var(--wp--custom--brand); }
.pv-chip.is-sel { background:var(--wp--custom--health-tint); border-color:var(--wp--custom--brand); color:var(--wp--custom--health-text); }
.pv-chip.is-sel .pv-chip__ic { color:var(--wp--custom--health-text); }
.pv-chip--planet.is-sel { background:var(--wp--custom--accent-tint); border-color:var(--wp--custom--accent); color:var(--wp--custom--accent-strong); }
.pv-chip--planet.is-sel .pv-chip__ic { color:var(--wp--custom--accent-strong); }
.pv-chip:has(input:focus-visible) { outline:2px solid var(--wp--custom--brand); outline-offset:2px; }

/* meter */
.pv-meter { display:inline-flex; gap:4px; }
.pv-pip { width:18px; height:18px; }
.pv-pip svg { width:100%; height:100%; }
.pv-pip.on { color:var(--wp--custom--meter); }
.pv-pip.off { color:var(--wp--custom--meter-empty); }
.pv-pip svg { fill:currentColor; }

/* nav + buttons */
.pv-quiz__nav { display:flex; align-items:center; justify-content:space-between; margin-top:26px; gap:12px; }
.pv-quiz__navr { display:flex; align-items:center; gap:6px; }
.pv-btn { font-family:inherit; font-weight:700; font-size:15.5px; padding:13px 24px; border-radius:var(--wp--custom--radius--pill); border:1.5px solid var(--wp--custom--brand); cursor:pointer; background:var(--wp--custom--brand); color:var(--wp--custom--on-brand); display:inline-flex; align-items:center; gap:8px; text-decoration:none; }
.pv-btn--ghost { background:transparent; color:var(--wp--custom--brand); }
.pv-btn--link { border:0; background:transparent; color:var(--wp--custom--text-soft); font-weight:600; padding:13px 6px; }
.pv-btn:disabled { opacity:.4; cursor:not-allowed; }

/* result */
.pv-result__hero { text-align:center; padding:6px 0 4px; }
.pv-result__meter { display:flex; justify-content:center; transform:scale(1.25); margin:10px 0 14px; }
.pv-result__stage { font-family:var(--wp--preset--font-family--display, serif); font-size:30px; outline:none; }
.pv-result__es { font-style:italic; color:var(--wp--custom--text-soft); font-family:var(--wp--preset--font-family--display, serif); }
.pv-result__focus { display:flex; flex-wrap:wrap; gap:8px; justify-content:center; margin:14px 0 4px; }
.pv-ftag { font-size:12.5px; font-weight:700; padding:5px 12px; border-radius:var(--wp--custom--radius--pill); background:var(--wp--custom--health-tint); color:var(--wp--custom--health-text); }
.pv-divider { border:0; border-top:1px solid var(--wp--custom--border); margin:24px 0; }
.pv-result__h { font-family:var(--wp--preset--font-family--display, serif); font-size:21px; margin:0 0 14px; text-align:center; }

.pv-recs { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.pv-rcard { background:var(--wp--custom--bg-page); border:1px solid var(--wp--custom--border); border-radius:var(--wp--custom--radius--md); overflow:hidden; text-decoration:none; color:inherit; display:block; }
.pv-rcard__img { display:flex; aspect-ratio:5/4; background-size:cover; background-position:center; background-color:var(--wp--custom--warm-tint); align-items:flex-start; padding:9px; }
.pv-rcard__sb { display:inline-flex; align-items:center; gap:5px; background:var(--wp--custom--surface); border:1px solid var(--wp--custom--border); border-radius:var(--wp--custom--radius--pill); padding:3px 8px; }
.pv-rcard__sb .pv-pip { width:10px; height:10px; }
.pv-rcard__bd { display:block; padding:10px 12px 13px; }
.pv-rcard__t { display:block; font-family:var(--wp--preset--font-family--display, serif); font-size:15.5px; line-height:1.12; }
.pv-rcard__for { display:block; font-size:11.5px; color:var(--wp--custom--accent-strong); font-weight:700; margin-top:5px; }

.pv-swapcard { background:var(--wp--custom--accent-tint); border:1px solid var(--wp--custom--accent); border-radius:var(--wp--custom--radius--lg); padding:18px 20px; margin-top:18px; display:flex; gap:14px; align-items:center; }
.pv-swapcard__lf { width:42px; height:42px; border-radius:50%; background:var(--wp--custom--accent); display:flex; align-items:center; justify-content:center; flex:none; }
.pv-swapcard__lf svg { width:24px; height:24px; fill:#fff; }
.pv-swapcard__k { font-weight:700; color:var(--wp--custom--accent-strong); font-size:13px; text-transform:uppercase; letter-spacing:.06em; margin:0; }
.pv-swapcard h3 { font-family:var(--wp--preset--font-family--display, serif); font-size:19px; margin:3px 0 0; }
.pv-swapcard__b { margin:4px 0 0; font-size:14px; color:var(--wp--custom--text-soft); }

.pv-handoff { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:22px; }
.pv-ho { border:1px solid var(--wp--custom--border); border-radius:var(--wp--custom--radius--lg); padding:20px; text-align:center; }
.pv-ho--primary { border:2px solid var(--wp--custom--brand); background:var(--wp--custom--brand-tint); }
.pv-ho h3 { font-family:var(--wp--preset--font-family--display, serif); font-size:19px; margin:0 0 6px; }
.pv-ho p { font-size:13.5px; color:var(--wp--custom--text-soft); margin:0 0 14px; }
.pv-ho .pv-btn { width:100%; justify-content:center; }
.pv-ho__form input { width:100%; padding:12px 14px; border-radius:var(--wp--custom--radius--pill); border:1.5px solid var(--wp--custom--border); font-family:inherit; font-size:15px; margin-bottom:10px; }
.pv-ho__form .pv-btn { width:100%; justify-content:center; }
.pv-quiz__disc { text-align:center; font-size:12px; color:var(--wp--custom--text-soft); margin-top:20px; max-width:60ch; margin-left:auto; margin-right:auto; }
.pv-quiz__restart { text-align:center; margin-top:14px; }

@media (max-width:620px) { .pv-q-opts4 { grid-template-columns:1fr; } .pv-recs { grid-template-columns:1fr; } .pv-handoff { grid-template-columns:1fr; } }

/* =========================================================================
 * Mi Transición loop (F4.8) — mockup mapped to theme tokens.
 * ====================================================================== */
.pv-loop { max-width:680px; margin:0 auto; }
.pv-loop__noscript { text-align:center; padding:30px 20px; }
.pv-loop__eyebrow { font-weight:700; font-size:12px; letter-spacing:.13em; text-transform:uppercase; color:var(--wp--preset--color--terra-deep); }
.pv-loop__soft { color:var(--wp--custom--text-soft); font-size:14px; }
.pv-loop__top { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:18px; flex-wrap:wrap; }
.pv-loop__hi h1 { font-family:var(--wp--preset--font-family--display, serif); font-weight:500; font-size:26px; margin:2px 0; outline:none; }
.pv-loop__forwhom { display:flex; flex-direction:column; align-items:flex-end; gap:7px; }
.pv-loop__forwhom-lbl { font-size:12px; color:var(--wp--custom--text-soft); font-weight:700; }
.pv-loop__chips { display:flex; gap:6px; flex-wrap:wrap; justify-content:flex-end; }
.pv-loop .pv-chip { padding:6px 12px; font-size:12.5px; }
.pv-loop .pv-chip.is-sel { background:var(--wp--custom--brand); color:var(--wp--custom--on-brand); border-color:var(--wp--custom--brand); }

.pv-loop__card { background:var(--wp--custom--surface); border:1px solid var(--wp--custom--border); border-radius:var(--wp--custom--radius--lg); padding:20px 22px; margin-bottom:16px; }
.pv-loop__row { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.pv-loop__now { font-family:var(--wp--preset--font-family--display, serif); font-size:21px; }
.pv-loop__es { font-style:italic; color:var(--wp--custom--text-soft); font-size:15px; }
.pv-loop__meter-wrap { margin:12px 0 6px; }
.pv-loop__meter-wrap .pv-pip { width:20px; height:20px; }
.pv-loop__note { font-family:var(--wp--preset--font-family--display, serif); font-style:italic; color:var(--wp--preset--color--nopal-deep); font-size:15px; }
.pv-loop__streak { display:inline-flex; align-items:center; gap:8px; background:var(--wp--custom--accent-tint); color:var(--wp--preset--color--nopal-deep); font-weight:700; border-radius:var(--wp--custom--radius--pill); padding:7px 14px; font-size:14px; }

.pv-loop__swap { border-top:4px solid var(--wp--custom--warm); }
.pv-loop__k { font-size:12px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--wp--preset--color--terra-deep); }
.pv-loop__swap-title { font-family:var(--wp--preset--font-family--display, serif); font-weight:500; font-size:24px; margin:6px 0 4px; }
.pv-loop__desc { color:var(--wp--custom--text-soft); font-size:15.5px; margin-bottom:14px; }
.pv-loop__recipe { display:flex; gap:12px; align-items:center; background:var(--wp--custom--bg-page); border:1px solid var(--wp--custom--border); border-radius:var(--wp--custom--radius--md); padding:10px 12px; margin-bottom:16px; text-decoration:none; color:inherit; }
.pv-loop__recipe-ph { width:54px; height:54px; border-radius:10px; background:linear-gradient(135deg,var(--wp--custom--warm-tint),var(--wp--custom--warm)); background-size:cover; background-position:center; flex:none; }
.pv-loop__recipe-t { font-weight:700; font-size:14.5px; }
.pv-loop__recipe-link { display:block; color:var(--wp--custom--brand); font-weight:700; font-size:14px; margin-top:2px; }
.pv-loop__ask { font-weight:700; font-size:16px; margin:0 0 10px; }
.pv-loop__btns { display:flex; gap:10px; flex-wrap:wrap; }
.pv-btn--soft { background:transparent; color:var(--wp--custom--text-soft); border-color:var(--wp--custom--border); }
.pv-loop__done[hidden] { display:none; }
.pv-loop__celebrate { background:var(--wp--custom--accent-tint); border:1px solid var(--wp--custom--accent); border-radius:var(--wp--custom--radius--md); padding:16px 18px; }
.pv-loop__celebrate h3 { font-family:var(--wp--preset--font-family--display, serif); font-weight:500; font-size:19px; color:var(--wp--preset--color--nopal-deep); margin:0; }
.pv-loop__celebrate p { margin:6px 0 0; font-size:14.5px; color:var(--wp--custom--text-soft); }
.pv-loop__next { margin-top:14px; font-size:14px; color:var(--wp--custom--text-soft); }
.pv-loop__preview-cta { background:var(--wp--custom--brand-tint); border:1px solid var(--wp--custom--brand); border-radius:var(--wp--custom--radius--md); padding:18px 20px; margin-top:6px; text-align:center; }
.pv-loop__preview-cta h3 { font-family:var(--wp--preset--font-family--display, serif); font-weight:500; margin:0 0 6px; }
.pv-loop__preview-cta p { font-size:14px; color:var(--wp--custom--text-soft); margin:0 0 14px; }
.pv-loop__disc { font-size:12.5px; color:var(--wp--custom--text-soft); background:var(--wp--preset--color--masa-deep); border-radius:var(--wp--custom--radius--md); padding:12px 14px; margin-top:14px; }

/* article (single post) — reading-optimized narrow measure (blog spec §5: 65–75ch) */
body.single-post main.wp-block-group { max-width:760px; margin-left:auto; margin-right:auto; }
.pv-dek { font-family:var(--wp--preset--font-family--display); font-size:1.3rem; line-height:1.45; color:var(--wp--custom--text-soft); margin:.5em 0 .3em; }
.pv-byline { font-size:14px; color:var(--wp--custom--text-soft); margin:0 0 1.4em; }
.pv-resumen { background:var(--wp--custom--accent-tint); border-left:4px solid var(--wp--custom--accent); border-radius:10px; padding:18px 22px; margin:24px 0; }
.pv-resumen h2 { font-size:1.05rem; margin:0 0 .5em; }
.pv-resumen ul { margin:0; padding-left:1.1em; } .pv-resumen li { margin:6px 0; }
.pv-article-sources { margin-top:var(--wp--preset--spacing--50); border-top:1px solid var(--wp--custom--border); padding-top:20px; font-size:.92rem; }
.pv-article-sources ol { color:var(--wp--custom--text-soft); padding-left:1.2em; } .pv-article-sources li { margin:7px 0; }
.pv-src-meta { color:var(--wp--custom--text-soft); }
.pv-article-disclaimer { font-size:.85rem; font-style:italic; color:var(--wp--custom--text-soft); margin-top:18px; }

/* archive / blog index (pillar hubs) */
.pv-pagehead { padding:6px 0 26px; }
.pv-pagehead h1 { font-size:clamp(34px,5vw,52px); margin:.1em 0; }
.pv-archive-intro { color:var(--wp--custom--text-soft); font-size:19px; max-width:60ch; margin:.4em 0 0; }
.pv-pager { gap:8px; }
.pv-pager a, .pv-pager .current { min-width:40px; height:40px; display:inline-flex; align-items:center; justify-content:center; padding:0 10px; border:1px solid var(--wp--custom--border); border-radius:var(--wp--custom--radius--md); text-decoration:none; font-weight:700; font-size:14px; background:var(--wp--custom--surface); }
.pv-pager .current { background:var(--wp--custom--brand); color:var(--wp--preset--color--white); border-color:var(--wp--custom--brand); }

/* faceted browse pills (pv/facet-nav) */
.pv-facets { display:flex; flex-wrap:wrap; gap:16px; align-items:center; padding:18px 0; border-top:1px solid var(--wp--custom--border); border-bottom:1px solid var(--wp--custom--border); margin:18px 0 4px; }
.pv-facetgrp { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.pv-facet-lbl { font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:var(--wp--custom--text-soft); margin-right:2px; }
.pv-facet { font-size:13px; font-weight:600; padding:6px 13px; border-radius:var(--wp--custom--radius--pill); border:1px solid var(--wp--custom--border); background:var(--wp--custom--surface); color:var(--wp--custom--text); text-decoration:none; transition:border-color .15s ease; }
.pv-facet:hover { border-color:var(--wp--custom--brand); }
.pv-facet.is-on { background:var(--wp--custom--brand); color:var(--wp--preset--color--white); border-color:var(--wp--custom--brand); }
.pv-facet--clear { border-style:dashed; color:var(--wp--custom--text-soft); margin-left:auto; }
.pv-facet--clear:hover { color:var(--wp--custom--warm); border-color:var(--wp--custom--warm); }

/* featured hero (pv/featured-post) — index lead article (blog mockup .feature) */
.pv-feature { display:grid; grid-template-columns:1fr; gap:24px; align-items:center; padding:18px 0 28px; border-bottom:1px solid var(--wp--custom--border); margin-bottom:8px; }
@media (min-width:782px) { .pv-feature { grid-template-columns:1.1fr .9fr; gap:32px; } }
.pv-feature > * { min-width:0; }
.pv-feature__media { display:block; }
.pv-feature__media img { display:block; width:100%; aspect-ratio:16/10; object-fit:cover; border-radius:var(--wp--custom--radius--lg); }
.pv-feature__title { font-size:clamp(26px,3.4vw,38px); line-height:1.1; margin:.12em 0; }
.pv-feature__title a { color:inherit; text-decoration:none; }
.pv-feature__title a:hover { color:var(--wp--custom--brand); }
.pv-feature__dek { color:var(--wp--custom--text-soft); font-size:18px; margin:10px 0 14px; }
.pv-feature__tags { display:flex; flex-wrap:wrap; gap:8px; margin:10px 0; font-size:13px; }

/* grain + cultural ornament (baked SVG) */
body::before { content:""; position:fixed; inset:0; pointer-events:none; z-index:0; opacity:.06;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E"); }
.wp-site-blocks { position:relative; z-index:1; }
.pv-tile-strip { height:44px; background-repeat:repeat; background-size:44px 44px; border-top:1px solid var(--wp--custom--border); border-bottom:1px solid var(--wp--custom--border);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80' viewBox='0 0 80 80'%3E%3Crect width='80' height='80' fill='%23FFFDF9'/%3E%3Cg fill='none' stroke='%231E5BA8' stroke-width='2'%3E%3Ccircle cx='40' cy='40' r='13'/%3E%3Cpath d='M40 13v8M40 59v8M13 40h8M59 40h8'/%3E%3C/g%3E%3Cg fill='%23C2552F'%3E%3Ccircle cx='40' cy='40' r='4'/%3E%3Ccircle cx='13' cy='13' r='3'/%3E%3Ccircle cx='67' cy='13' r='3'/%3E%3Ccircle cx='13' cy='67' r='3'/%3E%3Ccircle cx='67' cy='67' r='3'/%3E%3C/g%3E%3Cg fill='%231E5BA8'%3E%3Ccircle cx='40' cy='27' r='2.6'/%3E%3Ccircle cx='40' cy='53' r='2.6'/%3E%3Ccircle cx='27' cy='40' r='2.6'/%3E%3Ccircle cx='53' cy='40' r='2.6'/%3E%3C/g%3E%3C/svg%3E"); }
.pv-papel { height:32px; background-repeat:repeat-x; background-size:64px 32px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='32'%3E%3Cpath fill='%23E0A33B' d='M2 0h60v18l-7.5 8-7.5-8-7.5 8-7.5-8-7.5 8-7.5-8-7.5 8V0z'/%3E%3Cg fill='%2314406F'%3E%3Ccircle cx='17' cy='8' r='3'/%3E%3Ccircle cx='47' cy='8' r='3'/%3E%3Ccircle cx='32' cy='14' r='2.3'/%3E%3C/g%3E%3C/svg%3E"); }

/* hero (frameless arch) */
.pv-hero-photo { aspect-ratio:4/3; border-radius:50% 50% 16px 16px / 24% 24% 16px 16px; overflow:hidden; background-size:cover; background-position:center; box-shadow:0 14px 36px rgba(43,38,34,.13); }
.pv-hero-photo img, .pv-about__portrait img { border-radius:inherit; }

/* editorial featured */
.pv-featured { display:grid; grid-template-columns:1.1fr .9fr; background:var(--wp--custom--surface); border:1px solid var(--wp--custom--border); border-radius:var(--wp--custom--radius--lg); overflow:hidden; box-shadow:0 4px 26px rgba(43,38,34,.07); }
.pv-featured__img { background-color:var(--wp--custom--warm-tint); background-size:cover; background-position:center; min-height:360px; display:flex; align-items:flex-start; padding:16px; }
.pv-featured__body { padding:38px 42px; display:flex; flex-direction:column; justify-content:center; }
.pv-featured__body h2, .pv-featured__body h3 { font-size:clamp(26px,3vw,36px); line-height:1.08; }

/* recipe card */
.pv-card { background:var(--wp--custom--surface); border:1px solid var(--wp--custom--border); border-radius:var(--wp--custom--radius--lg); overflow:hidden; box-shadow:0 2px 16px rgba(43,38,34,.05); display:flex; flex-direction:column; }
.pv-card__img { aspect-ratio:5/4; background-color:var(--wp--custom--warm-tint); background-size:cover; background-position:center; display:flex; align-items:flex-start; padding:12px; }
.pv-card__body { padding:20px 20px 22px; }
.pv-stage-badge { display:inline-flex; align-items:center; gap:7px; background:var(--wp--custom--surface); color:var(--wp--custom--text); font-weight:700; font-size:12px; padding:5px 11px; border-radius:var(--wp--custom--radius--pill); border:1px solid var(--wp--custom--border); }
.pv-es-title { font-family:var(--wp--preset--font-family--display); font-style:italic; color:var(--wp--custom--text-soft); font-size:15px; }

/* health tags */
.pv-tags { display:flex; flex-wrap:wrap; gap:7px; }
.pv-tag { font-size:12px; font-weight:700; padding:4px 10px; border-radius:var(--wp--custom--radius--pill); background:var(--wp--custom--health-tint); color:var(--wp--custom--health-text); }

/* swap meter */
.pv-swap { border-top:1px dashed var(--wp--custom--border); padding-top:12px; }
.pv-swap__lab { font-family:var(--wp--preset--font-family--stamp); font-size:12px; letter-spacing:.06em; text-transform:uppercase; color:var(--wp--custom--accent-strong); margin-bottom:7px; }
.pv-swap__bar { display:flex; height:10px; border-radius:999px; overflow:hidden; border:1px solid var(--wp--custom--border); }
.pv-swap__bar .is-meat { background:var(--wp--custom--warm); }
.pv-swap__bar .is-plant { background:var(--wp--custom--accent); }
.pv-swap__ends { display:flex; justify-content:space-between; font-size:12.5px; color:var(--wp--custom--text-soft); margin-top:6px; font-weight:600; }

/* trust / why */
.pv-ev { background:var(--wp--custom--surface); border:1px solid var(--wp--custom--border); border-radius:var(--wp--custom--radius--lg); padding:30px; border-top:4px solid var(--wp--custom--brand); }
.pv-trust-badge { display:inline-flex; align-items:center; gap:9px; background:var(--wp--custom--health-tint); color:var(--wp--custom--health-text); font-weight:700; font-size:14px; padding:9px 16px; border-radius:var(--wp--custom--radius--pill); }

/* condition entry cards */
.pv-conds { display:grid; grid-template-columns:repeat(auto-fit, minmax(170px, 1fr)); gap:16px; }
.pv-cond { background:var(--wp--custom--surface); border:1px solid var(--wp--custom--border); border-radius:var(--wp--custom--radius--md); padding:24px 20px; text-decoration:none; display:flex; flex-direction:column; gap:6px; transition:.15s; }
.pv-cond:hover { border-color:var(--wp--custom--brand); transform:translateY(-2px); }

/* article card */
.pv-acard { background:var(--wp--custom--surface); border:1px solid var(--wp--custom--border); border-radius:var(--wp--custom--radius--lg); overflow:hidden; box-shadow:0 2px 16px rgba(43,38,34,.05); display:flex; flex-direction:column; }
.pv-acard__kind { font-family:var(--wp--preset--font-family--stamp); font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--wp--custom--warm); }

/* newsletter band */
.pv-news { background:var(--wp--custom--brand); color:var(--wp--custom--on-brand); border-radius:var(--wp--custom--radius--lg); padding:60px 48px; text-align:center; }
.pv-news input[type=email] { padding:14px 18px; border-radius:var(--wp--custom--radius--pill); border:0; font-size:16px; min-width:280px; }

/* about / la tía */
.pv-about__portrait { aspect-ratio:1; border-radius:50% 50% 18px 18px / 30% 30% 18px 18px; overflow:hidden; background-size:cover; background-position:center; }

/* placement (journey spine) */
.pv-spine { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.pv-stage { background:var(--wp--custom--surface); border:1px solid var(--wp--custom--border); border-radius:var(--wp--custom--radius--md); padding:24px 18px 26px; text-align:center; text-decoration:none; color:inherit; min-height:44px; transition:.15s; position:relative; display:block; }
.pv-stage:hover { border-color:var(--wp--custom--brand); transform:translateY(-2px); }
.pv-stage.is-here { border:2px solid var(--wp--custom--brand); box-shadow:0 6px 22px rgba(20,64,111,.12); }
.pv-stage__flag { position:absolute; top:-12px; left:50%; transform:translateX(-50%); background:var(--wp--custom--brand); color:var(--wp--custom--on-brand); font-size:11px; font-weight:700; padding:4px 13px; border-radius:var(--wp--custom--radius--pill); white-space:nowrap; }
.pv-spine-note { text-align:center; font-family:var(--wp--preset--font-family--hand); font-size:28px; color:var(--wp--custom--accent-strong); }
.pv-save-invite { background:var(--wp--custom--brand-tint); border:1px solid var(--wp--custom--border); border-radius:var(--wp--custom--radius--lg); padding:16px 22px; display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-top:22px; }
.pv-stage .pv-leaf-meter { justify-content:center; margin-bottom:6px; }
.pv-stage__name { display:block; font-family:var(--wp--preset--font-family--display); font-weight:500; font-size:19px; margin-top:8px; }
.pv-stage .pv-es-title { display:block; }
.pv-stage__blurb { display:block; font-size:14px; color:var(--wp--custom--text-soft); margin-top:9px; line-height:1.5; }

/* scroll reveal (paired with reveal.js + prefers-reduced-motion guard) */
html.motion-on .pv-reveal { opacity:0; transform:translateY(26px); transition:opacity .65s cubic-bezier(.22,1,.36,1), transform .65s cubic-bezier(.22,1,.36,1); }
html.motion-on .pv-reveal.is-in { opacity:1; transform:none; }

/* query-loop recipe/article cards */
.pv-recipe-grid .wp-block-post { background:var(--wp--custom--surface); border:1px solid var(--wp--custom--border); border-radius:var(--wp--custom--radius--lg); overflow:hidden; box-shadow:0 2px 16px rgba(43,38,34,.05); padding-bottom:18px; }
.pv-recipe-grid .wp-block-post-featured-image { margin:0; }
.pv-recipe-grid .wp-block-post-title, .pv-recipe-grid .wp-block-post-terms, .pv-recipe-grid .wp-block-post-excerpt, .pv-recipe-grid .wp-block-post .pv-leaf-meter { margin-inline:18px; }
.pv-recipe-grid .wp-block-post .pv-leaf-meter { margin-top:14px; }
.pv-recipe-grid .wp-block-post-title { margin-top:8px; }

/* condition entry cards (simplified) */
.pv-conds .pv-cond .pv-eyebrow { color:var(--wp--custom--brand); font-size:16px; }

@media (max-width:880px) {
  .pv-featured { grid-template-columns:1fr; }
  .pv-spine { grid-template-columns:1fr 1fr; }
}
