/* The 100vw full-bleed technique below can cause a horizontal scrollbar
   (100vw includes the scrollbar's own width), which pushes the whole page
   sideways. Clipping horizontal overflow at the body level prevents that. */
html, body { overflow-x: hidden; }

/* Hide the theme's default page title + remove the whitespace above the
   content on any page using our shortcodes (Home, Browse Businesses). */
body.fd-app-page .entry-title,
body.fd-app-page .wp-block-post-title,
body.fd-app-page h1.entry-title,
body.fd-app-page .entry-header,
body.fd-app-page .page-title {
	display: none !important;
}
body.fd-app-page main,
body.fd-app-page .wp-site-blocks,
body.fd-app-page .entry-content {
	padding-top: 0 !important;
	margin-top: 0 !important;
}

.fd-home { max-width: 1200px; margin: 0 auto; width: 100%; box-sizing: border-box; }
.fd-hero, .fd-stats { width: 100%; box-sizing: border-box; }
.fd-hero-inner, .fd-stats-inner { max-width: 1160px; margin-left: auto; margin-right: auto; padding-left: 24px; padding-right: 24px; box-sizing: border-box; }
.fd-section { max-width: 1160px; margin-left: auto; margin-right: auto; box-sizing: border-box; }

/* Hero */
.fd-hero {
	background: linear-gradient(135deg, #1a5d3a 0%, #123f27 100%);
	color: #fff;
	padding: 64px 24px;
	text-align: center;
	border-radius: 0 0 16px 16px;
	margin-bottom: 8px;
}
.fd-hero-inner { max-width: 720px; margin: 0 auto; }
.fd-hero-eyebrow { font-size: 14px; letter-spacing: .12em; text-transform: uppercase; color: #e0b23c; margin: 0 0 10px; font-weight: 800; }
.fd-hero-title { font-size: 46px; font-weight: 800; margin: 0 0 14px; line-height: 1.15; }
.fd-hero-sub { font-size: 18px; font-weight: 500; opacity: .95; margin: 0 0 28px; }
.fd-hero-search { display: flex; gap: 8px; flex-wrap: wrap; background: #fff; padding: 8px; border-radius: 10px; }
.fd-hero-search select,
.fd-hero-search input[type="text"] { border: none; padding: 14px 16px; border-radius: 6px; font-size: 16px; font-weight: 500; }
.fd-hero-search select { flex: 0 0 auto; background: #f2f2f0; }
.fd-hero-search input[type="text"] { flex: 1; min-width: 160px; }
.fd-hero-search button { border: none; background: #c68a00; color: #fff; font-weight: 800; font-size: 16px; padding: 14px 26px; border-radius: 6px; cursor: pointer; }

/* Section shell */
.fd-section { padding: 48px 24px; }
.fd-section-shaded { background: #f7f7f5; border-radius: 16px; }
.fd-section-title { text-align: center; font-size: 30px; font-weight: 800; margin: 0 0 28px; }
.fd-section-more { text-align: center; margin-top: 20px; }
.fd-section-more a { color: #1a5d3a; font-weight: 700; text-decoration: none; font-size: 16px; }

/* Category tiles */
.fd-cat-tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 16px; }
.fd-cat-tile {
	display: flex; flex-direction: column; align-items: center; justify-content: center;
	text-align: center; padding: 28px 14px; border: 1px solid #e6e6e3; border-radius: 12px;
	text-decoration: none; color: #222; background: #fff; transition: box-shadow .15s ease, transform .15s ease, border-color .15s ease;
	border-top: 3px solid #1a5d3a;
}
.fd-cat-tile:hover { box-shadow: 0 8px 20px rgba(0,0,0,.08); transform: translateY(-2px); }
.fd-cat-tile-name { font-weight: 800; font-size: 16px; margin-bottom: 6px; letter-spacing: .01em; line-height: 1.3; }
.fd-cat-tile-count { font-size: 17px !important; font-weight: 900 !important; color: #111 !important; }

/* Listing cards (homepage variant) */
.fd-home-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 20px; }
.fd-home-card {
	display: flex; flex-direction: column; border: 1px solid #e6e6e3; border-radius: 12px; padding: 20px;
	text-decoration: none; color: inherit; position: relative; background: #fff;
	transition: box-shadow .15s ease, transform .15s ease;
	box-shadow: 0 1px 3px rgba(0,0,0,.04);
}
.fd-home-card:hover { box-shadow: 0 8px 20px rgba(0,0,0,.10); transform: translateY(-2px); }
.fd-home-card.fd-featured { border-color: #e0b23c; background: #fffdf6; }
.fd-home-card h3 { margin: 0 0 6px; font-size: 18px; font-weight: 700; line-height: 1.3; }
.fd-home-card-meta { color: #555; font-size: 15px; font-weight: 700; margin: 0; }
.fd-home-card-thumb img { width: 100%; height: 140px; object-fit: cover; border-radius: 8px; margin-bottom: 12px; }
.fd-home-card .fd-unclaimed { display: inline-block; margin-top: 10px; font-size: 13px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: #b00; }

/* Fallback avatar for cards with no photo -- colored circle with the business's initial */
.fd-home-card-avatar {
	width: 52px; height: 52px; border-radius: 50%; margin-bottom: 14px;
	display: flex; align-items: center; justify-content: center;
	font-size: 20px; font-weight: 800; color: #fff;
	background: linear-gradient(135deg, #1a5d3a, #2d8a5a);
}
.fd-home-card.fd-featured .fd-home-card-avatar { background: linear-gradient(135deg, #c68a00, #e0b23c); }

/* Stats bar */
.fd-stats { background: #123f27; color: #fff; padding: 40px 24px; }
.fd-stats-inner { max-width: 900px; margin: 0 auto; display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 24px; text-align: center; }
.fd-stat-num { display: block; font-size: 36px; font-weight: 800; color: #e0b23c; }
.fd-stat-label { display: block; font-size: 14px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; opacity: .9; margin-top: 4px; }

/* CTA */
.fd-cta { text-align: center; padding: 56px 24px; }
.fd-cta-inner { max-width: 560px; margin: 0 auto; }
.fd-cta h2 { font-size: 28px; font-weight: 800; margin: 0 0 10px; }
.fd-cta p { color: #555; font-size: 16px; margin: 0 0 22px; }
.fd-cta-btn { display: inline-block; background: #1a5d3a; color: #fff; padding: 14px 32px; border-radius: 8px; text-decoration: none; font-weight: 800; font-size: 16px; }

@media (max-width: 640px) {
	.fd-hero-title { font-size: 30px; }
	.fd-hero-sub { font-size: 16px; }
	.fd-section-title { font-size: 24px; }
	.fd-hero-search { flex-direction: column; }
}
