/*
Theme Name: On a Plate
Theme URI: https://minneapolisonaplate.com
Author: askemdash
Description: Minneapolis on a Plate — a dish-review site. Custom theme built around the Plate and Restaurant post types with Course and Ingredient taxonomies. Berry-and-mint editorial design, verdict-as-identity.
Version: 2.1.5
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: on-a-plate
*/

:root{
  --ink:#190933;--dusk:#665687;--lilac:#B084CC;--lilac-deep:#9461BD;
  --turquoise:#5DD9C1;--mint:#ACFCD9;--bg:#F6F4FA;--card:#FFFFFF;
  --line:#E7E2F0;
  --display:'Fraunces',Georgia,serif;--body:'Archivo',-apple-system,BlinkMacSystemFont,sans-serif;--mono:'Space Mono',monospace;
}
*{margin:0;padding:0;box-sizing:border-box}
body{background:var(--bg);font-family:var(--body);color:var(--ink);line-height:1.6}
img{max-width:100%;height:auto;display:block}
a{color:var(--lilac-deep);text-decoration:none}
a:hover{text-decoration:underline}
a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid var(--lilac-deep);outline-offset:2px;border-radius:6px}
.wrap{max-width:1080px;margin:0 auto;padding:0 24px}
.narrow{max-width:660px}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}

/* ===== Header ===== */
.site-header{position:sticky;top:0;z-index:50;background:var(--card);border-bottom:1px solid var(--line)}
.site-header .inner{max-width:1080px;margin:0 auto;padding:14px 24px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.wordmark{line-height:1;display:inline-block}
.wordmark a{display:block}
.wordmark a:hover{text-decoration:none}
.wordmark .small{font-family:'Bebas Neue',sans-serif;font-size:21px;letter-spacing:.05em;color:var(--lilac-deep);display:block;margin-bottom:1px}
.wordmark .big{font-family:'Anton',sans-serif;text-transform:uppercase;font-size:46px;line-height:.78;display:block}
.wordmark .big .pwrap{display:inline-block;border-bottom:7px solid var(--turquoise);line-height:.66;color:var(--ink);transform-origin:left center;transform:scaleX(var(--plate-scale,1))}
.site-nav ul{list-style:none;display:flex;gap:2px;flex-wrap:wrap;margin:0;padding:0}
.site-nav a{font-weight:600;font-size:14px;color:var(--ink);padding:9px 15px;border-radius:999px;display:inline-block}
.site-nav a:hover{background:var(--bg);text-decoration:none}
.site-nav .current-menu-item>a,.site-nav a[aria-current="page"]{background:var(--ink);color:#fff}

/* ===== Section scaffolding ===== */
.section{padding:44px 0 0}
.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:18px}
.section-title{font-family:var(--display);font-weight:650;font-size:clamp(24px,3.2vw,32px);line-height:1.05;display:flex;align-items:center;gap:11px}
.section-title .dot{width:10px;height:10px;border-radius:50%;background:var(--turquoise);flex:none}
.section-link{font-size:13px;font-weight:600;color:var(--lilac-deep);white-space:nowrap}

/* ===== Plate cards (masonry) ===== */
.fresh-grid{columns:3 250px;column-gap:18px}
.fresh-grid .plate-card{break-inside:avoid;margin-bottom:18px;display:block;width:100%}
.plate-card{background:#CDF3E4;border-radius:20px;overflow:hidden;transition:transform .15s ease}
.plate-card:hover{transform:translateY(-3px)}
.plate-card .thumb{display:block;aspect-ratio:4/3;background:#CDF3E4;position:relative}
.plate-card .thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.plate-card .body{padding:18px 20px 20px}
.plate-card .meta{font-family:var(--mono);font-size:10px;letter-spacing:.13em;color:var(--dusk);text-transform:uppercase;margin-bottom:8px}
.plate-card h3{font-family:var(--display);font-style:italic;font-weight:650;font-size:25px;line-height:1.06;margin-bottom:5px}
.plate-card h3 a{color:var(--ink)}
.plate-card .at{font-size:14px;color:var(--dusk);margin-bottom:12px}
.plate-card .at a{font-weight:600}
.plate-card .verdict{margin-top:4px}

/* ----- Photo-less cards: a bit more breathing room + larger title ----- */
.plate-card.no-photo .body{padding:22px 22px 22px}
.plate-card.no-photo h3{font-size:29px;line-height:1.02;margin-bottom:6px}
.plate-card.no-photo .at{margin-bottom:14px}

/* ===== Verdict pills + dots ===== */
.verdict{display:inline-flex;align-items:center;gap:7px;font-weight:600;font-size:13px;padding:8px 15px;border-radius:999px}
.verdict.yes{background:var(--turquoise);color:var(--ink)}
.verdict.no{background:var(--dusk);color:#fff}
.dot-verdict{width:30px;height:30px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;flex:none}
.dot-verdict.yes{background:var(--turquoise);color:var(--ink)}
.dot-verdict.no{background:var(--dusk);color:#fff}

/* ===== Course tiles ===== */
.course-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px}
.course-tile{position:relative;border-radius:18px;overflow:hidden;aspect-ratio:1/1;display:block;background:#E2DAF0}
.course-tile img,.course-tile .imgph{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.course-tile .imgph{background:linear-gradient(135deg,#C9BEE6,#9c84c9)}
.course-tile .scrim{position:absolute;inset:0;background:linear-gradient(to top,rgba(25,9,51,.82) 0%,rgba(25,9,51,.15) 55%,rgba(25,9,51,0) 100%)}
.course-tile .label{position:absolute;left:16px;right:16px;bottom:14px;color:#fff}
.course-tile .label .nm{font-family:var(--display);font-style:italic;font-weight:650;font-size:23px;line-height:1}
.course-tile .label .ct{font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:var(--mint);margin-top:4px;display:block}
.course-tile:hover .label .nm{text-decoration:underline}
.course-tile .label .parent-tag{font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--mint);display:block;margin-bottom:4px}
.course-tile.is-child .label .nm{font-size:19px;font-style:normal}

/* ===== Featured restaurant ===== */
.feature{background:var(--ink);border-radius:24px;overflow:hidden;display:grid;grid-template-columns:1.1fr 1fr;color:#fff}
.feature.no-photo{grid-template-columns:1fr}
.feature .ph{background:linear-gradient(135deg,#3a2566,#241043);min-height:280px;position:relative}
.feature .ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.feature .ph .tag{position:absolute;top:18px;left:18px;font-family:var(--mono);font-size:11px;letter-spacing:.12em;background:var(--turquoise);color:var(--ink);padding:6px 13px;border-radius:999px;font-weight:700;z-index:1}
.feature .fbody{padding:36px 34px;display:flex;flex-direction:column;justify-content:center}
.feature .fbody .eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:var(--mint);text-transform:uppercase;margin-bottom:12px}
.feature .fbody h3{font-family:var(--display);font-weight:650;font-size:34px;line-height:1.02;margin-bottom:10px}
.feature .fbody h3 a{color:#fff}
.feature .fbody .addr{font-family:var(--mono);font-size:12px;color:var(--mint);margin-bottom:14px;letter-spacing:.02em}
.feature .fbody p{font-size:15px;color:#D9CFEA;line-height:1.55;margin-bottom:18px}
.feature .fbody .stat-row{display:flex;gap:22px;margin-bottom:22px}
.feature .fbody .stat-row .s .n{font-family:var(--display);font-weight:650;font-size:26px}
.feature .fbody .stat-row .s .l{font-size:12px;color:#B6A8D4}
.feature .fbody .go{align-self:flex-start;background:var(--turquoise);color:var(--ink);font-weight:600;font-size:14px;padding:11px 22px;border-radius:999px}
.feature .fbody .go:hover{text-decoration:none;background:#7ee3cf}

/* ===== Search block ===== */
.search-block{background:var(--card);border-radius:24px;padding:34px;text-align:center}
.search-block h2{font-family:var(--display);font-weight:650;font-size:28px;margin-bottom:6px}
.search-block p{color:var(--dusk);font-size:15px;margin-bottom:20px}
.search-block form{display:flex;justify-content:center}
.search{display:flex;align-items:center;gap:10px;background:var(--bg);border:none;border-radius:999px;padding:14px 22px;width:100%;max-width:520px;font-family:var(--body);font-size:15px;color:var(--ink)}
.search::placeholder{color:var(--dusk)}

/* ===== Page hero / breadcrumb ===== */
.page-hero{margin:34px 0 8px}
.eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.14em;color:var(--lilac-deep);text-transform:uppercase}
.page-hero h1{font-family:var(--display);font-weight:650;font-size:clamp(34px,6vw,52px);line-height:1.02;margin:10px 0 6px}
.page-hero p{font-size:16px;color:var(--dusk);max-width:48ch}
.crumb{font-family:var(--mono);font-size:12px;letter-spacing:.06em;color:var(--dusk);margin:30px 0 0}
.crumb a{color:var(--lilac-deep)}

/* ===== Ingredient tag cloud ===== */
.tag-cloud{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}
.ingredient-tag{display:inline-flex;align-items:baseline;gap:8px;background:var(--card);border-radius:999px;padding:11px 18px;font-weight:600;font-size:15px;color:var(--ink);transition:transform .12s ease}
.ingredient-tag:hover{transform:translateY(-2px);text-decoration:none}
.ingredient-tag .ct{font-family:var(--mono);font-size:12px;font-weight:400;color:var(--dusk)}
.ingredient-tag.big{font-size:19px;padding:13px 22px}
.ingredient-tag.med{font-size:16px}

/* ===== Plate list (rows) ===== */
.plate-list{background:var(--card);border-radius:20px;overflow:hidden;margin-top:8px}
.plate-row{display:flex;align-items:center;gap:16px;padding:15px 22px;border-bottom:1px solid var(--bg);color:var(--ink);transition:background .12s ease}
.plate-row:last-child{border-bottom:none}
.plate-row:hover{background:#FBFAFD;text-decoration:none}
.plate-row .info{flex:1;min-width:0}
.plate-row .name{font-weight:600;font-size:15px}
.plate-row .sub{font-size:13px;color:var(--dusk)}

/* ===== Split-summary bar ===== */
.split-summary{background:var(--card);border-radius:18px;padding:20px 24px;margin-top:8px;display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.split-summary .bar-track{flex:1;min-width:180px;height:12px;border-radius:999px;background:var(--bg);overflow:hidden;display:flex}
.bar-track .bar-yes,.split-summary .bar-yes{background:var(--turquoise);height:100%}
.bar-track .bar-no,.split-summary .bar-no{background:var(--lilac);height:100%}
.split-summary .legend{font-size:13px;color:var(--dusk)}
.split-summary .legend b{color:var(--ink)}

/* ===== Plate detail ===== */
.pd-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:28px;margin-top:14px;align-items:start}
.pd-grid.no-photo{grid-template-columns:1fr;max-width:680px}
.pd-photo{border-radius:22px;overflow:hidden;background:linear-gradient(135deg,#C9BEE6,#9c84c9);aspect-ratio:4/5;position:relative}
.pd-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.pd-body .course-line{font-family:var(--mono);font-size:12px;letter-spacing:.13em;color:var(--lilac-deep);text-transform:uppercase}
.pd-body h1{font-family:var(--display);font-style:italic;font-weight:650;font-size:clamp(34px,5vw,50px);line-height:1.02;margin:10px 0 8px}
.pd-body .at{font-size:17px;color:var(--dusk);margin-bottom:18px}
.pd-body .at a{font-weight:600}
.pd-verdict-lg{display:inline-flex;align-items:center;gap:9px;font-weight:600;font-size:16px;padding:11px 22px;border-radius:999px;margin-bottom:24px}
.pd-verdict-lg.yes{background:var(--turquoise);color:var(--ink)}
.pd-verdict-lg.no{background:var(--dusk);color:#fff}
.pd-review{font-size:17px;line-height:1.7;color:var(--ink)}
.pd-review p{margin-bottom:14px}
.pd-ingredients{margin-top:24px}
.pd-ingredients .lbl,.pd-mods .lbl,.pd-venue-note .lbl{font-family:var(--mono);font-size:11px;letter-spacing:.13em;color:var(--dusk);text-transform:uppercase;margin-bottom:10px}
.pd-ingredients .tags{display:flex;flex-wrap:wrap;gap:8px}
.pd-ingredients .tags a{background:#EFE3F5;color:#4A2D63;font-size:13px;padding:5px 13px;border-radius:999px;font-weight:500}
.pd-mods{margin-top:24px;font-size:14px;line-height:1.6;color:var(--dusk);font-style:italic}
.pd-mods p{margin-bottom:8px}
.pd-venue-note{margin-top:24px;font-size:14px;line-height:1.6;color:var(--dusk);font-style:italic}
.pd-venue-note p{margin-bottom:8px}

/* ===== Restaurant detail ===== */
.rd-head{background:var(--ink);border-radius:24px;color:#fff;padding:36px 34px;margin-top:14px}
.rd-head .eyebrow{color:var(--mint)}
.rd-head h1{font-family:var(--display);font-weight:650;font-size:clamp(34px,5vw,48px);line-height:1.02;margin:12px 0 10px;color:#fff}
.rd-head .addr{font-family:var(--mono);font-size:13px;color:var(--mint);margin-bottom:8px}
.rd-head .web{font-size:14px;color:#D9CFEA}
.rd-head .web a{color:var(--turquoise)}
.rd-stats{display:flex;gap:26px;margin-top:22px}
.rd-stats .s .n{font-family:var(--display);font-weight:650;font-size:30px}
.rd-stats .s .l{font-size:12px;color:#B6A8D4}

/* ===== Restaurants landing: map + cards ===== */
.resto-map{margin-top:14px;border-radius:22px;overflow:hidden;border:1px solid var(--line);height:380px;background:#E9E4F2}
.resto-map .leaflet-popup-content{font-family:var(--body)}
.resto-map .leaflet-popup-content a{font-weight:600}
.resto-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px;margin-top:24px}
.resto-card{background:var(--ink);border-radius:20px;padding:26px 24px;transition:transform .15s ease;display:block;color:#fff}
.resto-card:hover{transform:translateY(-3px);text-decoration:none}
.resto-card h3{font-family:var(--display);font-weight:650;font-size:25px;line-height:1.04;margin-bottom:7px;color:#fff}
.resto-card .raddr{font-family:var(--mono);font-size:12px;color:var(--mint)}
.resto-card .rweb{font-size:13px;color:var(--turquoise);margin-top:5px}
.resto-card .rcard-stats{display:flex;gap:24px;margin-top:18px}
.resto-card .rcard-stats .n{font-family:var(--display);font-weight:650;font-size:26px;line-height:1;display:block}
.resto-card .rcard-stats .l{font-size:11px;color:#B6A8D4;margin-top:3px;display:block}
.resto-card .rcard-none{font-family:var(--mono);font-size:11px;color:#B6A8D4;margin-top:16px}

/* ===== Term detail (course/ingredient) cards grid (browse) ===== */
.term-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;margin-top:24px}
.term-card{background:var(--card);border-radius:20px;padding:22px;display:flex;flex-direction:column;gap:14px;transition:transform .15s ease;color:var(--ink)}
.term-card:hover{transform:translateY(-3px);text-decoration:none}
.term-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.term-card h2{font-family:var(--display);font-style:italic;font-weight:650;font-size:25px;line-height:1.05;color:var(--ink)}
.term-count{font-family:var(--mono);font-size:12px;color:var(--dusk);background:var(--bg);padding:5px 11px;border-radius:999px;white-space:nowrap}
.term-card .bar-track{height:8px;border-radius:999px;background:var(--bg);overflow:hidden;display:flex}
.term-foot{display:flex;align-items:center;justify-content:space-between;font-size:13px;color:var(--dusk)}
.term-foot .yes-k{color:var(--ink);font-weight:600}

/* ===== Plates archive: filter sidebar ===== */
.ap-layout{display:grid;grid-template-columns:230px 1fr;gap:28px;align-items:start;margin-top:14px}
.ap-side{background:var(--card);border-radius:18px;padding:10px 8px;position:sticky;top:90px}
.acc{border-bottom:1px solid var(--bg)}
.acc:last-child{border-bottom:none}
.acc>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;padding:13px 12px;font-family:var(--mono);font-size:11px;letter-spacing:.13em;color:var(--ink);text-transform:uppercase}
.acc>summary::-webkit-details-marker{display:none}
.acc>summary .chev{transition:transform .15s ease;color:var(--dusk)}
.acc[open]>summary .chev{transform:rotate(180deg)}
.acc .acc-body{padding:2px 12px 12px}
.ap-check{display:flex;align-items:center;gap:9px;font-size:14px;color:var(--ink);padding:5px 0;cursor:pointer}
.ap-check input{width:17px;height:17px;accent-color:var(--ink);cursor:pointer;flex:none}
.ap-check .ct{margin-left:auto;font-family:var(--mono);font-size:11px;color:var(--dusk)}
.ap-check.child{padding-left:26px;font-size:13px;color:var(--dusk)}
.ap-check.child .ct{color:var(--lilac)}
.ap-clear{font-size:12px;color:var(--lilac-deep);background:none;border:none;cursor:pointer;font-family:var(--body);padding:10px 12px 6px}
.ap-search{display:flex;align-items:center;gap:10px;background:var(--card);border:none;border-radius:999px;padding:13px 20px;width:100%;font-family:var(--body);font-size:15px;color:var(--ink)}
.ap-search::placeholder{color:var(--dusk)}
.ap-topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;flex-wrap:wrap}
.ap-count{font-family:var(--mono);font-size:12px;color:var(--dusk);letter-spacing:.04em}
.ap-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:18px;align-items:start}
.ap-empty{color:var(--dusk);padding:30px 0}

/* ===== About ===== */
.about-hero{margin:40px 0 10px}
.about-hero h1{font-family:var(--display);font-weight:650;font-size:clamp(38px,7vw,68px);line-height:1.0;margin:14px 0 0;letter-spacing:-.01em}
.about-hero h1 em{font-style:italic;color:var(--lilac-deep)}
.lede{font-family:var(--display);font-weight:400;font-size:clamp(20px,2.6vw,26px);line-height:1.4;color:var(--ink);margin:28px 0 8px}
.prose p{font-size:17px;margin:18px 0;color:var(--ink)}
.prose p.muted{color:var(--dusk)}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin:34px 0}
.stat{background:var(--card);border-radius:18px;padding:22px}
.stat .n{font-family:var(--display);font-weight:650;font-size:40px;line-height:1;color:var(--ink)}
.stat .l{font-size:13px;color:var(--dusk);margin-top:8px}
.stat.mint{background:var(--mint)}
.cta{background:var(--card);border-radius:24px;padding:34px;margin:40px 0;text-align:center}
.cta h2{font-family:var(--display);font-weight:650;font-size:30px;margin-bottom:8px}
.cta p{color:var(--dusk);margin-bottom:20px}
.cta .btn{display:inline-block;background:var(--ink);color:#fff;font-weight:600;font-size:15px;padding:13px 28px;border-radius:999px}
.cta .btn:hover{text-decoration:none;background:#2a1450}

/* ===== Generic content ===== */
.oap-content{font-size:17px;line-height:1.7;margin-top:18px}
.oap-content p{margin-bottom:14px}
.oap-empty{color:var(--dusk);padding:24px 0 56px}
.oap-pagination{padding:24px 0 8px;display:flex;gap:6px;flex-wrap:wrap}
.oap-pagination .page-numbers{display:inline-block;padding:6px 14px;background:var(--card);border-radius:8px;color:var(--ink)}
.oap-pagination .page-numbers.current{background:var(--ink);color:#fff}

/* ===== Footer ===== */
.site-footer{margin-top:56px;padding:34px 0 44px;border-top:1px solid var(--line)}
.site-footer .inner{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:baseline}
.site-footer .mark{font-family:var(--display);font-style:italic;font-weight:650;font-size:18px}
.site-footer .fine{font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:var(--dusk)}

@media (prefers-reduced-motion:reduce){*{transition:none !important}}
@media (max-width:760px){
  .ap-layout{grid-template-columns:1fr}
  .ap-side{position:static}
}
@media (max-width:680px){
  .feature{grid-template-columns:1fr}
  .feature .ph{min-height:180px}
  .pd-grid{grid-template-columns:1fr}
}
@media (max-width:600px){.rule-card{grid-template-columns:1fr}}
