.library-main:has(.coffee-guide) { max-width: none; padding: 0; }
.coffee-guide {
  --coffee-ink: #261e1a;
  --coffee-muted: #63534c;
  --coffee-accent: #a13d2e;
  --coffee-paper: #fffdf9;
  --coffee-line: #ded3c9;
  max-width: 1480px;
  margin: 0 auto;
  padding: clamp(16px, 3vw, 32px) clamp(12px, 3vw, 34px) 36px;
  color: var(--coffee-ink);
}
.coffee-guide a { color: var(--coffee-accent); text-decoration: underline; text-underline-offset: .2em; }
.coffee-guide :focus-visible { outline: 3px solid #326691; outline-offset: 3px; }
.coffee-guide [hidden] { display: none !important; }
.coffee-intro {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(190px, 31ch);
  align-items: end;
  column-gap: 30px;
  padding: clamp(20px, 3vw, 34px);
  border: 1px solid #e1c6b6;
  border-radius: 16px;
  background: linear-gradient(125deg, #f4e0d2, #fff7eb 72%);
}
.coffee-area {
  color: var(--coffee-accent);
  font-size: .7rem;
  font-weight: 760;
  letter-spacing: .09em;
  text-transform: uppercase;
  margin: 0 0 4px;
}
.coffee-intro > .coffee-area { grid-column: 1 / -1; margin-bottom: 8px; }
.coffee-guide .coffee-intro h1 {
  font: 700 clamp(2.35rem, 5vw, 4.5rem)/.99 Georgia, serif;
  letter-spacing: -.05em;
  margin: 0;
}
.coffee-intro h1 span { color: var(--coffee-accent); }
.coffee-intro p:last-child { font: 1.04rem/1.5 Inter, sans-serif; color: var(--coffee-muted); margin: 0; }
.coffee-filters { padding: 16px 0 10px; border-bottom: 1px solid var(--coffee-line); }
.coffee-fields, .coffee-filter-actions, .coffee-results-bar, .coffee-card-actions, .coffee-dialog-head, .coffee-map-tools {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.coffee-fields { align-items: end; }
.coffee-fields label { flex: 1 1 155px; display: grid; gap: 5px; font-size: .85rem; font-weight: 650; }
.coffee-fields label:first-child { flex-grow: 2; }
.coffee-fields input, .coffee-fields select { width: 100%; min-width: 0; }
.coffee-guide button, .coffee-fields input, .coffee-guide select {
  min-height: 42px;
  padding: 8px 12px;
  border: 1px solid #b4a297;
  border-radius: 8px;
  background: #fff;
  color: var(--coffee-ink);
  font: inherit;
}
.coffee-guide button { cursor: pointer; }
.coffee-guide button:hover:not(:disabled) { border-color: var(--coffee-accent); }
.coffee-guide button:disabled { opacity: .64; cursor: default; }
.coffee-guide button[aria-pressed="true"], .coffee-map-tools button[aria-pressed="true"] {
  color: #fff; background: #8b3728; border-color: #8b3728;
}
.coffee-filter-actions { gap: 14px; margin-top: 10px; font-size: .85rem; }
.coffee-filter-actions label { display: flex; align-items: center; gap: 6px; min-height: 42px; }
.coffee-filter-actions select { min-height: 36px; padding-block: 4px; }
.coffee-filter-actions input { accent-color: #8b3728; width: 16px; height: 16px; }
.coffee-results-bar { justify-content: space-between; margin: 10px 0; font-size: .88rem; }
.coffee-results-bar p { margin: 0; font-weight: 700; }
.coffee-views { display: none; }
.coffee-explorer { display: grid; grid-template-columns: minmax(310px, 4fr) minmax(0, 7fr); align-items: start; gap: 16px; }
.coffee-explorer:has(.coffee-map-panel[hidden]) { grid-template-columns: 1fr; }
.coffee-list {
  display: grid;
  align-content: start;
  gap: 8px;
  max-height: clamp(440px, 68vh, 760px);
  overflow: auto;
  padding: 3px 8px 3px 3px;
  scrollbar-width: thin;
  scrollbar-color: #b59787 transparent;
}
.coffee-card { border: 1px solid var(--coffee-line); background: var(--coffee-paper); border-radius: 12px; min-width: 0; scroll-margin: 3px; }
.coffee-card.coffee-selected { border-color: var(--coffee-accent); box-shadow: inset 3px 0 var(--coffee-accent); }
.coffee-card-main, .coffee-details-content { padding: 12px 14px; }
.coffee-card h2 { font: 700 clamp(1.18rem, 2vw, 1.5rem)/1.16 Georgia, serif; margin: 0 0 3px; }
.coffee-address, .coffee-distance, .coffee-sources, .coffee-credits, #coffee-location-status {
  color: var(--coffee-muted); font-size: .84rem;
}
.coffee-address, .coffee-distance { margin: 0 0 5px; }
.coffee-description { font: 1rem/1.5 Georgia, serif; margin: 6px 0; }
.coffee-tags { display: flex; flex-wrap: wrap; gap: 4px; list-style: none; padding: 0; margin: 7px 0 9px; }
.coffee-tags li { color: #65392c; background: #f1e4d8; border-radius: 20px; padding: 3px 8px; font-size: .74rem; }
.coffee-tags .coffee-closed { color: #412e28; background: #eee5e0; font-weight: 700; }
.coffee-card-actions { font-size: .82rem; gap: 8px; }
.coffee-card-actions button { min-height: 39px; }
.coffee-details summary { cursor: pointer; border-top: 1px solid var(--coffee-line); padding: 9px 14px; font-size: .82rem; font-weight: 650; }
.coffee-details summary span { margin-left: 7px; font-weight: 400; color: var(--coffee-muted); }
.coffee-details-content { padding-top: 0; }
.coffee-photos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.coffee-photos figure { margin: 0; }
.coffee-photos img { display: block; width: 100%; height: auto; aspect-ratio: 4/3; object-fit: cover; border-radius: 4px; }
.coffee-photos figcaption { margin-top: 6px; font-size: .78rem; line-height: 1.4; }
.coffee-work { margin: 10px 0; font-size: .84rem; }
.coffee-work dt { font-weight: 700; }
.coffee-work dd { margin: 0 0 5px; }
.coffee-map-panel { position: sticky; top: 116px; min-width: 0; }
.coffee-map-tools {
  justify-content: space-between;
  padding: 6px 9px 6px 14px;
  border: 1px solid var(--coffee-line);
  border-bottom: 0;
  border-radius: 12px 12px 0 0;
  background: var(--coffee-paper);
  color: var(--coffee-muted);
  font-size: .82rem;
}
.coffee-map-tools button { min-height: 36px; }
#coffee-map {
  height: calc(clamp(440px, 68vh, 760px) - 48px);
  background: #f0e9df;
  border: 1px solid var(--coffee-line);
  border-radius: 0 0 12px 12px;
  z-index: 0;
}
.coffee-pin, .coffee-cluster {
  border: 2px solid #fff;
  border-radius: 50%;
  background: #9d3423;
  color: #fff;
  display: grid;
  place-items: center;
  font-weight: 750;
  box-shadow: 0 2px 7px #3b1d1680;
}
.coffee-cluster { background: #54291f; border-width: 3px; font-size: .96rem; }
.coffee-pin-closed { background: #685d58; }
.coffee-credits { margin-top: 24px; border-top: 1px solid var(--coffee-line); padding-top: 10px; }
#coffee-comparison {
  width: min(920px, calc(100% - 24px));
  max-height: 85vh;
  overflow: auto;
  background: var(--coffee-paper);
  color: var(--coffee-ink);
  border: 1px solid var(--coffee-line);
  border-radius: 12px;
  padding: 20px;
}
#coffee-comparison::backdrop { background: #20140ea6; }
.coffee-dialog-head { justify-content: space-between; }
#coffee-compare-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 225px), 1fr)); gap: 12px; }
#coffee-compare-cards section { padding: 13px; border: 1px solid var(--coffee-line); }
#coffee-compare-cards h2 { font: 700 1.32rem/1.15 Georgia, serif; margin: 0 0 8px; }
@media (max-width: 760px) {
  .coffee-intro { grid-template-columns: 1fr; row-gap: 10px; }
  .coffee-explorer { grid-template-columns: minmax(0, 1fr); }
  .coffee-views { display: flex; gap: 4px; }
  .coffee-list { max-height: none; overflow: visible; padding: 0; }
  .coffee-map-panel { position: static; }
  .coffee-explorer[data-view="list"] .coffee-map-panel,
  .coffee-explorer[data-view="map"] .coffee-list { display: none; }
  #coffee-map { height: clamp(360px, 57vh, 550px); }
}
