/* Recommendation and map overlays must override the full-screen gallery rules. */
#recommendation-modal,#location-modal{
  position:fixed;inset:0;margin:auto;transform:none;
  box-sizing:border-box;width:min(1040px,calc(100% - 32px));height:auto;
  min-width:0;max-width:calc(100% - 32px);max-height:calc(100dvh - 32px);
  padding:0;border:0;border-radius:12px;background:#fbfaf3;color:#242424;
  overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;
  box-shadow:0 18px 80px #24242435;
}
#recommendation-modal::backdrop,#location-modal::backdrop{background:#242424b8;backdrop-filter:blur(4px)}
#recommendation-modal[open],#location-modal[open]{animation:tangore-dialog-enter .24s ease-out}
#recommendation-modal .rec-top,#location-modal .rec-top{
  position:sticky;top:0;z-index:3;display:flex;align-items:center;justify-content:space-between;
  gap:16px;padding:16px 24px;background:#fbfaf3;border-bottom:1px solid #24242426;
}
#recommendation-modal .rec-close,#location-modal .rec-close{background:#242424;color:#fff;border-radius:12px;flex:none;min-height:44px;padding:10px 18px;font-size:.9375rem;line-height:1.35}
#recommendation-modal .rec-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0;min-width:0}
#recommendation-modal .rec-image{width:100%;height:100%;min-height:360px;max-height:620px;object-fit:cover;border-radius:10px;margin:0}
#recommendation-modal .rec-grid>.rec-image{width:calc(100% - 20px);margin:20px 0 20px 20px;height:calc(100% - 40px)}
#recommendation-modal .rec-copy{min-width:0;padding:28px;gap:18px}
#recommendation-modal .rec-copy h3{overflow-wrap:break-word;font-size:clamp(2rem,4vw,3.4rem)}
#recommendation-modal .rec-description{font-size:1rem;line-height:1.65}
#recommendation-modal .rec-details{font-size:.9375rem;line-height:1.65}
#recommendation-modal .rec-primary{background:#f28b66;color:#171717;border-radius:7px;min-height:52px;padding:14px 18px;font-size:1rem;line-height:1.4}
#recommendation-modal .rec-primary:hover{background:#f5a58a;color:#171717}
#recommendation-modal .rec-provider{border-radius:7px;border:1px solid #24242433;padding:14px 18px}
#recommendation-modal .rec-provider summary{font-size:.9375rem;border-radius:4px;overflow-wrap:break-word}
#recommendation-modal .rec-embed-button{border-color:#242424;border-radius:6px;font-size:.9375rem;white-space:normal}
#recommendation-modal .rec-provider iframe{max-width:100%;border-radius:6px}
#recommendation-modal .rec-credit{font-size:.8125rem;line-height:1.6;overflow-wrap:anywhere}
#recommendation-modal .rec-contact-pending,#recommendation-modal .rec-website-notice{font-size:.875rem}
.rec-map-note{font-size:.875rem;line-height:1.55;color:#454545}
.rec-map-link,.card-map-link,.location-app-link{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  border:1px solid #242424;border-radius:6px;padding:12px 16px;min-height:48px;
  color:#242424;background:#a7f2e4;font-size:.9375rem;font-weight:600;line-height:1.45;text-align:center;
  transition:background .2s,transform .2s;
}
.rec-map-link:hover,.card-map-link:hover,.location-app-link:hover{background:#8fe6d5;color:#242424;transform:translateY(-2px)}
.rec-map-link svg,.card-map-link svg,.location-app-link svg{width:21px;height:21px;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.card-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:auto}
.tour-copy .card-actions .text-link{margin:0;align-self:auto;min-height:46px;border:1px solid #242424;border-radius:6px;padding:10px 15px;font-size:.9375rem;display:inline-flex;align-items:center;justify-content:center;background:transparent}
.tour-copy .card-actions .text-link:hover{background:#f28b66;color:#242424}
.card-actions .card-map-link{padding:10px 13px;min-height:46px}
.tour-card,.food-grid .tour-card{border-radius:11px;min-width:0}
.tour-visual,.tour-visual>img,.featured-tour .tour-visual{border-radius:10px}
.featured-tour{background:#a7f2e4;border-radius:12px}
.tour-grid,.food-grid{min-width:0}
.tour-copy h3{overflow-wrap:break-word}
.guide-filters button{border-radius:12px;color:#242424;border-color:#24242460;font-size:.9375rem}
.guide-filters button[aria-pressed=true]{background:#f28b66;border-color:#f28b66;color:#171717}
.guide-search input{border-radius:6px;border-color:#242424;padding:12px 14px}
.guide-search>span,.guide-count{font-size:.9375rem}
.guide-tools,.guide-end{border-radius:9px}
#location-modal{width:min(900px,calc(100% - 32px))}
.location-modal-content{padding:28px;min-width:0}
.location-modal-content h2{font-size:clamp(2rem,5vw,3.4rem);line-height:1.08;margin:0 0 14px}
.location-modal-content>p{font-size:1rem;margin:0 0 22px;line-height:1.6}
.location-map-frame{width:100%;height:clamp(260px,47dvh,440px);display:block;border:0;border-radius:10px;background:#a7f2e4}
.location-apps{display:flex;gap:12px;flex-wrap:wrap;margin-top:20px}
.location-app-link{flex:1;min-width:190px}
.location-app-link:first-child{background:#f28b66;border-color:#f28b66;color:#171717}
.location-app-link:first-child:hover{background:#f5a58a;color:#171717}
@keyframes tangore-dialog-enter{from{opacity:0;translate:0 12px}to{opacity:1;translate:0 0}}
@media(max-width:760px){
  #recommendation-modal .rec-grid{display:block}
  #recommendation-modal .rec-grid>.rec-image{width:calc(100% - 32px);height:auto;min-height:0;max-height:330px;aspect-ratio:1.6;margin:16px 16px 0}
  #recommendation-modal .rec-copy{padding:24px}
  #recommendation-modal .rec-copy h3{font-size:2.25rem}
}
@media(max-width:480px){
  #recommendation-modal,#location-modal{width:calc(100% - 20px);max-width:calc(100% - 20px);max-height:calc(100dvh - 20px);border-radius:10px;scrollbar-gutter:auto}
  #recommendation-modal .rec-top,#location-modal .rec-top{padding:12px 16px;gap:10px}
  #recommendation-modal .rec-top>span,#location-modal .rec-top>span{font-size:.875rem;line-height:1.4}
  #recommendation-modal .rec-copy{padding:20px}
  #recommendation-modal .rec-copy h3{font-size:2rem}
  #recommendation-modal .rec-provider{padding:12px 14px}
  .card-actions{gap:10px}
  .card-actions>*{flex:1 1 auto}
  .tour-copy .card-actions .text-link,.card-actions .card-map-link{font-size:.875rem;padding:10px 12px}
  .featured-tour{padding:0;background:transparent}
  .location-modal-content{padding:20px}
  .location-apps{flex-direction:column}
  .location-app-link{width:100%;min-width:0;flex:auto}
}
@media(prefers-reduced-motion:reduce){#recommendation-modal[open],#location-modal[open]{animation:none}.rec-map-link,.card-map-link,.location-app-link{transition:none}}
html.no-motion #recommendation-modal[open],html.no-motion #location-modal[open]{animation:none}
