/* YoCo News Business Directory */
.ycbd {
	--ycbd-accent: #0b3d6b;
	--ycbd-gold: #c9971c;
	--ycbd-gold-soft: #fdf6e3;
	--ycbd-ink: #1d2327;
	--ycbd-muted: #5f6b76;
	--ycbd-line: #dfe3e8;
	--ycbd-bg: #ffffff;
	--ycbd-radius: 10px;
	color: var(--ycbd-ink);
	font-size: 16px;
	line-height: 1.5;
	box-sizing: border-box;
}
.ycbd *, .ycbd *::before, .ycbd *::after { box-sizing: inherit; }
.ycbd [hidden] { display: none !important; }
.ycbd-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Buttons */
.ycbd-btn {
	display: inline-block;
	padding: .6em 1.1em;
	border-radius: 999px;
	background: var(--ycbd-accent);
	color: #fff !important;
	font-weight: 600;
	font-size: .95rem;
	text-decoration: none !important;
	border: 0;
	cursor: pointer;
	line-height: 1.2;
	transition: filter .15s;
}
.ycbd-btn:hover { filter: brightness(1.12); }
.ycbd-btn-gold { background: var(--ycbd-gold); color: #1d1500 !important; }
.ycbd-link { color: var(--ycbd-accent); font-weight: 600; }

/* Toolbar */
.ycbd-toolbar {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	align-items: center;
	margin-bottom: 14px;
}
.ycbd-search { flex: 1 1 240px; }
.ycbd-search input {
	width: 100%;
	padding: .65em 1em;
	border: 1px solid var(--ycbd-line);
	border-radius: 999px;
	font-size: 1rem;
	background: var(--ycbd-bg);
}
.ycbd-search input:focus { outline: 2px solid var(--ycbd-accent); outline-offset: 1px; }
.ycbd-towns { display: flex; gap: 4px; background: #f1f3f5; padding: 4px; border-radius: 999px; }
.ycbd-town {
	padding: .4em .9em;
	border-radius: 999px;
	text-decoration: none !important;
	color: var(--ycbd-muted) !important;
	font-weight: 600;
	font-size: .9rem;
	white-space: nowrap;
}
.ycbd-town.is-active { background: var(--ycbd-bg); color: var(--ycbd-accent) !important; box-shadow: 0 1px 3px rgba(0,0,0,.12); }
.ycbd-ctas { display: flex; gap: 8px; flex-wrap: wrap; }

/* Category tabs */
.ycbd-tabs {
	border-bottom: 2px solid var(--ycbd-line);
	margin-bottom: 22px;
	position: relative;
}
.ycbd-tabs-inner {
	display: flex;
	flex-wrap: wrap;
	gap: 2px 4px;
}
.ycbd-tab {
	flex: 0 0 auto;
	padding: .7em 1em;
	text-decoration: none !important;
	color: var(--ycbd-muted) !important;
	font-weight: 600;
	font-size: .93rem;
	border-bottom: 3px solid transparent;
	margin-bottom: -2px;
	white-space: nowrap;
}
.ycbd-tab:hover { color: var(--ycbd-ink) !important; }
.ycbd-tab.is-active { color: var(--ycbd-accent) !important; border-bottom-color: var(--ycbd-accent); }

/* Category dropdown */
.ycbd-catform { flex: 0 1 280px; margin: 0; display: flex; gap: 6px; }
.ycbd-cat {
	width: 100%;
	padding: .65em 2.4em .65em 1em;
	border: 1px solid var(--ycbd-line);
	border-radius: 999px;
	font: inherit;
	font-size: 1rem;
	color: var(--ycbd-ink);
	background: var(--ycbd-bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%235f6b76' stroke-width='2'/%3E%3C/svg%3E") no-repeat right 1em center;
	-webkit-appearance: none;
	appearance: none;
	cursor: pointer;
}
.ycbd-cat:focus { outline: 2px solid var(--ycbd-accent); outline-offset: 1px; }

/* Get listed / sponsor banner */
.ycbd-cta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px 20px;
	background: var(--ycbd-gold-soft);
	border: 1px solid #ecd9a0;
	border-left: 5px solid var(--ycbd-gold);
	border-radius: var(--ycbd-radius);
	padding: 14px 18px;
	margin: 0 0 18px;
}
.ycbd-cta-bottom { margin: 28px 0 0; }
.ycbd-cta-text { flex: 1 1 320px; font-size: .98rem; }
.ycbd-cta-text strong { color: var(--ycbd-ink); }
.ycbd-cta-btns { display: flex; flex-wrap: wrap; gap: 8px; }

/* Sections */
.ycbd-section-title {
	font-size: 1.25rem;
	margin: 0 0 12px;
	display: flex;
	align-items: center;
	gap: .4em;
}
.ycbd-star { color: var(--ycbd-gold); }
.ycbd-sponsors {
	background: var(--ycbd-gold-soft);
	border: 1px solid #ecd9a0;
	border-radius: 14px;
	padding: 18px;
	margin-bottom: 28px;
}

/* Grid and cards */
.ycbd-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 16px;
}
.ycbd-grid-sponsors { grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); }
.ycbd-card {
	background: var(--ycbd-bg);
	border: 1px solid var(--ycbd-line);
	border-radius: var(--ycbd-radius);
	padding: 16px;
	display: flex;
	flex-direction: column;
	gap: 10px;
	transition: box-shadow .15s, transform .15s;
}
.ycbd-card:hover { box-shadow: 0 6px 18px rgba(0,0,0,.08); transform: translateY(-1px); }
.ycbd-card-sponsor { border: 2px solid var(--ycbd-gold); }
.ycbd-card-head { display: flex; gap: 12px; align-items: flex-start; }
.ycbd-logo {
	flex: 0 0 56px;
	width: 56px;
	height: 56px;
	border-radius: 8px;
	overflow: hidden;
	background: #f1f3f5;
	display: flex;
	align-items: center;
	justify-content: center;
}
.ycbd-card-sponsor .ycbd-logo { flex-basis: 72px; width: 72px; height: 72px; }
.ycbd-logo img { width: 100%; height: 100%; object-fit: contain; margin: 0; }
.ycbd-logo-mono { background: var(--ycbd-accent); color: #fff; font-weight: 700; font-size: 1.5rem; }
.ycbd-card-title { min-width: 0; }
.ycbd-card h3 { margin: 0; font-size: 1.08rem; line-height: 1.3; }
.ycbd-card h3 a { color: var(--ycbd-ink); text-decoration: none; }
.ycbd-card h3 a:hover { color: var(--ycbd-accent); text-decoration: underline; }
.ycbd-meta-line { margin: 2px 0 0; font-size: .85rem; color: var(--ycbd-muted); display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.ycbd-town-pill {
	background: #eef3f8;
	color: var(--ycbd-accent);
	padding: 1px 8px;
	border-radius: 999px;
	font-size: .75rem;
	font-weight: 600;
}
.ycbd-badge {
	display: inline-block;
	background: var(--ycbd-gold);
	color: #1d1500;
	font-size: .7rem;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	padding: 2px 8px;
	border-radius: 4px;
	margin-bottom: 4px;
}
.ycbd-summary { margin: 0; font-size: .92rem; color: #3c434a; }
.ycbd-contact { list-style: none; margin: auto 0 0; padding: 0; font-size: .88rem; }
.ycbd-contact li { margin: 2px 0; overflow-wrap: anywhere; }
.ycbd-contact a { color: var(--ycbd-accent); text-decoration: none; }
.ycbd-contact a:hover { text-decoration: underline; }
.ycbd-hours { color: var(--ycbd-muted); }
.ycbd-empty { text-align: center; padding: 30px 10px; color: var(--ycbd-muted); }

/* Submission form */
.ycbd-form fieldset {
	border: 1px solid var(--ycbd-line);
	border-radius: var(--ycbd-radius);
	padding: 16px 18px 6px;
	margin: 0 0 18px;
}
.ycbd-form legend { font-weight: 700; padding: 0 6px; }
.ycbd-row { margin-bottom: 14px; }
.ycbd-row-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.ycbd-form label { display: block; font-weight: 600; font-size: .92rem; }
.ycbd-form input[type=text],
.ycbd-form input[type=email],
.ycbd-form input[type=tel],
.ycbd-form input[type=file],
.ycbd-form select,
.ycbd-form textarea {
	display: block;
	width: 100%;
	margin-top: 4px;
	padding: .55em .7em;
	border: 1px solid #c3c9cf;
	border-radius: 6px;
	font: inherit;
	font-weight: 400;
	background: #fff;
}
.ycbd-form input:focus, .ycbd-form select:focus, .ycbd-form textarea:focus { outline: 2px solid var(--ycbd-accent); outline-offset: 0; }
.ycbd-form .req { color: #b32d2e; }
.ycbd-check { display: flex !important; gap: 10px; align-items: flex-start; font-weight: 400 !important; margin-bottom: 12px; }
.ycbd-check input { margin-top: 4px; flex: 0 0 auto; }
.ycbd-sponsor-opt { background: var(--ycbd-gold-soft); border-color: #ecd9a0 !important; }
.ycbd-benefits { margin: 4px 0 12px 30px; font-size: .9rem; }
.ycbd-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* Notices */
.ycbd-notice { border-radius: var(--ycbd-radius); padding: 14px 18px; margin-bottom: 18px; }
.ycbd-notice h3 { margin-top: 0; }
.ycbd-notice-ok { background: #edf7ee; border: 1px solid #b7dfba; }
.ycbd-notice-err { background: #fcf0f1; border: 1px solid #f0b8bd; color: #8a1f28; }

/* Sponsor box */
.ycbd-sponsor-box {
	background: var(--ycbd-gold-soft);
	border: 2px solid var(--ycbd-gold);
	border-radius: 14px;
	padding: 20px 22px;
}
.ycbd-sponsor-box h3 { margin: 0 0 4px; }
.ycbd-price { font-size: 1.4rem; font-weight: 700; margin: 0 0 8px; }
.ycbd-sponsor-box .ycbd-benefits { margin-left: 20px; }
.ycbd-sponsor-actions { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; margin: 0; }

/* Single listing */
.ycbd-single { border: 1px solid var(--ycbd-line); border-radius: var(--ycbd-radius); padding: 16px 18px; margin-bottom: 22px; }
.ycbd-details { display: grid; grid-template-columns: max-content 1fr; gap: 6px 16px; margin: 0 0 8px; }
.ycbd-details dt { font-weight: 700; color: var(--ycbd-muted); }
.ycbd-details dd { margin: 0; overflow-wrap: anywhere; }
.ycbd-details a { color: var(--ycbd-accent); }

@media (max-width: 640px) {
	.ycbd-row-2 { grid-template-columns: 1fr; }
	.ycbd-catform { flex: 1 1 100%; }
	.ycbd-towns { width: 100%; justify-content: stretch; }
	.ycbd-town { flex: 1; text-align: center; }
	.ycbd-cta-btns { width: 100%; flex-direction: column; }
	.ycbd-cta-btns .ycbd-btn { flex: 1; text-align: center; }
	.ycbd-tabs-inner {
		flex-wrap: nowrap;
		overflow-x: auto;
		overflow-y: hidden;
		scrollbar-width: none;
		-webkit-overflow-scrolling: touch;
	}
	.ycbd-tabs-inner::-webkit-scrollbar { display: none; }
	.ycbd-sponsors { padding: 12px; }
	.ycbd-grid, .ycbd-grid-sponsors { grid-template-columns: 1fr; }
	.ycbd-details { grid-template-columns: 1fr; }
	.ycbd-details dd { margin-bottom: 6px; }
}
