/* Search (app/pages/search.php): TownTapestry's "Find your town" page (app/pages/towns.php, app.css fd-*), ported 2026-10-09.
   Rules core.css already has (the shared fd-scene/fd-card pieces) are not repeated here. */
.fd-main{max-width:1080px}
.fd-hero{border:1px solid var(--line);border-radius:20px;overflow:hidden;background:#fff;box-shadow:0 10px 40px rgba(15,22,35,.06)}

/* time of day */
.fd-scene.p-morning{--fd-sky1:#cfe6f3;--fd-sky2:#fde7cc;--fd-cloud:#fff6ec;--fd-win:#fdf1d8}
.fd-scene.p-dusk{--fd-sky1:#c98ea4;--fd-sky2:#fcd6a4;--fd-nt:#5a3a55;--fd-dk:16%;--fd-cloud:#f7bfa6;--fd-win:#ffd978;--fd-glow:.55}
.fd-scene.p-night{--fd-sky1:#18213f;--fd-sky2:#35416b;--fd-nt:#151c36;--fd-dk:56%;--fd-cloud:#3b4670;--fd-win:#ffd36a;--fd-glow:.9;--fd-line:#8a93b3}
/* seasons */
.fd-scene.s-spring{--fd-hf:color-mix(in srgb,#7cc576 30%,#f6f7f9);--fd-hn:color-mix(in srgb,#5fb36a 48%,#f6f7f9);--fd-tree:#6fb46a}
.fd-scene.s-summer{--fd-tree:#2f7a4a;--fd-hn:color-mix(in srgb,var(--accent) 50%,#f6f7f9)}
.fd-scene.s-fall{--fd-hf:color-mix(in srgb,#c9a24a 26%,#f6f7f9);--fd-hn:color-mix(in srgb,#9db35a 42%,#f6f7f9);--fd-tree:#d9772b;--fd-tree1:#c4512f;--fd-tree2:#e3a23a}
.fd-scene.s-winter{--fd-hf:#e9eff4;--fd-hn:#f4f7fa;--fd-tree:#3d6b55;--fd-rd:#dfe3e8;--fd-sky2:#eef3f8}
.fd-scene.s-winter.p-night{--fd-sky2:#3a4672}
.fd-scene .fd-tree.t1{fill:color-mix(in srgb,var(--fd-tree1),var(--fd-nt) var(--fd-dk))}
.fd-scene .fd-tree.t2{fill:color-mix(in srgb,var(--fd-tree2),var(--fd-nt) var(--fd-dk))}
.fd-scene .fd-bloom{fill:#f7b6c8;opacity:0}.fd-scene.s-spring .fd-bloom{opacity:1}
.fd-scene .fd-snow,.fd-scene .fd-snowcap{fill:#fbfdff;opacity:0}.fd-scene.s-winter .fd-snow,.fd-scene.s-winter .fd-snowcap{opacity:1}
.fd-scene .fd-flakes{opacity:0}.fd-scene.s-winter .fd-flakes{opacity:.9}
.fd-scene .fd-flakes circle{animation:fdFall 7s linear infinite}.fd-scene .fd-flakes circle:nth-child(2n){animation-duration:9s;animation-delay:-3s}.fd-scene .fd-flakes circle:nth-child(3n){animation-duration:11s;animation-delay:-6s}
.fd-scene .fd-leaves,.fd-scene .fd-pumpkin,.fd-scene .fd-wreath{opacity:0}.fd-scene.s-fall .fd-leaves,.fd-scene.s-fall .fd-pumpkin,.fd-scene.s-winter .fd-wreath{opacity:1}
/* sky pieces */
.fd-scene .fd-cloud{fill:var(--fd-cloud);opacity:.9;animation:fdDrift 24s ease-in-out infinite alternate}.fd-scene .fd-cloud.c2{opacity:.75;animation-duration:33s}
.fd-scene .fd-sun,.fd-scene .fd-stars,.fd-scene .fd-birds,.fd-scene .fd-flies{opacity:0;transition:opacity .8s}
.fd-scene.p-morning .fd-sun-m,.fd-scene.p-morning .fd-birds,.fd-scene.p-day .fd-sun-d,.fd-scene.p-dusk .fd-sun-k,.fd-scene.p-night .fd-moon,.fd-scene.p-night .fd-stars{opacity:1}
.fd-scene.p-night:not(.s-winter) .fd-flies{opacity:1}
.fd-scene.p-dusk .fd-stars{opacity:.35}
.fd-scene .fd-win{fill:var(--fd-win);transition:fill .8s}
.fd-scene .fd-bulb{fill:color-mix(in srgb,#ffd36a calc(var(--fd-glow)*100%),#b9b3a2)}
.fd-scene .fd-glow{fill:#ffd36a;opacity:calc(var(--fd-glow)*.45);transform-box:fill-box;transform-origin:center}
.fd-scene.p-night .fd-glow,.fd-scene.p-dusk .fd-glow{animation:fdGlow 3.2s ease-in-out infinite alternate}
.fd-scene .fd-line{stroke:var(--fd-line);opacity:.8}
.fd-scene .fd-stars circle:nth-child(3n),.fd-scene .fd-flies circle{animation:fdTwinkle 2.4s ease-in-out infinite alternate}
@keyframes fdDrift{to{transform:translateX(26px)}}
@keyframes fdGlow{from{transform:scale(.92)}to{transform:scale(1.08)}}
@keyframes fdTwinkle{from{opacity:.3}to{opacity:1}}
@keyframes fdFall{from{transform:translateY(-20px)}to{transform:translateY(110px)}}

.fd-body{padding:26px 32px 26px}
.fd-kick{display:inline-flex;align-items:center;gap:8px;height:30px;padding:0 12px;border-radius:999px;background:var(--accent-tint);color:var(--accent-ink);font-size:12.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.fd-kick .dot{width:9px;height:9px;border-radius:50%;background:#ffc94d;box-shadow:0 0 0 3px rgba(255,201,77,.28)}
.fd-body h1{font-size:44px;letter-spacing:-.04em;line-height:1.05;margin-top:14px}
.fd-hl{color:var(--accent-ink);background:linear-gradient(transparent 68%,var(--accent-tint) 68%)}
.fd-body > p{color:var(--ink-2);font-size:16.5px;margin:10px 0 0;max-width:620px}
.fd-form{margin-top:20px}
.fd-bar{display:flex;gap:10px}
.fd-fld{flex:1;min-width:0;display:flex;align-items:center;gap:10px;height:58px;padding:0 18px;border:1.5px solid var(--line);border-radius:14px;background:#fff;transition:border-color .15s,box-shadow .15s}
.fd-fld:focus-within{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-tint)}
.fd-fld .ic{width:22px;height:22px;color:var(--accent-ink)}
.fd-fld input{flex:1;min-width:0;border:0;outline:0;font:inherit;font-size:17px;background:none;color:var(--ink)}
.fd-go{height:58px;padding:0 26px;font-size:16px;border-radius:14px}
.fd-filters{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px}
.fd-sel select{height:40px;border:1px solid var(--line);border-radius:10px;padding:0 12px;font:inherit;font-size:14px;font-weight:600;color:var(--ink-2);background-color:#fff;max-width:220px}
.fd-geo{display:inline-flex;align-items:center;gap:6px;height:40px;padding:0 14px;border-radius:10px;border:1px solid color-mix(in srgb,var(--accent) 35%,#fff);background:var(--accent-tint);color:var(--accent-ink);font-weight:600;font-size:14px}
.fd-geo:hover{border-color:var(--accent)}.fd-geo[aria-busy="true"]{opacity:.6}
.fd-clear{margin-left:auto;font-size:14px;font-weight:600;color:var(--muted)}
.fd-help{font-size:12.5px;color:var(--muted);margin:10px 0 0}

.fd-res{margin-top:22px}

.fd-arr{color:var(--faint);font-weight:700}.fd-card:hover .fd-arr{color:var(--accent-ink)}
.fd-pager{display:flex;gap:8px;margin-top:14px}

.fd-states{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:6px}
.fd-states a{display:flex;justify-content:space-between;align-items:baseline;gap:8px;padding:9px 12px;border-radius:10px;border:1px solid var(--hair);font-size:14px}
.fd-states a:hover{border-color:var(--accent);color:var(--accent-ink)}.fd-states small{color:var(--faint);font-size:12px}
@media (max-width:640px){
  .fd-body{padding:20px 16px}.fd-body h1{font-size:32px}.fd-body > p{font-size:15px}
  .fd-bar{flex-direction:column}.fd-go{width:100%;height:50px}.fd-fld{height:52px;padding:0 14px}.fd-fld input{font-size:16px}
  .fd-sel{flex:1 1 140px}.fd-sel select{width:100%;max-width:none}.fd-geo{flex:1 1 100%;justify-content:center}
  .fd-states{grid-template-columns:1fr 1fr}
  .fd-scene .fd-sun-m{transform:translate(150px,-10px)}.fd-scene .fd-birds{transform:translateX(110px)}.fd-scene .fd-sun-d,.fd-scene .fd-moon{transform:translateX(-72px)}.fd-scene .fd-sun-k{transform:translateX(-96px)}
}

/* below the search (app/modules/search/discover.php): your towns, recently visited, where neighbors are talking, towns worth
   a visit (TownTapestry app.css; .fd-my is in core.css) */
.fd-mine{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.fd-ph{width:54px;height:54px;border-radius:10px;display:grid;place-items:center;background:var(--accent-tint);color:var(--accent-ink)}
.fd-talk{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.fd-tk{display:flex;flex-direction:column;gap:10px;transition:border-color .15s}.fd-tk:hover{border-color:var(--accent)}
.fd-tkn{display:flex;flex-direction:column}.fd-tkn b{font-size:17px}.fd-tkn small{font-size:12.5px;color:var(--accent-ink);font-weight:600}
.fd-tkp{font-size:14px;color:var(--ink-2);display:flex;flex-direction:column;gap:2px}.fd-tkp small{color:var(--faint);font-size:12px}
.fd-feat{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.fd-fc{position:relative;display:block;aspect-ratio:4/3;border-radius:var(--r-lg);overflow:hidden;background:var(--surface)}
.fd-fc img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.fd-fc:hover img{transform:scale(1.04)}
.fd-fcb{position:absolute;inset:auto 0 0 0;padding:34px 14px 12px;background:linear-gradient(180deg,transparent,rgba(10,16,26,.78));color:#fff;display:flex;flex-direction:column}
.fd-fcb b{font-size:17px;letter-spacing:-.01em}.fd-fcb small{font-size:12px;opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fd-fcb em{align-self:flex-start;font-style:normal;font-size:11.5px;font-weight:700;background:rgba(255,255,255,.92);color:var(--accent-ink);padding:2px 8px;border-radius:999px;margin-bottom:6px;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (max-width:900px){.fd-feat{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.fd-feat{gap:8px}.fd-fcb{padding:28px 10px 10px}.fd-fcb b{font-size:15px}}
