/* Native-feeling mobile layer. All colours keep following the admin theme tokens. */
html{scroll-behavior:smooth}body{overflow-x:hidden}.shell{min-height:60vh}a,button,input,select,textarea{-webkit-tap-highlight-color:transparent}.btn,a,button{touch-action:manipulation}.btn{font-weight:850}
img[loading="lazy"]{transition:opacity .25s ease}img.app-image-loading{opacity:.18}img.app-image-ready{opacity:1}
.app-page-loader{position:fixed;z-index:2147483646;inset:0;display:grid;place-items:center;padding:24px;background:color-mix(in srgb,var(--canvas,#fff8f2) 94%,var(--forest) 6%);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .14s ease,visibility 0s linear .14s}.app-page-loader.is-visible{opacity:1;visibility:visible;pointer-events:all;transition:opacity .14s ease}.app-page-loader-card{width:min(230px,72vw);display:flex;flex-direction:column;align-items:center;color:var(--ink);text-align:center}.app-page-loader-card img{width:82px;height:82px;padding:10px;border-radius:25px;background:var(--panel,#fff);box-shadow:0 14px 38px color-mix(in srgb,var(--forest) 18%,transparent);animation:appLoaderPulse 1.15s ease-in-out infinite}.app-page-loader-card b{margin-top:14px;font-size:20px;font-weight:950}.app-page-loader-card small{margin-top:3px;color:var(--muted);font-size:11px}.app-page-loader-card i{position:relative;width:118px;height:4px;margin-top:17px;overflow:hidden;border-radius:99px;background:color-mix(in srgb,var(--forest) 13%,transparent)}.app-page-loader-card i:after{content:"";position:absolute;inset-block:0;width:42%;border-radius:99px;background:var(--forest);animation:appLoaderSlide .72s ease-in-out infinite}@keyframes appLoaderSlide{from{right:-48%}to{right:106%}}@keyframes appLoaderPulse{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-5px) scale(1.035)}}html.app-leaving{overflow:hidden!important}
/* Hero and filters are consecutive blocks, never overlapping each other. */
.section-hero,.directory-hero,.transport-hero,.delivery-v2-hero{margin-bottom:0!important}.app-filter-trigger+.app-filter-sheet,.section-hero+.app-filter-trigger+.app-filter-sheet,.directory-hero+.app-filter-trigger+.app-filter-sheet,.transport-hero+.app-filter-trigger+.app-filter-sheet,.delivery-v2-hero+.app-filter-trigger+.app-filter-sheet{margin-top:12px!important}.app-filter-sheet{z-index:4!important}.section-search{position:relative;z-index:5;align-items:center;gap:6px}.section-search svg{flex:0 0 18px}.section-search input{height:100%!important;border:0!important;outline:0!important;padding:0 4px!important;box-shadow:none!important}.section-search button{flex:0 0 auto!important;border-radius:9px!important}.unified-hero-media{pointer-events:none}
@media(min-width:701px){.app-filter-sheet{width:100%!important;margin:12px 0 22px!important}.section-hero+.app-filter-trigger+.app-filter-sheet{margin-top:12px!important}.app-filter-trigger{display:none!important}}
@media(max-width:760px){body{padding-bottom:calc(76px + env(safe-area-inset-bottom))}.site-header{position:sticky;top:0;z-index:900;height:58px!important;background:color-mix(in srgb,var(--panel) 94%,transparent)!important;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.header-inner{height:58px!important;padding-inline:12px!important}.logo small,.header-search,.header-area-chip,.main-nav{display:none!important}.logo-mark{width:34px!important;height:34px!important;border-radius:11px!important}.shell{width:100%!important;padding-inline:10px!important}.core-services-bar{position:sticky;top:58px;z-index:850}.mobile-nav{height:68px!important;padding:5px 8px calc(5px + env(safe-area-inset-bottom))!important;background:color-mix(in srgb,var(--panel) 95%,transparent)!important;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:0 -8px 30px color-mix(in srgb,var(--forest) 10%,transparent)}.mobile-nav a{min-height:48px!important;border-radius:13px}.mobile-nav a.active{color:var(--forest);background:color-mix(in srgb,var(--forest) 9%,transparent)}.mobile-nav .mobile-add i{width:36px!important;height:36px!important;box-shadow:none!important}.panel,.listing-card,.product-card,.store-card,.directory-card,.delivery-place-card{box-shadow:0 5px 18px color-mix(in srgb,var(--forest) 7%,transparent)!important}.section-hero,.directory-hero,.transport-hero,.delivery-v2-hero{height:auto!important;min-height:190px!important;padding:18px!important;border-radius:20px!important}.section-hero>div,.directory-hero>div,.transport-hero>div,.delivery-hero-copy{width:70%!important}.section-hero h1,.directory-hero h1,.transport-hero h1,.delivery-v2-hero h1{font-size:22px!important}.section-search{width:calc(100vw - 56px)!important;max-width:330px!important;height:42px!important;background:color-mix(in srgb,#fff 17%,transparent)!important}.section-search input{font-size:12px!important}.section-search button{min-height:34px!important;font-size:10px!important}.section-add-link,.directory-hero>.section-add-link,.transport-hero>.section-add-link{left:12px!important;bottom:12px!important}.app-filter-trigger{position:relative!important;z-index:4!important;margin:10px 0 14px!important;width:100%!important;box-shadow:0 6px 20px color-mix(in srgb,var(--forest) 8%,transparent)!important}.section-results,.home-section{margin-top:18px!important}.section-heading{align-items:flex-start!important;gap:10px}.section-heading h2{font-size:20px!important}.listing-grid,.product-grid,.store-grid,.directory-grid{gap:10px!important}.listing-content{padding:12px!important}.listing-content h3{font-size:14px!important}.site-footer.app-footer{display:none!important}body:not(.filter-sheet-open){overscroll-behavior-y:contain}}
@media(max-width:390px){.section-hero>div,.directory-hero>div,.transport-hero>div,.delivery-hero-copy{width:76%!important}.section-hero p,.directory-hero p,.transport-hero p,.delivery-v2-hero p{-webkit-line-clamp:2}.section-search{width:calc(100vw - 44px)!important}.core-services-bar b{font-size:9px!important}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.app-page-loader-card img{animation:none}.app-page-loader-card i:after{animation-duration:1.4s}}
/* Keep one transition screen: app.css handles only the first pre-JS paint. */
html:not(.app-ready) body,html.app-ready body{opacity:1!important;visibility:visible!important;animation:none!important}
html:not(.app-ready):before,html:not(.app-ready):after,html.app-leaving:before,html.app-leaving:after,.app-page-loader{content:none!important;display:none!important;visibility:hidden!important;pointer-events:none!important;animation:none!important}
html.app-leaving{overflow:auto!important}
