/* Shared details keep text flexible and icons at a readable size. */
.dialog-scroll{display:contents}
.dialog-toolbar{display:contents}
.dialog-toolbar>span{display:none}
.place-dialog[open],.event-dialog[open],.history-dialog[open]{right:auto;bottom:auto}
body.modal-open{overflow:hidden}
.card-detail,.detail-line,.event-place,.event-time,.event-facts>span{display:flex;align-items:flex-start;gap:8px}
.card-detail>span,.detail-line>span,.event-place>span,.event-time>span,.event-facts>span>span{min-width:0;overflow-wrap:anywhere}
.card-detail svg,.detail-line svg,.event-place svg,.event-time svg,.event-facts svg{width:18px;height:18px;flex:0 0 18px;margin-top:2px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.events-heading>div>p{font-size:14px;line-height:1.6;color:#66758c}
.events-heading>div>p::after{content:none}
.pagination{flex-wrap:wrap}
button,a,input{-webkit-tap-highlight-color:transparent}
button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #78b5a0;outline-offset:4px}

@media(min-width:901px){.place-dialog .dialog-title-row{padding-right:48px}}

@media(max-width:1180px){
  html{scroll-padding-top:88px}
  body.menu-open{overflow:hidden}
  .topbar{height:72px;padding:0 20px;background:#1c382b}
  .topbar.scrolled,.topbar.menu-open{background:#1c382b}
  .topbar .brand{font-size:14px;letter-spacing:.1em;gap:10px;min-height:44px}
  .topbar .brand-mark{width:38px;height:38px;font-size:25px;flex-shrink:0}
  .topbar .brand small{font-size:10px;letter-spacing:.12em;margin-top:4px;color:#d0dcd4}
  .menu-toggle{display:grid;place-items:center;min-width:44px;min-height:44px;margin-left:auto;padding:0;border:1px solid #ffffff40;border-radius:10px;font-size:25px;line-height:1;color:#fff;cursor:pointer}
  .nav{display:none;position:absolute;left:0;right:0;flex-direction:column;align-items:stretch;top:100%;padding:12px 20px 20px;gap:4px;background:#1c382b;max-height:calc(100dvh - 72px);overflow-y:auto;overscroll-behavior:contain;box-shadow:0 18px 30px #0c1b2030}
  .nav.open{display:flex}
  .nav-link{display:flex;align-items:center;min-height:48px;padding:12px 14px;border-radius:8px;font-size:16px;line-height:1.4;white-space:normal}
  .nav-link.active,.nav-link:hover{background:#ffffff0d;color:#b4e4cf}
  .cards{grid-template-columns:minmax(0,1fr)}
  .button,.hero-map-link{min-height:48px;font-size:15px}
  .pagination button{min-width:44px;min-height:44px;font-size:15px}
  .event-filter{min-height:44px;font-size:14px}
  .search-box input{font-size:16px}
  footer{font-size:13px}
  footer .brand,footer>a:last-child{min-height:44px;display:flex;align-items:center}
  footer>a:last-child{font-size:14px}
}

@media(max-width:900px){
  body{font-size:16px;line-height:1.5}
  .home-hero{display:flex;flex-direction:column;align-items:stretch;justify-content:space-between;height:auto;min-height:100svh;max-height:none;gap:28px;isolation:isolate}
  .home-hero-image{background-position:55% center}
  .home-hero-shade{background:linear-gradient(180deg,#0d241c65,#0d241cb0 75%,#0d241ce0),linear-gradient(90deg,#0d241c80,transparent)}
  .home-hero-copy{width:auto;max-width:none;margin:0;padding:122px 24px 0}
  .home-hero-copy .eyebrow{font-size:11px;letter-spacing:.14em;line-height:1.6}
  .home-hero h1{font-size:clamp(38px,10.5vw,66px);line-height:1.08;letter-spacing:-.055em;margin:22px 0 24px;overflow-wrap:break-word}
  .home-hero-copy p{max-width:480px;font-size:16px;line-height:1.65;color:#f0f3ee;margin:0 0 24px}
  .home-hero .button-light{min-height:50px;min-width:220px;padding:14px 18px;font-size:15px;border-radius:10px}
  .hero-facts{position:relative;left:auto;right:auto;bottom:auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px 14px;margin:0 24px 24px;padding-top:20px;border-color:#ffffff50}
  .hero-fact,.climate-fact{min-width:0;gap:6px}
  .hero-fact b,.climate-fact b{font-size:16px;line-height:1.4;overflow-wrap:anywhere}
  .hero-fact>span{font-size:11px;line-height:1.45;letter-spacing:.1em;color:#e0e9e1}
  .hero-map-link{grid-column:1/-1;width:100%;min-width:0;min-height:50px;margin:0;padding:13px 17px;border-radius:10px;font-size:15px}
  .discover.section-pad,.events-section{padding:48px 16px 52px}
  .section-heading{margin-bottom:24px}
  .section-heading .eyebrow{font-size:11px;line-height:1.5;letter-spacing:.14em}
  .section-heading h2{font-size:clamp(32px,8vw,46px);line-height:1.12;letter-spacing:-.05em;margin-top:16px}
  .category-tabs{display:flex;flex-wrap:wrap;gap:8px;overflow:visible;padding:0}
  .category-tab{flex:0 1 auto;min-width:0;min-height:46px;padding:10px 15px;font-size:15px;line-height:1.3;gap:6px;white-space:normal;text-align:left}
  .category-tab .tab-label{font-size:15px;line-height:1.3}
  .category-tab .tab-count{font-size:14px}
  .category-intro{font-size:15px;line-height:1.6;margin:16px 0 0}
  .listing-toolbar{gap:14px;padding:22px 0 20px}
  .search-box{min-height:56px;padding:0 16px;gap:12px;width:100%;border-radius:12px}
  .search-box input{height:54px;font-size:16px;line-height:1.4}
  .search-box input::placeholder{color:#6b7167;opacity:1}
  .result-summary{max-width:100%;align-self:flex-end;text-align:right}
  .result-count{font-size:12px;line-height:1.5;letter-spacing:.06em}
  .result-subtitle{font-size:14px;line-height:1.4;margin-top:3px;color:#626b5e}
  .cards{gap:18px}
  .place-card{padding:16px;border-radius:18px;overflow-wrap:anywhere}
  .card-top{grid-template-columns:80px minmax(0,1fr);gap:14px 12px;align-items:start;min-height:0}
  .card-image{width:80px;height:86px;border-radius:12px}
  .card-copy{display:contents}
  .card-title-row{grid-column:2;display:flex;flex-direction:column;align-items:flex-start;gap:8px;min-width:0}
  .card-copy h3{font-size:20px;line-height:1.25;letter-spacing:-.035em;margin:0 0 5px}
  .card-kind{font-size:13px;line-height:1.5;color:#625d54}
  .open-status,.closed-status{max-width:100%;white-space:normal;font-size:12px;line-height:1.4;padding:5px 10px}
  .open-status{background:#147d71}
  .card-detail{grid-column:1/-1;margin:0;font-size:15px;line-height:1.5;color:#625d54}
  .payment-list{grid-column:1/-1;gap:7px;margin-top:0}
  .pill{padding:5px 11px;font-size:13px;line-height:1.4;color:#625d54;background:#fcfbf7}
  .card-actions,.dialog-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px;padding-top:16px;align-items:stretch}
  .card-actions .contact-button,.dialog-actions .contact-button{display:flex;min-width:0;height:auto;min-height:46px;padding:10px 8px;font-size:14px;line-height:1.4;gap:6px;border-radius:10px;flex:1 1 calc(50% - 4px)}
  .card-actions .contact-button.primary,.dialog-actions .contact-button.primary{flex:1 1 80px}
  .card-actions .contact-button.social,.dialog-actions .contact-button.social{flex:0 0 44px;min-width:44px;width:44px;min-height:46px;padding:10px}
  .contact-button svg{width:19px;height:19px}
  .contact-button:disabled{color:#686156}
  .pagination{gap:8px;margin-top:26px}
  .pagination button{height:46px;min-width:46px;font-size:15px}
  .empty-state,.events-empty{padding:28px 16px;font-size:16px;line-height:1.6}
  .events-heading{margin-bottom:22px}
  .events-heading .eyebrow{font-size:11px;line-height:1.5;letter-spacing:.14em}
  .events-heading h2{font-size:clamp(27px,7.5vw,40px);line-height:1.15;gap:10px;margin:16px 0 12px;letter-spacing:-.045em;flex-wrap:wrap}
  .events-heading h2::before,.events-heading h2::after{display:none}
  .events-heading>div>p{font-size:15px;color:#56657b;max-width:340px;margin:auto}
  .event-count{font-size:12px;line-height:1.4;letter-spacing:.08em;margin-top:12px;color:#56657b}
  .event-filters{flex-wrap:wrap;justify-content:center;gap:8px;overflow:visible;padding:0 0 24px}
  .event-filter{min-height:44px;padding:10px 15px;font-size:13px;line-height:1.4;letter-spacing:.02em}
  .event-filter[data-event-category="todos"]{--event-color:#aa4131}
  .event-filter[data-event-category="negocios"]{--event-color:#1c5cba}
  .event-filter[data-event-category="musica"]{--event-color:#203a68}
  .event-filter[data-event-category="cine"]{--event-color:#5b40c4}
  .event-filter[data-event-category="cultura"]{--event-color:#812577}
  .event-filter[data-event-category="familiar"]{--event-color:#087a55}
  .event-filter[data-event-category]{color:var(--event-color);border-color:var(--event-color)}
  .event-filter[data-event-category].active{background:var(--event-color);color:#fff!important}
  .event-filter:hover:not(.active){background:#f5f6f3}
  .event-grid{gap:24px}
  .event-card{display:flex;flex-direction:column;min-width:0;border-radius:18px;min-height:0}
  .event-info{display:grid;grid-template-columns:60px minmax(0,1fr);gap:14px;padding:20px 16px;align-items:start}
  .event-date{width:60px;border-radius:13px;padding:12px 4px;align-self:start;background:#285aaf}
  .event-date b{font-size:32px}
  .event-date span{font-size:12px;letter-spacing:.05em;margin-top:7px}
  .event-date small{font-size:10px;letter-spacing:0;line-height:1.4;margin-top:6px;overflow-wrap:anywhere}
  .event-copy h3{font-size:19px;line-height:1.3;margin:0 0 12px;letter-spacing:-.025em;overflow-wrap:anywhere}
  .event-place,.event-time{font-size:14px;line-height:1.5;margin:8px 0;color:#56657b}
  .event-photo{order:-1;width:100%;height:200px;min-height:0;border-radius:0}
  .event-photo::before{inset:45% 0 0}
  .event-photo-caption{left:16px;right:16px;bottom:14px;justify-content:flex-end}
  .event-photo-caption>span{display:none}
  .event-photo-caption b{font-size:14px;line-height:1.5;color:#70d6ff}
  .event-sample-tag{max-width:100%;font-size:11px;line-height:1.5;letter-spacing:.04em;padding:5px 9px;overflow-wrap:anywhere;white-space:normal;color:#74604a}
  .place-dialog[open],.event-dialog[open]{display:block;width:calc(100vw - 24px);height:auto;max-height:calc(100dvh - 24px);max-width:680px;overflow:hidden;border-radius:18px}
  .place-dialog .dialog-scroll,.event-dialog .dialog-scroll{display:block;max-height:calc(100dvh - 82px);overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
  .dialog-close,.event-dialog-close,.history-dialog-close{position:absolute;z-index:3;right:12px;top:12px;margin:0;width:44px;height:44px;font-size:28px;background:#152333ed;box-shadow:0 3px 14px #0003}
  .dialog-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:56px;padding:6px 10px 6px 20px;border-bottom:1px solid #80808025}
  .dialog-toolbar>span{display:block;font-size:13px;line-height:1.4;font-weight:600;letter-spacing:.02em}
  .dialog-toolbar button{position:static;flex:0 0 44px;box-shadow:none}
  .place-dialog .dialog-image{height:160px;min-height:0}
  .kind-chip{left:16px;bottom:14px;max-width:calc(100% - 32px);padding:6px 11px;font-size:12px;line-height:1.5;overflow-wrap:anywhere}
  .place-dialog .dialog-content{display:block;overflow:visible;padding:22px 20px 24px}
  .dialog-title-row{display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin:0 0 18px}
  .detail-category{font-size:11px;line-height:1.5;letter-spacing:.08em}
  .dialog-content h2{font-size:25px;line-height:1.25;letter-spacing:-.035em;margin:5px 0 0;overflow-wrap:anywhere}
  .place-dialog .detail-line{font-size:15px;line-height:1.55;margin:12px 0;color:#625d54}
  .detail-hours b{font-size:14px}
  .place-dialog .detail-description{font-size:15px;line-height:1.65;margin:18px 0}
  .place-dialog .payment-list{margin-top:10px}
  .demo-disclaimer{font-size:12px;line-height:1.6;margin:16px 0 0;padding:10px 12px;color:#645e53}
  .place-dialog .dialog-actions{margin-top:20px;padding-top:16px;gap:8px}
  .place-dialog .dialog-actions .contact-button{height:auto;min-height:46px;font-size:14px}
  .place-dialog .dialog-actions .contact-button.social{flex-basis:44px}
  .event-dialog .event-dialog-image{height:150px;min-height:0}
  .event-dialog .event-dialog-content{padding:14px 20px 24px}
  .event-dialog-date{font-size:11px;line-height:1.6;letter-spacing:.07em}
  .event-dialog-content h2{font-size:24px;line-height:1.25;letter-spacing:-.03em;margin:10px 0 16px;overflow-wrap:anywhere}
  .event-facts{display:flex;flex-direction:column;gap:10px;font-size:14px;line-height:1.5}
  .event-dialog-content>p{font-size:15px;line-height:1.65;margin:18px 0}
  .event-dialog-content>.event-sample-tag{font-size:11px;color:#ced8e6;border-color:#64748b}
  .history-dialog{width:calc(100vw - 24px);max-height:calc(100dvh - 24px);border-radius:18px;overflow:hidden;overscroll-behavior:contain}
  .history-dialog-content{padding:24px;max-height:calc(100dvh - 82px);overflow:auto;overscroll-behavior:contain}
  .history-dialog-content .eyebrow{font-size:11px;line-height:1.6;letter-spacing:.12em}
  .history-dialog-content h2{font-size:34px;line-height:1.15;margin:20px 0 18px}
  .history-dialog-content p{font-size:16px;line-height:1.7}
  .share-toast{width:max-content;max-width:calc(100vw - 32px);bottom:max(18px,env(safe-area-inset-bottom));padding:12px 18px;text-align:center;font-size:14px;line-height:1.5;overflow-wrap:anywhere}
  footer{display:grid;grid-template-columns:1fr;justify-items:center;gap:18px;padding:28px 20px max(28px,env(safe-area-inset-bottom));text-align:center;font-size:13px}
  footer .brand{font-size:14px;min-height:44px}
  footer .brand small{font-size:10px;line-height:1.4}
  footer>span{order:0;width:auto}
  footer>a:last-child{display:flex;align-items:center;justify-content:center;min-height:44px;font-size:14px}
}

@media(max-width:360px){
  .home-hero-copy{padding-left:20px;padding-right:20px}
  .hero-facts{margin-left:20px;margin-right:20px}
  .discover.section-pad,.events-section{padding-left:12px;padding-right:12px}
  .place-card{padding:14px}
  .card-top{grid-template-columns:72px minmax(0,1fr);gap:12px 10px}
  .card-image{width:72px;height:80px}
  .card-copy h3{font-size:19px}
  .event-info{padding:18px 14px;gap:12px}
  .event-copy h3{font-size:18px}
  .category-tab{padding-left:13px;padding-right:13px}
}

@media(max-width:900px) and (max-height:500px){
  .home-hero-copy{padding-top:104px}
  .place-dialog .dialog-image,.event-dialog .event-dialog-image{height:110px}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .home-hero-image{animation:none}
}

@media(min-width:1181px) and (max-width:1320px){.topbar{padding-inline:3%}.nav{gap:18px}.nav-link{font-size:14px;white-space:nowrap}}

@media(min-width:901px) and (max-width:1180px){
  .home-hero{height:auto;min-height:100svh;max-height:none;flex-direction:column;align-items:stretch;justify-content:space-between;gap:32px}
  .home-hero-copy{width:min(780px,100%);margin:0;padding:130px 6% 24px}
  .hero-facts{position:relative;left:auto;right:auto;bottom:auto;margin:0 6% 32px;padding-top:20px}
}
