/* Findlyra location and category discovery page styles.
   Loaded only on discovery routes so the global stylesheet stays lean. */
.fl-location-page{padding:clamp(24px,4vw,48px) 0 68px;color:var(--fl-text,#172033)}
.fl-location-hero{position:relative;overflow:hidden;padding:clamp(24px,5vw,48px);border-radius:24px;background:linear-gradient(135deg,#eafaf5 0%,#eff6ff 58%,#f5f3ff 100%);margin-bottom:24px}
.fl-location-kicker{display:inline-flex;align-items:center;gap:7px;padding:6px 10px;border:1px solid #ccebe1;border-radius:999px;background:#ffffffb8;color:#116354;font-size:.78rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.fl-location-hero h1{max-width:900px;margin:14px 0 12px;font-size:clamp(2rem,5vw,3.35rem);line-height:1.08;letter-spacing:-.045em;font-weight:850}
.fl-location-hero p{max-width:780px;color:#536078;line-height:1.7;margin:0}
.fl-location-breadcrumbs{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 16px;color:#64748b;font-size:.88rem}
.fl-location-breadcrumbs a{color:#0f766e;text-decoration:none}.fl-location-breadcrumbs a:hover{text-decoration:underline}
.fl-location-section{margin-top:28px}.fl-location-section-head{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-bottom:14px}
.fl-location-section h2{margin:0;font-size:clamp(1.25rem,2.5vw,1.75rem);letter-spacing:-.025em}
.fl-location-section-head p{margin:5px 0 0;color:#64748b;font-size:.93rem;line-height:1.5}
.fl-location-states,.fl-location-cities{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.fl-location-place{display:flex;flex-direction:column;gap:7px;min-width:0;padding:17px;border:1px solid #dfe8ef;border-radius:15px;background:#fff;color:inherit;text-decoration:none;box-shadow:0 4px 18px #17203306;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}
.fl-location-place:hover{transform:translateY(-2px);border-color:#99d8ca;box-shadow:0 9px 24px #0f766e12}
.fl-location-place strong{font-size:1rem;line-height:1.35;overflow-wrap:anywhere;color:#164e63}
.fl-location-place span{font-size:.85rem;line-height:1.5;color:#64748b}
.fl-location-tools{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}
.fl-location-tools input{width:100%;max-width:520px;min-height:44px;padding:11px 14px;border:1px solid #d8e2ec;border-radius:12px;background:#fff;color:#172033;font:inherit}
.fl-location-count{align-self:center;color:#64748b;font-size:.9rem}
.fl-location-products{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}
.fl-location-product{min-width:0;overflow:hidden;border:1px solid #e1e8ef;border-radius:16px;background:#fff;box-shadow:0 5px 18px #17203307;display:flex;flex-direction:column}
.fl-location-product__image{display:block;aspect-ratio:4/3;background:#f3f7fa;overflow:hidden}
.fl-location-product__image img{display:block;width:100%;height:100%;object-fit:cover}
.fl-location-product__body{display:flex;flex:1;flex-direction:column;align-items:flex-start;padding:15px;gap:7px;min-width:0}
.fl-location-product__category{margin:0;color:#0f766e;font-size:.76rem;font-weight:800;letter-spacing:.025em}
.fl-location-product h3{margin:0;font-size:1rem;line-height:1.4;overflow-wrap:anywhere}
.fl-location-product h3 a{color:#172033;text-decoration:none}.fl-location-product h3 a:hover{text-decoration:underline}
.fl-location-product__summary{margin:0;color:#64748b;font-size:.88rem;line-height:1.55;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.fl-location-product__price{margin:0;color:#0f766e;font-size:1rem;font-weight:850}.fl-location-product__price del{margin-left:5px;color:#94a3b8;font-size:.83rem;font-weight:500}
.fl-location-product__seller{margin:0;color:#64748b;font-size:.8rem}
.fl-location-product__link{margin-top:auto;padding-top:7px;color:#0f766e;text-decoration:none;font-size:.9rem;font-weight:800}
.fl-location-empty{padding:24px;border:1px dashed #cbd5e1;border-radius:16px;background:#fff;color:#64748b;line-height:1.65}
.fl-location-cta{margin-top:24px;padding:18px 20px;border-radius:16px;background:#f0fdfa;border:1px solid #ccebe1;color:#315d5a;line-height:1.65}
.fl-location-cta a{color:#0f766e;font-weight:800}
@media(max-width:900px){.fl-location-states,.fl-location-cities,.fl-location-products{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:580px){.fl-location-states,.fl-location-cities,.fl-location-products{grid-template-columns:1fr}.fl-location-place{padding:15px}.fl-location-product{display:grid;grid-template-columns:112px minmax(0,1fr)}.fl-location-product__image{aspect-ratio:1/1;height:100%;min-height:125px}.fl-location-product__body{padding:12px}.fl-location-product__summary{display:none}.fl-location-product__seller{font-size:.76rem}}
@media(prefers-reduced-motion:reduce){.fl-location-place{transition:none}.fl-location-place:hover{transform:none}}
.fl-location-guide{margin:24px 0;padding:clamp(20px,3vw,32px);border:1px solid #dce8ef;border-radius:18px;background:linear-gradient(135deg,#f0fbf8,#f7f8ff)}
.fl-location-guide h2{margin:0 0 10px;color:#172033;font-size:clamp(1.35rem,2.5vw,1.8rem)}
.fl-location-guide p{max-width:850px;line-height:1.75;color:#52647b;margin:8px 0}
@media(prefers-reduced-motion:reduce){.fl-location-guide{scroll-behavior:auto}}
.fl-location-city-search{margin:20px 0}

/* Scoped mobile gutters for location and marketplace category pages. */
@media (max-width: 767.98px) {
  .fl-location-page,
  .fl-marketplace-category,
  .fl-category-directory {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  .fl-location-hero,
  .fl-mc-hero,
  .fl-category-hero {
    padding: 22px 18px;
    border-radius: 20px;
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
  }

  .fl-location-guide,
  .fl-location-empty,
  .fl-location-products,
  .fl-location-states,
  .fl-location-cities,
  .fl-mc-grid,
  .fl-category-tree,
  .fl-category-root,
  .fl-mc-card {
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
  }

  .fl-location-states,
  .fl-location-cities,
  .fl-location-products,
  .fl-mc-grid,
  .fl-category-tree {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .fl-location-place,
  .fl-category-root,
  .fl-mc-card {
    overflow-wrap: anywhere;
  }

  .fl-location-page h1,
  .fl-marketplace-category h1,
  .fl-category-directory h1,
  .fl-location-page h2,
  .fl-marketplace-category h2,
  .fl-category-directory h2 {
    overflow-wrap: anywhere;
  }
}

@media (max-width: 380px) {
  .fl-location-page,
  .fl-marketplace-category,
  .fl-category-directory {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }

  .fl-location-hero,
  .fl-mc-hero,
  .fl-category-hero {
    padding: 18px 15px;
  }
}
