/* Photo-led category discovery. Text stays readable even if a photo fails. */
.next-stop-grid .destination-card:not(.destination-card--all) { min-height:250px; display:flex; flex-direction:column; justify-content:flex-end; padding:22px; background:#254638; }
.next-stop-grid .destination-photo { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; transition:transform 400ms ease; }
.next-stop-grid .destination-card:not(.destination-card--all)::before { inset:0; width:auto; height:auto; border-radius:0; opacity:1; background:linear-gradient(180deg,#10271b08 15%,#10271b4d 45%,#10271bf2 100%); z-index:-1; }
.next-stop-grid .destination-card:not(.destination-card--all) h3 { color:#fff; font-size:20px; }
.next-stop-grid .destination-card:not(.destination-card--all) p { color:#e1ebe5; font-size:12px; }
.next-stop-grid .destination-arrow { color:#fff; opacity:1; background:#ffffff26; border:1px solid #ffffff4a; border-radius:50%; width:30px; height:30px; display:grid; place-items:center; font-size:18px; }
.next-stop-grid .destination-card--all { display:flex; flex-direction:column; justify-content:flex-end; }
@media(hover:hover) { .next-stop-grid .destination-card:hover .destination-photo { transform:scale(1.045); } .next-stop-grid .destination-card:hover::before { transform:none; } }
/* A visible invitation to move beyond the search box. */
.discovery-scroll { display:flex; width:fit-content; align-items:center; gap:14px; padding:10px 16px; margin:26px auto 0; border:1px solid #dce6df; border-radius:30px; color:#315a4b; font-size:12px; text-decoration:none; background:#fff; }
.discovery-scroll span { display:grid; place-items:center; width:26px; height:26px; border-radius:50%; background:#eaf2ed; font-size:19px; animation:scroll-hint 2s ease-in-out 4; }
.hero-scroll { color:#fff; background:#ffffff14; border-color:#ffffff59; }
.hero-scroll span { background:#ffffff21; }
.hero-scroll:hover { color:#fff; background:#ffffff24; }
.discovery-scroll.cue-seen span { animation:none; }
.discovery-scroll:focus-visible { outline:3px solid #82af98; outline-offset:4px; }
#discover-businesses,#search-results { scroll-margin-top:90px; }
@keyframes scroll-hint { 0%,100%{transform:translateY(0)} 50%{transform:translateY(4px)} }
/* Results feel like a considered local guide, with roomy horizontal cards. */
.directory-search.search-container { padding-top:40px; max-width:1200px; }
.search-intro { margin:0 0 24px; }
.search-eyebrow { display:block; color:#648277; font-size:10px; font-weight:700; letter-spacing:1.7px; }
.directory-search .search-title { font-size:clamp(28px,4vw,42px); letter-spacing:-1.2px; margin:10px 0; line-height:1.2; }
.search-intro p { font-size:14px; color:#7b8983; margin:0; }
.directory-search .search-form { padding:22px; margin-bottom:14px; border-radius:18px; box-shadow:0 8px 30px #204b3608; }
.directory-search .search-button { display:flex; gap:15px; align-items:center; justify-content:center; }
.city-shortcuts { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:14px 0; }
.city-shortcuts > span { color:#7d8e82; font-size:11px; margin-right:4px; }
.city-shortcuts button { background:transparent; color:#416351; border:1px solid #dce7df; border-radius:30px; padding:7px 13px; font-size:11px; transition:background 150ms ease; }
.city-shortcuts button:hover,.city-shortcuts button[aria-pressed="true"] { background:#e9f2ed; border-color:#a6c1ae; }
.city-shortcuts button:focus-visible { outline:2px solid #54886d; outline-offset:3px; }
.location-feedback { color:#648277; font-size:12px; min-height:0; }
.location-feedback:empty { display:none; }
.locating i { animation:location-pulse 900ms ease-in-out infinite; }
.results-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; margin:36px 0 22px; padding-top:24px; border-top:1px solid #e4ece6; }
.results-heading h2 { color:#254c3d; font-size:clamp(21px,3vw,27px); line-height:1.35; margin:8px 0; overflow-wrap:anywhere; }
.results-heading p { margin:0; color:#7a8a7f; font-size:12px; }
.reset-search { color:#527361; font-size:12px; white-space:nowrap; }
.directory-search .results-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; align-items:start; }
.directory-search .business-card { display:flex; flex-direction:column; min-height:0; border-radius:20px; box-shadow:0 4px 20px #183e3709; }
.directory-search .business-image,.directory-search .card-img-placeholder { display:block; width:100%; height:auto; aspect-ratio:16 / 9; min-height:0; object-fit:cover; object-position:center; background:#edf3f0; }
.directory-search .card-img-placeholder { display:grid; place-items:center; }
.directory-search .card-content { padding:18px; gap:0; }
.directory-search .card-title { font-size:18px; font-weight:700; line-height:1.35; margin:0 0 6px; }
.directory-search .business-description { min-height:0; margin:0 0 12px; font-size:13px; line-height:1.6; }
.directory-search .rating { display:flex; align-items:center; gap:3px; margin:0 0 14px; min-height:24px; }
.directory-search .rating .star { display:inline-flex; align-items:center; justify-content:center; font-size:16px; line-height:1; margin:0; padding:3px 0; width:20px; height:24px; }
.directory-search .rating .star i { font-size:inherit; }
.directory-search .rating-count { font-size:11px; line-height:1.4; margin-left:6px; }
.directory-search .card-meta { flex-direction:row; align-items:center; justify-content:space-between; gap:12px; margin-top:0; padding-top:12px; }
.directory-search .card-meta > span:last-child { margin-left:0; }
.directory-search .whatsapp-chat-button { display:inline-flex; align-items:center; justify-content:center; gap:6px; min-height:36px; padding:8px 12px; border-radius:10px; font-size:12px; line-height:1; }
.directory-search .view-details-btn { margin-top:12px; padding:11px 14px; border-radius:10px; font-size:13px; }
.directory-search .search-results { scroll-margin-top:90px; }
.directory-search .business-card { position:relative; }
.directory-search .business-card.result-arriving { animation:business-arrive .68s cubic-bezier(.16,1,.3,1) both; animation-delay:var(--arrival-delay,0ms); }
.directory-search .business-card.result-arriving::after { content:""; position:absolute; inset:0; border-radius:inherit; pointer-events:none; animation:business-found 1s ease-out both; animation-delay:var(--arrival-delay,0ms); }
@keyframes business-arrive {
    0% { opacity:0; transform:translateY(32px) scale(.94); }
    70% { opacity:1; transform:translateY(-3px) scale(1.008); }
    100% { opacity:1; transform:translateY(0) scale(1); }
}
@keyframes business-found {
    0%,100% { box-shadow:inset 0 0 0 2px transparent; }
    35% { box-shadow:inset 0 0 0 2px #79ad94; }
}
.search-journey[hidden] { display:none; }
.search-journey { position:fixed; inset:0; z-index:11000; display:grid; place-items:center; padding:20px; background:#f7fbf9eb; backdrop-filter:blur(12px); }
.journey-panel { width:min(680px,100%); text-align:center; }
.journey-panel h2 { color:#234d3c; font-size:27px; margin:14px 0; }
.journey-panel p { color:#74867b; font-size:13px; overflow-wrap:anywhere; }
.journey-map { width:min(520px,100%,54svh); aspect-ratio:1; margin:0 auto 20px; position:relative; }
.journey-globe { display:block; width:100%; height:100%; overflow:visible; }
.globe-halo { fill:#e5f0e94d; }
.globe-shell { fill:#eef6f1; stroke:#8db69e66; stroke-width:.8; }
.globe-grid { stroke:#80a58e; stroke-width:.6; opacity:.22; }
.globe-land-dot { fill:#417960; animation:globe-twinkle 4.3s ease-in-out infinite; animation-delay:var(--dot-delay); }
.globe-ocean-dot { fill:#a3bdae; opacity:.45; }
.globe-orbit { fill:none; stroke:#8db69e; stroke-width:.8; stroke-dasharray:3 9; transform-origin:210px 210px; animation:globe-orbit 24s linear infinite; }
.globe-satellite { fill:#427e62; stroke:#fff; stroke-width:3; stroke-dasharray:none; }
.globe-scan { fill:none; stroke:#73a889; stroke-width:.8; transform-origin:210px 210px; animation:globe-scan 4s ease-out infinite; }
.globe-scan--second { animation-delay:-2s; }
.globe-beacon { fill:#2c7955; }
.globe-beacon-ring { fill:#67ad8833; stroke:#4a9671; stroke-width:1; transform-box:fill-box; transform-origin:center; animation:globe-beacon 3.8s ease-out infinite; animation-delay:var(--dot-delay); }
@keyframes globe-twinkle { 0%,100% { opacity:.45; } 45%,65% { opacity:1; } }
@keyframes globe-orbit { to { transform:rotate(360deg); } }
@keyframes globe-scan { from { transform:scale(.3); opacity:0; } 20% { opacity:.55; } to { transform:scale(1.85); opacity:0; } }
@keyframes globe-beacon { 0% { transform:scale(.4); opacity:0; } 20% { opacity:.8; } 85%,100% { transform:scale(2.2); opacity:0; } }
@media(max-height:540px) { .journey-map { width:min(260px,38svh); margin-bottom:8px; } .journey-panel h2 { font-size:22px; margin:8px 0; } }
.journey-progress { width:120px; height:3px; overflow:hidden; background:#dce8df; border-radius:4px; margin:22px auto 0; }
.journey-progress span { display:block; width:45%; height:100%; background:#467859; animation:search-progress 1.3s ease-in-out infinite; }
@keyframes search-progress { from{transform:translateX(-100%)} to{transform:translateX(330%)} }
@keyframes location-pulse { 0%,100%{transform:scale(1)} 50%{transform:scale(1.2)} }
@keyframes radar { from{transform:scale(.4);opacity:.8} to{transform:scale(2);opacity:0} }
[data-theme="dark"] .search-intro p,[data-theme="dark"] .results-heading p { color:#a7bdb0; }
[data-theme="dark"] .results-heading h2,[data-theme="dark"] .journey-panel h2 { color:#d7eee1; }
[data-theme="dark"] .results-heading { border-color:#30463a; }
[data-theme="dark"] .city-shortcuts button,[data-theme="dark"] .discovery-scroll { color:#b8d7c4; background:#1d3227; border-color:#3a5544; }
[data-theme="dark"] .city-shortcuts button[aria-pressed="true"] { background:#345641; }
[data-theme="dark"] .discovery-scroll span { background:#385341; }
[data-theme="dark"] .search-journey { background:#101c19eb; }
[data-theme="dark"] .globe-halo { fill:#1d38274d; }
[data-theme="dark"] .globe-shell { fill:#192e24; stroke:#6b9d7d; }
[data-theme="dark"] .globe-land-dot { fill:#8dc8a6; }
[data-theme="dark"] .globe-ocean-dot { fill:#547a62; }
[data-theme="dark"] .globe-beacon { fill:#abe2bf; }
[data-theme="dark"] .journey-panel p,[data-theme="dark"] .reset-search { color:#a7c5b2; }
@media(max-width:1100px) { .directory-search .results-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) {
    .next-stop-grid .destination-card:not(.destination-card--all) { min-height:215px; padding:16px; }
    .next-stop-grid .destination-card:not(.destination-card--all) h3 { font-size:16px; }
    .results-heading { align-items:flex-start; }
    .directory-search .results-grid { grid-template-columns:minmax(0,1fr); gap:20px; }
    .directory-search .card-content { padding:16px; }
}
@media(prefers-reduced-motion:reduce) { .discovery-scroll span,.directory-search .business-card.result-arriving,.directory-search .business-card.result-arriving::after,.journey-map *,.journey-progress span,.locating i { animation:none; } .next-stop-grid .destination-photo { transition:none; } }

.directory-search .search-all-locations { display:inline-flex; align-items:center; gap:12px; margin-top:18px; padding:12px 20px; border-radius:12px; background:#1e5359; color:#fff; font-size:14px; text-decoration:none; }
.directory-search .search-all-locations:hover { background:#286970; }
.directory-search .search-all-locations:focus-visible { outline:3px solid #82b5a3; outline-offset:4px; }
