/* Discovery patterns: visual activities on desktop, touch-first browsing on phones. */
.front-browse{padding-top:6px;padding-bottom:48px}
.front-browse-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:19px}
.front-browse-head h2{max-width:700px;font-size:clamp(29px,3vw,39px);margin-top:6px}
.front-browse-head .text-link{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.front-browse-head .text-link svg{width:16px;height:16px}
.front-browse-rail{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}
.front-browse-card{position:relative;display:block;min-width:0;height:180px;overflow:hidden;border-radius:18px;padding:0;text-align:left;background:#eaddf0;box-shadow:0 7px 24px #34144014}
.front-browse-card .photo{width:100%;height:100%;border-radius:0;transition:transform .25s}
.front-browse-card:hover .photo{transform:scale(1.06)}
.front-browse-card:after{content:'';position:absolute;inset:40% 0 0;background:linear-gradient(transparent,#271133d9);pointer-events:none}
.front-browse-label{position:absolute;z-index:1;left:12px;right:12px;bottom:13px;display:flex;align-items:end;gap:6px;color:#fff;font-size:13px;line-height:1.18}
.front-browse-label strong{min-width:0;flex:1;font-weight:800}
.front-browse-label svg{width:16px;height:16px;flex:0 0 16px}
.app-bottom-nav,.app-filter-backdrop,.app-filter-head,.app-filter-footer{display:none}
@media(max-width:900px){
 .front-browse-rail{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:600px){
 .front-browse{padding-top:3px;padding-bottom:28px}
 .front-browse-head{display:block;margin-bottom:13px}
 .front-browse-head h2{font-size:27px;line-height:1.14}
 .front-browse-head .text-link{margin-top:9px;font-size:12px}
 .front-browse-rail{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none;margin:0 -18px;padding:0 18px 10px;-webkit-overflow-scrolling:touch}
 .front-browse-rail::-webkit-scrollbar,.front-discovery .categories::-webkit-scrollbar,.round-categories::-webkit-scrollbar{display:none}
 .front-browse-card{flex:0 0 145px;width:145px;height:155px;scroll-snap-align:start;border-radius:15px}
 .front-browse-label{font-size:12px;left:10px;right:10px;bottom:11px}
 .front-discovery .categories{display:flex;flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none;margin:0 -18px;padding:13px 18px 7px;-webkit-overflow-scrolling:touch}
 .front-discovery .categories .chip,.front-discovery .categories .chip:last-child:nth-child(odd){flex:0 0 auto;width:auto;min-width:125px;max-width:175px;min-height:49px;grid-column:auto;scroll-snap-align:start}
 .round-categories{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none;margin:0 -18px;padding:19px 18px 9px;-webkit-overflow-scrolling:touch}
 .round-categories>a{flex:0 0 105px;scroll-snap-align:start}
 .round-categories .photo{border-radius:18px}
 .round-categories strong{font-size:11px;line-height:1.3}
 .app-bottom-nav{position:fixed;z-index:60;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-items:start;padding:7px max(8px,env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));border-top:1px solid #ebdfed;background:#fffffff2;backdrop-filter:blur(16px);box-shadow:0 -6px 24px #34144013}
 .app-bottom-nav a{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:0;min-height:50px;border-radius:11px;color:#82728c;font-size:9px;font-weight:700;line-height:1.2;text-align:center}
 .app-bottom-nav a.active{color:#7526ad;background:#f5eafa}
 .app-bottom-nav svg{width:21px;height:21px}
 .app-nav-count{position:absolute;top:2px;right:15%;min-width:15px;height:15px;border-radius:99px;background:#7a29b7;color:#fff;font-size:9px;line-height:15px}
 .has-app-nav .footer{padding-bottom:calc(80px + env(safe-area-inset-bottom))}
 .has-app-nav #toast{bottom:calc(76px + env(safe-area-inset-bottom))}
 .venue-results .results-toolbar,.home-results .catalog-toolbar{position:sticky;top:0;z-index:8;padding:8px 2px;background:#fffcf8f2;backdrop-filter:blur(12px);border-bottom:1px solid #f1eaf1}
 .app-filter-backdrop{position:fixed;z-index:79;inset:0;background:#1f0a2a80;border:0}
 .app-filter-open .app-filter-backdrop{display:block}
 body.app-filter-open{overflow:hidden}
 .venue-results .filters,.home-results .filters{position:fixed!important;z-index:80;left:0;right:0;bottom:0;top:auto;width:100%;max-width:none;max-height:min(88dvh,760px);overflow-y:auto;overscroll-behavior:contain;margin:0;padding:16px 20px calc(12px + env(safe-area-inset-bottom));border:0;border-radius:22px 22px 0 0;background:#fff;box-shadow:0 -14px 40px #240c3630;visibility:hidden;transform:translateY(105%);transition:transform .23s ease,visibility .23s}
 .venue-results .filters.mobile-sheet-open,.home-results .filters.mobile-sheet-open{visibility:visible;transform:translateY(0)}
 .filters.mobile-sheet-open section{display:block!important}
 .filters.mobile-sheet-open>button[data-action="filters"]{display:none!important}
 .filters.mobile-sheet-open .filter-heading .mobile-filter-toggle{display:none!important}
 .app-filter-head{position:sticky;z-index:2;top:-16px;display:flex;align-items:center;justify-content:space-between;gap:15px;margin:-16px -20px 8px;padding:15px 20px 11px;background:#fff;border-bottom:1px solid #f0e8f1}
 .app-filter-head strong{font:900 19px/1.2 'Nunito',Arial,sans-serif}
 .app-filter-head button{display:grid;place-items:center;min-width:42px;height:42px;border-radius:50%;background:#f5edf8;color:#54216f;font-size:27px;line-height:1}
 .app-filter-footer{position:sticky;z-index:2;bottom:calc(-12px - env(safe-area-inset-bottom));display:block;margin:14px -20px calc(-12px - env(safe-area-inset-bottom));padding:11px 20px calc(12px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid #f0e8f1}
 .app-filter-footer .btn{min-height:48px}
 .filters.mobile-sheet-open .check{min-height:43px}
}
@media(prefers-reduced-motion:reduce){.front-browse-card .photo,.venue-results .filters,.home-results .filters{transition:none}}

/* The at-home journey starts with the same prominent search as the venue path. */
.home-hero.home-search-hero{height:auto;min-height:550px;margin-top:0;padding:35px 0 38px;background:linear-gradient(110deg,#fff8f0,#f8eefd)}
.home-search-hero .hero-copy{width:min(53%,650px);padding-top:0}
.home-search-hero .hero-art{width:47%;height:100%;top:0;right:0;border-radius:0}
.home-search-hero .hero-art:after{display:block;background:linear-gradient(90deg,#fff8f0 0%,#fff8f0b8 13%,transparent 43%)}
.home-search-hero h1{font-size:clamp(43px,4.8vw,65px);max-width:590px}
.home-search-hero .hero-copy>p{font-size:16px;line-height:1.4;margin:12px 0 0;max-width:450px}
.home-hero-search{position:relative;z-index:2;margin-top:20px}
.home-hero-search .search-panel{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;width:100%;margin:0;padding:12px;border:1px solid #eadcea;border-radius:18px;background:#fff;box-shadow:0 12px 30px #361a3b1d}
.home-hero-search .search-mode-row{display:grid;gap:7px;padding:0 0 9px}
.home-hero-search .search-mode-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}
.home-hero-search .search-mode-tabs a{white-space:normal;text-align:center;line-height:1.2;padding:7px 5px}
.home-hero-search .search-field{min-width:0;min-height:57px;padding:6px 9px}
.home-hero-search .search-panel>.btn{grid-column:1/-1;width:100%;min-width:0;min-height:46px}
.home-search-note{display:flex;align-items:center;gap:5px;margin:8px 2px 0;color:#776882;font-size:11px;line-height:1.3}
.home-search-note svg{width:14px;height:14px}
@media(max-width:900px){
 .home-hero.home-search-hero{display:flex;flex-direction:column;min-height:0;padding:22px 0 0}
 .home-search-hero .hero-copy{width:100%;max-width:none}
 .home-search-hero h1{font-size:clamp(38px,6vw,53px)}
 .home-search-hero .hero-art{position:relative;width:calc(100% - 48px);height:260px;min-height:0;aspect-ratio:auto;margin:21px 24px 0;border-radius:20px}
 .home-search-hero .hero-art:after{display:none}
}
@media(max-width:600px){
 .home-hero.home-search-hero{padding:17px 0 0}
 .home-search-hero h1{font-size:clamp(34px,9vw,43px);line-height:1.04}
 .home-search-hero .hero-copy>p{font-size:14px;line-height:1.4;margin-top:10px}
 .home-hero-search{margin-top:15px}
 .home-hero-search .search-panel{gap:7px;padding:10px;border-radius:16px}
 .home-hero-search .search-field{min-height:53px}
 .home-hero-search .search-panel>.btn{min-height:47px}
 .home-search-hero .hero-art{width:calc(100% - 36px);height:auto;aspect-ratio:1.75;margin:18px 18px 0;border-radius:18px}
 .home-hero.home-search-hero+.wrap>.round-categories{padding-top:17px}
 .home-results .catalog-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
 .home-results .catalog-toolbar>.mobile-result-filter{min-height:39px;padding:7px 11px}
 .home-results .catalog-toolbar>strong{margin-left:auto;font-size:12px}
 .home-results .catalog-toolbar>label{width:100%;flex-basis:100%;text-align:right}
}
/* Keep recommendations tied to the search, with one clear action at a time. */
.mobile-review-jump{display:none}
.front-empty{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:12px;width:100%;height:100%;min-height:240px;padding:30px;background:linear-gradient(135deg,#faf0f6,#eee1f8);color:#3a1a4c}
.front-empty>span{display:grid;place-items:center;width:48px;height:48px;border-radius:15px;background:#fff;color:#7630a9}
.front-empty h2{font:900 28px/1.12 'Nunito',Arial,sans-serif;letter-spacing:-.5px}
.hero.front-hero .front-empty p{margin:0;font-size:14px;line-height:1.45;color:#6e587a}
.front-no-matches{grid-column:1/-1;padding:25px;border:1px solid #eddfed;border-radius:16px;background:#fbf6fb;color:#655570;font-size:14px}
@media(max-width:600px){
 .front-hero-copy>.front-review-jump{display:none}
 .front-gallery>.mobile-review-jump{display:inline-flex;margin:3px 0 0;min-height:39px;padding:4px 0;font-size:11px}
 .front-stage{aspect-ratio:1.42}
 .front-discovery .categories{padding-top:9px}
 .front-proof{margin-top:8px}
 .front-empty{min-height:220px;padding:22px}
 .front-empty h2{font-size:24px}
}
