/* Screenshot-led map detail drawer. The map stays interactive behind it. */
body.tdp-site :is(h1,h2,h3,h4,h5,h6,p,a,button,input,textarea,select,label,small,strong,em,span,li,dt,dd,blockquote) { font-family: var(--tdp-font); }
body.tdp-site :is(h1,h2,h3,h4,h5,h6) { font-synthesis: none; }
body.tdp-site h1 { line-height: 1.18; }
body.tdp-site h2 { line-height: 1.3; }
body.tdp-site h3 { line-height: 1.4; }
.tdp-map-stage { --tdp-detail-width: clamp(410px, 35vw, 500px); }
.tdp-map-card h3 { font-size: 16px; font-weight: 700; line-height: 1.4; }
.tdp-map-card__area,.tdp-map-card__excerpt { font-size: 12px; line-height: 1.55; }
.tdp-map-card__type { font-size: 11px; }
.tdp-map-card .tdp-google-rating { font-size: 12px; }
.tdp-map-card__actions button,.tdp-map-card__actions a { font-size: 11px; min-height: 36px; }
.tdp-map-card__actions button[data-map-focus] { background: #bc541e; }
.tdp-map-card__actions button[data-map-detail] { color: #12624f; background: #e8f3ed; }
.tdp-map-google-link { font-size: 12px; }
.tdp-map-canvas { font-family: var(--tdp-font); }
.tdp-map-canvas .leaflet-popup-content { width: 280px !important; }
.tdp-map-popup--compact > div { padding: 13px 15px 15px; }
.tdp-map-popup--compact h3 { padding-right: 12px; font-size: 15px; margin: 0 0 3px; }
.tdp-map-popup--compact small { display: block; font-size: 10px; letter-spacing: 0; }
.tdp-map-popup--compact .tdp-google-rating small { display: none; }
.tdp-map-popup--compact .tdp-popup-address { margin: 5px 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }
.tdp-map-popup--compact .tdp-map-popup__actions { display: grid; grid-template-columns: 1fr 1fr; }
.tdp-map-popup--compact .tdp-map-popup__actions > * { justify-content: center; font-size: 12px; min-height: 34px; }
.tdp-map-popup--compact .tdp-map-popup__actions button { color: #1d55b7; background: #edf4ff; border: 1px solid #c6d9fa; }
.tdp-map-popup--compact .tdp-map-popup__actions a { background: #a96600; }
.tdp-map-detail { position: absolute; z-index: 750; top: 0; right: 0; bottom: 0; display: grid; grid-template-rows: 48px minmax(0,1fr); width: var(--tdp-detail-width); color: #24342e; background: #fff; border-left: 1px solid #dbe5df; box-shadow: -12px 0 36px rgba(21,51,41,.12); }
.tdp-map-detail__bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 0 14px; border-bottom: 1px solid #e4ebe7; background: #fff; }
.tdp-map-detail__bar button { margin: 0; min-height: 38px; padding: 7px 10px; color: #37554a; background: transparent; border: 0; font-size: 13px; font-weight: 600; line-height: 1.3; cursor: pointer; }
.tdp-map-detail__bar [data-map-detail-close] { width: 38px; font-size: 28px; font-weight: 400; }
.tdp-map-detail__scroll { overflow-y: auto; overflow-x: hidden; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: #b7c9c0 #f5f8f6; }
.has-place-detail .tdp-map-drawer,.has-place-detail .tdp-map-list-toggle { display: none; }
.has-place-detail .tdp-map-tools { right: calc(var(--tdp-detail-width) + 16px); }
.has-place-detail .tdp-map-canvas .leaflet-bottom.leaflet-left { left: 12px; }
.has-place-detail .leaflet-bottom.leaflet-right { right: var(--tdp-detail-width); }
.has-place-detail .tdp-map-route-status { right: calc(var(--tdp-detail-width) + 18px); left: 20px; max-width: 350px; }
.tdp-detail-cover { position: relative; height: 230px; background: #e8f0eb; }
.tdp-detail-cover > img { display: block; width: 100%; height: 100%; object-fit: cover; }
.tdp-detail-cover.is-pending { height: 170px; }
.tdp-detail-cover > button { position: absolute; min-height: 40px; border: 0; cursor: pointer; font-size: 13px; font-weight: 700; }
.tdp-detail-cover [data-cover-previous],.tdp-detail-cover [data-cover-next] { top: 50%; transform: translateY(-50%); width: 40px; padding: 0; border-radius: 50%; color: #fff; background: rgba(23,45,35,.82); font-size: 32px; line-height: 1; }
.tdp-detail-cover [data-cover-previous] { left: 12px; }
.tdp-detail-cover [data-cover-next] { right: 12px; }
.tdp-detail-cover [data-gallery-open] { right: 14px; bottom: 14px; padding: 10px 14px; border-radius: 10px; color: #263e32; background: #fff; box-shadow: 0 3px 10px #0002; }
.tdp-detail-cover button:disabled { opacity: .55; cursor: default; }
.tdp-detail-cover.is-pending [data-gallery-open] { opacity: 1; font-size: 12px; }
.tdp-detail-content { padding: 20px 24px 30px; }
.tdp-detail-content #tdp-map-detail-title { margin: 14px 0 12px; color: #183b2d; font-size: clamp(26px,2.2vw,34px); font-weight: 700; line-height: 1.3; letter-spacing: -.025em; overflow-wrap: break-word; }
.tdp-detail-disclaimer { margin: 0 0 12px; color: #697b71; font-size: 12px; line-height: 1.7; font-style: italic; }
.tdp-detail-disclaimer a { color: #96540b; text-decoration: underline; }
.tdp-detail-types { display: flex; flex-wrap: wrap; gap: 6px; }
.tdp-detail-types span { padding: 4px 9px; color: #165f4c; background: #eaf5ee; border: 1px solid #cce4d6; border-radius: 5px; font-size: 12px; font-weight: 600; }
.tdp-detail-address { margin: 16px 0 12px; color: #596c62; font-size: 15px; line-height: 1.75; }
.tdp-detail-address > span { color: #bb641b; font-size: 22px; }
.tdp-detail-rating { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin: 12px 0 22px; }
.tdp-detail-rating strong { padding: 6px 10px; color: #805100; background: #fff3c3; border-radius: 8px; font-size: 18px; }
.tdp-detail-rating span { color: #52685c; font-size: 12px; }
.tdp-detail-actions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; padding: 20px 0 12px; border-top: 1px solid #e4ece6; }
.tdp-detail-actions > * { display: flex; align-items: center; justify-content: center; min-height: 54px; padding: 10px 12px; margin: 0; color: #165f4c; background: #fff; border: 1px solid #d5e3d9; border-radius: 12px; box-shadow: 0 5px 12px #183f2510; font-size: 14px; font-weight: 700; line-height: 1.5; text-align: center; cursor: pointer; }
.tdp-detail-actions > .is-directions { color: #fff; background: #ac650c; border-color: #ac650c; }
.tdp-detail-actions > .is-call { color: #fff; background: #14723a; border-color: #14723a; }
.tdp-detail-actions > [data-detail-copy] { color: #fff; background: #225dc0; border-color: #225dc0; }
.tdp-detail-actions > .is-saved { color: #a1520d; border-color: #e8b87f; background: #fff6e7; }
.tdp-detail-actions > :disabled { color: #707b73; background: #f2f5f2; border-color: #e4e9e5; cursor: not-allowed; box-shadow: none; font-size: 12px; font-weight: 500; }
.tdp-detail-feedback { min-height: 0; margin: 0; color: #145d40; font-size: 12px; line-height: 1.6; }
.tdp-detail-feedback:not(:empty) { margin: 4px 0 12px; }
.tdp-detail-copy-fallback { width: 100%; font-size: 12px; }
.tdp-detail-tabs { position: sticky; top: 0; z-index: 2; display: grid; grid-template-columns: repeat(3,1fr); gap: 0; margin: 16px -24px 0; padding: 0 12px; background: #fff; border-top: 1px solid #e6ece7; border-bottom: 1px solid #d5e2d9; }
.tdp-detail-tabs a { padding: 13px 5px; color: #2c5944; text-align: center; font-size: 13px; font-weight: 600; }
.tdp-detail-tabs a:hover { color: #8a4f0d; background: #f7faf7; }
.tdp-detail-section { padding: 26px 0; border-bottom: 1px solid #e5ece7; }
.tdp-detail-section > h3 { margin: 0 0 16px; color: #183c2c; font-size: 21px; font-weight: 700; }
.tdp-detail-prose { font-size: 15px; line-height: 1.9; color: #465d4e; }
.tdp-detail-prose p { margin: 0 0 16px; }
.tdp-detail-prose :is(h2,h3,h4) { margin: 24px 0 10px; color: #274b36; font-size: 17px; line-height: 1.5; font-weight: 600; }
.tdp-detail-prose :is(ul,ol) { margin: 0 0 16px; padding-left: 21px; }
.tdp-detail-prose li { margin: 0 0 8px; }
.tdp-detail-prose a { color: #08624c; text-decoration: underline; }
.tdp-detail-section dl { margin: 0; }
.tdp-detail-section dl > div { display: grid; grid-template-columns: 140px minmax(0,1fr); gap: 14px; padding: 12px 0; border-bottom: 1px solid #e7ede8; font-size: 13px; line-height: 1.7; }
.tdp-detail-section dt { color: #68786c; font-weight: 400; text-transform: none; }
.tdp-detail-section dd { margin: 0; color: #2b4835; font-weight: 600; text-transform: none; overflow-wrap: anywhere; }
.tdp-detail-muted { margin: 12px 0; color: #6d7a70; font-size: 12px; line-height: 1.8; }
.tdp-detail-note { margin: 16px 0; padding: 14px; color: #6d522b; background: #fff8eb; border-left: 3px solid #d8a33f; font-size: 13px; line-height: 1.8; }
.tdp-detail-review { padding: 18px 0; border-top: 1px solid #e2eae3; }
.tdp-detail-review > div { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px; font-size: 14px; }
.tdp-detail-review > div span { color: #9c5f00; letter-spacing: 1px; }
.tdp-detail-review small { color: #728071; font-size: 11px; line-height: 1.7; }
.tdp-detail-review p { margin: 10px 0; font-size: 14px; line-height: 1.85; color: #3f5847; }
.tdp-detail-review > a,.tdp-detail-source-link { color: #116246; font-size: 12px; text-decoration: underline; }
.tdp-detail-nearby { display: grid; }
.tdp-detail-nearby button { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 0; border: 0; border-bottom: 1px solid #e3ebe4; background: none; color: #274a34; text-align: left; cursor: pointer; }
.tdp-detail-nearby button span { font-size: 14px; font-weight: 600; }
.tdp-detail-nearby button small { flex-shrink: 0; font-size: 12px; font-weight: 400; }
.tdp-detail-article-link { display: block; margin-top: 24px; color: #1a6144; font-size: 14px; text-decoration: underline !important; }
.tdp-detail-loading,.tdp-detail-error { padding: 24px; }
.tdp-detail-loading h2,.tdp-detail-error h2 { font-size: 26px; margin: 20px 0 10px; }
.tdp-detail-loading p,.tdp-detail-error p { color: #68786d; font-size: 14px; }
.tdp-detail-skeleton-cover,.tdp-detail-skeleton-line { background: #e8eee9; border-radius: 8px; }
.tdp-detail-skeleton-cover { height: 200px; }
.tdp-detail-skeleton-line { height: 14px; margin: 14px 0; }
.tdp-detail-skeleton-line:last-child { width: 70%; }
.tdp-detail-error button,.tdp-detail-error a { display: inline-flex; padding: 10px 14px; margin: 8px 8px 0 0; border: 1px solid #c8ddcf; border-radius: 8px; background: #eef7f0; color: #185e3a; font-size: 13px; cursor: pointer; }
.tdp-map-gallery { width: min(1120px,calc(100vw - 32px)); max-width: none; max-height: calc(100dvh - 30px); padding: 18px; margin: auto; border: 0; border-radius: 16px; background: #fff; }
.tdp-map-gallery::backdrop { background: rgba(10,27,19,.8); }
.tdp-map-gallery > header { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-bottom: 16px; }
.tdp-map-gallery h2 { margin: 0; color: #1d3b29; font-size: 22px; }
.tdp-map-gallery button { min-height: 42px; min-width: 42px; border: 0; border-radius: 8px; cursor: pointer; color: #254632; background: #edf4ed; }
.tdp-map-gallery > header button { flex: 0 0 42px; width: 42px; padding: 0; font-size: 27px; }
.tdp-map-gallery__stage { display: grid; grid-template-columns: 42px minmax(0,1fr) 42px; align-items: center; gap: 10px; }
.tdp-map-gallery__stage img { display: block; width: 100%; height: min(65dvh,650px); object-fit: contain; }
.tdp-map-gallery__stage button { width: 42px; padding: 0; font-size: 30px; }
.tdp-map-gallery button:disabled { opacity: .35; cursor: default; }
.tdp-map-gallery p { margin: 12px 0; font-size: 13px; color: #5c6f60; }
.tdp-map-gallery__thumbs { display: flex; gap: 8px; overflow-x: auto; padding: 2px; }
.tdp-map-gallery__thumbs button { flex: 0 0 70px; width: 70px; padding: 2px; border: 2px solid transparent; }
.tdp-map-gallery__thumbs button[aria-pressed=true] { border-color: #b9741a; }
.tdp-map-gallery__thumbs img { display: block; width: 100%; height: 48px; object-fit: cover; border-radius: 5px; }
.tdp-map-detail :is(a,button,input):focus-visible,.tdp-map-gallery :is(a,button):focus-visible { outline: 3px solid #307dce; outline-offset: 2px; }
@media (max-width: 1100px) and (min-width: 821px) { .tdp-map-stage { --tdp-detail-width: 400px; } .tdp-detail-content { padding-inline: 20px; } .tdp-detail-tabs { margin-inline: -20px; } }
@media (max-width: 820px) {
    .tdp-map-detail { top: 84px; width: 100%; border: 1px solid #d2e0d7; border-radius: 20px 20px 0 0; grid-template-rows: 46px minmax(0,1fr); overflow: hidden; box-shadow: 0 -8px 26px #1d44252a; }
    .tdp-map-detail__bar { padding-inline: 9px; }
    .tdp-detail-cover { height: 190px; }
    .tdp-detail-cover.is-pending { height: 130px; }
    .tdp-detail-content { padding: 18px 20px 28px; }
    .tdp-detail-content #tdp-map-detail-title { font-size: 28px; }
    .tdp-detail-tabs { margin-inline: -20px; }
    .has-place-detail .tdp-map-tools { top: 10px; right: 12px; max-height: 58px; overflow: hidden; }
    .has-place-detail .tdp-map-tools button:not(:first-child) { display: none; }
    .has-place-detail .leaflet-bottom { bottom: auto; top: 10px; }
    .has-place-detail .leaflet-control-scale,.has-place-detail .leaflet-control-zoom { display: none; }
    .has-place-detail .leaflet-bottom.leaflet-right { top: 66px; right: 0; }
    .has-place-detail .tdp-map-route-status { display: none; }
    .tdp-map-gallery { width: calc(100vw - 20px); padding: 12px; }
    .tdp-map-gallery__stage { grid-template-columns: 32px minmax(0,1fr) 32px; gap: 4px; }
    .tdp-map-gallery__stage button { width: 32px; min-width: 32px; }
    .tdp-map-gallery__stage img { height: 55dvh; }
}
@media (max-width: 380px) { .tdp-detail-actions { gap: 8px; } .tdp-detail-content { padding-inline: 16px; } .tdp-detail-tabs { margin-inline: -16px; } .tdp-detail-actions > * { padding: 9px; font-size: 13px; } .tdp-detail-section dl > div { grid-template-columns: 115px minmax(0,1fr); gap: 10px; } }
@media (prefers-reduced-motion: reduce) { .tdp-map-detail *, .tdp-map-gallery * { scroll-behavior: auto !important; transition: none !important; } }
