/* WPRM recipe card — "TAF 2026" template
   Full file header, design notes and per-rule rationale: docs/design/css-rationale/wprm-taf2026.css.md */

/* ---- 1. Card shell + Warm Oven tokens ---- */
.wprm-recipe-template-taf-2026 {
  /* == GENERATED: tokens — do not edit by hand. Source: design/tokens.json (scripts/build-tokens.py) == */
  --taf-milk:      var(--milk, #FEFBFA);
  --taf-cream:     var(--cream, #FAEDF2);
  --taf-paper:     var(--paper, #FFFFFF);
  --taf-chocolate: var(--chocolate, #33202B);
  --taf-cocoa:     var(--cocoa, #6E5964);
  --taf-rose:      var(--rose, #E11584);
  --taf-rose-deep: var(--rose-deep, #B80E67);
  --taf-link:      var(--rose-link, #D01277);
  --taf-rose-tint: var(--rose-tint, #FCE7F3);
  --taf-saffron:   var(--saffron, #E29B32);
  --taf-saffron-deep: var(--saffron-deep, #B87716);
  --taf-focus-ring-color: var(--focus-ring-color, #B87716);
  --taf-line:      var(--line, #F0DEE6);
  --taf-sans:      var(--sans, 'Mulish', system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);
  --taf-display:   var(--display, 'Poppins', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif);
  --taf-r:         var(--radius, 8px);
  --taf-r-sm:      var(--radius-sm, 6px);
  --taf-r-pill:    var(--radius-pill, 6px);
  --taf-r-round:   var(--radius-round, 50%);
  --taf-shadow:    var(--shadow, 0 1px 2px rgba(51, 32, 43, .06), 0 6px 24px -8px rgba(51, 32, 43, .12));
  --taf-speed:     var(--speed, .15s);
  --taf-card-pad:  20px;
  /* == END GENERATED == */

  /* WPRM core checkbox hooks (label::before/::after read these) */
  /* 24px (was 18): the visible box itself clears the WCAG 2.5.8 24px floor —
     the label hit-area padding in section 9 stacks on top of it. */
  --wprm-list-checkbox-size: 20px;  /* 20×20 (the padded label row stays the ≥44px target) */
  --wprm-list-checkbox-background: var(--taf-paper);
  --wprm-list-checkbox-borderwidth: 1.5px;
  --wprm-list-checkbox-border-style: solid;
  --wprm-list-checkbox-border-color: var(--taf-rose);  /* control chrome is brand pink, no muted tints */
  --wprm-list-checkbox-check-color: var(--color-on-accent, #FFFFFF);  /* README: white check on rose */
  --wprm-list-checkbox-border-radius: 5px;  /* comp literal */
  --wprm-list-checkbox-check-width: 2px;
  --wprm-list-checkbox-check-color: var(--taf-rose);

  margin: var(--space-32) auto var(--space-24);  /* comp: 30px above the card at 390 */
  max-width: 100%;
  background-color: var(--taf-paper);
  box-shadow: none;                       /* V2: bordered shell, no shadow */
  border: var(--bw-1) solid #DFC3D2;      /* token-exempt: V2 local constant — card border/section rules */
  border-radius: var(--taf-r);
  /* comp mobile pad 26/20/30, snapped to the token scale (24/20/32) */
  padding: var(--space-24) var(--taf-card-pad) var(--space-32);
  font-family: var(--taf-sans);
  font-size: var(--fs-18);     /* was 16px; card prose matches the
                                  18px page body set the same day */
  line-height: var(--lh-165);  /* comp: card inherits body 1.65 */
  color: var(--taf-chocolate);
  display: flex;
  flex-direction: column;
}
.wprm-recipe-template-taf-2026 a { color: var(--taf-link); }
.wprm-recipe-template-taf-2026 br { display: none; }
.wprm-recipe-template-taf-2026 p,
.wprm-recipe-template-taf-2026 li {
  font-family: var(--taf-sans);
  font-size: var(--fs-18) !important;   /* was 16px — see the card root */
  line-height: var(--lh-165) !important;
}

/* .wprm-recipe-template-taf-2026 > * — rationale: docs/design/css-rationale/wprm-taf2026.css.md#wprm-recipe-template-taf-2026 */
.wprm-recipe-template-taf-2026 > * { order: 50; }
.wprm-recipe-template-taf-2026 > .wprm-recipe-name                    { order: 2; }
.wprm-recipe-template-taf-2026 > .wprm-recipe-author                  { order: 3; }
.wprm-recipe-template-taf-2026 > .wprm-recipe-rating                  { order: 4; }
.wprm-recipe-template-taf-2026 > .wprm-recipe-summary                 { order: 5; }
.wprm-recipe-template-taf-2026 > .wprm-container-float-right          { order: 6; }
.wprm-recipe-template-taf-2026 > .wprm-recipe-times-container         { order: 7; }
.wprm-recipe-template-taf-2026 > .wprm-container-columns-spaced       { order: 8; }
.wprm-recipe-template-taf-2026 > .wprm-template-chic-buttons          { order: 9; }
.wprm-recipe-template-taf-2026 > .wprm-recipe-equipment-container     { order: 10; }
.wprm-recipe-template-taf-2026 > .taf-cookmode                        { order: 11; }  /* V2: cook mode ABOVE ingredients */
.wprm-recipe-template-taf-2026 > .wprm-recipe-ingredients-container   { order: 12; }
.wprm-recipe-template-taf-2026 > .wprm-recipe-instructions-container  { order: 13; }
/* mobile V2: photo first, centered text under it */
/* .wprm-recipe-template-taf-2026 > .wprm-recipe-video-contai… — !! DELIBERATE VALUE, DO NOT "FIX" WITHOUT READING: docs/design/css-rationale/wprm-taf2026.css.md#wprm-recipe-template-taf-2026-wprm-recipe-video-container-wp */
.wprm-recipe-template-taf-2026 > .wprm-recipe-video-container,
.wprm-recipe-template-taf-2026 > #recipe-video                        { order: 14; }
.wprm-recipe-template-taf-2026 > .wprm-recipe-notes-container         { order: 15; }
/* .wprm-recipe-template-taf-2026 > .wprm-nutrition-label-sho… — !! DELIBERATE VALUE, DO NOT "FIX" WITHOUT READING: docs/design/css-rationale/wprm-taf2026.css.md#wprm-recipe-template-taf-2026-wprm-nutrition-label-shortcode */
.wprm-recipe-template-taf-2026 > .wprm-nutrition-label-shortcode-container { order: 17; }
.wprm-recipe-template-taf-2026 > .wprm-call-to-action                 { order: 18; }

/* .wprm-recipe-template-taf-2026 > .wprm-recipe-name + :is([… — !! DELIBERATE VALUE, DO NOT "FIX" WITHOUT READING: docs/design/css-rationale/wprm-taf2026.css.md#wprm-recipe-template-taf-2026-wprm-recipe-name-is-class-adth */
.wprm-recipe-template-taf-2026 > .wprm-recipe-name + :is([class*="adthrive"], [id*="AdThrive"]),
.wprm-recipe-template-taf-2026 > .wprm-recipe-name + :is([class*="adthrive"], [id*="AdThrive"]) + :is([class*="adthrive"], [id*="AdThrive"]) { order: 2; }
.wprm-recipe-template-taf-2026 > .wprm-recipe-author + :is([class*="adthrive"], [id*="AdThrive"]),
.wprm-recipe-template-taf-2026 > .wprm-recipe-author + :is([class*="adthrive"], [id*="AdThrive"]) + :is([class*="adthrive"], [id*="AdThrive"]) { order: 3; }
.wprm-recipe-template-taf-2026 > .wprm-recipe-rating + :is([class*="adthrive"], [id*="AdThrive"]),
.wprm-recipe-template-taf-2026 > .wprm-recipe-rating + :is([class*="adthrive"], [id*="AdThrive"]) + :is([class*="adthrive"], [id*="AdThrive"]) { order: 4; }
.wprm-recipe-template-taf-2026 > .wprm-recipe-summary + :is([class*="adthrive"], [id*="AdThrive"]),
.wprm-recipe-template-taf-2026 > .wprm-recipe-summary + :is([class*="adthrive"], [id*="AdThrive"]) + :is([class*="adthrive"], [id*="AdThrive"]) { order: 5; }
/* photo: order 1 on phones (the mobile rule below), 6 in the >=700 grid —
   the media-query block re-states this pair at 6 alongside the photo's own. */
.wprm-recipe-template-taf-2026 > .wprm-container-float-right + :is([class*="adthrive"], [id*="AdThrive"]),
.wprm-recipe-template-taf-2026 > .wprm-container-float-right + :is([class*="adthrive"], [id*="AdThrive"]) + :is([class*="adthrive"], [id*="AdThrive"]) { order: 1; }
.wprm-recipe-template-taf-2026 > .wprm-recipe-times-container + :is([class*="adthrive"], [id*="AdThrive"]),
.wprm-recipe-template-taf-2026 > .wprm-recipe-times-container + :is([class*="adthrive"], [id*="AdThrive"]) + :is([class*="adthrive"], [id*="AdThrive"]) { order: 7; }
.wprm-recipe-template-taf-2026 > .wprm-container-columns-spaced + :is([class*="adthrive"], [id*="AdThrive"]),
.wprm-recipe-template-taf-2026 > .wprm-container-columns-spaced + :is([class*="adthrive"], [id*="AdThrive"]) + :is([class*="adthrive"], [id*="AdThrive"]) { order: 8; }
.wprm-recipe-template-taf-2026 > .wprm-template-chic-buttons + :is([class*="adthrive"], [id*="AdThrive"]),
.wprm-recipe-template-taf-2026 > .wprm-template-chic-buttons + :is([class*="adthrive"], [id*="AdThrive"]) + :is([class*="adthrive"], [id*="AdThrive"]) { order: 9; }
.wprm-recipe-template-taf-2026 > .wprm-recipe-equipment-container + :is([class*="adthrive"], [id*="AdThrive"]),
.wprm-recipe-template-taf-2026 > .wprm-recipe-equipment-container + :is([class*="adthrive"], [id*="AdThrive"]) + :is([class*="adthrive"], [id*="AdThrive"]) { order: 10; }
.wprm-recipe-template-taf-2026 > .taf-cookmode + :is([class*="adthrive"], [id*="AdThrive"]),
.wprm-recipe-template-taf-2026 > .taf-cookmode + :is([class*="adthrive"], [id*="AdThrive"]) + :is([class*="adthrive"], [id*="AdThrive"]) { order: 11; }
.wprm-recipe-template-taf-2026 > .wprm-recipe-ingredients-container + :is([class*="adthrive"], [id*="AdThrive"]),
.wprm-recipe-template-taf-2026 > .wprm-recipe-ingredients-container + :is([class*="adthrive"], [id*="AdThrive"]) + :is([class*="adthrive"], [id*="AdThrive"]) { order: 12; }
.wprm-recipe-template-taf-2026 > .wprm-recipe-instructions-container + :is([class*="adthrive"], [id*="AdThrive"]),
.wprm-recipe-template-taf-2026 > .wprm-recipe-instructions-container + :is([class*="adthrive"], [id*="AdThrive"]) + :is([class*="adthrive"], [id*="AdThrive"]) { order: 13; }
.wprm-recipe-template-taf-2026 > :is(.wprm-recipe-video-container, #recipe-video) + :is([class*="adthrive"], [id*="AdThrive"]),
.wprm-recipe-template-taf-2026 > :is(.wprm-recipe-video-container, #recipe-video) + :is([class*="adthrive"], [id*="AdThrive"]) + :is([class*="adthrive"], [id*="AdThrive"]) { order: 14; }
.wprm-recipe-template-taf-2026 > .wprm-recipe-notes-container + :is([class*="adthrive"], [id*="AdThrive"]),
.wprm-recipe-template-taf-2026 > .wprm-recipe-notes-container + :is([class*="adthrive"], [id*="AdThrive"]) + :is([class*="adthrive"], [id*="AdThrive"]) { order: 15; }
/* (the .taf-adrail--wide arm of this ladder went with the rail itself,
   v0.88.0 — there is no such element for an injected unit to follow.) */
.wprm-recipe-template-taf-2026 > .wprm-nutrition-label-shortcode-container + :is([class*="adthrive"], [id*="AdThrive"]),
.wprm-recipe-template-taf-2026 > .wprm-nutrition-label-shortcode-container + :is([class*="adthrive"], [id*="AdThrive"]) + :is([class*="adthrive"], [id*="AdThrive"]) { order: 17; }
.wprm-recipe-template-taf-2026 > .wprm-call-to-action + :is([class*="adthrive"], [id*="AdThrive"]),
.wprm-recipe-template-taf-2026 > .wprm-call-to-action + :is([class*="adthrive"], [id*="AdThrive"]) + :is([class*="adthrive"], [id*="AdThrive"]) { order: 18; }

/* Neutralize template chrome we re-express with margins:
   spacers, decorative icon/line dividers, in-header rules. */
.wprm-recipe-template-taf-2026 .wprm-spacer { display: none !important; }
.wprm-recipe-template-taf-2026 .wprm-icon-shortcode { display: none !important; }
.wprm-recipe-template-taf-2026 .wprm-recipe-header .wprm-decoration-line { display: none !important; }

/* .wprm-recipe-template-taf-2026 > .wprm-container-float-rig… — !! DELIBERATE VALUE, DO NOT "FIX" WITHOUT READING: docs/design/css-rationale/wprm-taf2026.css.md#wprm-recipe-template-taf-2026-wprm-container-float-right */
.wprm-recipe-template-taf-2026 > .wprm-container-float-right {
  float: none;
  /* V2 mobile: photo FIRST, centered, min(80%, 340px) */
  order: 1;
  width: min(80%, 340px);  /* token-exempt: V2 mobile photo sizing */
  margin: 0 auto;
  position: relative;
}
/* V2 mobile: title/byline/stars centered under the photo */
.wprm-recipe-template-taf-2026 > .wprm-recipe-name,
.wprm-recipe-template-taf-2026 > .wprm-recipe-author { text-align: center; }
.wprm-recipe-template-taf-2026 > .wprm-recipe-rating { justify-content: center; }
.wprm-recipe-template-taf-2026 > .wprm-recipe-name { margin-top: var(--space-14) !important; }
.wprm-recipe-template-taf-2026 .wprm-recipe-image {
  float: none;
  width: 100%;
  margin: 0 !important;
}
/* Grow (social-pug) wraps the recipe img in a pin-it wrapper that
   shrink-wraps to the img's attribute width — force it full-width so
   the img's width:100% resolves against the container. */
.wprm-recipe-template-taf-2026 .wprm-recipe-image .dpsp-pin-it-wrapper {
  display: block;
  width: 100%;
}
.wprm-recipe-template-taf-2026 .wprm-recipe-image img {
  /* token-frozen: reserves the box: CLS, on a template with zero margin
     T6 must NOT remap these values to a scale — tokenize at parity only. */
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: var(--ar-1-1);        /* V2: square photo; fixed box = zero CLS on lazy-load */
  object-fit: cover;
  border-radius: var(--taf-r-sm) !important;  /* V2 radius 6; beats the inline 3px */
}

/* ---- 4. Identity: name, author, summary ---- */
.wprm-recipe-template-taf-2026 .wprm-recipe-name {
  font-family: var(--taf-display) !important;
  font-weight: var(--w-semibold) !important;   /* Fix 9 (2026-07-09): was 400 — match in-content H2s; core .wprm-block-text-bold is !important */
  font-size: var(--fs-26);  /* V2 mobile title */
  line-height: var(--lh-115);
  letter-spacing: var(--ls--001em);
  color: var(--taf-chocolate);
  margin: 0 !important;  /* the card shell now carries the top padding */
  padding: 0 !important;
}
.wprm-recipe-template-taf-2026 > .wprm-recipe-author {
  margin: var(--space-8) 0 0;   /* reference: title→byline 8 */
  font-family: var(--ui, 'Poppins', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif);   /* comp UI face */
  font-size: var(--fs-14);   /* README byline 14px */
  color: var(--taf-cocoa);
}
/* comp byline: "By <name>" with the name as a rose underlined link */
.wprm-recipe-template-taf-2026 > .wprm-recipe-author,
.wprm-recipe-template-taf-2026 > .wprm-recipe-author a {
  color: var(--taf-link);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.wprm-recipe-template-taf-2026 > .wprm-recipe-author a {
  color: var(--taf-cocoa);
  text-decoration: none;
}
.wprm-recipe-template-taf-2026 > .wprm-recipe-author a:hover { color: var(--taf-link); }
.wprm-recipe-template-taf-2026 .wprm-recipe-summary {
  margin: var(--space-12) 0 0;   /* + the stars' compensated bottom = reference 12 */
  font-size: var(--fs-18);   /* V2 had 15px; raised with the rest of the card prose */
  line-height: var(--lh-165);
  color: var(--taf-cocoa);
}

/* .wprm-recipe-template-taf-2026 > .wprm-recipe-rating — !! DELIBERATE VALUE, DO NOT "FIX" WITHOUT READING: docs/design/css-rationale/wprm-taf2026.css.md#wprm-recipe-template-taf-2026-wprm-recipe-rating */
.wprm-recipe-template-taf-2026 > .wprm-recipe-rating {
  /* .wprm-recipe-template-taf-2026 > .wprm-recipe-rating — rationale: docs/design/css-rationale/wprm-taf2026.css.md#wprm-recipe-template-taf-2026-wprm-recipe-rating-2 */
  margin: -4px 0 -12px;   /* token-exempt: optical compensation for tap padding */
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--space-2);
}
.wprm-recipe-template-taf-2026 .wprm-rating-star { cursor: pointer; }
.wprm-recipe-template-taf-2026 .wprm-rating-star svg {
  width: var(--star-interactive, 20px);   /* D6-A interactive tier (was the README's 19px) */
  height: var(--star-interactive, 20px);  /* the ≥44 hit box is preserved by padding + mins below */
  display: block;
}
/* .wprm-recipe-template-taf-2026 .wprm-rating-star:where(:no… — rationale: docs/design/css-rationale/wprm-taf2026.css.md#wprm-recipe-template-taf-2026-wprm-rating-star-where-not-wpr */
.wprm-recipe-template-taf-2026 .wprm-rating-star:where(:not(.wprm-rating-star-33):not(.wprm-rating-star-50):not(.wprm-rating-star-66)) polygon,
.wprm-recipe-template-taf-2026 .wprm-rating-star:where(:not(.wprm-rating-star-33):not(.wprm-rating-star-50):not(.wprm-rating-star-66)) path {
  fill: var(--taf-line) !important;   /* D1-C quiet empty */
}
.wprm-recipe-template-taf-2026 .wprm-rating-star polygon,
.wprm-recipe-template-taf-2026 .wprm-rating-star path {
  stroke: var(--taf-line) !important;
  fill-opacity: 1 !important;  /* pins WPRM's not-voted 30% wash; the anatomy carries the affordance */
}
.wprm-recipe-template-taf-2026 .wprm-rating-star-33 polygon,
.wprm-recipe-template-taf-2026 .wprm-rating-star-33 path,
.wprm-recipe-template-taf-2026 .wprm-rating-star-50 polygon,
.wprm-recipe-template-taf-2026 .wprm-rating-star-50 path,
.wprm-recipe-template-taf-2026 .wprm-rating-star-66 polygon,
.wprm-recipe-template-taf-2026 .wprm-rating-star-66 path { stroke: var(--taf-saffron-deep) !important; }
.wprm-recipe-template-taf-2026 .wprm-rating-star-full polygon,
.wprm-recipe-template-taf-2026 .wprm-rating-star-full path {
  fill: var(--taf-saffron) !important;
  stroke: var(--taf-saffron-deep) !important;
}
/* .wprm-recipe-template-taf-2026 svg linearGradient stop:nth… — rationale: docs/design/css-rationale/wprm-taf2026.css.md#wprm-recipe-template-taf-2026-svg-lineargradient-stop-nth-of */
.wprm-recipe-template-taf-2026 svg linearGradient stop:nth-of-type(-n+2) { stop-color: var(--taf-saffron) !important; }
.wprm-recipe-template-taf-2026 svg linearGradient stop:nth-of-type(n+3) {
  stop-color: var(--taf-line) !important;
  stop-opacity: 1 !important;
}
.wprm-recipe-template-taf-2026 .wprm-recipe-rating-details {
  margin-left: var(--space-4);
  font-size: var(--fs-13);   /* README: header star status line 13px */
  color: var(--taf-cocoa);
}

/* .wprm-recipe-template-taf-2026 > .wprm-recipe-times-contai… — rationale: docs/design/css-rationale/wprm-taf2026.css.md#wprm-recipe-template-taf-2026-wprm-recipe-times-container-wp */
.wprm-recipe-template-taf-2026 > .wprm-recipe-times-container,
.wprm-recipe-template-taf-2026 > .wprm-container-columns-spaced > div {
  border: var(--bw-1) solid var(--taf-line) !important;
  border-radius: var(--taf-r-sm);
  overflow: hidden;               /* clips the cells' -1px hairline overdraw */
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));  /* comp mobile: 2-up per group */
  padding: 0;
}
.wprm-recipe-template-taf-2026 > .wprm-recipe-times-container { margin: var(--space-16) 0 0; }  /* V2 meta margin-top 16 */
/* .wprm-recipe-template-taf-2026 .wprm-recipe-custom-time-co… — !! DELIBERATE VALUE, DO NOT "FIX" WITHOUT READING: docs/design/css-rationale/wprm-taf2026.css.md#wprm-recipe-template-taf-2026-wprm-recipe-custom-time-contai */
.wprm-recipe-template-taf-2026 .wprm-recipe-custom-time-container:last-child { grid-column: 1 / -1; }
.wprm-recipe-template-taf-2026 > .wprm-container-columns-spaced {
  display: grid;
  grid-template-columns: minmax(0, 1fr);   /* groups stack on phones */
  gap: var(--space-10);
  margin: var(--space-10) 0 0;
}
.wprm-recipe-template-taf-2026 > .wprm-container-columns-spaced .wprm-recipe-details-container-table,
.wprm-recipe-template-taf-2026 > .wprm-container-columns-spaced .wprm-recipe-meta-container { display: contents !important; }
/* Cells draw their own top/left hairlines a la the comp: -1px margins
   overdraw the group border, the group's overflow:hidden clips them. */
.wprm-recipe-template-taf-2026 .wprm-recipe-block-container-table {
  display: flex !important;
  flex-direction: column;           /* label above value (comp) */
  gap: var(--space-2);
  flex: none !important;
  text-align: left;
  padding: var(--space-8) var(--space-12) !important;  /* V2 compact cells */
  margin: -1px 0 0 -1px;  /* token-exempt: hairline overdraw — exactly one border-width, clipped by the group's overflow:hidden */
  border-top: var(--bw-1) solid var(--taf-line);
  border-left: var(--bw-1) solid var(--taf-line);
  background: var(--taf-paper);
}
.wprm-recipe-template-taf-2026 .wprm-recipe-details-label {
  display: inline-flex;
  align-items: center;
  gap: var(--space-6, 6px);
  font-size: var(--fs-14);          /* .wprm-recipe-template-taf-2026 .wprm-recipe-details-label — !! DELIBERATE VALUE, DO NOT "FIX" WITHOUT READING: docs/design/css-rationale/wprm-taf2026.css.md#wprm-recipe-template-taf-2026-wprm-recipe-details-label */
  font-weight: var(--w-bold);
  letter-spacing: var(--ls-1px);
  text-transform: uppercase;        /* core's uppercase-faded agrees */
  color: var(--taf-cocoa);
  opacity: var(--o-1);
}
.wprm-recipe-template-taf-2026 .wprm-recipe-block-container-table > span:not(.wprm-recipe-details-label),
.wprm-recipe-template-taf-2026 .wprm-recipe-block-container-table > span:not(.wprm-recipe-details-label) span {
  font-family: var(--ui, 'Poppins', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif);   /* comp UI face */
  font-size: var(--fs-16) !important;  /* V2 comp had 14/600; settled at 16 (the author
                                          2026-08-04). Uniform incl. unit spans. */
  font-weight: var(--w-semibold);
  color: var(--taf-chocolate);
}
/* comp facts show a plain value — the adjustable-servings dotted
   affordance stays clickable, just not underlined here */
.wprm-recipe-template-taf-2026 .wprm-recipe-block-container-table .wprm-recipe-servings-adjustable-tooltip {
  /* the facts cell is a passive label — the number
     still follows the 1x/2x/3x scaler, but no slider popup here */
  border-bottom: none !important;
  pointer-events: none;
  cursor: default;
}
/* Cell glyphs: 14px Phosphor-style strokes as masks, rose (comp). */
.wprm-recipe-template-taf-2026 .wprm-recipe-details-label::before {
  content: "";
  width: 12px;               /* V2 icons 12px */
  height: 12px;
  flex: none;
  background-color: var(--taf-rose);
  -webkit-mask: var(--taf-facts-icon) center / contain no-repeat;
  mask: var(--taf-facts-icon) center / contain no-repeat;
}
.wprm-recipe-template-taf-2026 .wprm-recipe-prep-time-container .wprm-recipe-details-label { --taf-facts-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='14' r='8'/%3E%3Cpath d='M12 14v-4M9 2h6'/%3E%3C/svg%3E"); }
.wprm-recipe-template-taf-2026 .wprm-recipe-cook-time-container .wprm-recipe-details-label { --taf-facts-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3.5' y='4.5' width='17' height='15' rx='2'/%3E%3Cpath d='M3.5 9.5h17M8.5 14h7'/%3E%3C/svg%3E"); }
.wprm-recipe-template-taf-2026 .wprm-recipe-custom-time-container .wprm-recipe-details-label,
.wprm-recipe-template-taf-2026 .wprm-recipe-total-time-container .wprm-recipe-details-label { --taf-facts-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='8.5'/%3E%3Cpath d='M12 7.5V12l3 2'/%3E%3C/svg%3E"); }
.wprm-recipe-template-taf-2026 .wprm-recipe-course-container .wprm-recipe-details-label { --taf-facts-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 3v6.5M4.5 3v6.5a2.5 2.5 0 0 0 5 0V3M7 12v9M16.5 3c-1.6 0-3 2.2-3 5s1.4 5 3 5v8M16.5 3v18'/%3E%3C/svg%3E"); }
.wprm-recipe-template-taf-2026 .wprm-recipe-cuisine-container .wprm-recipe-details-label { --taf-facts-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='8.5'/%3E%3Cpath d='M3.5 12h17M12 3.5c2.3 2.4 2.3 14.6 0 17-2.3-2.4-2.3-14.6 0-17z'/%3E%3C/svg%3E"); }
.wprm-recipe-template-taf-2026 .wprm-recipe-servings-container .wprm-recipe-details-label { --taf-facts-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='8.5' r='3.5'/%3E%3Cpath d='M3 20c.8-3.2 3.1-5 6-5s5.2 1.8 6 5M15.5 5.3a3.5 3.5 0 0 1 0 6.4M17.5 15.3c1.9.7 3.1 2.2 3.5 4.7'/%3E%3C/svg%3E"); }
.wprm-recipe-template-taf-2026 .wprm-recipe-calories-container .wprm-recipe-details-label { --taf-facts-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21c3.9 0 6.5-2.5 6.5-6.2 0-3.9-2.9-6.2-4.4-9.3-1 2-1.6 3-3.6 4.6C8.6 11.7 5.5 13.3 5.5 15.4 5.5 18.7 8.1 21 12 21z'/%3E%3C/svg%3E"); }
/* .wprm-recipe-template-taf-2026 .wprm-recipe-servings-adjus… — rationale: docs/design/css-rationale/wprm-taf2026.css.md#wprm-recipe-template-taf-2026-wprm-recipe-servings-adjustabl */
.wprm-recipe-template-taf-2026 .wprm-recipe-servings-adjustable-tooltip,
.wprm-recipe-template-taf-2026 a.wprm-recipe-servings-link {
  cursor: default !important;
  border-bottom: none !important;
  text-decoration: none !important;
  pointer-events: none !important;
  color: inherit !important;
}
/* V2 casing: "10 servings" (the ".taf-ing-makes b" half of this rule went with the
   retired makes label, 2026-08-04) */
.wprm-recipe-template-taf-2026 .wprm-recipe-servings-unit { text-transform: lowercase; }
/* .wprm-recipe-template-taf-2026 .wprm-recipe-servings — rationale: docs/design/css-rationale/wprm-taf2026.css.md#wprm-recipe-template-taf-2026-wprm-recipe-servings */
.wprm-recipe-template-taf-2026 .wprm-recipe-servings {
  color: var(--taf-chocolate);
  font-weight: var(--w-bold);
}

/* .wprm-recipe-template-taf-2026 > .wprm-template-chic-butto… — !! DELIBERATE VALUE, DO NOT "FIX" WITHOUT READING: docs/design/css-rationale/wprm-taf2026.css.md#wprm-recipe-template-taf-2026-wprm-template-chic-buttons */
.wprm-recipe-template-taf-2026 > .wprm-template-chic-buttons {
  display: flex;
  flex-direction: column;       /* V2 mobile: stacked full-width */
  /* .wprm-recipe-template-taf-2026 > .wprm-template-chic-butto… — !! DELIBERATE VALUE, DO NOT "FIX" WITHOUT READING: docs/design/css-rationale/wprm-taf2026.css.md#wprm-recipe-template-taf-2026-wprm-template-chic-buttons-2 */
  align-items: stretch;
  gap: var(--space-10, 10px);
  margin: var(--space-18) 0 0;
  clear: none;
}
/* core .wprm-container-columns-gutter puts 5px/8px margins on children */
.wprm-recipe-template-taf-2026 .wprm-template-chic-buttons > * { margin: 0 !important; }
.wprm-recipe-template-taf-2026 .wprm-template-chic-buttons .wprm-recipe-link {
  flex: 1 1 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-8);
  min-height: 46px;  /* token-exempt: V2 action height */
  padding: var(--space-12) var(--space-16) !important;
  border-radius: var(--taf-r-pill) !important;
  border-width: var(--bw-15) !important;
  border-style: solid !important;
  font-family: var(--taf-display);
  font-size: var(--fs-13);            /* V2: UPPERCASE 13/700 */
  font-weight: var(--w-bold);
  text-transform: uppercase;
  letter-spacing: var(--ls-08em);
  white-space: nowrap;
  text-decoration: none;
  transition: background var(--taf-speed) var(--ease), color var(--taf-speed) var(--ease), border-color var(--taf-speed) var(--ease);
}
.wprm-recipe-template-taf-2026 .wprm-template-chic-buttons .wprm-recipe-print {
  background-color: var(--taf-rose) !important;
  border-color: var(--taf-rose) !important;
  color: var(--color-on-accent) !important;
}
.wprm-recipe-template-taf-2026 .wprm-template-chic-buttons .wprm-recipe-print:hover,
.wprm-recipe-template-taf-2026 .wprm-template-chic-buttons .wprm-recipe-print:focus-visible {
  background-color: var(--taf-rose-deep) !important;
  border-color: var(--taf-rose-deep) !important;
}
.wprm-recipe-template-taf-2026 .wprm-template-chic-buttons .wprm-recipe-pin,
.wprm-recipe-template-taf-2026 .wprm-template-chic-buttons a[class*="wprm-recipe-add-to-collection"] {
  background-color: var(--taf-paper) !important;   /* README: white fill, rose border, rose-deep text */
  border-color: var(--taf-rose) !important;
  color: var(--taf-rose-deep) !important;
}
.wprm-recipe-template-taf-2026 .wprm-template-chic-buttons .wprm-recipe-pin:hover,
.wprm-recipe-template-taf-2026 .wprm-template-chic-buttons .wprm-recipe-pin:focus-visible,
.wprm-recipe-template-taf-2026 .wprm-template-chic-buttons a[class*="wprm-recipe-add-to-collection"]:hover {
  background-color: var(--taf-rose-tint) !important;   /* README hover */
  border-color: var(--taf-rose) !important;
  color: var(--taf-rose-deep) !important;
}
.wprm-recipe-template-taf-2026 .wprm-template-chic-buttons .wprm-recipe-icon {
  margin: 0;
  display: inline-flex;
}
.wprm-recipe-template-taf-2026 .wprm-template-chic-buttons .wprm-recipe-icon svg {
  width: 17px;    /* V2 action icons 17px */
  height: 17px;
  display: block;
}
.wprm-recipe-template-taf-2026 .wprm-template-chic-buttons .wprm-recipe-icon svg [fill]:not([fill="none"]) { fill: currentColor; }
.wprm-recipe-template-taf-2026 .wprm-template-chic-buttons .wprm-recipe-icon svg [stroke]:not([stroke="none"]) { stroke: currentColor; }

/* ---- 8. Section headers (+ unit/servings controls in the
   ingredients header). Serif, sentence case, controls right. ---- */
/* V2: every section heading carries a trailing rule filling the line */
.wprm-recipe-template-taf-2026 .wprm-recipe-header::after {
  content: "";
  flex: 1;
  align-self: center;
  border-top: var(--bw-1) solid #DFC3D2;  /* token-exempt: V2 section-rule constant */
  margin-left: var(--space-6, 6px);
}
.wprm-recipe-template-taf-2026 .wprm-recipe-ingredients-header::after {
  grid-column: 2 / -1;
  grid-row: 1;
}
.wprm-recipe-template-taf-2026 .wprm-recipe-header {
  font-family: var(--taf-display) !important;
  font-weight: var(--w-semibold) !important;
  font-size: var(--fs-20);   /* V2: h3 20px */
  line-height: var(--lh-115);  /* comp heading leading */
  letter-spacing: var(--ls--001em);
  text-transform: none !important;  /* overrides .wprm-block-text-uppercase */
  color: var(--taf-chocolate);
  margin: 0 0 var(--space-8) !important;
  padding: 0 !important;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--space-8) var(--space-8);
}
/* .wprm-recipe-template-taf-2026 .wprm-unit-conversion-conta… — !! DELIBERATE VALUE, DO NOT "FIX" WITHOUT READING: docs/design/css-rationale/wprm-taf2026.css.md#wprm-recipe-template-taf-2026-wprm-unit-conversion-container */
.wprm-recipe-template-taf-2026 .wprm-unit-conversion-container,
.wprm-recipe-template-taf-2026 .wprm-toggle-buttons-container {
  font-family: var(--ui, 'Poppins', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif);   /* comp UI face */
  font-size: var(--fs-13);
  font-weight: var(--w-bold);
  letter-spacing: 0;
}
.wprm-recipe-template-taf-2026 .wprm-unit-conversion-container {
  display: inline-flex;
  margin-left: auto;  /* comp: toggles sit at the panel's right edge */
  overflow: hidden;
  background-color: var(--taf-paper) !important;
  border: var(--bw-15) solid var(--taf-rose) !important;   /* README: 1.5px rose segmented */
  color: var(--taf-rose-deep) !important;
  border-radius: var(--taf-r-pill) !important;
}
.wprm-recipe-template-taf-2026 button.wprm-unit-conversion {
  background-color: var(--taf-paper) !important;
  color: var(--taf-rose-deep) !important;    /* README idle: white fill, rose-deep text */
  border: none !important;
  padding: var(--space-8) var(--space-13, 13px);   /* README 8/13 */
  cursor: pointer;
  font: inherit;
  font-family: var(--ui, 'Poppins', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif);   /* comp UI face */
  font-size: var(--fs-13);
  font-weight: var(--w-bold);
}
.wprm-recipe-template-taf-2026 button.wprm-unit-conversion.wprmpuc-active {
  background-color: var(--taf-rose) !important;   /* comp: active unit is rose; the 1x scaler stays chocolate */
  color: var(--color-on-accent, #FFFFFF) !important;
}
/* Core toggle group (1x/2x/3x + media toggle) is var-driven; the
   accent arrives as an inline custom property, hence !important. */
/* .wprm-recipe-template-taf-2026 .wprm-recipe-ingredients-he… — rationale: docs/design/css-rationale/wprm-taf2026.css.md#wprm-recipe-template-taf-2026-wprm-recipe-ingredients-header */
.wprm-recipe-template-taf-2026 .wprm-recipe-ingredients-header {
  /* .wprm-recipe-template-taf-2026 .wprm-recipe-ingredients-he… — rationale: docs/design/css-rationale/wprm-taf2026.css.md#wprm-recipe-template-taf-2026-wprm-recipe-ingredients-header-2 */
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: var(--space-12) var(--space-10, 10px);
}
.wprm-recipe-template-taf-2026 .wprm-recipe-ingredients-header .wprm-recipe-adjustable-servings-container {
  grid-column: 1;
  grid-row: 2;
  justify-self: start;
}
/* .wprm-recipe-template-taf-2026 .wprm-recipe-ingredients-he… — rationale: docs/design/css-rationale/wprm-taf2026.css.md#wprm-recipe-template-taf-2026-wprm-recipe-ingredients-header-3 */
.wprm-recipe-template-taf-2026 .wprm-recipe-ingredients-header .wprm-unit-conversion-container {
  grid-column: 2;
  grid-row: 2;
  justify-self: start;
  margin-left: 0;   /* kills the `margin-left:auto` that pinned it to the right edge */
}
.wprm-recipe-template-taf-2026 .wprm-toggle-buttons-container {
  --wprm-toggle-button-accent: var(--taf-chocolate) !important;
  --wprm-toggle-button-background: var(--taf-paper) !important;
  --wprm-toggle-button-radius: var(--taf-r-pill) !important;
  border-color: var(--taf-rose) !important;  /* brand pink control chrome */
}
.wprm-recipe-template-taf-2026 .wprm-toggle-buttons-container button.wprm-toggle:not(.wprm-toggle-active) {
  color: var(--taf-rose-deep) !important;  /* idle segments read pink, not cocoa */
}
/* .wprm-recipe-template-taf-2026 .wprm-toggle-buttons-contai… — !! DELIBERATE VALUE, DO NOT "FIX" WITHOUT READING: docs/design/css-rationale/wprm-taf2026.css.md#wprm-recipe-template-taf-2026-wprm-toggle-buttons-container- */
.wprm-recipe-template-taf-2026 .wprm-toggle-buttons-container button.wprm-toggle {
  border-left: none !important;
  border-right: none !important;
}

/* V2: NO cream ingredients panel — the list sits on the card white
   (the V1 tinted panel is retired). */

/* .wprm-recipe-template-taf-2026 .wprm-recipe-ingredients-co… — rationale: docs/design/css-rationale/wprm-taf2026.css.md#wprm-recipe-template-taf-2026-wprm-recipe-ingredients-contai */

/* .wprm-recipe-template-taf-2026 .wprm-recipe-ingredients-co… — rationale: docs/design/css-rationale/wprm-taf2026.css.md#wprm-recipe-template-taf-2026-wprm-recipe-ingredients-contai-2 */
.wprm-recipe-template-taf-2026 .wprm-recipe-ingredients-container,
.wprm-recipe-template-taf-2026 .wprm-recipe-equipment-container,
.wprm-recipe-template-taf-2026 .wprm-recipe-instructions-container,
.wprm-recipe-template-taf-2026 .wprm-recipe-video-container,
.wprm-recipe-template-taf-2026 .wprm-recipe-notes-container,
.wprm-recipe-template-taf-2026 .wprm-nutrition-label-shortcode-container {
  margin: var(--space-20) 0 0;  /* comp: section h3 gap 20px */
}
/* comp: the ingredients panel sits 24-26px under the actions row */
.wprm-recipe-template-taf-2026 > .wprm-recipe-ingredients-container { margin-top: var(--space-24); }
.wprm-recipe-template-taf-2026 ul.wprm-recipe-ingredients,
.wprm-recipe-template-taf-2026 ul.wprm-recipe-equipment {
  list-style: none;
  margin: 0 !important;
  padding: 0 !important;
}
.wprm-recipe-template-taf-2026 li.wprm-recipe-ingredient,
.wprm-recipe-template-taf-2026 li.wprm-recipe-equipment-item {
  position: relative;
  /* comp: li spans the full list width (padding-left 32, not margin),
     so the dashed border runs under the checkbox too */
  margin: 0 !important;
  padding: var(--space-6, 6px) 0 var(--space-6, 6px) var(--space-32) !important;  /* V2: pad 6, no separators */
  font-family: var(--ui, 'Poppins', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif) !important;   /* comp UI face (ingredient rows render Poppins in the comp) */
  font-size: var(--fs-18) !important;      /* was 15px — card prose is 18px now */
  line-height: var(--lh-15) !important;    /* README 1.5 */
}

/* .wprm-recipe-template-taf-2026 li .wprm-checkbox-container — rationale: docs/design/css-rationale/wprm-taf2026.css.md#wprm-recipe-template-taf-2026-li-wprm-checkbox-container */
.wprm-recipe-template-taf-2026 li .wprm-checkbox-container { top: 10px; left: 2px; }  /* re-centered for the 10px row pad (15px/1.65 line: center 22.4 → 24px box top 10) */
/* .wprm-recipe-template-taf-2026 .wprm-checkbox-container la… — rationale: docs/design/css-rationale/wprm-taf2026.css.md#wprm-recipe-template-taf-2026-wprm-checkbox-container-label- */
.wprm-recipe-template-taf-2026 .wprm-checkbox-container label.wprm-checkbox-label {
  padding: var(--space-10, 10px) var(--space-10, 10px) var(--space-10, 10px) var(--space-32, 32px);
}
/* .wprm-recipe-template-taf-2026 .wprm-checkbox-container la… — rationale: docs/design/css-rationale/wprm-taf2026.css.md#wprm-recipe-template-taf-2026-wprm-checkbox-container-label--2 */
.wprm-recipe-template-taf-2026 .wprm-checkbox-container label.wprm-checkbox-label::before {
  top: 10px !important;  /* token-exempt: empirical optical alignment for the V2 6px row pad — visually re-verified */
}
.wprm-recipe-template-taf-2026 .wprm-checkbox-container label.wprm-checkbox-label::after {
  margin-top: 10px !important;  /* token-exempt: rides the box offset */
}
.wprm-recipe-template-taf-2026 li.wprm-checkbox-is-checked { color: var(--taf-cocoa); }
/* README checked state: box fills rose, white check */
.wprm-recipe-template-taf-2026 .wprm-checkbox-container input[type="checkbox"]:checked + label::before {
  background: var(--taf-rose) !important;
  border-color: var(--taf-rose) !important;
}
.wprm-recipe-template-taf-2026 .wprm-checkbox-container input[type="checkbox"]:focus + label::before {
  outline: var(--focus-ring) solid var(--taf-rose) !important;  /* */
  outline-offset: 1px;
}
/* Amounts are NOT bold (overriding the V2 comp's "bold amount,
   regular name"). The whole ingredient row reads at one weight now. */
.wprm-recipe-template-taf-2026 .wprm-recipe-ingredient-amount,
.wprm-recipe-template-taf-2026 .wprm-recipe-ingredient-unit {
  font-weight: var(--w-regular);
}
/* .wprm-recipe-template-taf-2026 .wprm-recipe-ingredient-not… — rationale: docs/design/css-rationale/wprm-taf2026.css.md#wprm-recipe-template-taf-2026-wprm-recipe-ingredient-notes */
.wprm-recipe-template-taf-2026 .wprm-recipe-ingredient-notes {
  color: var(--taf-cocoa);
  font-size: var(--fs-16);
}
/* .wprm-recipe-template-taf-2026 .wprm-recipe-ingredients-co… — rationale: docs/design/css-rationale/wprm-taf2026.css.md#wprm-recipe-template-taf-2026-wprm-recipe-ingredients-contai-3 */
.wprm-recipe-template-taf-2026 .wprm-recipe-ingredients-container .wprm-recipe-ingredient-notes-faded,
.wprm-recipe-template-taf-2026 .wprm-recipe-equipment-container .wprm-recipe-equipment-notes-faded {
  opacity: var(--o-1, 1);
  color: var(--taf-cocoa);
}
/* .wprm-recipe-template-taf-2026 .wprm-block-text-light — rationale: docs/design/css-rationale/wprm-taf2026.css.md#wprm-recipe-template-taf-2026-wprm-block-text-light */
.wprm-recipe-template-taf-2026 .wprm-block-text-light {
  font-weight: var(--w-regular, 400) !important;
}
/* .wprm-recipe-template-taf-2026 .wprm-recipe-group-name — !! DELIBERATE VALUE, DO NOT "FIX" WITHOUT READING: docs/design/css-rationale/wprm-taf2026.css.md#wprm-recipe-template-taf-2026-wprm-recipe-group-name */
.wprm-recipe-template-taf-2026 .wprm-recipe-group-name {
  font-size: var(--fs-14);
  text-transform: uppercase;
  letter-spacing: var(--ls-eyebrow);
  color: var(--taf-link);
  margin: var(--space-16) 0 var(--space-2) !important;
  padding: 0 !important;
}

/* .wprm-recipe-template-taf-2026 ul.wprm-recipe-instructions — rationale: docs/design/css-rationale/wprm-taf2026.css.md#wprm-recipe-template-taf-2026-ul-wprm-recipe-instructions */
.wprm-recipe-template-taf-2026 ul.wprm-recipe-instructions {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  counter-reset: taf-step;
}
.wprm-recipe-template-taf-2026 li.wprm-recipe-instruction {
  list-style: none !important;
  line-height: var(--lh-16) !important;  /* README step text 1.6 (generic li rule pins 1.65) */
  counter-increment: taf-step;
  position: relative;
  margin: 0 !important;
  padding: var(--space-8) 0 var(--space-8) var(--space-42, 42px) !important;  /* V2: no separators; 28px badge + 14 gap */
}
.wprm-recipe-template-taf-2026 li.wprm-recipe-instruction::before {
  content: counter(taf-step);
  position: absolute;
  left: 0;
  top: var(--space-8);
  width: 28px;                       /* V2: 28px cream CIRCLE */
  height: 28px;
  border-radius: var(--taf-r-round);
  background: var(--taf-cream);
  color: var(--taf-chocolate);
  font-family: var(--taf-sans);
  font-size: var(--fs-13);
  font-weight: var(--w-bold);
  display: flex;
  align-items: center;
  justify-content: center;
}
/* V2: the unnumbered glaze group's badge holds a rose drop icon. */
.wprm-recipe-template-taf-2026 .wprm-recipe-instruction-group:last-of-type ul.wprm-recipe-instructions li.wprm-recipe-instruction:only-child::before {
  content: "";
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2.7c3.4 4.1 6.5 7.6 6.5 11.5a6.5 6.5 0 1 1-13 0C5.5 10.3 8.6 6.8 12 2.7z'/%3E%3C/svg%3E") center / 14px no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2.7c3.4 4.1 6.5 7.6 6.5 11.5a6.5 6.5 0 1 1-13 0C5.5 10.3 8.6 6.8 12 2.7z'/%3E%3C/svg%3E") center / 14px no-repeat;
  background: var(--taf-rose) !important;
  color: transparent;
}

/* .taf-nut-per — rationale: docs/design/css-rationale/wprm-taf2026.css.md#taf-nut-per */
/* JS-injected panel helpers */
.taf-nut-per {
  margin-left: auto;
  font-size: var(--fs-13);
  font-weight: var(--w-regular);
  letter-spacing: 0;
  text-transform: none;
  color: var(--taf-cocoa);   /* README: "Per slice, estimated" right of the Nutrition head */
}
.taf-ing-makes {
  width: 100%;
  text-align: right;
  font-family: var(--ui, 'Poppins', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif);   /* comp UI face */
  font-size: var(--fs-14);   /* README */
  color: var(--taf-cocoa);
}
.taf-ing-makes b { color: var(--taf-chocolate); }
.taf-ing-note {
  display: block;
  font-size: var(--fs-13);
  color: var(--taf-cocoa);
  margin: var(--space-6, 6px) 0 var(--space-2);   /* README: plain 13px label, no rule */
}
/* follow-up paragraphs inside a step: same 16px chocolate as the main
   step text — only the block layout + spacing remain ours */
.wprm-recipe-template-taf-2026 .wprm-recipe-instruction-text > span ~ span,
.wprm-recipe-template-taf-2026 .wprm-recipe-instruction-text > p ~ p {
  /* general sibling: WPRM inserts a zero-height div between the blocks */
  display: block;
  margin-top: var(--space-6, 6px);
}
.wprm-recipe-template-taf-2026 .wprm-recipe-instruction-image { margin-top: var(--space-8); }
.wprm-recipe-template-taf-2026 .wprm-recipe-instruction-image img {
  display: block;
  max-width: 100%;
  height: auto;
  border-radius: var(--taf-r) !important;
}

/* .wprm-recipe-template-taf-2026 > .wprm-recipe-video-contai… — !! DELIBERATE VALUE, DO NOT "FIX" WITHOUT READING: docs/design/css-rationale/wprm-taf2026.css.md#wprm-recipe-template-taf-2026-wprm-recipe-video-container-no */
.wprm-recipe-template-taf-2026 > .wprm-recipe-video-container:not(:has(iframe, video, .rll-youtube-player, img)) { display: none !important; }
.wprm-recipe-template-taf-2026 > .wprm-recipe-notes-container:not(:has(.wprm-recipe-notes li, .wprm-recipe-notes p, .wprm-recipe-notes ul)) { display: none !important; }

/* ---- 11. Video: rounded media box (comp 16:9, radius 8) ---- */
.wprm-recipe-template-taf-2026 .wprm-recipe-video iframe,
.wprm-recipe-template-taf-2026 .wprm-recipe-video .rll-youtube-player { max-width: 100%; }
.wprm-recipe-template-taf-2026 .wprm-recipe-video {
  border-radius: var(--taf-r);
  overflow: hidden;
}
/* V2 §7: scrimmed poster + 64px rose
   play circle over Rocket's facade. The mobile double-tap is the
   facade's own autoplay limitation, accepted. */
.wprm-recipe-template-taf-2026 .rll-youtube-player {
  position: relative;
  overflow: hidden;
  border-radius: var(--taf-r);
}
.wprm-recipe-template-taf-2026 .rll-youtube-player img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.wprm-recipe-template-taf-2026 .rll-youtube-player::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(51, 32, 43, .22);  /* token-exempt: V2 video scrim */
  pointer-events: none;
  z-index: 1;
}
.wprm-recipe-template-taf-2026 .rll-youtube-player button.play {
  background: none !important;
  position: absolute;
  inset: 0;
  z-index: 2;  /* token-exempt: above the scrim, local stack */
  cursor: pointer;
}
.wprm-recipe-template-taf-2026 .rll-youtube-player button.play::before {
  content: "";
  position: absolute;
  top: 50%; left: 50%;
  width: 64px; height: 64px;  /* token-exempt: V2 64px play circle */
  margin: -32px 0 0 -32px;    /* token-exempt: centering offset */
  border-radius: var(--taf-r-round);
  background: var(--taf-rose);
  box-shadow: 0 10px 30px -8px rgba(51, 32, 43, .5);  /* token-exempt: V2 play shadow */
  transition: background var(--taf-speed) var(--ease);
}
.wprm-recipe-template-taf-2026 .rll-youtube-player button.play::after {
  content: "";
  position: absolute;
  top: 50%; left: 50%;
  margin: -13px 0 0 -8px;     /* token-exempt: optical centering */
  border-style: solid;
  border-width: 13px 0 13px 22px;  /* token-exempt: V2 26px play glyph */
  border-color: transparent transparent transparent var(--color-on-accent, #FFFFFF);
}
.wprm-recipe-template-taf-2026 .rll-youtube-player button.play:hover::before,
.wprm-recipe-template-taf-2026 .rll-youtube-player button.play:focus-visible::before {
  background: var(--taf-rose-deep);
}

/* ---- 12. Notes: quiet cream callout ---- */
.wprm-recipe-template-taf-2026 .wprm-recipe-notes {
  background: var(--taf-cream);
  border: none;                 /* V2: plain cream panel */
  border-radius: var(--taf-r);
  padding: var(--space-16) var(--space-18);
  font-size: var(--fs-18);      /* was 15px — card prose is 18px now */
  line-height: var(--lh-16);
}
/* .wprm-recipe-template-taf-2026 .wprm-recipe-notes ul — !! DELIBERATE VALUE, DO NOT "FIX" WITHOUT READING: docs/design/css-rationale/wprm-taf2026.css.md#wprm-recipe-template-taf-2026-wprm-recipe-notes-ul */
.wprm-recipe-template-taf-2026 .wprm-recipe-notes ul { list-style: disc !important; }
/* WP content defaults drag 30px list padding + 32px margins into the
   callout (the cream box ran ~50px past the last bullet). */
.wprm-recipe-template-taf-2026 .wprm-recipe-notes ul {
  margin: 0 !important;
  padding: 0 0 0 var(--space-20) !important;
}
.wprm-recipe-template-taf-2026 .wprm-recipe-notes li {
  margin: 0 0 var(--space-8) !important;
  padding: 0 !important;   /* the 24px was room for the retired info glyph; the bullet
                              sits in the ul's own 20px padding like any list */
}
.wprm-recipe-template-taf-2026 .wprm-recipe-notes li:last-child { margin-bottom: 0 !important; }
.wprm-recipe-template-taf-2026 .wprm-recipe-notes p { margin: 0 0 var(--space-6, 6px); }
.wprm-recipe-template-taf-2026 .wprm-recipe-notes p:last-child { margin-bottom: 0; }

/* .wprm-recipe-template-taf-2026 .wprm-nutrition-label-conta… — rationale: docs/design/css-rationale/wprm-taf2026.css.md#wprm-recipe-template-taf-2026-wprm-nutrition-label-container */
.wprm-recipe-template-taf-2026 .wprm-nutrition-label-container-grouped {
  display: flex;             /* V2: one wrapped inline line of pairs */
  flex-wrap: wrap;
  gap: var(--space-4) var(--space-18);
  font-family: var(--ui, 'Poppins', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif);
  font-size: var(--fs-14);
}
.wprm-recipe-template-taf-2026 .wprm-nutrition-label-text-nutrition-container {
  display: inline-flex !important;   /* V2 pair: nowrap unit */
  align-items: baseline;
  gap: var(--space-4);
  width: auto !important;
  flex-basis: auto !important;
  padding: 0;
  border-bottom: none;
  white-space: nowrap;
}
.wprm-recipe-template-taf-2026 .wprm-nutrition-label-text-nutrition-label {
  color: var(--taf-chocolate) !important;   /* V2: bold labels */
  font-weight: var(--w-bold) !important;
}
.wprm-recipe-template-taf-2026 .wprm-nutrition-label-text-nutrition-value,
.wprm-recipe-template-taf-2026 .wprm-nutrition-label-text-nutrition-unit {
  color: var(--taf-cocoa) !important;   /* V2: regular values after bold labels */
  font-weight: var(--w-regular);
  white-space: nowrap;
}
/* JS-injected V2 disclaimer */
.taf-nut-note {
  display: block;
  width: 100%;
  text-align: center;
  font-style: italic;
  font-size: var(--fs-12);
  color: var(--taf-cocoa);
  margin-top: var(--space-8);
}

/* ---- 14. Rating CTA (the template's call-to-action block,
   re-ordered to the card foot, rose-tint per design). Colors are
   inline from shortcode attrs → !important. ---- */
.wprm-recipe-template-taf-2026 > .wprm-call-to-action {
  margin: var(--space-20) 0 0 !important;  /* comp rate-cta margin-top */
  padding: var(--space-24) var(--space-20) !important;  /* comp band pad 24/20/26 */
  background-color: var(--taf-rose-tint) !important;
  color: var(--taf-chocolate) !important;
  border-radius: var(--taf-r-sm) !important;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-4);
}
.wprm-recipe-template-taf-2026 .wprm-call-to-action-icon svg {
  width: 22px;
  height: 22px;
  display: block;
}
.wprm-recipe-template-taf-2026 .wprm-call-to-action-icon svg [fill]:not([fill="none"]) { fill: var(--taf-rose); }
.wprm-recipe-template-taf-2026 .wprm-call-to-action-icon svg [stroke]:not([stroke="none"]) { stroke: var(--taf-rose); }
.wprm-recipe-template-taf-2026 .wprm-call-to-action-text-container { display: block; }
.wprm-recipe-template-taf-2026 .wprm-call-to-action-header {
  /* token-frozen: must out-order WP core
     T6 must NOT remap these values to a scale — tokenize at parity only. */
  display: block;
  color: var(--taf-chocolate) !important;
  font-weight: var(--w-bold);
  font-size: var(--fs-16) !important;  /* core scales it to 1.3em otherwise */
}
.wprm-recipe-template-taf-2026 .wprm-call-to-action-text {
  font-size: var(--fs-15);
  color: var(--taf-chocolate);
}
.wprm-recipe-template-taf-2026 .wprm-call-to-action a {
  /* .wprm-recipe-template-taf-2026 .wprm-call-to-action a — rationale: docs/design/css-rationale/wprm-taf2026.css.md#wprm-recipe-template-taf-2026-wprm-call-to-action-a */
  color: var(--taf-rose-deep) !important;
  font-weight: var(--w-bold);
}

/* ---- 15. Focus + motion + desktop (728px content column) ---- */
.wprm-recipe-template-taf-2026 a:focus-visible,
.wprm-recipe-template-taf-2026 button:focus-visible,
.wprm-recipe-template-taf-2026 [role="button"]:focus-visible {
  /* card focus rings are brand pink (rose = 4.5:1 on
     white, clears the 3:1 non-text floor; sitewide deep-saffron stands
     outside the card) */
  outline: var(--focus-ring) solid var(--taf-rose);
  outline-offset: 2px;
}
/* .wprm-recipe-template-taf-2026 .wprm-rating-star:focus-vis… — rationale: docs/design/css-rationale/wprm-taf2026.css.md#wprm-recipe-template-taf-2026-wprm-rating-star-focus-visible */
.wprm-recipe-template-taf-2026 .wprm-rating-star:focus-visible,
.wprm-recipe-template-taf-2026 .taf-band__star:focus-visible {
  outline: var(--focus-ring) solid var(--taf-focus-ring-color);
  outline-offset: 2px;
}
@media (prefers-reduced-motion: reduce) {
  .wprm-recipe-template-taf-2026 *,
  .wprm-recipe-template-taf-2026 *::before,
  .wprm-recipe-template-taf-2026 *::after {
    transition: none !important;
    animation: none !important;
  }
}
/* @media (min-width: 700px) — rationale: docs/design/css-rationale/wprm-taf2026.css.md#media-min-width-700px */
@media (min-width: 700px) {
  .wprm-recipe-template-taf-2026 {
    padding: var(--space-32) var(--space-32) var(--space-40);  /* comp 30/34/38 snapped */
    display: grid;
    /* token-exempt: V2 header photo column 200px square */
    grid-template-columns: minmax(0, 1fr) 200px;
    /* .wprm-recipe-template-taf-2026 — rationale: docs/design/css-rationale/wprm-taf2026.css.md#wprm-recipe-template-taf-2026-2 */
    grid-template-rows: auto auto 1fr;
    gap: 0 var(--space-24);   /* .wprm-recipe-template-taf-2026 — rationale: docs/design/css-rationale/wprm-taf2026.css.md#wprm-recipe-template-taf-2026-3 */
  }
  .wprm-recipe-template-taf-2026 > * { grid-column: 1 / -1; }
  .wprm-recipe-template-taf-2026 > .wprm-recipe-name,
  .wprm-recipe-template-taf-2026 > .wprm-recipe-author,
  .wprm-recipe-template-taf-2026 > .wprm-recipe-rating,
  .wprm-recipe-template-taf-2026 > .wprm-recipe-summary { grid-column: 1; }
  .wprm-recipe-template-taf-2026 > .wprm-container-float-right {
    grid-column: 2;
    grid-row: 1 / 4;      /* three header rows: title / byline+stars / description */
    align-self: start;
    order: 6;
    width: auto;
    margin: 0;            /* top edge aligns with the title */
  }
  /* the photo's ad-adjacency pair follows it to 6 here (base rule says 1,
     matching the phone photo above; same-specificity, later block wins) */
  .wprm-recipe-template-taf-2026 > .wprm-container-float-right + :is([class*="adthrive"], [id*="AdThrive"]),
  .wprm-recipe-template-taf-2026 > .wprm-container-float-right + :is([class*="adthrive"], [id*="AdThrive"]) + :is([class*="adthrive"], [id*="AdThrive"]) { order: 6; }
  .wprm-recipe-template-taf-2026 > .wprm-recipe-name,
  .wprm-recipe-template-taf-2026 > .wprm-recipe-author { text-align: left; }
  .wprm-recipe-template-taf-2026 > .wprm-recipe-rating { justify-content: flex-start; }
  .wprm-recipe-template-taf-2026 > .wprm-recipe-name { margin-top: 0 !important; }
  .wprm-recipe-template-taf-2026 .wprm-recipe-name { font-size: var(--fs-30); }  /* V2 desktop title */
  /* .wprm-recipe-template-taf-2026 .wprm-recipe-header — !! DELIBERATE VALUE, DO NOT "FIX" WITHOUT READING: docs/design/css-rationale/wprm-taf2026.css.md#wprm-recipe-template-taf-2026-wprm-recipe-header */
  .wprm-recipe-template-taf-2026 .wprm-recipe-header { font-size: var(--fs-22); }
  .wprm-recipe-template-taf-2026 > .wprm-recipe-times-container {
    /* one row, N equal columns for any cell count (auto-fit can't:
       a 0-min minmax collapses it to a single track) */
    grid-template-columns: none;
    grid-auto-flow: column;
    grid-auto-columns: minmax(0, 1fr);
  }
  .wprm-recipe-template-taf-2026 .wprm-recipe-custom-time-container { grid-column: auto; }
  .wprm-recipe-template-taf-2026 > .wprm-container-columns-spaced {
    grid-template-columns: repeat(2, minmax(0, 1fr));  /* category + yield share the row */
  }
  .wprm-recipe-template-taf-2026 .wprm-nutrition-label-container-grouped {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .wprm-recipe-template-taf-2026 > .wprm-template-chic-buttons { flex-direction: row; max-width: none; }  /* V2 desktop: split row */
}

/* Desktop layer (≥900): the tablet structure holds; desktop-only touches. */
@media (min-width: 900px) {
  .wprm-recipe-template-taf-2026 { margin-top: var(--space-32); }
}

/* .wprm-recipe-template-taf-2026 .wprm-call-to-action, .wprm… — rationale: docs/design/css-rationale/wprm-taf2026.css.md#wprm-recipe-template-taf-2026-wprm-call-to-action-wprm-call- */
/* .wprm-recipe-template-taf-2026 .wprm-call-to-action, .wprm… — rationale: docs/design/css-rationale/wprm-taf2026.css.md#wprm-recipe-template-taf-2026-wprm-call-to-action-wprm-call--2 */
.wprm-recipe-template-taf-2026 .wprm-call-to-action,
.wprm-call-to-action.wprm-call-to-action-simple {
  /* .wprm-recipe-template-taf-2026 .wprm-call-to-action, .wprm… — rationale: docs/design/css-rationale/wprm-taf2026.css.md#wprm-recipe-template-taf-2026-wprm-call-to-action-wprm-call--3 */
  background-color: var(--taf-cream) !important;
  color: var(--taf-chocolate) !important;
  border-radius: var(--taf-r) !important;
  border-top: 0 !important;
  padding: var(--space-24) !important;
}
/* .wprm-recipe-template-taf-2026 > .wprm-call-to-action — rationale: docs/design/css-rationale/wprm-taf2026.css.md#wprm-recipe-template-taf-2026-wprm-call-to-action */
.wprm-recipe-template-taf-2026 > .wprm-call-to-action {
  margin-left: calc(-1 * var(--space-20)) !important;
  margin-right: calc(-1 * var(--space-20)) !important;
  /* .wprm-recipe-template-taf-2026 > .wprm-call-to-action — rationale: docs/design/css-rationale/wprm-taf2026.css.md#wprm-recipe-template-taf-2026-wprm-call-to-action-2 */
  margin-bottom: calc(-1 * var(--space-32)) !important;
  border-radius: 0 0 var(--taf-r) var(--taf-r) !important;
}
@media (min-width: 700px) {
  .wprm-recipe-template-taf-2026 > .wprm-call-to-action {
    margin-left: calc(-1 * var(--space-32)) !important;
    margin-right: calc(-1 * var(--space-32)) !important;
    margin-bottom: calc(-1 * var(--space-40)) !important;
  }
}
.wprm-recipe-template-taf-2026 .wprm-call-to-action > :not(.taf-band):not(a) {
  color: var(--taf-chocolate) !important;  /* stock CTA copy on cream; band styles its own */
}
.wprm-recipe-template-taf-2026 .wprm-call-to-action a {
  color: var(--taf-rose-deep) !important; /* 5.42:1 on cream */
}
/* Band internals (JS-injected). Stars: 26px glyphs (band tier) on 44px targets. */
/* .taf-band — rationale: docs/design/css-rationale/wprm-taf2026.css.md#taf-band */
.taf-band {
  width: 100%; text-align: left;
  display: flex; align-items: center; justify-content: space-between;
  gap: var(--space-16);
  /* .taf-band — !! DELIBERATE VALUE, DO NOT "FIX" WITHOUT READING: docs/design/css-rationale/wprm-taf2026.css.md#taf-band-2 */
}
.taf-band__text { flex: 1 1 260px; min-width: 0; }
@media (max-width: 559px) {
  /* Phone centres the whole ask — same call as the
     sign-off band. Both children take a full row so the flex centring
     applies to each, not to a leftover gap between them. */
  .taf-band        { flex-direction: column; text-align: center; justify-content: center; }
  .taf-band__text  { flex: 0 0 auto; width: 100%; }
  .taf-band__stars { flex: 0 0 auto; justify-content: center; }
}
/* (V2's 22px rose heart before the heading REMOVED — the approved mock
   shows the plain heading only.) */
/* .wprm-call-to-action p.taf-band__heading — rationale: docs/design/css-rationale/wprm-taf2026.css.md#wprm-call-to-action-p-taf-band-heading */
.wprm-call-to-action p.taf-band__heading {
  font-family: var(--taf-display);
  /* .wprm-call-to-action p.taf-band__heading — rationale: docs/design/css-rationale/wprm-taf2026.css.md#wprm-call-to-action-p-taf-band-heading-2 */
  font-size: var(--fs-30) !important;
  font-weight: var(--w-bold);
  color: var(--taf-chocolate) !important;
  line-height: var(--lh-display) !important;
  margin: 0;
}
.taf-band__stars { display: flex; justify-content: flex-end; gap: var(--space-2); margin: 0; flex: none; }  /* comp 2026-08-03 */
.taf-band__star,
.taf-band__star:hover,
.taf-band__star:focus,
.taf-band__star:active {
  background: none !important;   /* same Kadence button:focus leak guard */
}
.taf-band__star {
  /* README: 30px glyphs, padding 2px 4px; ::after keeps touch ≥44 */
  border: none;
  cursor: pointer;
  padding: var(--space-2) var(--space-4);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  position: relative;
}
.taf-band__star::after {
  content: "";
  position: absolute;
  /* token-exempt: invisible hit-area expansion to 44px. Box = 26px glyph +
     2px/4px padding = 34×30; -7/-5 tops it up to 44×44 (the old -5/-3 was
     tuned for 30px glyphs and left 40×40). */
  inset: -7px -5px;
}
.taf-band__star svg { width: var(--star-band, 26px); height: var(--star-band, 26px); display: block; }  /* D6-A band tier */
/* Band anatomy: SAFFRON OUTLINE empties (the mock is the spec),
   saffron fill + deep-saffron stroke when lit. */
/* .taf-band__star svg path — !! DELIBERATE VALUE, DO NOT "FIX" WITHOUT READING: docs/design/css-rationale/wprm-taf2026.css.md#taf-band-star-svg-path */
/* .taf-band__star svg path — rationale: docs/design/css-rationale/wprm-taf2026.css.md#taf-band-star-svg-path-2 */
.taf-band__star svg path { stroke: var(--taf-saffron-deep); fill: var(--taf-saffron); stroke-width: 2; stroke-linejoin: round; }
.taf-band__star.is-lit svg path { fill: var(--taf-saffron); stroke: var(--taf-saffron-deep); }
/* .taf-band__stars:hover .taf-band__star svg path, .taf-band… — rationale: docs/design/css-rationale/wprm-taf2026.css.md#taf-band-stars-hover-taf-band-star-svg-path-taf-band-stars-f */
.taf-band__stars:hover .taf-band__star svg path,
.taf-band__stars:focus-within .taf-band__star svg path {
  fill: var(--taf-line); stroke: var(--taf-line);
}
.taf-band__stars:hover .taf-band__star.is-lit svg path,
.taf-band__stars:focus-within .taf-band__star.is-lit svg path {
  fill: var(--taf-saffron); stroke: var(--taf-saffron-deep);
}
.taf-band__star.is-filled svg path { fill: var(--taf-saffron); stroke: var(--taf-saffron-deep); }
/* @media (hover: hover) and (pointer: fine) — rationale: docs/design/css-rationale/wprm-taf2026.css.md#media-hover-hover-and-pointer-fine */
@media (hover: hover) and (pointer: fine) {
  .taf-band__star svg { transition: transform var(--speed, .15s) var(--ease, ease); }
  .taf-band__star.is-hot svg { transform: scale(1.15); }
}
@media (prefers-reduced-motion: reduce) {
  .taf-band__star.is-hot svg { transform: none; }
}
/* .wprm-call-to-action p.taf-band__copy — rationale: docs/design/css-rationale/wprm-taf2026.css.md#wprm-call-to-action-p-taf-band-copy */
.wprm-call-to-action p.taf-band__copy { font-size: var(--fs-15) !important; line-height: var(--lh-14) !important; color: var(--taf-cocoa) !important; margin: var(--space-4) 0 0; text-wrap: balance; }
/* The inline review form's CSS (.taf-band__form/__row/__submit/__fine/
   __error) is deleted with the markup — stars now jump to the real comment
   form. */

/* ---- Cook mode row (JS-injected between ingredients and instructions):
   white box, hairline, switch right. ---- */
.taf-cookmode {
  display: flex;
  align-items: center;
  gap: var(--space-12);
  background: var(--taf-cream);    /* V2: cream row, no border */
  border: none;
  border-radius: var(--taf-r);
  padding: var(--space-14) var(--space-16);
  margin: var(--space-20) 0 0;
}
.taf-cookmode::before {
  content: "";
  flex: none;
  width: 20px;    /* README icon 20px */
  height: 20px;
  background-color: var(--taf-rose);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='7' y='2.5' width='10' height='19' rx='2'/%3E%3Cpath d='M10.5 18.5h3'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='7' y='2.5' width='10' height='19' rx='2'/%3E%3Cpath d='M10.5 18.5h3'/%3E%3C/svg%3E") center / contain no-repeat;
}
.taf-cookmode__text { flex: 1; }
.taf-cookmode__label { font-family: var(--ui, 'Poppins', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif); font-weight: var(--w-bold); font-size: var(--fs-15); color: var(--taf-chocolate); }
.taf-cookmode__hint { font-family: var(--ui, 'Poppins', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif); font-size: var(--fs-13); color: var(--taf-cocoa); }
.taf-cookmode__switch {
  /* README geometry: 48×28 track, 22px knob, 3px inset, travel 3→23 */
  flex: none;
  width: 48px;   /* token-exempt: README switch geometry */
  height: 28px;  /* token-exempt: README switch geometry */
  /* PILL, not ellipse: --taf-r-round is 50%, which on a 48×28 rect
     renders an OVAL. The spec's 99px caps the short axis. */
  border-radius: 99px;  /* token-exempt: README switch radius — pill cap */
  /* off: light-rose track, no outer border; the knob carries the rose
     edge so both states read as the iOS switch */
  border: none;
  /* solid mid-pink OFF track (mixed from the brand rose — the tint was
     too close to white and the pill vanished): plain white knob pops,
     exactly the iOS read, in Tasha's pink */
  background: color-mix(in srgb, var(--taf-rose) 30%, var(--taf-paper)) !important;  /* token-exempt: derived from --rose, no new hex */
  position: relative;
  cursor: pointer;
  transition: background var(--taf-speed) var(--ease);
  padding: 0;
}
.taf-cookmode__switch::before {
  /* .taf-cookmode__switch::before — rationale: docs/design/css-rationale/wprm-taf2026.css.md#taf-cookmode-switch-before *//* token-exempt: invisible hit-area expansion — the 48×28 spec track is
     under the 44px floor and (unlike the unit toggle) had no expander;
     -8px vertical tops it up to 48×44 (audit catch 2026-08-01) */
  content: "";
  position: absolute;
  inset: -8px 0;
}
.taf-cookmode__switch::after {
  content: "";
  position: absolute;
  top: 3px; left: 3px;
  width: 22px; height: 22px;  /* token-exempt: README switch geometry */
  border-radius: var(--taf-r-round);
  background: var(--taf-paper);   /* plain white knob, iOS-style */
  box-shadow: 0 1px 3px rgba(51, 32, 43, .3);  /* token-exempt: README knob shadow */
  transition: transform var(--taf-speed) var(--ease);
}
/* .taf-cookmode__switch:hover, .taf-cookmode__switch:focus… — rationale: docs/design/css-rationale/wprm-taf2026.css.md#taf-cookmode-switch-hover-taf-cookmode-switch-focus-taf-cook */
.taf-cookmode__switch:hover,
.taf-cookmode__switch:focus,
.taf-cookmode__switch:active {
  background: color-mix(in srgb, var(--taf-rose) 30%, var(--taf-paper)) !important;  /* token-exempt: derived from --rose */
}
.taf-cookmode__switch[aria-checked="true"],
.taf-cookmode__switch[aria-checked="true"]:hover,
.taf-cookmode__switch[aria-checked="true"]:focus,
.taf-cookmode__switch[aria-checked="true"]:active { background: var(--taf-rose) !important; }
.taf-cookmode__switch[aria-checked="true"]::after { transform: translateX(20px); }

/* .wprm-recipe-template-taf-2026 .wprm-user-rating-modal inp… — !! DELIBERATE VALUE, DO NOT "FIX" WITHOUT READING: docs/design/css-rationale/wprm-taf2026.css.md#wprm-recipe-template-taf-2026-wprm-user-rating-modal-input-t */
.wprm-recipe-template-taf-2026 .wprm-user-rating-modal input[type="text"],
.wprm-recipe-template-taf-2026 .wprm-user-rating-modal input[type="email"],
.wprm-recipe-template-taf-2026 .wprm-user-rating-modal textarea,
.wprm-user-rating-modal-comment,
.wprm-user-rating-modal-field input,
.wprm-user-rating-modal-field textarea,
#wprm-user-rating-name,
#wprm-user-rating-email,
.wprm-user-rating-modal input[type="text"],
.wprm-user-rating-modal input[type="email"],
.wprm-user-rating-modal textarea {
  font-size: var(--fs-16) !important;
}

/* .wprm-recipe-template-taf-2026 .wprm-rating-star — !! DELIBERATE VALUE, DO NOT "FIX" WITHOUT READING: docs/design/css-rationale/wprm-taf2026.css.md#wprm-recipe-template-taf-2026-wprm-rating-star */

/* .wprm-recipe-template-taf-2026 .wprm-rating-star — !! DELIBERATE VALUE, DO NOT "FIX" WITHOUT READING: docs/design/css-rationale/wprm-taf2026.css.md#wprm-recipe-template-taf-2026-wprm-rating-star-2 */
.wprm-recipe-template-taf-2026 .wprm-rating-star {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-12, 12px) var(--space-6, 6px);
  min-width: 0;   /* .wprm-recipe-template-taf-2026 .wprm-rating-star — rationale: docs/design/css-rationale/wprm-taf2026.css.md#wprm-recipe-template-taf-2026-wprm-rating-star-3 */
  /* Padding math alone measured 41.6px tall in the render (the svg's
     line box comes in under its 16px attribute size), so pin the
     floor explicitly on both axes. Measured 2026-07-17. */
  min-height: var(--space-44, 44px);
  min-width: var(--space-44, 44px);
}
/* Keep the glyph column on the card's left text edge — the first
   star's left padding is hit area, not indent. (14px < the 20px
   card pad, so the hit box stays inside the card.) */
.wprm-recipe-template-taf-2026 .wprm-rating-star-1 {
  margin-left: calc(-1 * var(--space-14, 14px));
}
/* .wprm-recipe-template-taf-2026 > .wprm-recipe-rating — rationale: docs/design/css-rationale/wprm-taf2026.css.md#wprm-recipe-template-taf-2026-wprm-recipe-rating-3 */
.wprm-recipe-template-taf-2026 > .wprm-recipe-rating {
  margin-top: 0;
}

/* .taf-post-meta__stars .wprm-rating-star — rationale: docs/design/css-rationale/wprm-taf2026.css.md#taf-post-meta-stars-wprm-rating-star */
.taf-post-meta__stars .wprm-rating-star {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-12, 12px) var(--space-2, 2px);
  min-height: var(--space-44, 44px);
  min-width: 0;
}
.taf-post-meta__stars .wprm-rating-star svg {
  width: var(--star-interactive, 20px);   /* D6-A interactive tier (attrs say 16px) */
  height: var(--star-interactive, 20px);
  display: block;
}
.taf-post-meta__stars .wprm-rating-star-1 {
  margin-left: -2px;  /* token-exempt: glyph sits on the text edge (2px pad) */
}

/* .wprm-recipe-template-taf-2026 .wprm-toggle-buttons-contai… — rationale: docs/design/css-rationale/wprm-taf2026.css.md#wprm-recipe-template-taf-2026-wprm-toggle-buttons-container--2 */
.wprm-recipe-template-taf-2026 .wprm-toggle-buttons-container button.wprm-toggle {
  /* spec visuals (pad 8×14 → ~35px) supersede the
     sweep's 44px box; the ::after inset keeps the touch target honest. */
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 0;
  min-width: 0;
  padding: var(--space-8, 8px) var(--space-14, 14px);
  line-height: var(--lh-14);   /* 13px/1.4 + 2×8 ≈ the spec's ~35px */
  position: relative;
}
.wprm-recipe-template-taf-2026 .wprm-toggle-buttons-container button.wprm-toggle::after {
  content: "";
  position: absolute;
  inset: -5px 0;  /* token-exempt: invisible hit-area expansion to ~45px */
}

/* .wprm-recipe-template-taf-2026 .wprm-template-chic-buttons… — rationale: docs/design/css-rationale/wprm-taf2026.css.md#wprm-recipe-template-taf-2026-wprm-template-chic-buttons-wpr */
.wprm-recipe-template-taf-2026 .wprm-template-chic-buttons .wprm-recipe-link {
  min-height: var(--space-44, 44px);
}

/* .wprm-recipe-template-taf-2026 button.wprm-unit-conversion — rationale: docs/design/css-rationale/wprm-taf2026.css.md#wprm-recipe-template-taf-2026-button-wprm-unit-conversion */
.wprm-recipe-template-taf-2026 button.wprm-unit-conversion {
  /* spec visuals (§8 pad 8×13 → ~36px); hit
     expansion below keeps touch ≥44. */
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 0;
  line-height: var(--lh-14);
  position: relative;
}
.wprm-recipe-template-taf-2026 button.wprm-unit-conversion::after {
  content: "";
  position: absolute;
  inset: -4px 0;  /* token-exempt: invisible hit-area expansion */
}

/* @keyframes taf-rating-thanks — rationale: docs/design/css-rationale/wprm-taf2026.css.md#keyframes-taf-rating-thanks */

/* @keyframes taf-rating-thanks — !! DELIBERATE VALUE, DO NOT "FIX" WITHOUT READING: docs/design/css-rationale/wprm-taf2026.css.md#keyframes-taf-rating-thanks-2 */
@keyframes taf-rating-thanks {
  0% {
    transform: scale(1);
    filter: drop-shadow(0 0 0 var(--saffron-glow-0, rgba(226, 155, 50, 0)));
  }
  35% {
    transform: scale(1.12);
    filter: drop-shadow(0 0 5px var(--saffron-glow, rgba(226, 155, 50, .5)));
  }
  100% {
    transform: scale(1);
    filter: drop-shadow(0 0 3px var(--saffron-glow-0, rgba(226, 155, 50, 0)));
  }
}
.wprm-recipe-template-taf-2026 .wprm-user-rating.wprm-user-rating-has-voted .wprm-rating-star svg {
  animation: taf-rating-thanks var(--dur-35, .35s) var(--ease, ease) 1;
}

/* .wprm-recipe-template-taf-2026 li.wprm-recipe-ingredient… — rationale: docs/design/css-rationale/wprm-taf2026.css.md#wprm-recipe-template-taf-2026-li-wprm-recipe-ingredient-wprm */
.wprm-recipe-template-taf-2026 li.wprm-recipe-ingredient,
.wprm-recipe-template-taf-2026 li.wprm-recipe-equipment-item {
  text-decoration-line: line-through;
  text-decoration-color: transparent;
  transition: color var(--dur-2, .2s) var(--ease, ease),
              text-decoration-color var(--dur-2, .2s) var(--ease, ease);
}
.wprm-recipe-template-taf-2026 li.wprm-recipe-ingredient.wprm-checkbox-is-checked,
.wprm-recipe-template-taf-2026 li.wprm-recipe-equipment-item.wprm-checkbox-is-checked {
  text-decoration-color: var(--taf-cocoa);
}
/* @keyframes taf-check-pulse — rationale: docs/design/css-rationale/wprm-taf2026.css.md#keyframes-taf-check-pulse */
@keyframes taf-check-pulse {
  0%   { transform: scale(1); }
  50%  { transform: scale(1.15); }
  100% { transform: scale(1); }
}
@keyframes taf-check-draw {
  from { opacity: 0; transform: rotate(-45deg) scale(.6); }
  to   { opacity: var(--o-1, 1); transform: rotate(-45deg) scale(1); }
}
.wprm-recipe-template-taf-2026 .wprm-checkbox-container input[type="checkbox"]:checked + label::before {
  animation: taf-check-pulse var(--dur-15, .15s) var(--ease, ease) 1;
}
.wprm-recipe-template-taf-2026 .wprm-checkbox-container input[type="checkbox"]:checked + label::after {
  animation: taf-check-draw var(--dur-2, .2s) var(--ease, ease) 1;
}

/* .wprm-popup-modal .wprm-popup-modal__container — !! DELIBERATE VALUE, DO NOT "FIX" WITHOUT READING: docs/design/css-rationale/wprm-taf2026.css.md#wprm-popup-modal-wprm-popup-modal-container */
.wprm-popup-modal .wprm-popup-modal__container {
  background: var(--paper, #FFFFFF);
  border-radius: var(--radius, 8px);
  box-shadow: var(--shadow, 0 1px 2px rgba(51, 32, 43, .06), 0 6px 24px -8px rgba(51, 32, 43, .12));
  font-family: var(--sans, 'Mulish', system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);
  color: var(--chocolate, #33202B);
}
.wprm-popup-modal .wprm-popup-modal__title {
  font-family: var(--display, 'Poppins', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif);
  font-size: var(--fs-20, 20px);
  font-weight: var(--w-semibold, 600);
  color: var(--chocolate, #33202B);
}
/* Close glyph: chocolate, on a 44px hit box (measured 36×43 stock). */
.wprm-popup-modal .wprm-popup-modal__close {
  color: var(--chocolate, #33202B);
  min-width: var(--space-44, 44px);
  min-height: var(--space-44, 44px);
}
.wprm-popup-modal .wprm-user-ratings-modal-recipe-name {
  font-weight: var(--w-bold, 700);
  color: var(--chocolate, #33202B);
}
/* .wprm-popup-modal .wprm-user-rating-modal-comment, .wprm-p… — rationale: docs/design/css-rationale/wprm-taf2026.css.md#wprm-popup-modal-wprm-user-rating-modal-comment-wprm-popup-m */
.wprm-popup-modal .wprm-user-rating-modal-comment,
.wprm-popup-modal .wprm-user-rating-modal-field input {
  border: var(--bw-15, 1.5px) solid var(--line, #F0DEE6) !important;
  border-radius: var(--radius-sm, 6px) !important;
  font-family: var(--sans, 'Mulish', system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);
  color: var(--chocolate, #33202B);
  background: var(--paper, #FFFFFF);
}
.wprm-popup-modal .wprm-user-rating-modal-field input {
  min-height: var(--space-44, 44px);  /* was 36px */
  padding: 0 var(--space-12, 12px);
}
/* Stock 75px clips the third line of WPRM's own placeholder copy. */
.wprm-popup-modal .wprm-user-rating-modal-comment {
  min-height: var(--space-90, 90px);
}
.wprm-popup-modal .wprm-user-rating-modal-field label {
  color: var(--chocolate, #33202B);
}
/* Submit buttons → the card's Print-button face: rose, 6px, bold 15,
   44px floor (was olive 34px). Hover/focus deepen like every other rose
   control. */
.wprm-popup-modal .wprm-popup-modal__btn {
  min-height: var(--space-44, 44px);
  padding: var(--space-8, 8px) var(--space-20, 20px) !important;
  background-color: var(--rose, #E11584) !important;
  border: none !important;
  border-radius: var(--radius-pill, 6px) !important;
  color: var(--color-on-accent, #FFFFFF) !important;
  font-family: var(--sans, 'Mulish', system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);
  font-size: var(--fs-15, 15px);
  font-weight: var(--w-bold, 700);
  cursor: pointer;
  transition: background var(--speed, .15s) var(--ease, ease);
  display: block;              /* center the CTA */
  margin-inline: auto;
}
.wprm-popup-modal .wprm-popup-modal__btn:hover,
.wprm-popup-modal .wprm-popup-modal__btn:focus-visible {
  background-color: var(--rose-deep, #B80E67) !important;
}
/* Byline inside the rating row (JS moves it there ≥700) */
.wprm-recipe-rating .taf-byline-inline {
  margin: 0 var(--space-10, 10px) 0 0 !important;
  text-align: left !important;
}
/* separator between the name and the stars+status group */
.wprm-recipe-rating .taf-byline-inline::after {
  content: "·";
  display: inline-block;   /* escapes the link underline */
  margin-left: var(--space-10, 10px);
  color: var(--taf-cocoa);
  font-weight: var(--w-regular);
}
/* title→byline-row spacing: the row's optical -4px (star tap padding
   compensation) read as cramped once the byline joined the row — the
   author text has no padding of its own */
.wprm-recipe-template-taf-2026 > .wprm-recipe-rating:has(.taf-byline-inline) {
  margin-top: var(--space-2) !important;
}
/* .wprm-recipe-template-taf-2026 > .wprm-recipe-rating:has(.… — !! DELIBERATE VALUE, DO NOT "FIX" WITHOUT READING: docs/design/css-rationale/wprm-taf2026.css.md#wprm-recipe-template-taf-2026-wprm-recipe-rating-has-taf-byl */
.wprm-recipe-template-taf-2026 > .wprm-recipe-rating:has(.taf-byline-inline) { flex-wrap: nowrap; }
.wprm-recipe-template-taf-2026 > .wprm-recipe-rating:has(.taf-byline-inline) .wprm-recipe-rating-details {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  min-width: 0;
  flex: 0 1 auto;
}

/* .wprm-recipe-template-taf-2026 > .wprm-recipe-rating .wprm… — rationale: docs/design/css-rationale/wprm-taf2026.css.md#wprm-recipe-template-taf-2026-wprm-recipe-rating-wprm-rating */
.wprm-recipe-template-taf-2026 > .wprm-recipe-rating .wprm-rating-star {
  min-width: 0 !important;
  padding: var(--space-12, 12px) var(--space-2) !important;
  margin: 0 !important;
}
.wprm-recipe-template-taf-2026 > .wprm-recipe-rating .wprm-rating-star:first-of-type {
  margin-left: -2px !important;  /* token-exempt: glyph sits on the text edge (2px pad) */
}

/* Focus visibility inside the modal — deep-saffron ring, the sitewide
   pattern (and, since the 2026-08-01 saffron star rework, the same family
   as the stars it sits beside). */
.wprm-popup-modal button:focus-visible,
.wprm-popup-modal input:focus-visible,
.wprm-popup-modal textarea:focus-visible {
  outline: var(--focus-ring, 3px) solid var(--focus-ring-color, #B87716);
  outline-offset: 2px;
}
/* Modal star anatomy attempt (see the §18 header): style the light-DOM defs
   the <use> rows clone. If these don't reach, the stars stay the source
   saffron from wprm_settings — acceptable. */
.wprm-popup-modal .wprm-user-ratings-modal-stars path.wprm-modal-star-empty {
  fill: var(--line, #F0DEE6) !important;    /* D1-C quiet empty */
  stroke: var(--line, #F0DEE6) !important;
}
.wprm-popup-modal .wprm-user-ratings-modal-stars path.wprm-modal-star-full {
  fill: var(--saffron, #E29B32) !important;
  stroke: var(--saffron-deep, #B87716) !important;
}
/* Validation errors: the deep rose used for on-panel emphasis. */
.wprm-popup-modal #wprm-user-rating-modal-errors,
.wprm-popup-modal [id^="wprm-user-rating-modal-error-"] {
  color: var(--rose-deep, #B80E67);
}

/* ==== Delight pack (JS = taf-recipe.js D1-D3) ==== */

/* ---- Step check-off (D2): a transparent button laid exactly over the
   28px number badge; done = saffron badge with a check + calmed text. ---- */
.wprm-recipe-template-taf-2026 .taf-step-check {
  position: absolute; left: 0; top: var(--space-8);
  width: 28px; height: 28px;
  border-radius: var(--taf-r-round);
  background: transparent; border: none; padding: 0; cursor: pointer;
}
.wprm-recipe-template-taf-2026 .taf-step-check:focus-visible {
  outline: var(--focus-ring) solid var(--taf-focus-ring-color); outline-offset: 2px;
}
.wprm-recipe-template-taf-2026 li.wprm-recipe-instruction.taf-step-done::before {
  content: "\2713";
  background: var(--taf-saffron);
  color: var(--taf-chocolate);
}
.wprm-recipe-template-taf-2026 li.taf-step-done .wprm-recipe-instruction-text {
  opacity: .55;  /* token-exempt: done-step calm — legible but visibly retired */
}

/* @keyframes taf-sparkle — rationale: docs/design/css-rationale/wprm-taf2026.css.md#keyframes-taf-sparkle */
@keyframes taf-sparkle {
  0%   { filter: none; }
  35%  { filter: drop-shadow(0 0 6px var(--taf-saffron)) brightness(1.3); }
  100% { filter: none; }
}
.wprm-recipe-template-taf-2026 .taf-sparkle {
  /* token-exempt: 0.9s one-shot celebration timing, not a UI transition */
  animation: taf-sparkle 0.9s ease-out 1;
}
@media (prefers-reduced-motion: reduce) {
  .wprm-recipe-template-taf-2026 .taf-sparkle { animation: none; }
}
