/* ReviewChef — marketing contour page frame (RC-0046 spec §3.4).
   Self-hosted faces only — no font CDN in this contour (zero third parties). */
@font-face { font-family: 'HK Grotesk'; src: url("fonts/hkgrotesk-regular.32795d5cd0f1.woff2")  format('woff2'); font-weight: 400; font-display: swap; }
@font-face { font-family: 'HK Grotesk'; src: url("fonts/hkgrotesk-medium.313c838435fd.woff2")   format('woff2'); font-weight: 500; font-display: swap; }
@font-face { font-family: 'HK Grotesk'; src: url("fonts/hkgrotesk-semibold.c990d93a23b9.woff2") format('woff2'); font-weight: 600; font-display: swap; }
@font-face { font-family: 'HK Grotesk'; src: url("fonts/hkgrotesk-bold.048f35d28175.woff2")     format('woff2'); font-weight: 700; font-display: swap; }

body{color:var(--rc-ink);font-family:var(--rc-font);overflow-x:clip}
.rc-wrap{max-width:var(--rc-wrap-wide);margin:0 auto}

/* Skip link — ReviewChef Landing.dc.html:26 */
.rc-skip{position:absolute;left:-9999px;top:10px;z-index:60;background:var(--rc-forest);color:var(--rc-card);padding:12px 18px;font-size:14px;font-weight:600;text-decoration:none}
.rc-skip:focus-visible{left:16px}
/* The design's links carry their colour inline and no style-hover, so tokens.css's
   a:hover{color:ink} never reaches them; these hold the colour where it would. */
.rc-skip:hover{color:var(--rc-card)}

/* Header — ReviewChef Landing.dc.html:29-51 */
.rc-header{background:var(--rc-page);border-bottom:1px solid var(--rc-hairline)}
/* Sticky only where the header fits on one row in all three languages (fix wave 1, O1).
   Measured after the fonts load: EN 874 px, DE 1007 px, UK 1056 px; 1080 px leaves room for a
   classic 17 px scrollbar. Below it the header wraps to three or four rows (235-295 px) and
   scrolls away, and the anchor padding shrinks with it; above it, tokens.css's 78 px holds. */
html{scroll-padding-top:16px}
@media (min-width:1080px){
  .rc-header{position:sticky;top:0;z-index:40}
  html{scroll-padding-top:78px}
}
.rc-header-row{display:flex;flex-wrap:wrap;align-items:center;gap:16px;padding:12px 24px}
.rc-wordmark{display:inline-flex;align-items:baseline;gap:7px;min-height:var(--rc-tap);padding:4px 0;font-size:19px;font-weight:600;letter-spacing:-.02em;color:var(--rc-ink);text-decoration:none}
.rc-wordmark:focus-visible{outline-offset:4px}
.rc-wordmark-dot{width:10px;height:10px;background:var(--rc-forest);border-radius:50% 50% 50% 50%/62% 62% 38% 38%}
.rc-nav{margin-left:auto;display:flex;flex-wrap:wrap;align-items:center;gap:2px}
.rc-nav a{display:flex;align-items:center;min-height:var(--rc-tap);padding:10px 12px;font-size:14.5px;color:var(--rc-body);text-decoration:none}
.rc-nav a:hover{color:var(--rc-forest)}
.rc-nav a:focus-visible,.rc-lang:focus-visible{outline-offset:2px}
.rc-langs{display:flex;flex-wrap:wrap;align-items:center;gap:2px;border-left:1px solid var(--rc-hairline);padding-left:10px}
.rc-lang{display:inline-flex;align-items:center;min-height:var(--rc-tap);padding:10px 8px;font-size:13px;letter-spacing:.06em;color:var(--rc-faint);text-decoration:none}
.rc-lang:hover{color:var(--rc-forest)}
.rc-lang[aria-current="page"]{color:var(--rc-forest);font-weight:600}

/* CTA variants — outline: header "Get early access"; solid/link: hero actions */
.rc-cta{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--rc-radius);font-weight:600;text-decoration:none}
.rc-cta--outline{min-height:var(--rc-tap);padding:11px 16px;border:1px solid var(--rc-control-border);color:var(--rc-forest);font-size:14px}
.rc-cta--outline:hover{border-color:var(--rc-forest);background:#EDEAE0;color:var(--rc-forest)}
.rc-cta--solid{min-height:54px;padding:16px 28px;font-size:16px;background:var(--rc-forest);color:var(--rc-card)}
.rc-cta--solid:hover{background:var(--rc-forest-hover);color:var(--rc-card)}
.rc-cta--highlight{min-height:54px;padding:0 26px;background:var(--rc-highlight);color:var(--rc-forest)}
.rc-cta--highlight:hover{background:var(--rc-highlight-hover);color:var(--rc-forest)}
.rc-link{min-height:54px;padding:16px 8px;font-size:16px;font-weight:400;color:var(--rc-forest);text-decoration:underline;text-underline-offset:4px}
.rc-link:hover{color:var(--rc-ink)}

/* Section frame and typography — recurring across the landing's blocks */
.rc-section{padding:var(--rc-section-pad)}
.rc-section--alt{background:var(--rc-card);border-top:1px solid var(--rc-hairline);border-bottom:1px solid var(--rc-hairline)}
.rc-section--dark{background:var(--rc-dark);color:var(--rc-on-dark-strong)}
.rc-grid{display:grid;gap:var(--rc-gap);grid-template-columns:repeat(auto-fit,minmax(min(var(--rc-min,320px),100%),1fr))}
.rc-eyebrow{font-size:11px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--rc-forest)}
.rc-h2{font-size:clamp(25px,3.1vw,35px);font-weight:600;line-height:1.2;letter-spacing:-.02em;text-wrap:balance}
.rc-lead{font-size:17px;line-height:1.7;max-width:58ch;color:var(--rc-body);text-wrap:pretty}

/* Footer — ReviewChef Landing.dc.html:428-438 */
.rc-footer{padding:44px 24px 52px;border-top:1px solid var(--rc-hairline)}
.rc-footer-row{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:20px 24px;font-size:13.5px;color:var(--rc-muted)}
.rc-footer-copy{line-height:1.7}
.rc-footer-nav{display:flex;flex-wrap:wrap;gap:4px 18px}
.rc-footer-nav a{display:flex;align-items:center;min-height:var(--rc-tap);padding:8px 0;color:var(--rc-body);text-decoration:underline;text-underline-offset:3px}
.rc-footer-nav a:hover{color:var(--rc-body)}

a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--rc-ink);outline-offset:3px}
/* The yearly pricing card is a forest ground too: an ink ring there is ~1.5:1 (spec §3.4). */
.rc-section--dark :focus-visible,.rc-waitlist :focus-visible,.rc-pricing-card--highlight :focus-visible{outline-color:var(--rc-card)}

/* Block 01: Hero — ReviewChef Landing.dc.html:55-70 */
.rc-hero{padding:clamp(44px,6vw,88px) 24px clamp(52px,6vw,92px)}
.rc-hero-grid{gap:clamp(36px,5vw,64px);align-items:center}
.rc-hero-eyebrow{margin-bottom:20px}
.rc-hero-h1{font-size:clamp(32px,4.4vw,53px);font-weight:600;line-height:1.1;letter-spacing:-.025em;text-wrap:balance}
.rc-hero-lead{font-size:clamp(16px,1.3vw,18.5px);line-height:1.65;color:var(--rc-body);margin-top:24px;max-width:56ch;text-wrap:pretty}
.rc-hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-top:32px}
.rc-hero-img{width:100%;aspect-ratio:7/6;object-fit:cover;object-position:center;max-height:540px;border-radius:var(--rc-radius);display:block}

/* Block 02: Problem — ReviewChef Landing.dc.html:72-101. #FFFFFF and #EDEAE0 are two of
   the five colours the token file omits (spec §3.4); reproduced here as literals.
   The block's own padding is tighter than --rc-section-pad (Landing.dc.html:72). */
.rc-problem{padding:clamp(52px,6vw,84px) 24px}
.rc-problem-grid{gap:clamp(32px,4.5vw,56px);align-items:start}
.rc-problem-figure{margin:0;background:#FFFFFF;border:1px solid var(--rc-hairline);border-radius:var(--rc-radius);padding:22px 22px 20px}
.rc-problem-fig-label{font-family:var(--rc-font-mono);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--rc-faint);margin-bottom:14px}
.rc-problem-venue{font-size:19px;font-weight:600;line-height:1.3;letter-spacing:-.01em}
.rc-problem-meta{font-size:13.5px;color:var(--rc-muted);margin-top:4px}
.rc-problem-score-row{display:flex;align-items:baseline;gap:10px;margin-top:16px}
.rc-problem-score{font-size:30px;font-weight:600;line-height:1;letter-spacing:-.02em}
.rc-problem-stars{font-size:17px;letter-spacing:1px;color:#B8860B}
.rc-problem-star-dim{color:var(--rc-control-border)}
.rc-problem-reviews{font-size:13.5px;color:var(--rc-muted)}
.rc-problem-caption{font-size:14px;line-height:1.65;color:var(--rc-body);margin-top:16px;padding-top:16px;border-top:1px solid #EDEAE0}
.rc-problem-eyebrow{margin-bottom:18px}
.rc-problem-h2{max-width:26ch}
.rc-problem-lead{margin-top:20px;max-width:52ch}
.rc-problem-notes{grid-column:1/-1;gap:20px;font-family:var(--rc-font-mono)}
.rc-problem-note{border:1px dashed var(--rc-control-border);padding:24px 22px;background:var(--rc-page)}
.rc-problem-note-label{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--rc-faint);margin-bottom:10px}
.rc-problem-note-text{font-size:15px;line-height:1.6}

/* Block 03: How it works — ReviewChef Landing.dc.html:103-143 */
.rc-how-eyebrow{margin-bottom:18px}
.rc-how-h2{max-width:34ch}
.rc-how-steps{gap:28px;margin-top:42px}
.rc-how-step{border-top:2px solid var(--rc-forest);padding-top:22px}
.rc-how-step-num{font-family:var(--rc-font-mono);font-size:12px;letter-spacing:.18em;color:var(--rc-forest);margin-bottom:12px}
.rc-how-step-title{font-size:19px;font-weight:600;line-height:1.3;letter-spacing:-.01em}
.rc-how-step-text{font-size:15.5px;line-height:1.7;color:var(--rc-body);margin-top:12px}
.rc-how-link{text-decoration:underline;text-underline-offset:3px}
.rc-how-link:hover{color:var(--rc-forest)}
.rc-how-link:focus-visible{outline-offset:2px}
.rc-how-plus-scene{gap:24px;margin-top:32px}
.rc-how-plus-card{background:var(--rc-notice-bg);border:1px solid var(--rc-notice-border);border-left:3px solid var(--rc-notice-rule);padding:28px 26px}
.rc-how-plus-label{font-size:10.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--rc-notice-strong);margin-bottom:12px}
.rc-how-mini-scene{background:var(--rc-dark);color:var(--rc-on-dark-strong);padding:28px 26px}
.rc-how-mini-lines{font-family:var(--rc-font-mono);font-size:14.5px;line-height:1.95}
.rc-how-mini-time{color:var(--rc-on-dark-accent)}
.rc-how-mini-note{font-size:14.5px;line-height:1.7;color:var(--rc-on-dark-soft);margin-top:18px;text-wrap:pretty}
.rc-how-foot{font-size:13.5px;line-height:1.75;color:var(--rc-muted);margin-top:26px;max-width:72ch}

/* Block 05: What you get — ReviewChef Landing.dc.html:200-233 */
.rc-wyg-eyebrow{margin-bottom:18px}
.rc-wyg-h2{max-width:34ch}
.rc-wyg-lead{margin-top:18px}
.rc-wyg-cards{margin-top:40px;align-items:stretch}
.rc-wyg-card{padding:30px 28px;display:flex;flex-direction:column}
.rc-wyg-card--cards{background:var(--rc-card);border:1px solid var(--rc-hairline)}
.rc-wyg-card--report{background:var(--rc-dark);color:var(--rc-on-dark-strong)}
.rc-wyg-card-label{font-family:var(--rc-font-mono);font-size:12px;letter-spacing:.18em;margin-bottom:14px}
.rc-wyg-card--cards .rc-wyg-card-label{color:var(--rc-forest)}
.rc-wyg-card--report .rc-wyg-card-label{color:var(--rc-on-dark-accent)}
.rc-wyg-card-title{font-size:clamp(20px,2.2vw,24px);font-weight:600;line-height:1.25;letter-spacing:-.015em;text-wrap:balance}
.rc-wyg-card-text{font-size:15.5px;line-height:1.7;margin-top:14px;text-wrap:pretty}
.rc-wyg-card--cards .rc-wyg-card-text{color:var(--rc-body)}
.rc-wyg-card--report .rc-wyg-card-text{color:var(--rc-on-dark)}
.rc-wyg-card-list{list-style:none;display:flex;flex-direction:column;gap:12px;margin-top:20px}
.rc-wyg-card-item{font-size:15px;line-height:1.65;padding-left:16px;border-left:2px solid}
.rc-wyg-card--cards .rc-wyg-card-item{color:var(--rc-body);border-left-color:var(--rc-forest)}
.rc-wyg-card--report .rc-wyg-card-item{color:var(--rc-on-dark);border-left-color:var(--rc-on-dark-accent)}
.rc-wyg-card-foot{font-size:13.5px;line-height:1.7;margin-top:auto;padding-top:20px}
.rc-wyg-card--cards .rc-wyg-card-foot{color:var(--rc-muted)}
.rc-wyg-card--report .rc-wyg-card-foot{color:var(--rc-on-dark-soft)}

/* Block 06: Research — ReviewChef Landing.dc.html:235-268 */
.rc-why-eyebrow{margin-bottom:18px}
.rc-why-h2{max-width:36ch}
.rc-why-lead{font-size:14px;line-height:1.7;color:var(--rc-muted);margin-top:16px;max-width:66ch}
.rc-why-grid{gap:1px;background:var(--rc-hairline);margin-top:36px}
.rc-why-card{background:var(--rc-page);padding:28px clamp(22px,2.4vw,28px);display:flex;flex-direction:column}
.rc-why-source{font-family:var(--rc-font-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--rc-faint);margin-bottom:16px}
.rc-why-stat{font-size:clamp(26px,2.6vw,32px);font-weight:600;line-height:1.1;letter-spacing:-.02em}
.rc-why-text{font-size:15px;line-height:1.65;color:var(--rc-body);margin-top:10px;text-wrap:pretty}
.rc-why-so{font-size:14.5px;line-height:1.65;color:var(--rc-body);margin-top:14px;padding-top:14px;border-top:1px solid var(--rc-hairline);text-wrap:pretty}
.rc-why-so-label{font-weight:600;color:var(--rc-forest)}
.rc-why-linkline{font-size:12px;line-height:1.6;margin-top:auto;padding-top:14px;font-family:var(--rc-font-mono)}
.rc-why-link{text-decoration:underline;text-underline-offset:3px}

/* Block 07: No review gating — ReviewChef Landing.dc.html:270-295 */
.rc-stance-eyebrow{color:var(--rc-on-dark-accent);margin-bottom:18px}
.rc-stance-h2{font-size:clamp(26px,3.3vw,38px);max-width:24ch}
.rc-stance-lead{font-size:clamp(17px,1.5vw,20px);line-height:1.6;color:var(--rc-on-dark-strong);margin-top:22px;max-width:58ch}
.rc-stance-facts{gap:1px;background:var(--rc-on-dark-divider);margin-top:40px}
.rc-stance-fact{background:var(--rc-dark);padding:26px 24px}
.rc-stance-fact-num{font-family:var(--rc-font-mono);font-size:12px;letter-spacing:.16em;color:var(--rc-on-dark-accent);margin-bottom:12px}
.rc-stance-fact-text{font-size:15.5px;line-height:1.7;color:var(--rc-on-dark)}
.rc-stance-foot{font-size:16px;line-height:1.7;color:var(--rc-on-dark-soft);margin-top:28px;max-width:52ch}

/* Block 08 ("Who it's for", ReviewChef Landing.dc.html:297-323) was removed by the owner on
   2026-09-11 — see docs/worklog/RC-0046/. */

/* Block 09: Pricing — ReviewChef Landing.dc.html:325-380 */
.rc-pricing-eyebrow{margin-bottom:18px}
.rc-pricing-h2{max-width:30ch}
.rc-pricing-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(230px,100%),1fr));gap:20px;margin-top:38px;align-items:stretch}
.rc-pricing-card{padding:28px 26px;display:flex;flex-direction:column;position:relative}
.rc-pricing-card--highlight{background:var(--rc-forest);color:var(--rc-card)}
.rc-pricing-card:not(.rc-pricing-card--highlight){background:var(--rc-card);border:1px solid var(--rc-hairline)}
.rc-pricing-badge{position:absolute;top:0;right:0;background:var(--rc-highlight);color:var(--rc-ink);font-size:10.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;padding:6px 12px}
.rc-pricing-plan{font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;margin:0}
/* #A9C9BC is one of the five colours the token file omits (spec §3.4). */
.rc-pricing-card--highlight .rc-pricing-plan{color:#A9C9BC}
.rc-pricing-card:not(.rc-pricing-card--highlight) .rc-pricing-plan{color:var(--rc-faint)}
.rc-pricing-price{font-size:36px;font-weight:600;letter-spacing:-.03em;margin-top:16px}
.rc-pricing-permonth{font-size:15px;font-weight:400;letter-spacing:0}
.rc-pricing-card--highlight .rc-pricing-permonth{color:var(--rc-on-dark-fine)}
.rc-pricing-card:not(.rc-pricing-card--highlight) .rc-pricing-permonth{color:var(--rc-muted)}
.rc-pricing-billed{font-size:14.5px;line-height:1.65;margin-top:12px}
.rc-pricing-billed--last{margin-bottom:22px}
.rc-pricing-card--highlight .rc-pricing-billed{color:var(--rc-on-dark-lead)}
.rc-pricing-card:not(.rc-pricing-card--highlight) .rc-pricing-billed{color:var(--rc-body)}
.rc-pricing-save{font-size:13px;line-height:1.6;margin-top:10px;font-weight:500;margin-bottom:22px;color:var(--rc-card)}
.rc-pricing-save--light{color:var(--rc-forest)}
/* The pricing CTAs are their own size, not the header's or the waitlist's (Landing.dc.html:336,343,349). */
.rc-pricing-card .rc-cta{margin-top:auto;min-height:50px;padding:14px 22px;font-size:15px}
.rc-pricing-note{margin-top:44px;border:1px dashed var(--rc-control-border);background:var(--rc-card);padding:26px clamp(22px,2.6vw,30px) 28px}
.rc-pricing-note-label{font-size:11px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--rc-forest)}
.rc-pricing-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:24px clamp(24px,3vw,40px);margin-top:20px}
.rc-pricing-fact{display:flex;gap:14px;align-items:flex-start}
.rc-pricing-fact-mark{flex:none;font-family:var(--rc-font-mono);font-size:15px;font-weight:600;color:var(--rc-forest);line-height:1.5}
.rc-pricing-fact-title{font-size:16px;font-weight:600;line-height:1.4}
.rc-pricing-fact-text{font-size:15px;line-height:1.7;color:var(--rc-body);margin-top:8px}
.rc-pricing-foot{font-size:13.5px;line-height:1.7;color:var(--rc-muted);margin-top:28px;max-width:70ch}

/* Block 10: FAQ — ReviewChef Landing.dc.html:382-402 */
.rc-faq .rc-wrap{max-width:var(--rc-wrap-text)}
.rc-faq-eyebrow{margin-bottom:18px}
.rc-faq-h2{margin-bottom:34px}
.rc-faq-list{display:flex;flex-direction:column;border-top:1px solid var(--rc-hairline)}
.rc-faq-item{border-bottom:1px solid var(--rc-hairline)}
.rc-faq-q{margin:0}
.rc-faq-button{width:100%;display:flex;align-items:flex-start;justify-content:space-between;gap:20px;text-align:left;background:transparent;border:0;padding:22px 2px;font:inherit;font-size:17.5px;font-weight:500;line-height:1.45;color:var(--rc-ink);cursor:pointer;min-height:56px}
.rc-faq-button:hover{color:var(--rc-forest)}
.rc-faq-button:focus-visible{outline-offset:2px}
.rc-faq-sign{flex:none;font-family:var(--rc-font-mono);font-size:18px;color:var(--rc-forest);line-height:1.4}
.rc-faq-panel{padding:0 2px 24px;max-width:70ch}
.rc-faq-panel p{font-size:16px;line-height:1.75;color:var(--rc-body);text-wrap:pretty}

/* Block 11: Waitlist — ReviewChef Landing.dc.html:404-425. The markup is flat (spec §3.7,
   the CsrfViewMiddleware refusal): form/input/button/consent are siblings, not nested in
   the design's own row wrapper, so the row is built with flex-wrap on the form itself. */
.rc-waitlist{padding:clamp(60px,7vw,96px) 24px;background:var(--rc-forest);color:var(--rc-card)}
.rc-waitlist .rc-wrap{max-width:var(--rc-wrap-form);text-align:center}
.rc-waitlist-h2{font-size:clamp(26px,3.3vw,38px)}
.rc-waitlist-lead{font-size:17px;line-height:1.7;color:var(--rc-on-dark-lead);margin-top:18px;text-wrap:pretty}
.rc-waitlist-form{margin-top:32px;text-align:left;display:flex;flex-wrap:wrap;gap:12px}
/* The design puts 8px between label and input and 12px within the row; the flat form has one
   gap, so the label takes the difference back. */
.rc-waitlist-label{flex:1 1 100%;font-size:14px;font-weight:500;letter-spacing:.02em;color:var(--rc-on-dark-lead);margin-bottom:-4px}
.rc-waitlist-input{flex:1 1 220px;min-height:54px;padding:15px 16px;font:inherit;font-size:16px;color:var(--rc-ink);background:var(--rc-card);border:1px solid var(--rc-card);border-radius:var(--rc-radius)}
.rc-waitlist-input:focus-visible{outline:2px solid var(--rc-card);outline-offset:3px}
/* A <button> takes neither the page's font nor a zero border by default (Landing.dc.html:419). */
.rc-waitlist-form .rc-cta--highlight{flex:none;padding:15px 26px;font:inherit;font-size:16px;font-weight:600;border:0;cursor:pointer}
.rc-waitlist-consent{flex:1 1 100%;font-size:13.5px;line-height:1.7;color:var(--rc-on-dark-fine);margin-top:2px;max-width:60ch}
/* RC-0101: the message field, the honeypot, and the form's two states. */
.rc-waitlist-input,.rc-waitlist-textarea{flex:1 1 100%}
.rc-waitlist-textarea{min-height:132px;resize:vertical;line-height:1.6}
.rc-waitlist-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.rc-waitlist-status{margin-top:32px;font-size:18px;line-height:1.6;font-weight:500;color:var(--rc-card)}
.rc-waitlist-alert{flex:1 1 100%;padding:12px 16px;border:1px solid var(--rc-card);border-radius:var(--rc-radius);font-size:15px;line-height:1.6;color:var(--rc-card)}
.rc-waitlist-alert a,.rc-waitlist-consent a{color:var(--rc-card);text-decoration:underline;text-underline-offset:3px}

/* Block 04: Interactive demo — ReviewChef Landing.dc.html:145-199 */
.rc-preview-eyebrow{margin-bottom:18px}
.rc-preview-h2{max-width:34ch}
.rc-preview-lead{margin-top:18px}
.rc-preview-grid{gap:clamp(32px,5vw,56px);margin-top:40px;align-items:start}
.rc-preview-side{display:flex;flex-direction:column;gap:26px}
.rc-preview-phone-title{font-size:17px;font-weight:600;line-height:1.35;max-width:32ch;text-wrap:pretty}
.rc-preview-text{font-size:14.5px;line-height:1.65;color:var(--rc-body);margin-top:16px;max-width:44ch;text-wrap:pretty}
.rc-preview-link{display:inline-flex;align-items:center;min-height:var(--rc-tap);font-size:14.5px;font-weight:600;color:var(--rc-forest);text-decoration:underline;text-underline-offset:4px}
.rc-preview-link:hover{color:var(--rc-forest)}
.rc-preview-watch-label{font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--rc-forest);margin-bottom:14px}
.rc-preview-watch{list-style:none;display:flex;flex-direction:column;gap:14px}
.rc-preview-watch-item{font-size:15.5px;line-height:1.65;color:var(--rc-body);padding-left:18px;border-left:2px solid var(--rc-hairline)}
.rc-preview-close{border-top:1px solid var(--rc-hairline);padding-top:24px;display:flex;flex-wrap:wrap;align-items:center;gap:14px 20px}
.rc-preview-close-text{font-size:15.5px;line-height:1.6;color:var(--rc-body);flex:1 1 240px;text-wrap:pretty}
.rc-preview-close .rc-cta{min-height:50px;padding:14px 24px;font-size:15.5px}

/* The table-card mock — Landing.dc.html:157-179. The product-mock accents live here only;
   #E0E3EA and #FFFFFF are two of the colours the token file omits (spec §3.4). */
.rc-mock{margin-top:16px;width:100%;max-width:440px;background:var(--rc-mock-stock);border:1px solid #E0E3EA;border-left:6px solid var(--rc-mock-rule);box-shadow:var(--rc-shadow-card);position:relative;overflow:hidden}
.rc-mock-lamp{position:absolute;right:6%;top:14%;bottom:8%;width:34%;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;pointer-events:none}
.rc-mock-shade{width:100%;height:44%;background:rgba(255,255,255,.16);border-radius:6px 6px 46% 46%/6px 6px 62% 62%}
.rc-mock-stem{width:11%;flex:1;background:rgba(255,255,255,.16)}
.rc-mock-base{width:62%;height:7px;background:rgba(255,255,255,.16);border-radius:4px}
.rc-mock-body{position:relative;display:flex;gap:22px;align-items:center;padding:24px 22px 20px}
.rc-mock-qr{flex:none;background:#FFFFFF;border-radius:6px;padding:9px;line-height:0}
.rc-mock-qr svg{display:block;width:122px;height:122px}
.rc-mock-copy{flex:1 1 140px;min-width:0}
.rc-mock-stars{font-size:15px;letter-spacing:.14em;color:var(--rc-ink);line-height:1}
.rc-mock-venue{font-size:20px;font-weight:700;letter-spacing:-.01em;color:var(--rc-ink);margin-top:8px;overflow-wrap:break-word}
.rc-mock-bar{width:52px;height:2px;background:var(--rc-mock-rule);margin:9px 0 10px}
.rc-mock-rate{font-size:clamp(26px,5.6vw,34px);font-weight:700;letter-spacing:-.02em;line-height:1;color:var(--rc-ink)}
/* Ink, not muted: #57574F on the card stock is 3.74:1 at 14 px and 12.5 px; ink is 8.85:1
   (fix wave 1, O3 — a deviation from Landing.dc.html, recorded in the plan). */
.rc-mock-sub{font-size:14px;color:var(--rc-ink);margin-top:9px}
.rc-mock-caption{position:relative;border-top:1px solid rgba(27,27,24,.12);padding:10px 22px;display:flex;align-items:center;justify-content:center;gap:8px}
.rc-mock-dot{width:6px;height:6px;border-radius:50%;background:var(--rc-mock-rule)}
.rc-mock-powered{font-size:12.5px;font-weight:500;color:var(--rc-ink);letter-spacing:.01em}
.rc-mock-powered strong{font-weight:700;color:var(--rc-ink)}

/* /demo shell — ReviewChef Demo Fullscreen.dc.html:13,22-35 (dark ground, own mini-palette) */
.rc-demo-page{background:var(--rc-guest-table);color:var(--rc-card);min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:22px 14px 34px}
.rc-demo-page .rc-wrap{max-width:392px}
.rc-demo-page a{color:var(--rc-on-dark-accent)}
.rc-demo-page a:hover{color:var(--rc-card)}
.rc-demo-page :focus-visible{outline-color:var(--rc-card)}
/* Its skip link is light on dark — Demo Fullscreen.dc.html:23 */
.rc-demo-page .rc-skip--demo{top:8px;padding:10px 14px;background:var(--rc-guest-paper);color:var(--rc-guest-ink);font-size:16px;font-weight:400}
.rc-demo-page .rc-skip--demo:focus-visible{left:14px;z-index:9}
.rc-demo-page .rc-skip--demo:hover{color:var(--rc-guest-ink)}
.rc-demo-header,.rc-demo-footer{width:100%}
.rc-demo-page main{width:100%;max-width:392px}
.rc-demo-header-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}
.rc-demo-wordmark{font-size:15px;font-weight:600;letter-spacing:-.01em;color:var(--rc-card);text-decoration:none;padding:6px 2px}
.rc-demo-page .rc-demo-wordmark{color:var(--rc-card)}
.rc-demo-kicker{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--rc-demo-chrome)}
.rc-demo-h1{font-size:19px;font-weight:600;line-height:1.35;letter-spacing:-.01em;text-align:center;margin-bottom:8px;text-wrap:balance}
.rc-demo-lead{font-size:13.5px;line-height:1.6;text-align:center;color:var(--rc-demo-chrome);margin-bottom:22px;text-wrap:pretty}
.rc-demo-footer-row{margin-top:26px;text-align:center;font-size:11.5px;line-height:2;color:var(--rc-demo-chrome)}
.rc-demo-footer-row a,.rc-demo-footer-row a:hover{color:inherit;text-decoration:underline;text-underline-offset:3px;padding:4px 2px}

/* The guest-flow simulation — ReviewChef Demo.dc.html:10-112. The guest mini-palette only,
   plus the design's own notice colours on the narration and forest on the end-screen CTA. */
.rc-sim{width:100%;max-width:392px;margin:0 auto;font-family:var(--rc-font-mono);color:var(--rc-guest-ink)}
.rc-sim [hidden]{display:none}
.rc-sim-phone{background:var(--rc-guest-table);border-radius:36px;padding:clamp(5px,2vw,11px);box-shadow:0 22px 44px rgba(27,27,24,.16);position:relative}
.rc-sim-notch{height:5px;width:62px;border-radius:99px;background:var(--rc-demo-chrome-2);margin:3px auto 9px}
.rc-sim-screen{background:var(--rc-guest-table);border-radius:26px;overflow:hidden;position:relative;padding:14px clamp(5px,2vw,12px) 18px}
.rc-sim-zigzag{height:9px;background-image:linear-gradient(-45deg,var(--rc-guest-paper) 6px,transparent 0),linear-gradient(45deg,var(--rc-guest-paper) 6px,transparent 0);background-size:12px 12px;background-repeat:repeat-x;background-position:0 100%}
.rc-sim-zigzag--top{transform:scaleY(-1)}
.rc-sim-paper{background:var(--rc-guest-paper);padding:22px clamp(8px,3.5vw,20px) 16px;min-height:560px;display:flex;flex-direction:column}
.rc-sim-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.rc-sim-header{text-align:center;flex:none}
.rc-sim-venue{font-size:19px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;line-height:1.3}
.rc-sim-city{display:block;font-size:11px;font-weight:400;letter-spacing:.28em;color:var(--rc-guest-helper);margin-top:4px}
.rc-sim-langs{margin:14px auto 0;display:flex;gap:6px;justify-content:center}
.rc-sim-lang{font:inherit;font-size:12px;letter-spacing:.06em;background:transparent;border:0;padding:8px 6px;min-height:var(--rc-tap);cursor:pointer;color:var(--rc-guest-helper);font-weight:400}
.rc-sim-lang[aria-pressed="true"]{color:var(--rc-guest-stamp);font-weight:700}
.rc-sim-body{flex:1 0 auto;display:flex;flex-direction:column}
.rc-sim-body--center{justify-content:center}
.rc-sim-rule{border:0;border-top:1px dashed var(--rc-guest-dash);margin:18px 0}
.rc-sim-rule--wide{margin:20px 0}
.rc-sim-lead{font-size:15px;line-height:1.55;text-align:center;text-wrap:balance;min-height:47px;display:flex;align-items:center;justify-content:center}
.rc-sim-stars{display:flex;justify-content:center;gap:2px;margin-top:14px}
.rc-sim-star{min-width:44px;min-height:56px;flex:0 1 62px;display:grid;place-items:center;background:transparent;border:0;cursor:pointer}
.rc-sim-star-icon{width:34px;height:34px;stroke-width:1.5;transition:fill .12s ease;fill:none;stroke:var(--rc-guest-ink)}
.rc-sim-star--on .rc-sim-star-icon{fill:var(--rc-guest-stamp);stroke:var(--rc-guest-stamp)}
.rc-sim-route{transition:opacity .22s ease,transform .22s ease}
[data-sim-route][inert]{opacity:0;transform:translateY(6px)}
.rc-sim-label{font-size:11px;font-weight:400;letter-spacing:.24em;color:var(--rc-guest-helper);text-align:center;text-transform:uppercase}
.rc-sim-route-title{margin:0 0 10px;line-height:1.5;min-height:33px;display:flex;align-items:center;justify-content:center}
.rc-sim-google-title{margin:0 0 14px}
.rc-sim-msg-title{margin:0 0 12px}
.rc-sim-channels{display:grid;gap:12px}
.rc-sim-button{display:flex;align-items:center;justify-content:center;text-align:center;min-height:56px;padding:14px 16px;border:1.5px dashed var(--rc-guest-stamp);background:transparent;color:var(--rc-guest-stamp);font:inherit;font-size:14px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;line-height:1.4;cursor:pointer}
.rc-sim-button:active{background:rgba(30,58,92,.07)}
.rc-sim-channel{min-height:68px}
.rc-sim-button--send{min-height:60px}
.rc-sim-google-text{font-size:14px;line-height:1.65;text-align:center;text-wrap:pretty}
.rc-sim-field-label{display:block;font-size:13px;line-height:1.55;margin-bottom:8px}
.rc-sim-textarea{width:100%;font:inherit;font-size:14px;line-height:1.6;color:var(--rc-guest-ink);background:var(--rc-guest-paper);border:1.5px dashed var(--rc-guest-dash);padding:12px;resize:vertical;min-height:132px}
.rc-sim-count{margin-top:6px;text-align:right;font-size:11px;letter-spacing:.06em;color:var(--rc-guest-helper);min-height:16px}
.rc-sim-count--low{color:var(--rc-guest-stamp)}
.rc-sim-actions{display:grid;gap:12px;margin-top:20px}
.rc-sim-actions--end{gap:10px;margin-top:0}
.rc-sim-textbutton{background:transparent;border:0;font:inherit;font-size:12px;letter-spacing:.08em;color:var(--rc-guest-helper);text-decoration:underline;text-underline-offset:3px;padding:12px 4px;min-height:var(--rc-tap);cursor:pointer}
.rc-sim-sent{flex:1 1 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:24px 0 12px}
/* The marks are decoration, drawn by CSS on an empty aria-hidden host (fix wave 1, O2):
   WCAG 1.4.3 exempts pure decoration; the guest palette's dash colour stays. */
.rc-sim-dashes{display:block;font-size:11px;letter-spacing:.42em;text-transform:uppercase;color:var(--rc-guest-dash)}
.rc-sim-dashes::before{content:"\2014\20\2014\20\2014"}
.rc-sim-thanks{font-size:16px;line-height:1.6;text-align:center;text-wrap:balance;max-width:280px}
.rc-sim-end-text{font-size:15px;line-height:1.6;text-align:center;text-wrap:balance}
.rc-sim .rc-sim-cta{display:flex;align-items:center;justify-content:center;min-height:56px;padding:14px 16px;background:var(--rc-forest);color:var(--rc-guest-paper);text-decoration:none;font-size:14px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}
.rc-sim .rc-sim-cta:hover{background:var(--rc-forest-hover);color:var(--rc-guest-paper)}
.rc-sim-footer{margin-top:auto;padding-top:18px;text-align:center;font-size:10.5px;letter-spacing:.08em;color:var(--rc-guest-helper);line-height:2.1;flex:none}
.rc-sim-footer-mark{letter-spacing:.5em;display:block;color:var(--rc-guest-dash)}
.rc-sim-footer-mark::before{content:"* * *"}
.rc-sim .rc-sim-footer a,.rc-sim .rc-sim-footer a:hover{color:inherit;text-decoration:underline;text-underline-offset:2px;padding:4px 2px}
.rc-sim .rc-sim-paper :focus-visible{outline:2px solid var(--rc-guest-stamp);outline-offset:2px}
.rc-sim .rc-sim-paper .rc-sim-button:focus-visible{outline-offset:3px}
.rc-sim .rc-sim-paper .rc-sim-textarea:focus-visible{border-color:var(--rc-guest-stamp)}
.rc-sim .rc-sim-paper .rc-sim-cta:focus-visible{outline-color:var(--rc-guest-ink);outline-offset:3px}
.rc-sim-narration{margin-top:16px;background:var(--rc-notice-bg);border:1px solid var(--rc-notice-border);border-left:3px solid var(--rc-notice-rule);padding:14px 16px}
.rc-sim-narration-title{font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--rc-notice-strong);margin:0 0 7px}
.rc-sim-narration-text{font-size:13px;line-height:1.6;color:var(--rc-guest-ink);text-wrap:pretty}

/* Legal chrome, shared by /imprint, /contact and the versioned documents (Tasks 3-5) —
   ReviewChef Imprint.dc.html:23-31,56-66, Contact.dc.html:23-31,58-68. */
.rc-legal-header{border-bottom:1px solid var(--rc-hairline)}
.rc-legal-header-row,.rc-legal{max-width:var(--rc-wrap-narrow)}
.rc-legal-header-row{padding:16px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.rc-legal{padding:clamp(40px,6vw,72px) 24px}
.rc-legal-kicker{margin-bottom:16px}
.rc-legal-h1{font-size:clamp(28px,4vw,40px);font-weight:600;line-height:1.15;letter-spacing:-.025em}
/* A German compound can be one unbreakable word wider than a 320px column —
   "Unterauftragsverarbeiter" is 297px against a 272px measure, and body's
   overflow-x:clip cut its last letter off (RC-0049's manual pass; axe has no rule for
   it, and the EN pages never show it). break-word acts only when a word cannot fit,
   so nothing above ~440px changes. */
.rc-legal-h1,.rc-legal-h2,.rc-legal-h3{overflow-wrap:break-word}
.rc-legal-version{font-size:14px;color:var(--rc-muted);margin-top:14px}
.rc-legal-lead{margin-top:20px;max-width:60ch}
.rc-legal-notice{background:var(--rc-notice-bg);border:1px solid var(--rc-notice-border);border-left:3px solid var(--rc-notice-rule);padding:20px 22px}
.rc-legal-notice p{font-size:14.5px;line-height:1.7;color:var(--rc-body)}
.rc-legal-notice--top{margin-top:28px}
.rc-legal-notice--wide{margin-top:32px}

/* Imprint's key-value table — ReviewChef Imprint.dc.html:40-53. Not an auto-fit grid
   (the marketing handoff's fluid-grid rule names those specifically); the label column
   is a percentage capped at the design's 220px, so it is 220px wherever the design drew
   it and shrinks with the page below ~550px. The design's own minmax(150px,220px) 1fr
   could not: grid maximizes a bounded track before it expands a flexible one, so at
   320px the label took 220px, the value column was pushed to 423px and body's
   overflow-x:clip cut it off — content lost, not merely scrolled (WCAG 1.4.10, found by
   RC-0049's manual pass; axe has no rule for it). break-word is what keeps a long German
   compound inside the narrow cell. */
.rc-legal-dl{margin-top:36px;display:grid;grid-template-columns:min(220px,40%) minmax(0,1fr);gap:1px;background:var(--rc-hairline);border:1px solid var(--rc-hairline)}
.rc-legal-dl dt{background:var(--rc-card);padding:16px 18px;font-size:13px;font-weight:600;letter-spacing:.02em;color:var(--rc-muted)}
.rc-legal-dl dd{background:var(--rc-card);padding:16px 18px;font-size:15.5px;line-height:1.6}
.rc-legal-dl dt,.rc-legal-dl dd{overflow-wrap:break-word}

/* Contact's three info cards — ReviewChef Contact.dc.html:37-51. --rc-min parametrizes
   the existing .rc-grid (the contour's one inline style, a ruling — Task 4). */
.rc-legal-grid{margin-top:36px;gap:18px}
.rc-legal-card{background:var(--rc-card);border:1px solid var(--rc-hairline);padding:26px 24px}
.rc-legal-card-label{font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--rc-forest);margin-bottom:12px}
.rc-legal-card-value{font-size:18px;line-height:1.5;font-weight:500}
.rc-legal-card-value a{text-decoration:underline;text-underline-offset:4px}
.rc-legal-card-note{font-size:14px;line-height:1.7;color:var(--rc-muted);margin-top:12px}
.rc-legal-card-text{font-size:15.5px;line-height:1.7}
.rc-legal-card-text--muted{color:var(--rc-body)}
.rc-legal-card-text a{text-decoration:underline;text-underline-offset:3px}
.rc-legal-foot{font-size:15.5px;line-height:1.75;color:var(--rc-body);margin-top:36px;max-width:66ch}
.rc-legal-foot a{text-decoration:underline;text-underline-offset:3px}

/* The versioned documents (/terms, /privacy) — ReviewChef Terms.dc.html:23-24,36-39,46-51,
   :52,88-89. Wider than the imprint's column (820px against 760px) because a clause runs
   long, and a language switcher beside the back link, which the two short pages do not
   have (spec §3.6). */
.rc-legal-header-actions{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.rc-legal-page--document .rc-legal-header-row,.rc-legal-page--document .rc-legal{max-width:var(--rc-wrap-text)}
.rc-legal-h2{font-size:22px;font-weight:600;line-height:1.3;letter-spacing:-.015em;margin-top:48px;padding-top:24px;border-top:1px solid var(--rc-hairline)}
.rc-legal-p{font-size:15.5px;line-height:1.75;color:var(--rc-body);margin-top:14px;max-width:70ch;text-wrap:pretty}
.rc-legal-p strong{font-weight:600;color:var(--rc-ink)}
.rc-legal-p a{text-decoration:underline;text-underline-offset:3px}
.rc-legal-list{margin-top:12px;padding-left:20px;display:flex;flex-direction:column;gap:8px;max-width:70ch}
.rc-legal-list li{font-size:15.5px;line-height:1.7;color:var(--rc-body)}
/* Ours, not the design's (RC-0050 fix wave 1): a list whose items carry their own labels —
   the DPA's section 3, (a) to (g) — would otherwise read "• (a)". No marker, so no marker
   gutter either: the labels align with the paragraphs around them. */
.rc-legal-list--plain{list-style:none;padding-left:0}
/* The Privacy Policy adds a subsection level and two inset boxes — ReviewChef
   Privacy.dc.html:57 (h3), :84-87 (the controller card), :109-112 (the Art. 21 objection
   box), :115 (the supervisory authority). The design writes three paragraph spacings and
   nothing else varies, so they are modifiers of .rc-legal-p rather than three rules: 10px
   inside a run of prose, 12px after a list, 14px after a heading or a box. The EN and DE
   branches of the Art. 21 box disagree by half a pixel and a margin (15px/1.7/12px against
   14.5px/1.75/14px); one class carries the EN values for both, which is a deviation
   recorded in the task report — a legal text may not be edited, its half-pixels may. */
.rc-legal-h3{font-size:16px;font-weight:600;line-height:1.4;margin-top:26px}
.rc-legal-p--tight{margin-top:10px}
.rc-legal-p--after-list{margin-top:12px}
.rc-legal-box{background:var(--rc-card);border:1px solid var(--rc-hairline);padding:18px 20px;margin-top:14px;max-width:60ch}
.rc-legal-box--rule{border-left:3px solid var(--rc-forest);margin-top:12px;max-width:70ch}
.rc-legal-box-p{font-size:15.5px;line-height:1.7;color:var(--rc-ink)}
.rc-legal-box-p--muted{color:var(--rc-body);margin-top:10px}
.rc-legal-box-p--spaced{margin-top:12px}
.rc-legal-box--rule .rc-legal-box-p{font-size:15px;font-weight:600}
.rc-legal-box a{text-decoration:underline;text-underline-offset:3px}
.rc-legal-address{font-size:15.5px;line-height:1.7;color:var(--rc-ink);margin-top:12px;max-width:70ch}
/* The design styles every <strong> explicitly; .rc-legal-p already carries its own, and
   these are the other three places one appears. */
.rc-legal-notice p strong,.rc-legal-list li strong,.rc-legal-box strong,.rc-legal-address strong{font-weight:600;color:var(--rc-ink)}
/* Ours, not the design's: a version id ending in -draft says so on the page (spec §3.3),
   in the notice palette the two short pages already use. */
.rc-legal-draft{background:var(--rc-notice-bg);border:1px solid var(--rc-notice-border);border-left:3px solid var(--rc-notice-rule);padding:20px 22px;margin-top:28px;font-size:14.5px;line-height:1.7;color:var(--rc-notice-strong);font-weight:600}
/* /subprocessors (RC-0049 Task 5) — ReviewChef Subprocessors.dc.html:45-70 (EN),
   :149-166 (DE). The chrome's own rule under the version line; no other legal page has
   one. */
.rc-legal-hr{border:0;border-top:1px solid var(--rc-hairline);margin:32px 0 0}
/* The design's first paragraph after that rule sits at 24px, one modifier .rc-legal-p
   does not already carry (:51,155). */
.rc-legal-p--lead{margin-top:24px}
/* The recipient table — the design has no classes of its own to reuse, so these are
   invented here (Global Constraints). It scrolls inside its own wrapper so no page
   scrolls sideways at 320px (:61-62,165-166). #F2EEE4 is the header row's own colour,
   one the token file omits (spec §3.4, following the landing's own precedent for such
   colours). */
.rc-legal-table-wrap{margin-top:18px;overflow-x:auto;border:1px solid var(--rc-hairline);background:var(--rc-card)}
/* The wrapper is a focusable region (tabindex, labelled by its own h2): a horizontally
   scrolling area has to be reachable without a mouse - WCAG 2.1.1, axe
   scrollable-region-focusable, found by RC-0049’s manual pass on /de/subprocessors.
   Its focus ring is written out here because :70’s rule covers a/button/input only. */
.rc-legal-table-wrap:focus-visible{outline:2px solid var(--rc-ink);outline-offset:3px}
.rc-legal-table{border-collapse:collapse;width:100%;min-width:760px}
.rc-legal-table th{text-align:left;padding:12px 14px;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--rc-forest);background:#F2EEE4}
.rc-legal-table td{padding:12px 14px;font-size:13.5px;line-height:1.55;color:var(--rc-body);border-top:1px solid var(--rc-hairline);vertical-align:top}
.rc-legal-table td:first-child{color:var(--rc-ink)}
