/* ==========================================================================
   AllBBQMenu CMS — main stylesheet (loaded async; critical.css is inlined)
   ========================================================================== */

/* ---------------------------------------------------------------- layout */
.block{padding:56px 0}
.block-alt{background:var(--bg-alt);border-block:1px solid var(--line)}
.block-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:26px;flex-wrap:wrap}
.block-head h2{margin:0}
.block-more{font-weight:700;font-size:.94rem;white-space:nowrap}

.layout-with-sidebar{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:48px;align-items:start;padding-top:40px;padding-bottom:56px}
.entry-main{min-width:0}
.entry-sidebar{min-width:0}
.sidebar-sticky{position:sticky;top:88px}

@media(max-width:1000px){
  .layout-with-sidebar{grid-template-columns:1fr;gap:36px}
  .sidebar-sticky{position:static}
}

/* ------------------------------------------------------------ breadcrumbs */
.breadcrumbs{padding:14px 0 0;font-size:.86rem;color:var(--muted)}
.breadcrumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:7px;margin:0;padding:0}
.breadcrumbs li+li::before{content:"›";margin-right:7px;color:var(--line)}
.breadcrumbs a{color:var(--muted)}
.breadcrumbs a:hover{color:var(--primary)}
.breadcrumbs [aria-current]{color:var(--ink);font-weight:600}

/* ------------------------------------------------------------------ cards */
.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(255px,1fr));gap:22px}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;transition:transform .16s,box-shadow .16s}
.card:hover{transform:translateY(-3px);box-shadow:0 10px 26px rgba(28,25,23,.1)}
.card-link{color:inherit;display:block}
.card-link:hover{text-decoration:none}
.card-media{position:relative;aspect-ratio:16/9;background:var(--bg-alt);display:flex;align-items:center;justify-content:center;overflow:hidden}
.card-media img{width:100%;height:100%;object-fit:cover}
.card-placeholder{font-size:1.7rem;font-weight:900;color:var(--primary);opacity:.35;letter-spacing:-.04em}
.card-tag{position:absolute;top:10px;left:10px;background:rgba(28,25,23,.86);color:#fff;font-size:.7rem;font-weight:700;padding:4px 9px;border-radius:5px;text-transform:uppercase;letter-spacing:.04em}
.card-body{padding:16px 17px 18px}
.card-title{font-size:1.03rem;margin:0 0 7px;line-height:1.35}
.card-desc{font-size:.88rem;color:var(--muted);margin:0 0 11px}
.card-meta{display:flex;gap:13px;font-size:.79rem;color:var(--muted);flex-wrap:wrap}
.card-meta .rating{color:#b45309;font-weight:700}

/* ------------------------------------------------------------- menu table */
.full-menu{margin:44px 0}
.menu-intro{color:var(--muted);font-size:.96rem}
.menu-section{margin:34px 0}
.menu-section-title{font-size:1.28rem;padding-bottom:9px;border-bottom:3px solid var(--primary);display:inline-block;margin-bottom:6px}
.menu-section-desc{color:var(--muted);font-size:.92rem;margin:6px 0 14px}
.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:var(--radius)}
.menu-table{width:100%;border-collapse:collapse;background:#fff;font-size:.95rem}
.menu-table thead th{background:var(--dark);color:#f5f0e8;text-align:left;padding:11px 15px;font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;font-weight:700;white-space:nowrap}
.menu-table tbody th{text-align:left;font-weight:600;color:var(--ink);padding:13px 15px;vertical-align:top}
.menu-table td{padding:13px 15px;vertical-align:top;color:var(--body)}
.menu-table tbody tr{border-top:1px solid var(--line)}
.menu-table tbody tr:nth-child(even){background:#fcfaf7}
.menu-table tbody tr:hover{background:#fdf6ee}
.menu-table .item-name{display:block}
.menu-table .item-desc{display:block;font-weight:400;font-size:.83rem;color:var(--muted);margin-top:3px;max-width:52ch}
.menu-table .item-diet{display:inline-block;font-weight:600;font-size:.7rem;color:#15803d;margin-top:4px;text-transform:uppercase;letter-spacing:.04em}
.menu-table .col-price{text-align:right;white-space:nowrap;width:110px}
.menu-table .col-size{width:92px;color:var(--muted);font-size:.87rem;white-space:nowrap}
.menu-table .col-cal{width:74px;color:var(--muted);font-size:.87rem;white-space:nowrap;text-align:right;font-variant-numeric:tabular-nums}
.menu-table .price{font-weight:800;color:var(--ink);font-size:1.02rem;font-variant-numeric:tabular-nums}
.menu-table .price.muted{color:var(--muted);font-weight:600;font-size:.9rem}
.menu-table .price-note{display:block;font-size:.74rem;color:var(--muted);font-weight:400}
.badge{display:inline-block;font-size:.63rem;font-weight:800;padding:2px 7px;border-radius:4px;text-transform:uppercase;letter-spacing:.05em;margin-left:6px;vertical-align:middle}
.badge-hot{background:#fee2e2;color:#b91c1c}
.badge-new{background:#dcfce7;color:#15803d}

@media(max-width:640px){
  .menu-table tbody th,.menu-table td{padding:11px 12px}
}

/* -------------------------------------------------------- entry / content */
.entry-head{padding:34px 0 14px}
.eyebrow{display:inline-block;font-size:.74rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--primary);margin-bottom:11px}
.entry-meta{display:flex;gap:18px;flex-wrap:wrap;font-size:.86rem;color:var(--muted);margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.entry-featured{margin:22px auto 0}
.entry-featured img{border-radius:var(--radius);width:100%}

.entry-content{font-size:1.06rem}
.entry-content > h2{margin-top:1.9em;padding-top:.2em;scroll-margin-top:84px}
.entry-content > h3{margin-top:1.5em;scroll-margin-top:84px}
.entry-content ul,.entry-content ol{margin:0 0 1.2em;padding-left:1.5em}
.entry-content li{margin-bottom:.5em}
.entry-content li::marker{color:var(--primary)}
.entry-content strong{color:var(--ink)}
.entry-content a{font-weight:600;border-bottom:1px solid rgba(201,102,43,.35)}
.entry-content a:hover{border-bottom-color:var(--primary);text-decoration:none}
.entry-content blockquote{margin:1.6em 0;padding:16px 22px;border-left:4px solid var(--primary);background:var(--bg-alt);border-radius:0 8px 8px 0;font-style:italic;color:var(--ink)}
.entry-content blockquote p:last-child{margin-bottom:0}
.entry-content img{border-radius:var(--radius);margin:1.6em 0}
.entry-content figure{margin:1.8em 0}
.entry-content figcaption{font-size:.84rem;color:var(--muted);text-align:center;margin-top:8px}
.entry-content table{width:100%;border-collapse:collapse;margin:1.6em 0;font-size:.94rem;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.entry-content table th{background:var(--bg-alt);text-align:left;padding:11px 14px;font-weight:700;color:var(--ink);border-bottom:2px solid var(--line)}
.entry-content table td{padding:11px 14px;border-top:1px solid var(--line)}
.entry-content table tr:nth-child(even) td{background:#fcfaf7}
.entry-content hr{border:0;border-top:1px solid var(--line);margin:2.4em 0}
.entry-content code{background:var(--bg-alt);padding:2px 6px;border-radius:4px;font-size:.9em}

.callout{margin:1.7em 0;padding:16px 20px;border-radius:10px;border:1px solid}
.callout p:last-child{margin-bottom:0}
.callout-note{background:#eff6ff;border-color:#bfdbfe}
.callout-tip{background:#f0fdf4;border-color:#bbf7d0}
.callout-warning{background:#fffbeb;border-color:#fde68a}
.cta-box{margin:1.8em 0;padding:22px;background:var(--bg-alt);border:1px solid var(--line);border-radius:var(--radius);text-align:center}
.cta-box p{margin:0 0 14px;font-weight:600;color:var(--ink)}

/* ------------------------------------------------------------------- TOC */
.toc{background:var(--bg-alt);border:1px solid var(--line);border-radius:var(--radius);padding:20px 24px;margin:0 0 32px}
.toc-title{font-size:.8rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin:0 0 11px;font-weight:800}
.toc ol{list-style:none;margin:0;padding:0;counter-reset:toc}
.toc li{margin:0;padding:4px 0;counter-increment:toc}
.toc li::before{content:counter(toc) ".";color:var(--primary);font-weight:700;margin-right:8px;font-size:.86rem}
.toc a{color:var(--body);font-size:.94rem;font-weight:500}
.toc a:hover{color:var(--primary)}
.toc .toc-l3{padding-left:22px;font-size:.9rem}
.toc .toc-l3::before{content:"–";margin-right:7px}

/* ------------------------------------------------------------------- FAQ */
.faq-block{margin:48px 0 0;padding-top:36px;border-top:2px solid var(--line)}
.faq-list{display:flex;flex-direction:column;gap:10px}
.faq-item{background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.faq-item summary{padding:16px 44px 16px 19px;font-weight:700;color:var(--ink);cursor:pointer;position:relative;list-style:none;font-size:1.01rem;line-height:1.45}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+";position:absolute;right:18px;top:50%;transform:translateY(-50%);font-size:1.4rem;font-weight:400;color:var(--primary);line-height:1}
.faq-item[open] summary::after{content:"−"}
.faq-item[open] summary{background:var(--bg-alt)}
.faq-answer{padding:16px 19px 19px;border-top:1px solid var(--line);color:var(--body)}
.faq-answer p:last-child{margin-bottom:0}

/* --------------------------------------------------------------- widgets */
.widget{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px 22px;margin-bottom:20px}
.widget h2{font-size:.8rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin:0 0 14px;font-weight:800}
.widget-list ul{list-style:none;margin:0;padding:0}
.widget-list li{border-top:1px solid var(--line);padding:9px 0}
.widget-list li:first-child{border-top:0;padding-top:0}
.widget-list a{color:var(--body);font-size:.93rem;font-weight:600}
.widget-list a:hover{color:var(--primary)}
.widget-facts dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:8px 14px;font-size:.9rem}
.widget-facts dt{color:var(--muted)}
.widget-facts dd{margin:0;font-weight:700;color:var(--ink);text-align:right}

/* --------------------------------------------------------------- recipes */
.recipe-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;margin:26px 0}
.recipe-facts div{background:#fff;padding:14px 10px;text-align:center}
.recipe-facts span{display:block;font-size:.71rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:3px;font-weight:700}
.recipe-facts strong{font-size:1.02rem;color:var(--ink)}
.recipe-card{margin:44px 0 0;padding:26px;border:2px solid var(--primary);border-radius:var(--radius);background:#fff}
.recipe-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:8px}
.recipe-card-head h2{margin:0}
.btn-print{padding:8px 15px;font-size:.85rem;color:var(--primary)}
.recipe-ingredients{list-style:none;padding:0;margin:0 0 1.3em}
.recipe-ingredients li{padding:6px 0;border-bottom:1px dashed var(--line)}
.recipe-ingredients label{display:flex;gap:10px;align-items:flex-start;cursor:pointer}
.recipe-ingredients input:checked+span{text-decoration:line-through;color:var(--muted)}
.recipe-steps{padding-left:1.3em}
.recipe-steps li{margin-bottom:1em;scroll-margin-top:84px}
.recipe-equipment{padding-left:1.3em}

/* ------------------------------------------------------------- locations */
.locations-block{margin:44px 0}
.location-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px}
.location-card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px 16px;font-size:.88rem}
.location-card strong{display:block;color:var(--ink);margin-bottom:4px}
.location-card span{display:block;color:var(--muted)}

/* --------------------------------------------------------------- archive */
.archive-head{background:var(--bg-alt);border-bottom:1px solid var(--line);padding:38px 0 34px}
.archive-head h1{margin-bottom:.35em}
.archive-intro{max-width:760px;color:var(--body)}
.filter-bar{display:flex;gap:10px;flex-wrap:wrap;margin:28px 0 18px}
.filter-bar input,.filter-bar select{padding:11px 14px;border:1px solid var(--line);border-radius:9px;font-size:.95rem;font-family:inherit;background:#fff;color:var(--ink)}
.filter-bar input{flex:1;min-width:190px}
.result-count{color:var(--muted);font-size:.92rem;margin:0 0 22px}
.result-count strong{color:var(--ink)}
.empty{padding:44px 0;text-align:center;color:var(--muted)}

/* ------------------------------------------------------------ pagination */
.pagination{display:flex;gap:6px;justify-content:center;margin:44px 0 12px;flex-wrap:wrap}
.pg{padding:9px 15px;border:1px solid var(--line);border-radius:8px;color:var(--body);font-size:.92rem;font-weight:600;background:#fff}
.pg:hover{border-color:var(--primary);color:var(--primary);text-decoration:none}
.pg.current{background:var(--primary);border-color:var(--primary);color:#fff}
.pg.dots{border:0;background:none;color:var(--muted)}

/* ------------------------------------------------------------- author/etc */
.author-box{display:flex;gap:18px;margin:44px 0 0;padding:24px;background:var(--bg-alt);border:1px solid var(--line);border-radius:var(--radius)}
.author-box h2{font-size:1.02rem;margin:0 0 7px}
.author-box p{margin:0;font-size:.93rem;color:var(--muted)}
.source-note{margin-top:34px;padding:15px 18px;background:var(--bg-alt);border-radius:10px;font-size:.87rem;color:var(--muted)}
.related-block{background:var(--bg-alt);border-top:1px solid var(--line);padding:48px 0 56px}
.related-block h2{margin-bottom:24px}

/* ----------------------------------------------------------------- error */
.error-page{text-align:center;padding:70px 20px 40px}
.error-code{font-size:5rem;font-weight:900;color:var(--primary);margin:0;line-height:1;opacity:.25}
.error-page .hero-search{margin-top:26px}

/* ---------------------------------------------------------------- footer */
.site-footer{background:var(--dark);color:#a8a29e;padding:52px 0 26px;margin-top:0;font-size:.92rem}
.footer-grid{display:grid;grid-template-columns:1.7fr repeat(3,1fr);gap:38px;margin-bottom:36px}
.footer-about p{margin:12px 0 16px;max-width:44ch;font-size:.89rem;line-height:1.65}
.footer-col h2{color:#f5f0e8;font-size:.79rem;text-transform:uppercase;letter-spacing:.07em;margin:0 0 13px;font-weight:800}
.footer-col ul{list-style:none;margin:0;padding:0}
.footer-col li{margin-bottom:8px}
.footer-col a,.social a{color:#a8a29e;font-size:.9rem}
.footer-col a:hover,.social a:hover{color:var(--accent)}
.social{display:flex;gap:15px;font-size:.86rem;font-weight:600}
.disclaimer{border-top:1px solid #33302c;padding-top:20px;font-size:.8rem;line-height:1.6;color:#78716c;max-width:100%}
.disclaimer strong{color:#a8a29e}
.footer-bottom{border-top:1px solid #33302c;padding-top:20px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:.82rem}
.footer-bottom p{margin:0}
.tiny{font-size:.78rem;color:#57534e}

@media(max-width:900px){
  .footer-grid{grid-template-columns:1fr 1fr;gap:28px}
}
@media(max-width:520px){
  body{font-size:16px}
  .footer-grid{grid-template-columns:1fr}
  .block{padding:40px 0}
  .card-grid{grid-template-columns:1fr}
}

/* ------------------------------------------------------------------ print */
@media print{
  .site-header,.site-footer,.entry-sidebar,.related-block,.toc,.btn,.breadcrumbs{display:none!important}
  body{font-size:12pt;color:#000;background:#fff}
  .layout-with-sidebar{grid-template-columns:1fr}
  .menu-table{font-size:10pt}
  a{color:#000;text-decoration:none}
}

@media(prefers-reduced-motion:reduce){
  *{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}

/* ==========================================================================
   Responsive price tables
   Desktop  : full table
   Tablet   : condensed table, non-essential columns hidden
   Mobile   : every row becomes a card, labels supplied by data-label
   ========================================================================== */

.pricing-block{margin:48px 0 0;padding-top:34px;border-top:2px solid var(--line)}
.pricing-block > h2{margin-bottom:.35em}
.pricing-intro{color:var(--muted);font-size:.93rem;margin-bottom:20px}
.pricing-block .table-scroll{margin-bottom:20px}

.price-table{width:100%;border-collapse:collapse;background:#fff;font-size:.95rem}
.entry-content .price-table,.price-table{margin:0}
.price-table thead th{background:var(--dark);color:#f5f0e8;text-align:left;padding:11px 15px;
  font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;font-weight:700;white-space:nowrap}
.price-table tbody th{text-align:left;font-weight:600;color:var(--ink);padding:13px 15px;vertical-align:top}
.price-table td{padding:13px 15px;vertical-align:top;color:var(--body)}
.price-table tbody tr{border-top:1px solid var(--line)}
.price-table tbody tr:nth-child(even){background:#fcfaf7}
.price-table tbody tr:hover{background:#fdf6ee}

/* ---- Tablet: tighten up, drop the least important columns ---- */
@media (max-width:900px){
  .price-table{font-size:.9rem}
  .price-table thead th,.price-table tbody th,.price-table td{padding:10px 11px}
  .menu-table .col-cal{width:64px}
  .menu-table .col-size,.menu-table thead .col-size{display:none}
}

/* ---- Mobile: stack each row into a card ---- */
@media (max-width:640px){
  .table-scroll{border:0;border-radius:0;overflow:visible}

  .price-table,
  .price-table thead,
  .price-table tbody,
  .price-table tr,
  .price-table th,
  .price-table td{display:block;width:100%}

  .price-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

  .price-table tbody tr{
    border:1px solid var(--line);border-radius:10px;margin-bottom:10px;padding:12px 14px;background:#fff}
  .price-table tbody tr:nth-child(even){background:#fff}
  .price-table tbody tr:hover{background:#fff}

  .price-table tbody th{
    padding:0 0 8px;font-size:1rem;line-height:1.4;border-bottom:1px solid var(--line);margin-bottom:8px}

  .price-table td{
    padding:5px 0;display:flex;justify-content:space-between;align-items:baseline;gap:14px;
    font-size:.92rem;border:0}

  .price-table td::before{
    content:attr(data-label);font-weight:700;color:var(--muted);font-size:.76rem;
    text-transform:uppercase;letter-spacing:.05em;flex-shrink:0}
  .price-table td:not([data-label])::before{content:none}

  /* Calories stay on mobile — as a labelled line it costs nothing */
  .menu-table .col-cal,.price-table .col-cal{display:flex;text-align:left;width:100%}
  .menu-table .col-size,.price-table .col-size{display:flex}
  /* An empty cell adds nothing on a phone — hide the whole line */
  .price-table td.is-empty{display:none}

  .price-table .col-price{text-align:right;width:auto}
  .price-table .col-price .price{font-size:1.1rem}
  .price-table .item-desc{max-width:100%}

  /* First column of a content table that has no <th> still reads as a title */
  .price-table.has-labels tbody tr > td:first-child{
    font-weight:700;color:var(--ink);border-bottom:1px solid var(--line);
    padding-bottom:8px;margin-bottom:6px}
}

/* ---------------------------------------------------- pillar link section */
.pillar-links{margin:44px 0 0;padding-top:32px;border-top:2px solid var(--line)}
.pillar-intro{color:var(--muted);font-size:.95rem;margin-bottom:18px}
.pillar-grid{list-style:none;margin:0;padding:0;display:grid;
  grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.pillar-grid li{margin:0}
.pillar-grid a{display:block;padding:14px 16px;border:1px solid var(--line);border-radius:10px;
  background:#fff;color:var(--body);transition:border-color .15s,transform .15s}
.pillar-grid a:hover{border-color:var(--primary);transform:translateY(-2px);text-decoration:none}
.pillar-grid strong{display:block;color:var(--ink);font-size:.97rem;line-height:1.35;margin-bottom:4px}
.pillar-grid span{display:block;font-size:.84rem;color:var(--muted);line-height:1.5}

@media (max-width:520px){
  .pillar-grid{grid-template-columns:1fr}
}

/* Pillar article eyebrow links back to its parent menu page */
.single-pillar .eyebrow{color:var(--primary)}
.single-pillar .cta-box{margin-top:40px}

/* --- price block sits directly under the intro --- */
.pricing-block.pricing-top{margin:1.6rem 0 2.2rem;padding:1.25rem 1.35rem 1.4rem;background:var(--surface-2,#faf7f2);border:1px solid var(--border,#e7e0d6);border-radius:12px}
.pricing-block.pricing-top>h2{margin:0 0 .35rem;font-size:1.35rem;line-height:1.25}
.pricing-block.pricing-top .pricing-intro{margin:0 0 1rem;font-size:.94rem;color:var(--muted,#6b6257)}
.pricing-block.pricing-top .table-scroll+.table-scroll{margin-top:1rem}
.pricing-block.pricing-top .price-table{margin-bottom:0}
@media(max-width:640px){.pricing-block.pricing-top{padding:1rem .85rem 1.1rem;border-radius:10px;margin:1.2rem 0 1.8rem}.pricing-block.pricing-top>h2{font-size:1.18rem}}
