:root { --ink:#132d24; --muted:#53645c; --surface:#f8faf6; --green:#206846; --green-dark:#123b2b; --lime:#c9f174; --line:#dfe7dc; }
body { font-size:1rem; }
.directory-header { background:var(--surface); }
.directory-nav { min-height:5rem; }
.directory-logo { font-size:1.45rem; letter-spacing:-.04em; }
.logo-mark { background:var(--lime); color:var(--green-dark); transform:none; border-radius:50%; }
.nav-links { gap:.2rem 1.2rem; align-items:center; }
.nav-links a { text-decoration:none; }
.nav-links .nav-demo { background:var(--green-dark); color:white; border-radius:99rem; padding:.5rem 1rem; }
.brand-hero { display:grid; grid-template-columns:1.05fr 1fr; gap:4rem; align-items:center; padding-block:3.2rem 4rem; }
.brand-hero h1 { font-size:clamp(2.8rem,5.1vw,4.8rem); line-height:1.04; letter-spacing:-.055em; max-width:12ch; margin:.75rem 0 1.4rem; }
.eyebrow { font-size:.8125rem; letter-spacing:.1em; }
.hero-lead { font-size:1.18rem; line-height:1.65; max-width:42rem; color:var(--muted); }
.hero-actions { display:flex; flex-wrap:wrap; gap:.75rem; align-items:center; margin:1.5rem 0; }
.card-cta,.secondary-cta { border-radius:99rem; min-height:3.1rem; padding:.8rem 1.35rem; font-size:.9375rem; }
.secondary-cta { display:inline-flex; align-items:center; justify-content:center; border:1px solid var(--green-dark); color:var(--green-dark); text-decoration:none; font-weight:750; }
.hero-caption { color:var(--muted); font-size:.875rem; }
.food-collage { position:relative; padding:0 2rem 3rem 0; }
.food-main { aspect-ratio:1.16; display:block; width:100%; height:auto; object-fit:cover; border-radius:42% 42% 1.5rem 1.5rem; }
.food-small { position:absolute; bottom:0; right:0; width:43%; height:auto; aspect-ratio:1; object-fit:cover; border:8px solid var(--surface); border-radius:50%; }
.food-caption { position:absolute; left:-1rem; bottom:2rem; padding:.8rem 1.2rem; border-radius:.75rem; background:var(--lime); color:var(--green-dark); font-weight:850; transform:rotate(-4deg); }
.journey-strip { display:flex; flex-wrap:wrap; justify-content:space-between; gap:1rem; border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding-block:1.15rem; }
.journey-strip span { display:flex; align-items:center; gap:1rem; font-weight:650; }
.journey-strip b { font-size:.8125rem; color:var(--green); border:1px solid var(--line); padding:.4rem .55rem; border-radius:50%; }
.directory-section { padding-top:3rem; }
.section-heading h2 { font-size:clamp(1.9rem,3.5vw,2.8rem); }
.bistro-card { box-shadow:none; border-radius:1rem; }
.bistro-visual { background:var(--green-dark); }
.bistro-visual::before,.bistro-visual::after { display:none; }
.search-panel { box-shadow:none; border-radius:1rem; }
.search-field label,.active-filters > strong,.active-filters li a,.clear-filters { font-size:.875rem; }
.owner-callout { display:grid; grid-template-columns:1.2fr 1fr; gap:3rem; padding:clamp(1.5rem,5vw,3.5rem); border-radius:1.5rem; background:var(--green-dark); color:white; }
.owner-callout h2 { font-size:clamp(2.2rem,4vw,3.4rem); line-height:1.05; letter-spacing:-.045em; margin:1rem 0; }
.owner-callout p { max-width:38rem; }
.owner-callout .eyebrow { color:var(--lime); }
.owner-callout .card-cta { color:var(--green-dark); background:var(--lime); margin-top:.75rem; }
.owner-highlights { align-self:center; display:grid; gap:1rem; }
.owner-highlights span { border-bottom:1px solid #658475; padding:1rem 0; font-size:clamp(1.1rem,2vw,1.5rem); font-weight:600; }
.campaign-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.25rem; }
.campaign-card { overflow:hidden; display:grid; border:1px solid var(--line); background:white; border-radius:1rem; }
.campaign-card img { width:100%; height:12rem; object-fit:cover; }
.campaign-card > div { padding:1.5rem; }
.campaign-card h2 { font-size:1.75rem; letter-spacing:-.035em; line-height:1.15; margin:.5rem 0; }
.campaign-card p:not(.eyebrow) { color:var(--muted); }
.demo-disclaimer { color:var(--muted); font-size:.875rem; }
.editorial-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.5rem; }
.editorial-card { min-width:0; }
.editorial-card img { width:100%; height:auto; aspect-ratio:1.6; object-fit:cover; border-radius:1rem; display:block; }
.editorial-card > div { padding-top:1.2rem; }
.editorial-card h3 { font-size:1.4rem; line-height:1.25; letter-spacing:-.025em; margin:.6rem 0; }
.editorial-card h3 a { color:var(--ink); text-decoration:none; }
.editorial-card p:not(.eyebrow) { color:var(--muted); }
.article-more { font-size:.9375rem; font-weight:750; }
.closing-cta { background:var(--lime); border-radius:1.5rem; padding:clamp(1.5rem,4vw,3rem); text-align:center; }
.closing-cta h2 { font-size:clamp(1.9rem,3.5vw,3rem); line-height:1.15; letter-spacing:-.045em; margin:.8rem 0 1.5rem; }
.page-intro { padding-block:3.5rem 1rem; }
.page-intro h1,.article-heading h1 { font-size:clamp(2.4rem,5vw,4.4rem); line-height:1.06; max-width:18ch; letter-spacing:-.05em; margin:1rem 0; }
.feature-grid { gap:1.5rem; }
.feature-grid article { background:white; border:1px solid var(--line); border-radius:1rem; padding:1.5rem; }
.feature-grid h2 { font-size:1.4rem; line-height:1.2; letter-spacing:-.025em; }
summary { cursor:pointer; font-weight:700; padding:.8rem 0; }
.page-body { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr); gap:4rem; align-items:start; }
.prose { max-width:48rem; font-size:1.0625rem; line-height:1.8; overflow-wrap:anywhere; }
.prose > p:first-child { margin-top:0; }
.page-aside img { width:100%; height:auto; aspect-ratio:1.2; object-fit:cover; border-radius:1rem; }
.page-aside p { font-weight:700; }
.contact-panel { background:var(--green-dark); color:white; border-radius:1rem; padding:2rem; overflow-wrap:anywhere; }
.contact-panel a { color:var(--lime); }
.contact-panel .card-cta { color:var(--green-dark); background:var(--lime); }
.faq-section { display:grid; grid-template-columns:1fr 1.5fr; gap:3rem; }
.faq-section h2 { font-size:2rem; letter-spacing:-.035em; }
.faq-section details { border-bottom:1px solid var(--line); padding:.8rem 0; }
.faq-section summary { font-size:1.125rem; }
.article-heading { max-width:60rem; padding-block:3rem 1rem; }
.article-heading > a { display:inline-block; margin-bottom:1.5rem; }
.article-body { max-width:60rem; padding-block:1rem 4rem; }
.article-image { width:100%; height:auto; max-height:30rem; object-fit:cover; border-radius:1rem; margin-bottom:2rem; }
.article-body .prose { margin-inline:auto; }
.preview-warning { background:#ffe8a5; padding:1rem; border-radius:.5rem; }
.footer-brand { font-size:2rem; letter-spacing:-.04em; }
.footer-brand span { color:var(--lime); }
.footer-inner nav { display:flex; flex-wrap:wrap; gap:1.5rem; font-size:.875rem; }
.footer-bottom { border-top:1px solid #486052; margin-top:2rem; padding-top:1.25rem; font-size:.8125rem; color:#cad3cd; }
@media(max-width:65rem) { .brand-hero { gap:2rem; }.directory-nav { justify-content:center; }.nav-links { justify-content:center; }.owner-callout { gap:1.5rem; }.page-body { gap:2rem; } }
@media(max-width:46rem) { .brand-hero { grid-template-columns:1fr; gap:2rem; padding-block:2rem; }.brand-hero h1 { max-width:14ch; }.food-collage { max-width:27rem; width:100%; margin-inline:auto; }.food-main { max-height:20rem; }.journey-strip { gap:.75rem; }.journey-strip span { font-size:.875rem; }.owner-callout,.campaign-grid,.editorial-grid,.page-body,.faq-section { grid-template-columns:1fr; }.owner-highlights { gap:0; }.editorial-grid { gap:2.5rem; }.page-intro { padding-top:2rem; }.footer-inner nav { gap:1rem; }.nav-links { gap:.1rem .85rem; }.nav-links a { font-size:.875rem; }.product-section { padding-block:1.75rem; }.food-caption { left:0; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
