/* Local layouts for the four meat counter guides. Shared colors and type inherit. */
.butcher-page .article-body { max-width: none; }
.butcher-page .article-body > section > p { max-width: 790px; }
.butcher-intro { display: grid; grid-template-columns: minmax(0, 1fr) minmax(180px, 270px); gap: 55px; align-items: center; }
.butcher-intro h1 { max-width: none; }
.butcher-intro .lead { max-width: 720px; margin-top: 21px; }
.butcher-character-note { max-width: 650px; color: var(--muted); font-size: 14px; margin: 18px 0 0; }
.butcher-mascot { display: block; width: min(100%, 245px); height: auto; max-height: 330px; object-fit: contain; justify-self: center; }
.butcher-branches { margin-top: 24px; border-top: 1px solid var(--line); }
.butcher-branch { display: grid; grid-template-columns: 48px minmax(0, 1fr) 36px; gap: 24px; align-items: start; padding: 25px 0; border-bottom: 1px solid var(--line); color: var(--ink); text-decoration: none; }
.butcher-branch-number { font-family: Georgia, 'Times New Roman', serif; font-size: 23px; color: var(--muted); padding-top: 4px; }
.butcher-page .butcher-branch h3 { font-family: Georgia, 'Times New Roman', serif; font-size: 30px; margin: 0 0 9px; }
.butcher-branch p { max-width: 720px; margin: 0; font-size: 15px; line-height: 1.7; }
.butcher-branch-arrow { font-size: 26px; justify-self: end; }
.butcher-branch:hover h3 { text-decoration: underline; text-underline-offset: 5px; }
.butcher-diagram { margin: 0 0 37px; }
.butcher-diagram-link { display: block; }
.butcher-diagram img { display: block; width: 100%; height: auto; }
.butcher-caption { max-width: 850px; margin-top: 12px; font-size: 13px; line-height: 1.65; color: var(--muted); }
.butcher-caption a { white-space: normal; }
.butcher-table-hint { font-size: 12px; color: var(--muted); margin: 19px 0 9px; }
.butcher-table-wrap { max-width: 100%; overflow-x: auto; margin: 0 0 22px; scrollbar-gutter: stable; }
.butcher-cut-table { width: 100%; min-width: 690px; margin: 0; border-collapse: collapse; font-size: 14px; line-height: 1.65; }
.butcher-cut-table caption { font-family: Georgia, 'Times New Roman', serif; font-size: 21px; color: var(--ink); font-weight: 700; text-align: left; padding: 7px 0 15px; }
.butcher-cut-table th, .butcher-cut-table td { padding: 16px 18px; vertical-align: top; border-bottom: 1px solid var(--line); text-align: left; }
.butcher-cut-table th:first-child, .butcher-cut-table td:first-child { padding-left: 0; }
.butcher-cut-table th:last-child, .butcher-cut-table td:last-child { padding-right: 0; }
.butcher-cut-table thead th { color: var(--ink); background: transparent; border-top: 1px solid var(--line); font-size: 13px; }
.butcher-cut-table tbody th { width: 23%; min-width: 160px; color: var(--ink); font-weight: 650; }
.butcher-cut-table tbody th span { display: inline-block; color: var(--muted); font-size: 12px; line-height: 1.5; font-weight: 400; margin-top: 5px; }
.butcher-cut-table td { color: var(--muted); }
.butcher-counter-notes dl { margin: 0; max-width: 850px; }
.butcher-counter-notes dl > div { display: grid; grid-template-columns: minmax(150px, .7fr) minmax(0, 1.3fr); gap: 28px; padding: 18px 0; border-bottom: 1px solid var(--line); }
.butcher-counter-notes dt { font-family: Georgia, 'Times New Roman', serif; font-size: 20px; font-weight: 700; line-height: 1.35; color: var(--ink); }
.butcher-counter-notes dd { margin: 0; color: var(--muted); font-size: 15px; line-height: 1.75; }
.butcher-counter-notes dl + p { margin-top: 21px; }
.butcher-next { padding-top: 26px; border-top: 1px solid var(--line); }
.butcher-sources ul { max-width: 850px; padding-left: 20px; font-size: 13px; line-height: 1.75; }
@media (max-width: 740px) {
  .butcher-intro { grid-template-columns: minmax(0, 1fr) 155px; gap: 22px; align-items: start; }
  .butcher-intro .lead { margin-top: 18px; }
  .butcher-mascot { margin-top: 22px; max-height: 245px; }
  .butcher-character-note { font-size: 13px; }
  .butcher-branch { grid-template-columns: 32px minmax(0, 1fr) 24px; gap: 15px; padding-block: 20px; }
  .butcher-page .butcher-branch h3 { font-size: 27px; }
  .butcher-branch p { font-size: 14px; }
  .butcher-diagram { margin-bottom: 29px; }
  .butcher-caption { font-size: 12px; }
  .butcher-cut-table th, .butcher-cut-table td { padding-block: 14px; padding-right: 14px; }
  .butcher-counter-notes dl > div { grid-template-columns: 1fr; gap: 8px; }
  .butcher-counter-notes dd { font-size: 14px; }
}
@media (max-width: 520px) {
  .butcher-intro { grid-template-columns: 1fr; gap: 13px; }
  .butcher-mascot { width: 155px; max-height: 225px; margin: 0; justify-self: start; }
}
@media print {
  .butcher-mascot { max-height: 190px; }
  .butcher-diagram img { max-height: 320px; object-fit: contain; }
  .butcher-table-wrap { overflow: visible; }
  .butcher-cut-table { min-width: 0; font-size: 10pt; }
  .butcher-cut-table th, .butcher-cut-table td { padding: 8px; }
  .butcher-cut-table tbody th { min-width: 0; }
  .butcher-cut-table tr, .butcher-counter-notes dl > div { break-inside: avoid; }
  .butcher-table-hint, .butcher-next { display: none; }
}

/* The inline beef map keeps real region links, with the cut list as a text alternative. */
.butcher-map-hint { color: var(--muted); font-size: 13px; line-height: 1.7; max-width: 790px; margin: 0 0 14px; }
.butcher-map-scroll { width: 100%; overflow-x: auto; scrollbar-gutter: stable; }
.butcher-map-scroll > .butcher-cut-map { display: block; width: 100%; min-width: 760px; height: auto; }
.beef-map-region { cursor: pointer; }
.beef-map-region:hover .beef-region-shape { fill: #CEC3AE; stroke: #55564D; }
.beef-map-region:hover .beef-region-label { text-decoration: underline; text-decoration-thickness: 1px; }
.beef-map-region:focus-visible { outline: none; }
.beef-map-region:focus-visible .beef-region-shape { fill: #D8CBB4; stroke: #2E302C; stroke-width: 5px; }
.beef-map-region:focus-visible .beef-region-label { text-decoration: underline; text-decoration-thickness: 2px; }
.butcher-cut-index { display: block; margin: -17px 0 32px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.butcher-cut-index ul { display: flex; flex-wrap: wrap; gap: 0 28px; list-style: none; margin: 0; padding: 5px 0; }
.butcher-cut-index a { display: inline-flex; align-items: center; min-height: 44px; padding: 9px 0; border: 0; font-size: 14px; font-weight: 500; text-decoration: underline; text-underline-offset: 5px; }
.beef-cut-notes > p { margin-bottom: 24px; }
.beef-cut-notes-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 48px; }
.beef-cut-notes-grid > .beef-cut-note { margin: 0; padding: 20px 0 0; border-top: 1px solid var(--line); scroll-margin-top: 28px; }
.article-body .beef-cut-note h3 { margin: 0 0 13px; font-family: Georgia, 'Times New Roman', serif; font-size: 27px; }
.beef-cut-note > p { font-size: 15px; line-height: 1.75; }
.beef-cut-note .beef-cut-note-links { display: flex; flex-wrap: wrap; gap: 10px 23px; margin-bottom: 0; font-size: 13px; }
.beef-cut-note:target { border-top: 2px solid var(--ink); padding-top: 19px; }
.beef-ground-recipes { padding-top: 26px; border-top: 1px solid var(--line); scroll-margin-top: 28px; }
.beef-ground-recipe-links { display: flex; flex-wrap: wrap; gap: 10px 26px; list-style: none; padding: 0; margin: 18px 0 0; }
.beef-ground-recipe-links a { display: inline-block; min-height: 44px; padding: 9px 0; font-size: 14px; }
@media (max-width: 740px) {
  .butcher-cut-index { margin-bottom: 26px; }
  .butcher-cut-index ul { gap: 0 23px; }
  .beef-cut-notes-grid { grid-template-columns: 1fr; gap: 25px; }
  .beef-cut-note > p { font-size: 14px; }
  .beef-ground-recipe-links { flex-direction: column; align-items: start; gap: 4px; }
}
@media print {
  .butcher-map-hint, .butcher-cut-index { display: none; }
  .butcher-map-scroll { overflow: visible; }
  .butcher-map-scroll > .butcher-cut-map { min-width: 0; max-height: 320px; }
  .beef-cut-notes-grid { display: block; }
  .beef-cut-note { break-inside: avoid; margin-bottom: 20px !important; }
}

/* Shared native SVG links and text navigation for every animal map. */
.butcher-cut-map { display: block; width: 100%; height: auto; }
.cut-map-region { cursor: pointer; }
.cut-map-region:hover .cut-region-fill { fill: #CEC3AE; stroke: #55564D; }
.cut-map-region:focus-visible { outline: none; }
.cut-map-region:focus-visible .cut-region-fill { fill: #D8CBB4; stroke: #2E302C; stroke-width: 5px; }
.cut-text-index { display: block; margin: -17px 0 32px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.cut-text-index > .eyebrow { margin: 17px 0 0; }
.cut-text-index ul { display: flex; flex-wrap: wrap; gap: 0 28px; list-style: none; margin: 0; padding: 5px 0; }
.cut-text-index a { display: inline-flex; align-items: center; min-height: 44px; padding: 9px 0; font-size: 14px; font-weight: 500; text-decoration: underline; text-underline-offset: 5px; }
.butcher-cut-table tr[id^="cut-"] { scroll-margin-top: 28px; }
.butcher-cut-table tr[id^="cut-"]:target { background: var(--wash, #EFEBE3); box-shadow: inset 3px 0 0 var(--ink); }
.butcher-cut-table tr[id^="cut-"]:target > :first-child { padding-left: 12px; }
@media (max-width: 740px) {
  .cut-text-index { margin-bottom: 26px; }
  .cut-text-index ul { gap: 0 23px; }
}
@media print {
  .cut-text-index { display: none; }
  .butcher-cut-map { max-height: 320px; }
  .butcher-cut-table tr[id^="cut-"]:target { background: transparent; box-shadow: none; }
  .butcher-cut-table tr[id^="cut-"]:target > :first-child { padding-left: 8px; }
}
