/* ==========================================================================
   Flohmarkt Franken Pro – Oberfläche der Zusatzfunktionen
   Die Farbwerte stammen aus dem Theme; als Rückfallebene sind sie hier
   noch einmal gesetzt, damit das Plugin auch mit anderen Themes brauchbar aussieht.
   ========================================================================== */

.ff-offerbox,
.ff-safety,
.ff-offers,
.ff-markets,
.ff-state {
	--ff-paper: var(--ff-paper, #fbf6ea);
	--ff-ink: var(--ff-ink, #241f1b);
	--ff-rust: var(--ff-rust, #c0492b);
	--ff-forest: var(--ff-forest, #2f5d3a);
	--ff-mustard: var(--ff-mustard, #e9a93c);
}

/* --- Hinweise -------------------------------------------------------------- */

.ff-note {
	padding: .8rem 1rem;
	margin-bottom: 1.2rem;
	border: 2px solid var(--ff-ink, #241f1b);
	background: var(--ff-mustard, #e9a93c);
	font-size: .94rem;
}
.ff-note--ok { background: var(--ff-forest, #2f5d3a); color: #fbf6ea; }
.ff-note--warn { background: var(--ff-rust, #c0492b); color: #fbf6ea; }

/* --- Anfragebox auf der Anzeigenseite -------------------------------------- */

.ff-offerbox { margin-bottom: 1.6rem; }

.ff-offerbox__title {
	margin: 0 0 .5rem;
	font-size: 1.1rem;
	text-transform: uppercase;
	letter-spacing: .07em;
}

.ff-offerbox__intro,
.ff-offerbox__hint {
	font-size: .92rem;
	color: var(--ff-ink-soft, #5d554b);
	margin-bottom: 1rem;
}

.ff-offerform .ff-field { margin: 0 0 .9rem; }
.ff-offerform label {
	display: block;
	margin-bottom: .25rem;
	font-family: var(--ff-font-display, sans-serif);
	font-size: .82rem;
	font-weight: 600;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--ff-ink-soft, #5d554b);
}
.ff-offerform input,
.ff-offerform textarea {
	width: 100%;
	padding: .6rem .75rem;
	border: 2px solid var(--ff-ink, #241f1b);
	border-radius: 3px;
	background: var(--ff-paper, #fbf6ea);
	font: inherit;
}
.ff-offerform textarea { min-height: 110px; resize: vertical; }
.ff-btn--wide { display: block; width: 100%; text-align: center; }

/* --- Status: reserviert / verkauft ----------------------------------------- */

.ff-state {
	display: flex;
	align-items: center;
	gap: 1rem;
	padding: .9rem 1.1rem;
	margin-bottom: 1.4rem;
	border: 2px dashed var(--ff-ink, #241f1b);
	background: #f5ecd9;
}
.ff-state--sold { background: #efe3e0; }

.ff-state__stamp {
	flex: none;
	padding: .35rem .9rem;
	border: 3px double currentColor;
	border-radius: 4px;
	font-family: var(--ff-font-display, sans-serif);
	font-size: .85rem;
	font-weight: 700;
	letter-spacing: .16em;
	text-transform: uppercase;
	transform: rotate(-5deg);
	color: var(--ff-mustard, #e9a93c);
}
.ff-state--sold .ff-state__stamp { color: var(--ff-rust, #c0492b); }
.ff-state__text { margin: 0; font-size: .94rem; }

.ff-badge {
	position: absolute;
	top: .7rem; right: .7rem;
	z-index: 4;
	padding: .25rem .7rem;
	border: 2px solid var(--ff-ink, #241f1b);
	background: var(--ff-mustard, #e9a93c);
	font-family: var(--ff-font-display, sans-serif);
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	transform: rotate(4deg);
}
.ff-badge--sold { background: var(--ff-rust, #c0492b); color: #fbf6ea; }

/* Verkaufte Anzeigen sichtbar zurücknehmen */
.ff-listing-sold .hp-listing--view-page .hp-listing__images { filter: saturate(.5) opacity(.8); }

/* --- Angebotsart & VB ------------------------------------------------------ */

.ff-art {
	display: inline-block;
	padding: .12rem .55rem;
	border: 1.5px solid currentColor;
	border-radius: 2px;
	font-family: var(--ff-font-display, sans-serif);
	font-size: .74rem;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--ff-forest, #2f5d3a);
}
.ff-art--suche { color: var(--ff-sky, #4d7286); }
.ff-art--verschenke { color: var(--ff-rust, #c0492b); }
.ff-art--tausche { color: #8a6d1f; }

.ff-vb {
	display: inline-block;
	padding: 0 .35rem;
	border: 1.5px solid currentColor;
	border-radius: 2px;
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .1em;
	color: var(--ff-ink-faint, #8d8479);
}

/* --- Sicherheitshinweise --------------------------------------------------- */

.ff-safety__title {
	margin: 0 0 .6rem;
	font-size: 1rem;
	text-transform: uppercase;
	letter-spacing: .07em;
}
.ff-safety__list {
	margin: 0 0 .7rem;
	padding-left: 1.1rem;
	font-size: .9rem;
	color: var(--ff-ink-soft, #5d554b);
}
.ff-safety__list li { margin-bottom: .35rem; }
.ff-safety__more { font-size: .88rem; }

/* --- Anfragen-Übersicht ---------------------------------------------------- */

.ff-offers__title {
	margin: 2rem 0 1rem;
	padding-bottom: .35rem;
	border-bottom: 2px dashed var(--ff-line, #cdbb99);
	font-size: 1.25rem;
	text-transform: uppercase;
	letter-spacing: .05em;
}
.ff-offers__empty { color: var(--ff-ink-faint, #8d8479); }
.ff-offers__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.2rem; }

.ff-offer {
	background: var(--ff-paper, #fbf6ea);
	border: 2px solid var(--ff-ink, #241f1b);
	box-shadow: 4px 4px 0 rgba(36, 31, 27, .12);
	padding: 1.1rem 1.2rem;
}
.ff-offer--declined { opacity: .65; }

.ff-offer__head {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: .6rem;
}
.ff-offer__title { margin: 0; font-size: 1.1rem; }
.ff-offer__title a { color: inherit; text-decoration: none; }

.ff-offer__status {
	flex: none;
	padding: .15rem .6rem;
	border: 1.5px solid currentColor;
	border-radius: 2px;
	font-family: var(--ff-font-display, sans-serif);
	font-size: .72rem;
	letter-spacing: .12em;
	text-transform: uppercase;
}
.ff-offer--new .ff-offer__status { color: #8a6d1f; }
.ff-offer--accepted .ff-offer__status { color: var(--ff-forest, #2f5d3a); }
.ff-offer--declined .ff-offer__status { color: var(--ff-rust, #c0492b); }

.ff-offer__meta { margin: .2rem 0 .7rem; font-size: .85rem; color: var(--ff-ink-faint, #8d8479); }

.ff-offer__message {
	margin: 0 0 .8rem;
	padding: .5rem 0 .5rem 1rem;
	border-left: 3px solid var(--ff-mustard, #e9a93c);
	font-style: italic;
}

.ff-offer__details { list-style: none; margin: 0 0 .9rem; padding: 0; font-size: .92rem; }
.ff-offer__actions { display: flex; flex-wrap: wrap; gap: .6rem; }
.ff-inline-form { margin: 0; }

/* --- Termine --------------------------------------------------------------- */

.ff-markets {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 1.2rem;
}

.ff-market__link {
	display: flex;
	align-items: center;
	gap: 1rem;
	height: 100%;
	padding: 1rem;
	background: var(--ff-paper, #fbf6ea);
	border: 2px solid var(--ff-ink, #241f1b);
	box-shadow: 4px 4px 0 rgba(36, 31, 27, .12);
	text-decoration: none;
	color: inherit;
	transition: transform .15s ease;
}
.ff-market__link:hover { transform: translate(-2px, -2px); }

.ff-market__date {
	flex: none;
	display: grid;
	place-items: center;
	width: 62px; height: 62px;
	background: var(--ff-rust, #c0492b);
	color: #fbf6ea;
	border: 2px solid var(--ff-ink, #241f1b);
	line-height: 1;
}
.ff-market__day { font-family: var(--ff-font-display, sans-serif); font-size: 1.5rem; font-weight: 700; }
.ff-market__month { font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; }

.ff-market__body { display: block; min-width: 0; }
.ff-market__title { display: block; font-family: var(--ff-font-display, sans-serif); font-weight: 600; font-size: 1.02rem; }
.ff-market__meta { display: block; font-size: .86rem; color: var(--ff-ink-faint, #8d8479); }

.ff-market__table { width: 100%; margin-top: 1.6rem; border-collapse: collapse; }
.ff-market__table th { width: 34%; text-align: left; }
.ff-market__table th, .ff-market__table td { padding: .5rem .6rem; border-bottom: 1px dashed var(--ff-line, #cdbb99); }

/* --- Hervorheben ----------------------------------------------------------- */

.ff-feature { margin: 0; }
.ff-feature__button {
	background: none;
	border: 0;
	padding: 0;
	font: inherit;
	color: var(--ff-rust, #c0492b);
	cursor: pointer;
	text-decoration: underline;
}
.ff-feature__button[disabled] { color: var(--ff-ink-faint, #8d8479); cursor: not-allowed; text-decoration: none; }
.ff-feature--active {
	color: var(--ff-forest, #2f5d3a);
	font-weight: 700;
	font-size: .88rem;
	text-transform: uppercase;
	letter-spacing: .08em;
}

@media (max-width: 600px) {
	.ff-state { flex-direction: column; align-items: flex-start; }
	.ff-offer__actions .ff-btn { width: 100%; }
}

/* --- Gemeinde hinter dem Dorfnamen ----------------------------------------- */

.ff-gemeinde { color: var(--ff-ink-faint, #8d8479); }
.ff-gemeinde::before { content: "("; }
.ff-gemeinde::after { content: ")"; }
.ff-gemeinde:empty { display: none; }

/* ==========================================================================
   Formulare (Termin eintragen, Anbieter werden)
   ========================================================================== */

.ff-form { max-width: 820px; }

.ff-form .ff-row {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 0 1.2rem;
}

.ff-form .ff-field { margin: 0 0 1.1rem; }
.ff-form .ff-field > p { margin: 0 0 1.1rem; }

.ff-form label {
	display: block;
	margin-bottom: .3rem;
	font-family: var(--ff-font-display, sans-serif);
	font-size: .84rem;
	font-weight: 600;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--ff-ink-soft, #5d554b);
}

.ff-form input[type="text"],
.ff-form input[type="tel"],
.ff-form input[type="url"],
.ff-form input[type="date"],
.ff-form input[type="file"],
.ff-form textarea,
.ff-form select {
	width: 100%;
	min-height: 46px;
	padding: .6rem .8rem;
	border: 2px solid var(--ff-ink, #241f1b);
	border-radius: 3px;
	background: var(--ff-paper, #fbf6ea);
	font: inherit;
}

.ff-form textarea { min-height: 110px; resize: vertical; }

.ff-form .ff-check {
	display: flex;
	gap: .5rem;
	align-items: flex-start;
	margin-top: .5rem;
	font-family: var(--ff-font-body, sans-serif);
	font-size: .95rem;
	font-weight: 400;
	letter-spacing: 0;
	text-transform: none;
	color: var(--ff-ink, #241f1b);
}
.ff-form .ff-check input { margin-top: .3rem; flex: none; }

.ff-help {
	display: block;
	margin-top: .35rem;
	font-size: .84rem;
	color: var(--ff-ink-faint, #8d8479);
}

.ff-apply-intro {
	padding: 1.2rem 1.4rem;
	margin-bottom: 1.6rem;
	background: var(--ff-paper-warm, #f5ecd9);
	border: 2px dashed var(--ff-line, #cdbb99);
}
.ff-apply-list { margin: .4rem 0 0; padding-left: 1.2rem; }
.ff-apply-list li { margin-bottom: .25rem; }

/* ==========================================================================
   Termine
   ========================================================================== */

.ff-markets__bar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: .8rem;
	padding: .8rem;
	margin-bottom: 1.6rem;
	background: var(--ff-kraft, #eeddbd);
	border: 2px solid var(--ff-ink, #241f1b);
}

.ff-markets__filter {
	display: flex;
	flex: 1 1 520px;
	flex-wrap: wrap;
	gap: .6rem;
	align-items: center;
}
.ff-markets__filter > select,
.ff-markets__filter > .select2 { flex: 1 1 200px; min-width: 0; }

.ff-market__type {
	display: block;
	font-family: var(--ff-font-display, sans-serif);
	font-size: .7rem;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--ff-rust, #c0492b);
}
.ff-market--garagenflohmarkt .ff-market__date { background: var(--ff-sky, #6e93a6); }
.ff-market--hofflohmarkt .ff-market__date,
.ff-market--hoffest .ff-market__date { background: var(--ff-forest, #2f5d3a); }
.ff-market--kinderbasar .ff-market__date { background: var(--ff-mustard, #e9a93c); color: var(--ff-ink, #241f1b); }

.ff-market--cancelled .ff-market__title { text-decoration: line-through; }
.ff-market__cancelled {
	display: inline-block;
	margin-top: .3rem;
	padding: .05rem .5rem;
	border: 2px double var(--ff-rust, #c0492b);
	color: var(--ff-rust, #c0492b);
	font-family: var(--ff-font-display, sans-serif);
	font-size: .7rem;
	letter-spacing: .12em;
	text-transform: uppercase;
	transform: rotate(-3deg);
}

.ff-mymarkets { list-style: none; margin: 1.2rem 0 0; padding: 0; display: grid; gap: .9rem; }

.ff-mymarket {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: .5rem 1rem;
	align-items: center;
	padding: .9rem 1.1rem;
	background: var(--ff-paper, #fbf6ea);
	border: 2px solid var(--ff-ink, #241f1b);
	box-shadow: 3px 3px 0 rgba(36, 31, 27, .12);
}
.ff-mymarket--past { opacity: .6; }
.ff-mymarket__date { display: block; font-size: .8rem; color: var(--ff-ink-faint, #8d8479); }
.ff-mymarket__title { display: block; font-family: var(--ff-font-display, sans-serif); font-size: 1.08rem; font-weight: 600; color: inherit; }
.ff-mymarket__meta { display: block; font-size: .86rem; color: var(--ff-ink-soft, #5d554b); }
.ff-mymarket__state {
	padding: .15rem .6rem;
	border: 1.5px solid currentColor;
	font-family: var(--ff-font-display, sans-serif);
	font-size: .72rem;
	letter-spacing: .12em;
	text-transform: uppercase;
}
.ff-mymarket--live .ff-mymarket__state { color: var(--ff-forest, #2f5d3a); }
.ff-mymarket--pending .ff-mymarket__state { color: #8a6d1f; }
.ff-mymarket--cancelled .ff-mymarket__state { color: var(--ff-rust, #c0492b); }
.ff-mymarket__actions { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: .5rem; }
.ff-mymarket__actions .ff-btn { padding: .45rem .9rem; font-size: .82rem; }

/* ==========================================================================
   Anbieter und regionale Angebote
   ========================================================================== */

.ff-anbieter-badge {
	display: inline-block;
	padding: .12rem .55rem;
	background: var(--ff-forest, #2f5d3a);
	color: #fbf6ea;
	border-radius: 2px;
	font-family: var(--ff-font-display, sans-serif);
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.ff-art--anbieter { color: var(--ff-forest, #2f5d3a); }

.ff-einheit {
	font-size: .84rem;
	color: var(--ff-ink-soft, #5d554b);
}

.hp-listing__attribute--einheit { display: inline-block; margin-left: .3rem; }

.ff-avail {
	display: inline-flex;
	align-items: center;
	gap: .35rem;
	font-size: .86rem;
	font-weight: 700;
}
.ff-avail::before {
	content: '';
	width: .6rem;
	height: .6rem;
	border-radius: 50%;
	background: currentColor;
}
.ff-avail--vorratig { color: var(--ff-forest, #2f5d3a); }
.ff-avail--saisonal { color: #8a6d1f; }
.ff-avail--auf-vorbestellung { color: var(--ff-sky, #4d7286); }
.ff-avail--gerade-ausverkauft { color: var(--ff-rust, #c0492b); }

.ff-offer__kind {
	margin-left: auto;
	padding: .1rem .5rem;
	background: var(--ff-forest, #2f5d3a);
	color: #fbf6ea;
	font-family: var(--ff-font-display, sans-serif);
	font-size: .7rem;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.ff-availability { display: flex; flex-wrap: wrap; gap: .5rem; }
.ff-availability .ff-btn { flex: 1 1 auto; padding: .5rem .7rem; font-size: .8rem; }

.ff-vendor-section,
.ff-vendor-imprint {
	margin-top: 2rem;
	padding-top: 1.2rem;
	border-top: 2px dashed var(--ff-line, #cdbb99);
}
.ff-vendor-section__title {
	font-size: 1.1rem;
	text-transform: uppercase;
	letter-spacing: .06em;
	margin-bottom: .8rem;
}
.ff-vendor-imprint p { font-size: .9rem; color: var(--ff-ink-soft, #5d554b); }

@media (max-width: 600px) {
	.ff-mymarket { grid-template-columns: 1fr; }
}

/* Aktueller Zustand im Verfügbarkeitsschalter – gegen die Knopf-Grundwerte von HivePress. */
.ff-offerbox .ff-availability .ff-btn--accent {
	background: var(--ff-rust, #c0492b);
	color: #fbf6ea;
}
.ff-offerbox .ff-availability .ff-btn--ghost {
	background: transparent;
	color: var(--ff-ink, #241f1b);
}
