/* Photo map and adjacent cards, using the site's coastal palette. */
body.guide-page .guide-explorer { --explorer-map-height: clamp(420px, 61vh, 620px); }
body.guide-page .guide-explorer#guide-map, body.guide-page .guide-explorer #directory { scroll-margin-top: 10px; }
body.guide-page .guide-explorer .guide-map-heading { margin-bottom: 28px; }
body.guide-page .guide-explorer .browse-controls { grid-template-columns: minmax(0, 1fr) minmax(190px, .48fr) auto; margin-bottom: 24px; }
body.guide-page .guide-explorer-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: start; gap: 30px; }
body.guide-page .guide-map-pane { min-width: 0; position: sticky; top: 94px; scroll-margin-top: 10px; border: 1px solid var(--line); background: var(--paper); border-radius: 7px; overflow: hidden; }
body.guide-page .map-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 49px; padding: 0 14px; border-bottom: 1px solid var(--line); background: var(--ivory); }
body.guide-page .map-toolbar p { margin: 0; font-size: 12px; color: var(--muted); }
body.guide-page .map-toolbar > div { display: flex; gap: 14px; flex-shrink: 0; }
body.guide-page .map-toolbar button { min-height: 44px; border: 0; background: transparent; padding: 6px 0; font-size: 12px; text-decoration: underline; text-underline-offset: 4px; }
body.guide-page .guide-map-frame#places-map { height: var(--explorer-map-height); min-height: 0; background: var(--blue-wash); border-radius: 0; }
body.guide-page .guide-map-pane .map-caption { margin: 0; padding: 11px 14px; font-size: 11px; line-height: 1.5; color: var(--muted); background: var(--ivory); border-top: 1px solid var(--line); }
body.guide-page .guide-explorer .guide-directory { padding: 0; min-width: 0; border: 0; }
body.guide-page .guide-explorer .directory-heading { min-height: 49px; margin: 0; align-items: center; gap: 10px; padding: 0 0 14px; }
body.guide-page .guide-explorer .directory-heading h3 { font-size: 26px; line-height: 1.2; }
body.guide-page .guide-explorer .directory-heading p { max-width: 200px; text-align: right; font-size: 11px; line-height: 1.5; }
body.guide-page .guide-results-scroll { max-height: calc(var(--explorer-map-height) + 42px); overflow-y: auto; overscroll-behavior-y: contain; scrollbar-width: thin; scrollbar-color: var(--blue) transparent; padding: 0 12px 0 0; scroll-padding-block: 12px; }
body.guide-page .guide-results-scroll:focus-visible { outline: 2px solid var(--focus); outline-offset: 3px; }
body.guide-page .guide-explorer .guide-result-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; }
body.guide-page .guide-explorer .place-card { display: grid; grid-template-columns: minmax(140px, .85fr) minmax(0, 1fr); gap: 18px; align-items: start; padding: 22px 0; margin: 0; border: 0; border-bottom: 1px solid var(--line); transition: background-color .15s ease; }
body.guide-page .guide-explorer .place-card:first-child { padding-top: 0; }
body.guide-page .guide-explorer .place-card.is-selected { background: var(--green-wash); box-shadow: inset 3px 0 var(--bottle-green); padding-left: 12px; padding-right: 10px; }
body.guide-page .guide-explorer .place-card.is-selected:first-child { padding-top: 12px; }
body.guide-page .guide-explorer .place-photo { position: relative; display: block; width: 100%; height: 196px; aspect-ratio: auto; margin: 0; padding: 0; border: 0; border-radius: 5px; overflow: hidden; background: var(--paper); cursor: pointer; }
body.guide-page .guide-explorer .place-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .2s ease; }
body.guide-page .guide-explorer .place-photo:hover img { transform: scale(1.035); }
body.guide-page .guide-explorer .place-photo.is-illustration img { object-fit: contain; }
body.guide-page .place-card-number { position: absolute; top: 8px; left: 8px; display: grid; place-items: center; min-width: 28px; height: 28px; padding: 0 5px; border-radius: 50%; color: var(--ivory); background: var(--denim); border: 1px solid var(--ivory); font: 500 11px/1 var(--sans); }
body.guide-page .guide-explorer .place-meta { margin: 0 0 7px; color: var(--bottle-green); font-size: 10px; line-height: 1.5; }
body.guide-page .guide-explorer .place-card h3 { margin: 0; font-size: clamp(26px, 2.25vw, 32px); line-height: 1.08; }
body.guide-page .place-name { display: block; margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; text-align: left; font: inherit; color: inherit; }
body.guide-page .place-name:hover { text-decoration: underline; text-underline-offset: 4px; }
body.guide-page .guide-explorer .card-description { display: block; -webkit-line-clamp: unset; overflow: visible; margin: 10px 0 6px; font-size: 12px; line-height: 1.65; color: var(--muted); }
body.guide-page .guide-explorer .place-links { display: flex; align-items: center; flex-wrap: wrap; gap: 0 17px; margin-top: 3px; }
body.guide-page .guide-explorer .place-links a { display: inline-flex; align-items: center; min-height: 44px; font-size: 11px; text-underline-offset: 4px; }
body.guide-page .guide-explorer .guide-more { width: 100%; margin: 20px 0 4px; }
body.guide-page .guide-explorer .guide-empty { padding: 48px 20px; background: var(--green-wash); }
body.guide-page .guide-explorer .map-save-row { padding-top: 14px; }
body.guide-page .guide-explorer .map-save-help { max-width: 700px; }
body.guide-page .guide-explorer.is-map-expanded .guide-explorer-layout { grid-template-columns: minmax(0, 1fr); }
body.guide-page .guide-explorer.is-map-expanded .guide-map-pane { position: relative; top: 0; }
body.guide-page .guide-explorer.is-map-expanded #places-map { height: min(68vh, 700px); }
body.guide-page .guide-explorer.is-map-expanded .guide-results-scroll { max-height: none; overflow: visible; padding-right: 0; }
body.guide-page .guide-explorer.is-map-expanded .guide-result-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 30px; }
@media (min-width: 1500px) { body.guide-page .guide-experience .guide-explorer.wrap { width: min(1380px, 90%); } }
@media (max-width: 1000px) and (min-width: 761px) {
  body.guide-page .guide-explorer-layout { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 20px; }
  body.guide-page .guide-explorer .place-card { grid-template-columns: 120px minmax(0, 1fr); gap: 14px; }
  body.guide-page .guide-explorer .place-photo { height: 170px; }
  body.guide-page .map-toolbar { flex-wrap: wrap; gap: 0; padding-block: 4px; }
  body.guide-page .map-toolbar p { width: 100%; padding-top: 5px; }
  body.guide-page .guide-explorer .directory-heading { min-height: 71px; }
}
@media (max-width: 760px) {
  body.guide-page .guide-explorer { --explorer-map-height: 320px; }
  body.guide-page .guide-explorer .guide-map-heading { display: block; margin-bottom: 22px; }
  body.guide-page .guide-explorer .guide-map-heading h2 { font-size: 36px; }
  body.guide-page .guide-explorer .guide-map-heading > .button { margin-top: 16px; }
  body.guide-page .guide-explorer .browse-controls { grid-template-columns: minmax(0, 1fr) auto; gap: 14px 12px; margin-bottom: 20px; }
  body.guide-page .guide-explorer .guide-search { grid-column: 1 / -1; }
  body.guide-page .guide-explorer-layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; }
  body.guide-page .guide-map-pane { position: relative; top: 0; }
  body.guide-page .map-toolbar { padding-inline: 12px; }
  body.guide-page #expand-map { display: none; }
  body.guide-page .guide-results-scroll { max-height: none; overflow: visible; padding-right: 0; }
  body.guide-page .guide-explorer .directory-heading { min-height: 44px; padding-bottom: 14px; }
  body.guide-page .guide-explorer .directory-heading h3 { font-size: 27px; }
  body.guide-page .guide-explorer .directory-heading p { max-width: 145px; font-size: 11px; }
  body.guide-page .guide-explorer .place-card { grid-template-columns: minmax(112px, .8fr) minmax(0, 1.2fr); gap: 16px; padding-block: 20px; }
  body.guide-page .guide-explorer .place-photo { height: 176px; }
  body.guide-page .guide-explorer .place-card h3 { font-size: 27px; }
  body.guide-page .guide-explorer .place-meta { font-size: 9px; }
  body.guide-page .guide-explorer .card-description { font-size: 12px; }
  body.guide-page .guide-explorer .place-links { gap: 0 14px; }
  body.guide-page .guide-explorer.is-map-expanded #places-map { height: 320px; }
  body.guide-page .guide-explorer.is-map-expanded .guide-result-grid { grid-template-columns: 1fr; }
}
@media (max-width: 380px) {
  body.guide-page .guide-explorer .place-card { grid-template-columns: 105px minmax(0, 1fr); gap: 12px; }
  body.guide-page .guide-explorer .place-photo { height: 154px; }
  body.guide-page .guide-explorer .place-card h3 { font-size: 25px; }
}
@media (prefers-reduced-motion: reduce) { body.guide-page .guide-explorer :is(.place-card, .place-photo img) { transition: none; } }
@media print {
  body.guide-page .guide-explorer { display: block; }
  body.guide-page .guide-map-pane, body.guide-page .guide-explorer .browse-controls, body.guide-page .guide-explorer .map-save-row { display: none; }
  body.guide-page .guide-explorer-layout { display: block; }
  body.guide-page .guide-results-scroll { max-height: none; overflow: visible; }
  body.guide-page .guide-explorer .guide-result-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
}

@media(max-width:760px){
 body.guide-page .guide-explorer .place-meta,body.guide-page .guide-explorer .directory-heading p{font-size:12px}
 body.guide-page .guide-explorer .card-description{font-size:15px;line-height:1.55}
 body.guide-page .guide-explorer .place-links a{font-size:14px}
}
